@koda-sl/baker-cli 0.572.0 → 0.574.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1537) hide show
  1. package/README.md +43 -8
  2. package/dist/account-WFAMHUCQ.js +82 -0
  3. package/dist/account-Y7ZFEM7U.js +82 -0
  4. package/dist/account-YYB2KWLU.js +139 -0
  5. package/dist/account-assets-BFMQWV33.js +290 -0
  6. package/dist/account-level-47IS2CZB.js +611 -0
  7. package/dist/account-reads-JPQ2K343.js +219 -0
  8. package/dist/account-reads-JPQ2K343.js.map +1 -0
  9. package/dist/account-users-QAFQDSZQ.js +64 -0
  10. package/dist/account-writes-EEKHPF5I.js +68 -0
  11. package/dist/accounts-H3KO5AEN.js +119 -0
  12. package/dist/accounts-LTGUK6OV.js +76 -0
  13. package/dist/accounts-LTUEBWJL.js +115 -0
  14. package/dist/accounts-OHVZAP4D.js +498 -0
  15. package/dist/accounts-OHVZAP4D.js.map +1 -0
  16. package/dist/accounts-TFUGF7UK.js +80 -0
  17. package/dist/actions-FTIRKAAN.js +55 -0
  18. package/dist/active-entities-QWJXR4W6.js +103 -0
  19. package/dist/activecampaign-BCOEXYZ7.js +938 -0
  20. package/dist/activities-ZRP22SC2.js +75 -0
  21. package/dist/ad-group-writes-UDQ4563V.js +172 -0
  22. package/dist/ad-groups-RXT2XKSE.js +70 -0
  23. package/dist/ad-writes-SHLTL2FY.js +176 -0
  24. package/dist/add-F65GOWKP.js +85 -0
  25. package/dist/add-IALA4VRA.js +148 -0
  26. package/dist/add-ITX64WEC.js +81 -0
  27. package/dist/add-L6MKL2G2.js +107 -0
  28. package/dist/add-QGJPTGU7.js +305 -0
  29. package/dist/add-WAVXB2QA.js +97 -0
  30. package/dist/add-accounts-YTLQCSXB.js +91 -0
  31. package/dist/ads-A34INCCM.js +120 -0
  32. package/dist/ads-AKF5AT6O.js +128 -0
  33. package/dist/ads-AYXMFUIF.js +48 -0
  34. package/dist/ads-CUMOMBI3.js +79 -0
  35. package/dist/adsets-HNFBX4LB.js +182 -0
  36. package/dist/advertisers-RVTUZ53M.js +123 -0
  37. package/dist/advertisers-YTG6VA6R.js +125 -0
  38. package/dist/alerts-LZJAF4AQ.js +151 -0
  39. package/dist/alerts-LZJAF4AQ.js.map +1 -0
  40. package/dist/analytics-4YHYFRHH.js +447 -0
  41. package/dist/analytics-RLZ7BXIB.js +2397 -0
  42. package/dist/analytics-RLZ7BXIB.js.map +1 -0
  43. package/dist/animate-MBNFCDUZ.js +480 -0
  44. package/dist/approved-3W56YTOZ.js +73 -0
  45. package/dist/asset-writes-2CYNDRPU.js +50 -0
  46. package/dist/assign-JC5BK5XE.js +80 -0
  47. package/dist/audience-size-ZVRH3BEL.js +76 -0
  48. package/dist/audience-writes-JNVGUHGN.js +327 -0
  49. package/dist/audiences-KBW2UAOP.js +280 -0
  50. package/dist/audiences-OOXSXKIT.js +85 -0
  51. package/dist/audiences-S6TXNKQ2.js +106 -0
  52. package/dist/audit-JXRVO37K.js +154 -0
  53. package/dist/audit-O2RRST7B.js +88 -0
  54. package/dist/autocomplete-CBBFRPJZ.js +114 -0
  55. package/dist/avatars-GB7B2MGR.js +38 -0
  56. package/dist/bid-pricing-G4IXJRVK.js +103 -0
  57. package/dist/brand-VKQ72SRQ.js +22 -0
  58. package/dist/brief-X3FRAPUH.js +543 -0
  59. package/dist/businesses-HOAQVYRH.js +54 -0
  60. package/dist/campaign-groups-NA73I7JR.js +99 -0
  61. package/dist/campaign-writes-JYMQF6CK.js +176 -0
  62. package/dist/campaign-writes-ZOLIX3EB.js +168 -0
  63. package/dist/campaigns-DZAZIUES.js +113 -0
  64. package/dist/campaigns-EEH3VDK6.js +130 -0
  65. package/dist/campaigns-PB3QNTI4.js +111 -0
  66. package/dist/campaigns-TMHFCPAZ.js +78 -0
  67. package/dist/canvas-4EGLYNYM.js +46 -0
  68. package/dist/capabilities-JZFPET7C.js +147 -0
  69. package/dist/cards-OOKI2WSA.js +85 -0
  70. package/dist/catalog-2P422WOQ.js +66 -0
  71. package/dist/catalogs-WBXWK7NT.js +782 -0
  72. package/dist/catalogs-XFYYY3CS.js +130 -0
  73. package/dist/changes-GFJITHF6.js +167 -0
  74. package/dist/changes-GFJITHF6.js.map +1 -0
  75. package/dist/chatgpt-KNLATOZ6.js +47 -0
  76. package/dist/chats-CE7RKD6W.js +589 -0
  77. package/dist/check-SIMBAMXJ.js +107 -0
  78. package/dist/chunk-2NXACVED.js +169 -0
  79. package/dist/chunk-2S3VIE7D.js +312 -0
  80. package/dist/chunk-2ZKQNMK2.js +74 -0
  81. package/dist/chunk-37QNC344.js +843 -0
  82. package/dist/chunk-3WLUQ7DM.js +757 -0
  83. package/dist/chunk-3WLUQ7DM.js.map +1 -0
  84. package/dist/chunk-3WOFZTGC.js +297 -0
  85. package/dist/chunk-3WOFZTGC.js.map +1 -0
  86. package/dist/chunk-45ETXHUI.js +66 -0
  87. package/dist/chunk-46TEYVJ6.js +432 -0
  88. package/dist/chunk-46TEYVJ6.js.map +1 -0
  89. package/dist/chunk-4DHHMWP4.js +24026 -0
  90. package/dist/chunk-4GRVNPHA.js +274 -0
  91. package/dist/chunk-5G7UBTBE.js +962 -0
  92. package/dist/chunk-5HQ64Z7X.js +479 -0
  93. package/dist/chunk-5IHZTLDH.js +288 -0
  94. package/dist/chunk-5QCAWD6V.js +163 -0
  95. package/dist/chunk-62UGVR7Q.js +94 -0
  96. package/dist/chunk-6LLA6IF6.js +285 -0
  97. package/dist/chunk-6PJGHPXG.js +131 -0
  98. package/dist/chunk-6ZW5AR5N.js +84 -0
  99. package/dist/chunk-7DT6XY4A.js +719 -0
  100. package/dist/chunk-7DT6XY4A.js.map +1 -0
  101. package/dist/chunk-7LFOSBF4.js +3510 -0
  102. package/dist/chunk-7PKEBTVP.js +98 -0
  103. package/dist/chunk-7PKEBTVP.js.map +1 -0
  104. package/dist/chunk-7XFQPPYB.js +69 -0
  105. package/dist/chunk-AJ4OO3CV.js +8141 -0
  106. package/dist/chunk-AJ4OO3CV.js.map +1 -0
  107. package/dist/chunk-AWYXZU45.js +51 -0
  108. package/dist/chunk-AYKV2B6X.js +47 -0
  109. package/dist/chunk-AYKV2B6X.js.map +1 -0
  110. package/dist/chunk-AYOTYURE.js +1518 -0
  111. package/dist/chunk-BXR45CRI.js +819 -0
  112. package/dist/chunk-BXR45CRI.js.map +1 -0
  113. package/dist/chunk-BYV4VS5E.js +5471 -0
  114. package/dist/chunk-CGLNCFAG.js +136 -0
  115. package/dist/chunk-CP5IVVYM.js +76 -0
  116. package/dist/chunk-CXVHS2SV.js +91 -0
  117. package/dist/chunk-DCBCEYSH.js +98 -0
  118. package/dist/chunk-DFE77XT5.js +225 -0
  119. package/dist/chunk-DN6EMVA4.js +25 -0
  120. package/dist/chunk-E2G2USTA.js +75 -0
  121. package/dist/chunk-EFZVDV7F.js +1744 -0
  122. package/dist/chunk-FCD5BPC5.js +222 -0
  123. package/dist/chunk-FCD5BPC5.js.map +1 -0
  124. package/dist/chunk-FTP6NDOU.js +1320 -0
  125. package/dist/chunk-FUFLMP4B.js +455 -0
  126. package/dist/chunk-HJS6FPQX.js +152 -0
  127. package/dist/chunk-HZ7QUFUW.js +97 -0
  128. package/dist/chunk-IDFAFNL6.js +297 -0
  129. package/dist/chunk-ILLS2XWG.js +61 -0
  130. package/dist/chunk-IPEQHZ5H.js +724 -0
  131. package/dist/chunk-IPEQHZ5H.js.map +1 -0
  132. package/dist/chunk-ITABNSX6.js +26 -0
  133. package/dist/chunk-JCFZ7ECN.js +246 -0
  134. package/dist/chunk-JTYD7A3C.js +225 -0
  135. package/dist/chunk-K2WKQXGH.js +392 -0
  136. package/dist/chunk-KMZ4YWS4.js +544 -0
  137. package/dist/chunk-KSBXVA4K.js +344 -0
  138. package/dist/chunk-KSJRHAE4.js +156 -0
  139. package/dist/chunk-KYLTADVX.js +494 -0
  140. package/dist/chunk-L6UZM3ZN.js +249 -0
  141. package/dist/chunk-LRIP2J5S.js +5368 -0
  142. package/dist/chunk-M27HR7YD.js +23 -0
  143. package/dist/chunk-M7BSXJNL.js +167 -0
  144. package/dist/chunk-MGUEAG6W.js +73 -0
  145. package/dist/chunk-MIBOIXCP.js +115 -0
  146. package/dist/chunk-MNFJQRUO.js +76 -0
  147. package/dist/chunk-MNJT2F7H.js +504 -0
  148. package/dist/chunk-MNJT2F7H.js.map +1 -0
  149. package/dist/chunk-MQU4LNYG.js +46 -0
  150. package/dist/chunk-MSOFG7FT.js +197 -0
  151. package/dist/chunk-MUT2BPDM.js +46 -0
  152. package/dist/chunk-MUU27AJF.js +203 -0
  153. package/dist/chunk-MVDMMSXS.js +8954 -0
  154. package/dist/chunk-MWPM6HNV.js +138 -0
  155. package/dist/chunk-NE3AZ25Y.js +58 -0
  156. package/dist/chunk-NEALLMDP.js +1919 -0
  157. package/dist/chunk-NZOMEXDN.js +399 -0
  158. package/dist/chunk-O5K5EKJC.js +930 -0
  159. package/dist/chunk-OFSUVUXT.js +215 -0
  160. package/dist/chunk-OMLZ35HJ.js +482 -0
  161. package/dist/chunk-OMLZ35HJ.js.map +1 -0
  162. package/dist/chunk-P3CYWSTO.js +351 -0
  163. package/dist/chunk-P3CYWSTO.js.map +1 -0
  164. package/dist/chunk-P6H6JZXO.js +188 -0
  165. package/dist/chunk-P7OX5Y75.js +1920 -0
  166. package/dist/chunk-QENSBNRJ.js +1258 -0
  167. package/dist/chunk-QENSBNRJ.js.map +1 -0
  168. package/dist/chunk-QY6GNZFH.js +224 -0
  169. package/dist/chunk-RM5JT6XF.js +106 -0
  170. package/dist/chunk-ROWUTQFG.js +125 -0
  171. package/dist/chunk-RSABCQLI.js +45 -0
  172. package/dist/chunk-SGA5V2BM.js +91 -0
  173. package/dist/chunk-SLTZC32B.js +218 -0
  174. package/dist/chunk-SLTZC32B.js.map +1 -0
  175. package/dist/chunk-SO7NANAH.js +69 -0
  176. package/dist/chunk-SQZKWZ6F.js +103 -0
  177. package/dist/chunk-SSFQNMPS.js +259 -0
  178. package/dist/chunk-SSFQNMPS.js.map +1 -0
  179. package/dist/chunk-SULQZX5W.js +42 -0
  180. package/dist/chunk-T3YHV2UM.js +685 -0
  181. package/dist/chunk-T4HIFVNK.js +84 -0
  182. package/dist/chunk-TJTCHTR4.js +343 -0
  183. package/dist/chunk-TUS2VOMZ.js +219 -0
  184. package/dist/chunk-U3LO5TDH.js +296 -0
  185. package/dist/chunk-UDNN4POE.js +111 -0
  186. package/dist/chunk-USFXKWTX.js +79 -0
  187. package/dist/chunk-USFXKWTX.js.map +1 -0
  188. package/dist/chunk-UYOUNHUQ.js +309 -0
  189. package/dist/chunk-UYOUNHUQ.js.map +1 -0
  190. package/dist/chunk-UYVMINV2.js +139 -0
  191. package/dist/chunk-VASOAJDL.js +78 -0
  192. package/dist/chunk-VASOAJDL.js.map +1 -0
  193. package/dist/chunk-VC2XB5JT.js +170 -0
  194. package/dist/chunk-VGJFNHSA.js +56 -0
  195. package/dist/chunk-VJUVTMHY.js +329 -0
  196. package/dist/chunk-VJUVTMHY.js.map +1 -0
  197. package/dist/chunk-VQMEXYP3.js +604 -0
  198. package/dist/chunk-VQOBDHZP.js +106 -0
  199. package/dist/chunk-VRQ5HEVU.js +35 -0
  200. package/dist/chunk-VUG7DFVI.js +220 -0
  201. package/dist/chunk-VVITBZKP.js +97 -0
  202. package/dist/chunk-WB4FNMSI.js +142 -0
  203. package/dist/chunk-WFTTF2MP.js +225 -0
  204. package/dist/chunk-WUNWVQAI.js +89 -0
  205. package/dist/chunk-XGTZ3WQX.js +2234 -0
  206. package/dist/chunk-XGTZ3WQX.js.map +1 -0
  207. package/dist/chunk-XMIV53FM.js +191 -0
  208. package/dist/chunk-XNUUEUJB.js +287 -0
  209. package/dist/chunk-YB2UVOAD.js +64 -0
  210. package/dist/chunk-YP5SD6O2.js +148 -0
  211. package/dist/chunk-YRW2AAKX.js +454 -0
  212. package/dist/chunk-YT6YI47O.js +178 -0
  213. package/dist/chunk-YYFARPMN.js +547 -0
  214. package/dist/chunk-Z2QKUVHP.js +57 -0
  215. package/dist/chunk-Z2WTCFQ6.js +19 -0
  216. package/dist/chunk-Z3KRNKEA.js +64 -0
  217. package/dist/chunk-Z6RTEOEY.js +39 -0
  218. package/dist/cite-I5UV5SKS.js +191 -0
  219. package/dist/claim-QS3M3TOL.js +200 -0
  220. package/dist/cli.js +46 -45
  221. package/dist/cli.js.map +1 -1
  222. package/dist/client-DKZM6XTS.js +19 -0
  223. package/dist/code-D3J5FQCF.js +76 -0
  224. package/dist/companies-XCKJCRHM.js +34 -0
  225. package/dist/company-IQ4LMS24.js +308 -0
  226. package/dist/complete-PPHC25BS.js +84 -0
  227. package/dist/config-ACEF37UO.js +88 -0
  228. package/dist/connect-F6LPMOCU.js +45 -0
  229. package/dist/content-5RTSXURF.js +85 -0
  230. package/dist/conversation-GYDBXZN2.js +96 -0
  231. package/dist/conversion-report-6SVHPLHT.js +127 -0
  232. package/dist/conversion-upload-command-J3STKMAL.js +439 -0
  233. package/dist/conversion-writes-PEKNBIDQ.js +122 -0
  234. package/dist/conversions-7PSI7L55.js +140 -0
  235. package/dist/conversions-ICSKSSLX.js +78 -0
  236. package/dist/copy-writes-ER5ZB5C4.js +170 -0
  237. package/dist/countries-OJZQQYFT.js +82 -0
  238. package/dist/create-AJPHIQIT.js +135 -0
  239. package/dist/create-DM7DUVDQ.js +239 -0
  240. package/dist/create-R6BEEL3J.js +62 -0
  241. package/dist/create-XYJYG7CU.js +218 -0
  242. package/dist/creatives-LD76JBM4.js +58 -0
  243. package/dist/creatives-R6Q2QUQI.js +229 -0
  244. package/dist/creatives-ZGXH7UA7.js +118 -0
  245. package/dist/credentials-P7L6PQKJ.js +290 -0
  246. package/dist/critique-DIVRMX7I.js +1451 -0
  247. package/dist/critique-KLGX7RI6.js +232 -0
  248. package/dist/crm-SBSOI3BQ.js +313 -0
  249. package/dist/crm-SBSOI3BQ.js.map +1 -0
  250. package/dist/crm-Y3F5UUXL.js +323 -0
  251. package/dist/crop-SRCLDYM5.js +113 -0
  252. package/dist/currency-YZBACARU.js +88 -0
  253. package/dist/currency-YZBACARU.js.map +1 -0
  254. package/dist/custom-conversions-RTSR3KKJ.js +128 -0
  255. package/dist/customers-7NG2IPJK.js +65 -0
  256. package/dist/data-QOCDG3ZD.js +455 -0
  257. package/dist/data-QOCDG3ZD.js.map +1 -0
  258. package/dist/decide-2WQKE6HC.js +199 -0
  259. package/dist/delete-DWQS7UCJ.js +85 -0
  260. package/dist/delete-HGIMNZ4V.js +57 -0
  261. package/dist/delete-KDD6QSJA.js +69 -0
  262. package/dist/delete-MJSASLP6.js +69 -0
  263. package/dist/delete-N76JN5MP.js +71 -0
  264. package/dist/delete-S7U6A435.js +67 -0
  265. package/dist/demographics-PNEXYSZD.js +141 -0
  266. package/dist/describe-42XBBR6J.js +97 -0
  267. package/dist/describe-TKOJMWML.js +97 -0
  268. package/dist/dimensions-5OS26IF6.js +101 -0
  269. package/dist/discard-MT26YH73.js +69 -0
  270. package/dist/discover-IDC6PQV2.js +93 -0
  271. package/dist/discover-RKW25QME.js +172 -0
  272. package/dist/discover-RKW25QME.js.map +1 -0
  273. package/dist/domain-H6GRR7WD.js +101 -0
  274. package/dist/download-QCDXPSUM.js +172 -0
  275. package/dist/download-QH4VHDS6.js +337 -0
  276. package/dist/draft-3MYPEBSF.js +260 -0
  277. package/dist/draft-EHDIVMWL.js +615 -0
  278. package/dist/draft-EHDIVMWL.js.map +1 -0
  279. package/dist/draft-EUWOFQXE.js +374 -0
  280. package/dist/draft-FJ55MZB4.js +138 -0
  281. package/dist/draft-FRX24TKC.js +220 -0
  282. package/dist/draft-RKKOSTJF.js +332 -0
  283. package/dist/draft-W7FYHKI2.js +134 -0
  284. package/dist/draft-ZDS6KFZ3.js +315 -0
  285. package/dist/engine/index.js +13 -13
  286. package/dist/env-AMOXYHCA.js +55 -0
  287. package/dist/experiment-TBLKWI2J.js +1397 -0
  288. package/dist/experiments-SJV3ZE46.js +236 -0
  289. package/dist/export-AMOLHZB6.js +168 -0
  290. package/dist/extract-MT3P3SYT.js +143 -0
  291. package/dist/facets-LWJT5J4S.js +117 -0
  292. package/dist/favorites-Z24QDACW.js +178 -0
  293. package/dist/feed-2XCJ2JIV.js +177 -0
  294. package/dist/feedback-AB2QVJU3.js +114 -0
  295. package/dist/feedback-EGVQJTCD.js +115 -0
  296. package/dist/feedback-record-F32XSTKZ.js +269 -0
  297. package/dist/fetch-M5KGRBEI.js +204 -0
  298. package/dist/fetch-Z5MNAIQS.js +139 -0
  299. package/dist/find-XMISWVZT.js +144 -0
  300. package/dist/fit-YDHY7E7H.js +65 -0
  301. package/dist/flows-3V47HJQ3.js +340 -0
  302. package/dist/follow-542NYE76.js +94 -0
  303. package/dist/follow-competitors-NZDLHP7P.js +112 -0
  304. package/dist/following-JTZZCSQX.js +113 -0
  305. package/dist/fonts-3GV2ZO5E.js +39 -0
  306. package/dist/forecast-327XLLZ3.js +169 -0
  307. package/dist/forecast-327XLLZ3.js.map +1 -0
  308. package/dist/forecast-YKHZXBSB.js +121 -0
  309. package/dist/funding-HKPP53U2.js +85 -0
  310. package/dist/funnel-B4WROVPH.js +397 -0
  311. package/dist/ga4-MUIZN7ID.js +55 -0
  312. package/dist/generate-GBFLO76C.js +263 -0
  313. package/dist/get-3QLANJES.js +59 -0
  314. package/dist/get-D5G2RNTR.js +62 -0
  315. package/dist/get-FG3VO3BZ.js +62 -0
  316. package/dist/get-G4UPOHVY.js +74 -0
  317. package/dist/get-GOXOADPY.js +56 -0
  318. package/dist/get-HQUIC2MQ.js +82 -0
  319. package/dist/get-JUI3RVMT.js +38 -0
  320. package/dist/get-T7A3CTS2.js +92 -0
  321. package/dist/gif-4KAQUYPX.js +111 -0
  322. package/dist/google-FMGXNCW3.js +3300 -0
  323. package/dist/google-FMGXNCW3.js.map +1 -0
  324. package/dist/google-PKT7ORVP.js +163 -0
  325. package/dist/google-ads-AKIWTLR4.js +198 -0
  326. package/dist/group-4GYPBQMU.js +43 -0
  327. package/dist/group-GH5CSQKA.js +43 -0
  328. package/dist/gsc-3EIBYMON.js +30 -0
  329. package/dist/history-FX223L6D.js +102 -0
  330. package/dist/history-HB45CGYR.js +153 -0
  331. package/dist/history-K4VYVCZC.js +69 -0
  332. package/dist/hubspot-SBPRX4A7.js +817 -0
  333. package/dist/hubspot-SBPRX4A7.js.map +1 -0
  334. package/dist/icon-VYFLZ4FS.js +138 -0
  335. package/dist/ideas-6GD47AQW.js +45 -0
  336. package/dist/images-BC7ZWZ4B.js +92 -0
  337. package/dist/improve-ZBPSMVFI.js +86 -0
  338. package/dist/ingest-T3FJWORN.js +131 -0
  339. package/dist/ingest-XJ5DDUNG.js +28 -0
  340. package/dist/insights-2NWY4XJR.js +658 -0
  341. package/dist/insights-RHOCF7VR.js +132 -0
  342. package/dist/inspect-GYEHCDZR.js +192 -0
  343. package/dist/inspiration-6FGGHV73.js +53 -0
  344. package/dist/instant-experiences-YZYOLGBA.js +264 -0
  345. package/dist/intent-TKFH57DZ.js +95 -0
  346. package/dist/job-2XYPZRJ6.js +202 -0
  347. package/dist/job-create-BPUOBKXA.js +109 -0
  348. package/dist/job-status-HUDHF6BU.js +74 -0
  349. package/dist/keep-XBYR2NII.js +78 -0
  350. package/dist/keyword-gap-7I2CIUTK.js +130 -0
  351. package/dist/keyword-metrics-K7L6CVTZ.js +200 -0
  352. package/dist/keywords-for-site-HBQBMVFS.js +131 -0
  353. package/dist/knowledge-ILQIN5FL.js +195 -0
  354. package/dist/landing-RYX65ZJJ.js +28 -0
  355. package/dist/landings-GRJAJKHY.js +151 -0
  356. package/dist/languages-22VMY7JN.js +55 -0
  357. package/dist/languages-FMHPUVOL.js +40 -0
  358. package/dist/launches-NUMSS7HP.js +19 -0
  359. package/dist/layerize-TFRXRHVL.js +190 -0
  360. package/dist/lead-routes-D5ITHESC.js +733 -0
  361. package/dist/leads-OAFYKOCF.js +115 -0
  362. package/dist/leads-VEHYM23G.js +541 -0
  363. package/dist/learn-SIATYUQL.js +207 -0
  364. package/dist/library-JB2UBSJ5.js +212 -0
  365. package/dist/lighthouse-EQZFYGFL.js +75 -0
  366. package/dist/line-item-writes-4LAJW33S.js +211 -0
  367. package/dist/line-items-4FLTV275.js +107 -0
  368. package/dist/link-4EWQ6R6D.js +67 -0
  369. package/dist/linkedin-3KNDZPJT.js +1381 -0
  370. package/dist/linkedin-3KNDZPJT.js.map +1 -0
  371. package/dist/linkedin-person-EFBNRT7A.js +139 -0
  372. package/dist/list-5BWNSHYO.js +51 -0
  373. package/dist/list-A363BF25.js +65 -0
  374. package/dist/list-JARIB5LC.js +57 -0
  375. package/dist/list-K7ROIVKU.js +67 -0
  376. package/dist/list-RO4YLUFK.js +76 -0
  377. package/dist/list-TJJPI57I.js +154 -0
  378. package/dist/list-UD43QCLC.js +50 -0
  379. package/dist/list-VGMXUBFE.js +306 -0
  380. package/dist/list-XPLMANXX.js +93 -0
  381. package/dist/locations-DD3JRZ4C.js +69 -0
  382. package/dist/locations-HWMEJ64P.js +40 -0
  383. package/dist/log-M7UCG5LZ.js +95 -0
  384. package/dist/logo-KDGD6LRA.js +19 -0
  385. package/dist/lookup-7HIPFF2U.js +23 -0
  386. package/dist/make-US3C4YLT.js +1367 -0
  387. package/dist/map-OT5M3BJF.js +445 -0
  388. package/dist/mcp-32LXPARX.js +729 -0
  389. package/dist/media-6VI4PN4N.js +18 -0
  390. package/dist/media-WIFXVGKU.js +89 -0
  391. package/dist/media-sources-Z4JJELU7.js +35 -0
  392. package/dist/members-2BNKMQ2I.js +47 -0
  393. package/dist/meme-I43AVLGS.js +108 -0
  394. package/dist/meta-IVCO7HHX.js +152 -0
  395. package/dist/meta-IVCO7HHX.js.map +1 -0
  396. package/dist/metrics-KXTFXSWK.js +152 -0
  397. package/dist/metrics-KXTFXSWK.js.map +1 -0
  398. package/dist/normalize-5B5WIBV4.js +806 -0
  399. package/dist/normalize-GV2POGHI.js +144 -0
  400. package/dist/options-HKGF6VEW.js +125 -0
  401. package/dist/organization-G4VL7IQH.js +949 -0
  402. package/dist/output-W5J5RKRR.js +26 -0
  403. package/dist/page-KUDKDDLJ.js +105 -0
  404. package/dist/page-photos-52S2XRIW.js +118 -0
  405. package/dist/pages-RMTL3RCK.js +67 -0
  406. package/dist/people-2THRDMG4.js +171 -0
  407. package/dist/people-2THRDMG4.js.map +1 -0
  408. package/dist/people-5A6NEDEU.js +164 -0
  409. package/dist/people-5A6NEDEU.js.map +1 -0
  410. package/dist/performance-67DDDP3X.js +5565 -0
  411. package/dist/performance-MF4547I7.js +27 -0
  412. package/dist/pinterest-GMNQ2AVG.js +105 -0
  413. package/dist/pixels-3CINROKJ.js +62 -0
  414. package/dist/pixels-YQJKJWAC.js +109 -0
  415. package/dist/plan-33F5F2OR.js +208 -0
  416. package/dist/posts-MZFKWSZ6.js +36 -0
  417. package/dist/preview-HWM6KHV5.js +245 -0
  418. package/dist/preview-JITAEUWU.js +101 -0
  419. package/dist/profile-OYCGBQWF.js +159 -0
  420. package/dist/promoted-tweet-writes-K7YJNRMS.js +183 -0
  421. package/dist/promoted-tweets-JIKZFJXO.js +119 -0
  422. package/dist/properties-PMY3KKUU.js +101 -0
  423. package/dist/publish-4YT3CR4T.js +350 -0
  424. package/dist/query-ALRSR5OF.js +236 -0
  425. package/dist/query-NYH5PMQF.js +62 -0
  426. package/dist/query-ZGGHOYOH.js +231 -0
  427. package/dist/questionnaire-4AJFPLM2.js +94 -0
  428. package/dist/read-Z7BBSAEK.js +141 -0
  429. package/dist/reddit-CTAWHQ6K.js +29 -0
  430. package/dist/refresh-VE3UKLXX.js +42 -0
  431. package/dist/refresh-YYP23L3T.js +97 -0
  432. package/dist/release-ZPU626XC.js +63 -0
  433. package/dist/relevant-pages-QIF35NBQ.js +99 -0
  434. package/dist/remove-7RQJRXOV.js +53 -0
  435. package/dist/remove-VGEKRK34.js +49 -0
  436. package/dist/reopen-HANTJFNU.js +66 -0
  437. package/dist/rerun-LSWO6K7O.js +97 -0
  438. package/dist/research-YKP5MEEQ.js +78 -0
  439. package/dist/research-YKP5MEEQ.js.map +1 -0
  440. package/dist/research-ZARG4TUX.js +265 -0
  441. package/dist/reset-LO2WLWSF.js +57 -0
  442. package/dist/reset-PDQTEM2J.js +57 -0
  443. package/dist/resolve-RXWBSGHW.js +124 -0
  444. package/dist/retry-M5RY4EFT.js +65 -0
  445. package/dist/retry-WRNZN2GO.js +63 -0
  446. package/dist/retry-failed-GEORPC3E.js +45 -0
  447. package/dist/revenue-IXQTSRYQ.js +91 -0
  448. package/dist/rule-writes-DRZUEIV6.js +530 -0
  449. package/dist/rules-BBALKNBK.js +217 -0
  450. package/dist/rules-O64G4QVU.js +99 -0
  451. package/dist/rules-add-HW6UNH3U.js +465 -0
  452. package/dist/run-ENK7RU6R.js +69 -0
  453. package/dist/run-FO6EDDEN.js +72 -0
  454. package/dist/scaffold-ad-FFKVESN3.js +1513 -0
  455. package/dist/scaffold-static-ad-TWJM3TUK.js +1012 -0
  456. package/dist/scaffold-video-OK4TWNUK.js +885 -0
  457. package/dist/schedule-L5NVM4DN.js +67 -0
  458. package/dist/schedule-U4JVZER5.js +64 -0
  459. package/dist/scheduled-agents-ZIBL3WP5.js +56 -0
  460. package/dist/scheduled-agents-ZIBL3WP5.js.map +1 -0
  461. package/dist/schema-3IEI64TQ.js +152 -0
  462. package/dist/schema-6I2RSDO2.js +135 -0
  463. package/dist/scrape-YEZGRX2B.js +2209 -0
  464. package/dist/screenshot-6EBASY4U.js +103 -0
  465. package/dist/search-BZLTII6V.js +228 -0
  466. package/dist/search-I7CCYBB5.js +92 -0
  467. package/dist/search-NA7DBOLW.js +91 -0
  468. package/dist/search-QONARWFY.js +177 -0
  469. package/dist/search-RM4MN7KO.js +51 -0
  470. package/dist/search-SNEFCCJX.js +26 -0
  471. package/dist/search-copy-S6JVQZLI.js +168 -0
  472. package/dist/seeds-BIY565P3.js +101 -0
  473. package/dist/select-EBLEMFQI.js +110 -0
  474. package/dist/sends-7JKFJTRE.js +349 -0
  475. package/dist/sequences-KZSNIELI.js +146 -0
  476. package/dist/set-prompt-CDYOXIIY.js +199 -0
  477. package/dist/setup-links-QQ2AWOZG.js +144 -0
  478. package/dist/shared-P5UDXZAG.js +34 -0
  479. package/dist/shopify-SSDXRXN5.js +4009 -0
  480. package/dist/site-PHU5BRRL.js +180 -0
  481. package/dist/sitemaps-WCARK2BM.js +77 -0
  482. package/dist/sites-JQZ2ZC6W.js +97 -0
  483. package/dist/skills-V2FRLLOW.js +47 -0
  484. package/dist/sources-I52AANVB.js +30 -0
  485. package/dist/sources-XH6RL3GF.js +457 -0
  486. package/dist/stale-A6RYRZDV.js +90 -0
  487. package/dist/stats-W7CCPRTG.js +34 -0
  488. package/dist/status-O4AGHCJY.js +65 -0
  489. package/dist/sticker-NDSJDIAK.js +103 -0
  490. package/dist/stock-C2TUFJUH.js +212 -0
  491. package/dist/studies-4JOP2GQJ.js +250 -0
  492. package/dist/studio-TG2UAKFI.js +49 -0
  493. package/dist/study-writes-PMTRTUXP.js +471 -0
  494. package/dist/suggest-F5GIJR4K.js +66 -0
  495. package/dist/sync-IDULIJUZ.js +279 -0
  496. package/dist/sync-NNNB2PWZ.js +57 -0
  497. package/dist/sync-STPHWKTE.js +55 -0
  498. package/dist/sync-definition-AABUGAYW.js +70 -0
  499. package/dist/tag-MMY3QT2N.js +57 -0
  500. package/dist/tag-manager-JDGWAHCZ.js +43 -0
  501. package/dist/tags-A2PCL4OL.js +26 -0
  502. package/dist/tags-KH6N6OKV.js +23 -0
  503. package/dist/tags-LAMQOQWY.js +23 -0
  504. package/dist/tags-MIR75PDJ.js +227 -0
  505. package/dist/tags-PHEHMZC7.js +23 -0
  506. package/dist/targeting-AVHPKERN.js +762 -0
  507. package/dist/targeting-constants-T7Y6RVEH.js +118 -0
  508. package/dist/targeting-criteria-MRAEWFOW.js +113 -0
  509. package/dist/targets-JJO4Z4DI.js +106 -0
  510. package/dist/terms-ETG7YCJC.js +102 -0
  511. package/dist/testimonials-5455FK4Y.js +32 -0
  512. package/dist/themes-7XHHY4XY.js +95 -0
  513. package/dist/themes-7XHHY4XY.js.map +1 -0
  514. package/dist/top-companies-5SZO3NVE.js +246 -0
  515. package/dist/top-companies-5SZO3NVE.js.map +1 -0
  516. package/dist/transcript-JHGN7KW7.js +165 -0
  517. package/dist/translate-YWSIWVRT.js +603 -0
  518. package/dist/triggers-RNGTCIVF.js +144 -0
  519. package/dist/tweets-3H7CW3ZI.js +123 -0
  520. package/dist/unfollow-PEEPIMZY.js +46 -0
  521. package/dist/unlink-PACTZ674.js +70 -0
  522. package/dist/unstage-GUPBLCPZ.js +96 -0
  523. package/dist/unstage-NAJI4DDV.js +88 -0
  524. package/dist/update-5EXPDJ2T.js +66 -0
  525. package/dist/update-GK3QSHWA.js +101 -0
  526. package/dist/update-KPWP4DPC.js +192 -0
  527. package/dist/update-TNOOVX3P.js +81 -0
  528. package/dist/update-XZGK5UFK.js +155 -0
  529. package/dist/upload-JYZFK5ZO.js +137 -0
  530. package/dist/upload-W2UTHRP2.js +155 -0
  531. package/dist/upscale-MTWSJ3EJ.js +109 -0
  532. package/dist/url-options-RTTLWCU5.js +131 -0
  533. package/dist/url-options-RTTLWCU5.js.map +1 -0
  534. package/dist/url-params-OHLTOL33.js +101 -0
  535. package/dist/use-K5EP7JJM.js +111 -0
  536. package/dist/validate-H6J4M43Q.js +135 -0
  537. package/dist/variant-BZCX46QL.js +338 -0
  538. package/dist/videos-5N3JQIAY.js +41 -0
  539. package/dist/videos-QIDOIJ24.js +146 -0
  540. package/dist/view-CD5UWMR4.js +133 -0
  541. package/dist/viewer-check-H4OGC5FF.js +83 -0
  542. package/dist/viewer-check-H4OGC5FF.js.map +1 -0
  543. package/dist/web-CV3VMSDO.js +173 -0
  544. package/dist/winners-CSNTBOVM.js +113 -0
  545. package/dist/winning-ads-FVTCV3GX.js +86 -0
  546. package/dist/write-commands-AASXCKRN.js +721 -0
  547. package/dist/write-commands-OV7RE6O2.js +206 -0
  548. package/dist/write-commands-W4Z6MANM.js +1524 -0
  549. package/dist/write-commands-XFYXMTXO.js +1169 -0
  550. package/dist/x-WFYI4F6X.js +47 -0
  551. package/package.json +1 -1
  552. package/dist/account-52WDLW4Z.js +0 -82
  553. package/dist/account-NSBALYYS.js +0 -139
  554. package/dist/account-SGHH4SIM.js +0 -82
  555. package/dist/account-assets-EPEYTJFD.js +0 -290
  556. package/dist/account-level-VD4NLB2D.js +0 -611
  557. package/dist/account-reads-CQIJCPCH.js +0 -219
  558. package/dist/account-reads-CQIJCPCH.js.map +0 -1
  559. package/dist/account-users-KP6A43DU.js +0 -64
  560. package/dist/account-writes-3BJSUM2V.js +0 -68
  561. package/dist/accounts-A47QUTTB.js +0 -76
  562. package/dist/accounts-E5TF2AFI.js +0 -115
  563. package/dist/accounts-FV5FPX3X.js +0 -80
  564. package/dist/accounts-LQFSNBIC.js +0 -713
  565. package/dist/accounts-LQFSNBIC.js.map +0 -1
  566. package/dist/accounts-ZV4IXOF5.js +0 -119
  567. package/dist/actions-RZ62K3WT.js +0 -55
  568. package/dist/active-entities-XRSJNBOV.js +0 -103
  569. package/dist/activecampaign-E6PM6YNO.js +0 -938
  570. package/dist/activities-ZDWREYR7.js +0 -75
  571. package/dist/ad-group-writes-KU4QMQZP.js +0 -172
  572. package/dist/ad-groups-NMW2G32A.js +0 -70
  573. package/dist/ad-writes-7NOFTOM4.js +0 -176
  574. package/dist/add-25YZMFSH.js +0 -85
  575. package/dist/add-7MAL7JRX.js +0 -81
  576. package/dist/add-D44VCDRU.js +0 -148
  577. package/dist/add-HMAQJG4J.js +0 -305
  578. package/dist/add-JO4ZPS23.js +0 -97
  579. package/dist/add-MLTE6PPC.js +0 -107
  580. package/dist/add-accounts-EKMSHAA4.js +0 -91
  581. package/dist/ads-4YZYNU66.js +0 -128
  582. package/dist/ads-DGL5SGP3.js +0 -120
  583. package/dist/ads-P4Z3MLKS.js +0 -79
  584. package/dist/ads-T6J6QQKX.js +0 -48
  585. package/dist/adsets-PSVCPCE3.js +0 -182
  586. package/dist/advertisers-7NAPI5ZU.js +0 -125
  587. package/dist/advertisers-FP7MTMUI.js +0 -123
  588. package/dist/analytics-AYYFKMF6.js +0 -2437
  589. package/dist/analytics-AYYFKMF6.js.map +0 -1
  590. package/dist/analytics-D2IA2P5E.js +0 -447
  591. package/dist/animate-VX7E7KJE.js +0 -480
  592. package/dist/approved-E4EZA5RT.js +0 -73
  593. package/dist/asset-writes-NDSHY5OT.js +0 -50
  594. package/dist/assign-EE4EDOPX.js +0 -80
  595. package/dist/audience-size-SRNH57FA.js +0 -76
  596. package/dist/audience-writes-4KQXVGHO.js +0 -327
  597. package/dist/audiences-P3SPTAJT.js +0 -280
  598. package/dist/audiences-T5LMTT3B.js +0 -85
  599. package/dist/audiences-UHLVATR6.js +0 -106
  600. package/dist/audit-46DO2HV3.js +0 -88
  601. package/dist/audit-R5JG3ABY.js +0 -154
  602. package/dist/autocomplete-AIKXLHME.js +0 -114
  603. package/dist/avatars-3CAQ5OBN.js +0 -38
  604. package/dist/bid-pricing-PDZIJGOX.js +0 -103
  605. package/dist/brand-2SN7MM72.js +0 -22
  606. package/dist/brief-S4R3NZMS.js +0 -543
  607. package/dist/businesses-TRFYMZ4I.js +0 -54
  608. package/dist/campaign-groups-OHL6POG2.js +0 -99
  609. package/dist/campaign-writes-P5XPFTRK.js +0 -176
  610. package/dist/campaign-writes-RKCE4MSZ.js +0 -168
  611. package/dist/campaigns-2MTON2IE.js +0 -130
  612. package/dist/campaigns-HGMQSYUM.js +0 -113
  613. package/dist/campaigns-SWZJVE2T.js +0 -78
  614. package/dist/campaigns-UWUEENB6.js +0 -111
  615. package/dist/canvas-RAPLCU3Y.js +0 -46
  616. package/dist/capabilities-FF6NNJ5L.js +0 -147
  617. package/dist/cards-CXKIVM4D.js +0 -85
  618. package/dist/catalog-TOHUVBEU.js +0 -66
  619. package/dist/catalogs-4DNLG4AM.js +0 -782
  620. package/dist/catalogs-V7PTEJBO.js +0 -130
  621. package/dist/changes-5OW3UYMF.js +0 -167
  622. package/dist/changes-5OW3UYMF.js.map +0 -1
  623. package/dist/chatgpt-JBMYNVJB.js +0 -47
  624. package/dist/chats-XVAFLM47.js +0 -589
  625. package/dist/check-FFRPBGUH.js +0 -107
  626. package/dist/chunk-22RM3UOO.js +0 -63
  627. package/dist/chunk-22RM3UOO.js.map +0 -1
  628. package/dist/chunk-2CC4CPDT.js +0 -225
  629. package/dist/chunk-2EEDKWYY.js +0 -479
  630. package/dist/chunk-2JAO7PMI.js +0 -2235
  631. package/dist/chunk-2JAO7PMI.js.map +0 -1
  632. package/dist/chunk-2K5GSSPU.js +0 -1920
  633. package/dist/chunk-2KQQHBBQ.js +0 -547
  634. package/dist/chunk-2N7TB346.js +0 -5368
  635. package/dist/chunk-33ZP44QR.js +0 -103
  636. package/dist/chunk-34RDCDCF.js +0 -207
  637. package/dist/chunk-34RDCDCF.js.map +0 -1
  638. package/dist/chunk-3GXHML4V.js +0 -106
  639. package/dist/chunk-3QPG2D27.js +0 -125
  640. package/dist/chunk-3WN5GWX4.js +0 -94
  641. package/dist/chunk-47VWQ7FQ.js +0 -843
  642. package/dist/chunk-4AO3LSYM.js +0 -73
  643. package/dist/chunk-4HFM5RCP.js +0 -217
  644. package/dist/chunk-4HFM5RCP.js.map +0 -1
  645. package/dist/chunk-4SAO6RT2.js +0 -962
  646. package/dist/chunk-5QNW5PCM.js +0 -106
  647. package/dist/chunk-5XB352F5.js +0 -197
  648. package/dist/chunk-6EOWBGGW.js +0 -191
  649. package/dist/chunk-6MJKVNLL.js +0 -25
  650. package/dist/chunk-7GFGFBWZ.js +0 -344
  651. package/dist/chunk-7MIOMG22.js +0 -685
  652. package/dist/chunk-7NBQQOCU.js +0 -97
  653. package/dist/chunk-7YEP3NFN.js +0 -163
  654. package/dist/chunk-AP7X3ONA.js +0 -297
  655. package/dist/chunk-AQRBEPZL.js +0 -138
  656. package/dist/chunk-ARCQQUEL.js +0 -220
  657. package/dist/chunk-AXJ2DMM4.js +0 -19
  658. package/dist/chunk-AZIXX73C.js +0 -64
  659. package/dist/chunk-B64KJW5C.js +0 -476
  660. package/dist/chunk-B64KJW5C.js.map +0 -1
  661. package/dist/chunk-BFAPSFS7.js +0 -1518
  662. package/dist/chunk-BIBXZJZI.js +0 -97
  663. package/dist/chunk-C4BPAMAJ.js +0 -8954
  664. package/dist/chunk-C57CXCTI.js +0 -455
  665. package/dist/chunk-C7KV5O5J.js +0 -274
  666. package/dist/chunk-CBVUO7SK.js +0 -1744
  667. package/dist/chunk-CF5I4Q5M.js +0 -69
  668. package/dist/chunk-CKN4HQZM.js +0 -89
  669. package/dist/chunk-CTAXKC5J.js +0 -66
  670. package/dist/chunk-DGHSXHZR.js +0 -136
  671. package/dist/chunk-DHF4FXWS.js +0 -58
  672. package/dist/chunk-DPOUS5DN.js +0 -287
  673. package/dist/chunk-DXQ5DUFU.js +0 -392
  674. package/dist/chunk-EJ6EED6I.js +0 -69
  675. package/dist/chunk-EV2HVFTJ.js +0 -224
  676. package/dist/chunk-FLTAPEVY.js +0 -288
  677. package/dist/chunk-GQUBM3Z6.js +0 -249
  678. package/dist/chunk-H25GY4U4.js +0 -139
  679. package/dist/chunk-H6ASYVQX.js +0 -544
  680. package/dist/chunk-H7LKYGLJ.js +0 -24026
  681. package/dist/chunk-HM4NWA72.js +0 -5471
  682. package/dist/chunk-IB6VWG32.js +0 -755
  683. package/dist/chunk-IB6VWG32.js.map +0 -1
  684. package/dist/chunk-ICASR3ES.js +0 -7901
  685. package/dist/chunk-ICASR3ES.js.map +0 -1
  686. package/dist/chunk-IJ6WA2JW.js +0 -148
  687. package/dist/chunk-ITIUWJGQ.js +0 -131
  688. package/dist/chunk-IYDESWW4.js +0 -74
  689. package/dist/chunk-J4BJLHLQ.js +0 -3510
  690. package/dist/chunk-JAME5NBT.js +0 -42
  691. package/dist/chunk-JCFICJWI.js +0 -831
  692. package/dist/chunk-JCFICJWI.js.map +0 -1
  693. package/dist/chunk-JGK2FDZW.js +0 -1919
  694. package/dist/chunk-JJBO7QIR.js +0 -604
  695. package/dist/chunk-K7APGDEO.js +0 -430
  696. package/dist/chunk-K7APGDEO.js.map +0 -1
  697. package/dist/chunk-KGJ6EIX3.js +0 -76
  698. package/dist/chunk-KJXKLEJ7.js +0 -91
  699. package/dist/chunk-L2LGHWJN.js +0 -156
  700. package/dist/chunk-L4QEMWNJ.js +0 -111
  701. package/dist/chunk-L7I47VGM.js +0 -46
  702. package/dist/chunk-LAOCXV6Z.js +0 -98
  703. package/dist/chunk-LJEJCIHR.js +0 -246
  704. package/dist/chunk-M2RXXLK3.js +0 -51
  705. package/dist/chunk-M4KFO256.js +0 -188
  706. package/dist/chunk-MIHY534L.js +0 -39
  707. package/dist/chunk-MKG57P2E.js +0 -783
  708. package/dist/chunk-MKG57P2E.js.map +0 -1
  709. package/dist/chunk-MKOI6QYM.js +0 -225
  710. package/dist/chunk-MPTNN35I.js +0 -325
  711. package/dist/chunk-MPTNN35I.js.map +0 -1
  712. package/dist/chunk-MTW2NDDD.js +0 -98
  713. package/dist/chunk-MTW2NDDD.js.map +0 -1
  714. package/dist/chunk-MYGPWKEI.js +0 -170
  715. package/dist/chunk-N7EHQNNG.js +0 -312
  716. package/dist/chunk-NAZ7A7LN.js +0 -930
  717. package/dist/chunk-O5VSYBUA.js +0 -343
  718. package/dist/chunk-OHVXHNUR.js +0 -57
  719. package/dist/chunk-OJRS3TGS.js +0 -399
  720. package/dist/chunk-OJZKY5UM.js +0 -46
  721. package/dist/chunk-PRZBEZBA.js +0 -203
  722. package/dist/chunk-PTE6BNCH.js +0 -334
  723. package/dist/chunk-PTE6BNCH.js.map +0 -1
  724. package/dist/chunk-Q3G4ZI2U.js +0 -84
  725. package/dist/chunk-Q5DLTIYL.js +0 -142
  726. package/dist/chunk-Q5XUFN2W.js +0 -35
  727. package/dist/chunk-Q736UFSD.js +0 -75
  728. package/dist/chunk-QVHZTCB5.js +0 -1254
  729. package/dist/chunk-QVHZTCB5.js.map +0 -1
  730. package/dist/chunk-QVO5VPNA.js +0 -169
  731. package/dist/chunk-R7XDGNZD.js +0 -297
  732. package/dist/chunk-R7XDGNZD.js.map +0 -1
  733. package/dist/chunk-RBR5PHYJ.js +0 -91
  734. package/dist/chunk-RHBCKOF2.js +0 -61
  735. package/dist/chunk-RRKUXGAU.js +0 -26
  736. package/dist/chunk-S3XCG55E.js +0 -454
  737. package/dist/chunk-S5S54J2K.js +0 -56
  738. package/dist/chunk-SIRRBWQ2.js +0 -215
  739. package/dist/chunk-SPNF2V46.js +0 -468
  740. package/dist/chunk-SPNF2V46.js.map +0 -1
  741. package/dist/chunk-SPNY52S5.js +0 -494
  742. package/dist/chunk-TEQEZAJI.js +0 -1320
  743. package/dist/chunk-TLQY4QBW.js +0 -84
  744. package/dist/chunk-U6AWJIFP.js +0 -225
  745. package/dist/chunk-UK4XSLV2.js +0 -296
  746. package/dist/chunk-URGXEDFV.js +0 -76
  747. package/dist/chunk-V7EN5LFS.js +0 -115
  748. package/dist/chunk-VAV5CCDD.js +0 -167
  749. package/dist/chunk-VSALEVXN.js +0 -23
  750. package/dist/chunk-W3TZPHZO.js +0 -285
  751. package/dist/chunk-WTPID22G.js +0 -152
  752. package/dist/chunk-XA76OGSL.js +0 -718
  753. package/dist/chunk-XA76OGSL.js.map +0 -1
  754. package/dist/chunk-YAMKCMAS.js +0 -219
  755. package/dist/chunk-YRWCXYWW.js +0 -178
  756. package/dist/chunk-Z3RGBLVJ.js +0 -64
  757. package/dist/chunk-ZCGM7ZWM.js +0 -45
  758. package/dist/cite-WCAOCOO5.js +0 -191
  759. package/dist/claim-YABJMHON.js +0 -200
  760. package/dist/client-VCKP6WBR.js +0 -19
  761. package/dist/code-VXOTFGD2.js +0 -76
  762. package/dist/companies-K2IVXNC5.js +0 -198
  763. package/dist/companies-K2IVXNC5.js.map +0 -1
  764. package/dist/company-6JAVJPSU.js +0 -308
  765. package/dist/complete-4R6O7TAF.js +0 -84
  766. package/dist/config-UR45YCIN.js +0 -88
  767. package/dist/connect-FWT2IC5N.js +0 -45
  768. package/dist/content-EQQIKG5H.js +0 -85
  769. package/dist/conversation-DSRM4JIU.js +0 -96
  770. package/dist/conversion-report-2FREFML5.js +0 -127
  771. package/dist/conversion-upload-command-JAGV6GMG.js +0 -439
  772. package/dist/conversion-writes-JZIJSQ7T.js +0 -122
  773. package/dist/conversions-4D5TEPO4.js +0 -140
  774. package/dist/conversions-Q5EBTEXA.js +0 -78
  775. package/dist/copy-writes-JVUX3YDL.js +0 -170
  776. package/dist/countries-GRCU4IGM.js +0 -82
  777. package/dist/create-3OYFSUR5.js +0 -62
  778. package/dist/create-FMGLMQZC.js +0 -218
  779. package/dist/create-SDFDKJGJ.js +0 -239
  780. package/dist/create-VW23RNWT.js +0 -135
  781. package/dist/creatives-4EPM3RHG.js +0 -118
  782. package/dist/creatives-E33LXJG7.js +0 -229
  783. package/dist/creatives-SLKVFR4Y.js +0 -58
  784. package/dist/credentials-WGGZFBDJ.js +0 -290
  785. package/dist/critique-EOYMGUIK.js +0 -232
  786. package/dist/critique-US4B3ZY5.js +0 -1451
  787. package/dist/crm-T4XPJZTR.js +0 -229
  788. package/dist/crm-T4XPJZTR.js.map +0 -1
  789. package/dist/crm-UBQ735O6.js +0 -323
  790. package/dist/crop-NE7YX4SS.js +0 -113
  791. package/dist/currency-EFDQYW5B.js +0 -88
  792. package/dist/currency-EFDQYW5B.js.map +0 -1
  793. package/dist/custom-conversions-GQTU5E6X.js +0 -128
  794. package/dist/customers-HHQUU3MA.js +0 -65
  795. package/dist/decide-6Q5X3V3F.js +0 -199
  796. package/dist/delete-EKKOEB3N.js +0 -69
  797. package/dist/delete-JPIV5E2Y.js +0 -67
  798. package/dist/delete-QHDDR66K.js +0 -85
  799. package/dist/delete-SP66F7ZV.js +0 -71
  800. package/dist/delete-UC5XQZWC.js +0 -69
  801. package/dist/delete-X5TD7P3U.js +0 -57
  802. package/dist/demographics-6GQYZIVR.js +0 -141
  803. package/dist/describe-DJPIUEFE.js +0 -97
  804. package/dist/describe-MAGTSOW4.js +0 -97
  805. package/dist/dimensions-IC2H7V3H.js +0 -101
  806. package/dist/discard-5UNX5TEZ.js +0 -69
  807. package/dist/discover-BPUUWRBP.js +0 -172
  808. package/dist/discover-BPUUWRBP.js.map +0 -1
  809. package/dist/discover-PSL2NBJL.js +0 -93
  810. package/dist/domain-7BOPJLTP.js +0 -101
  811. package/dist/download-B4IV43AJ.js +0 -172
  812. package/dist/download-EHDJXBAC.js +0 -337
  813. package/dist/draft-27NMTARB.js +0 -134
  814. package/dist/draft-FVB6SEP3.js +0 -332
  815. package/dist/draft-GCOCG4PO.js +0 -315
  816. package/dist/draft-GSDDK6FO.js +0 -614
  817. package/dist/draft-GSDDK6FO.js.map +0 -1
  818. package/dist/draft-JESKGZ6O.js +0 -138
  819. package/dist/draft-MWYKIZC4.js +0 -260
  820. package/dist/draft-QT6MVG47.js +0 -220
  821. package/dist/draft-VRE52N6B.js +0 -374
  822. package/dist/env-NZXNMWSD.js +0 -53
  823. package/dist/experiment-XAYSEYTU.js +0 -1397
  824. package/dist/experiments-3JSDRY5W.js +0 -236
  825. package/dist/export-W54UZ62P.js +0 -168
  826. package/dist/extract-BVSL6H3S.js +0 -143
  827. package/dist/facets-NN33WFSR.js +0 -117
  828. package/dist/favorites-Y6CT6NSQ.js +0 -178
  829. package/dist/feed-35BRQPTH.js +0 -177
  830. package/dist/feedback-BYXZEEW3.js +0 -114
  831. package/dist/feedback-P7ZGD7JV.js +0 -115
  832. package/dist/feedback-record-ZFEXC54P.js +0 -269
  833. package/dist/fetch-3JPN4QAJ.js +0 -204
  834. package/dist/fetch-I6P72CDL.js +0 -139
  835. package/dist/find-SVGRA7IA.js +0 -144
  836. package/dist/fit-2R5NGB7E.js +0 -65
  837. package/dist/flows-XM7GBTIU.js +0 -340
  838. package/dist/follow-24QSDNAG.js +0 -94
  839. package/dist/follow-competitors-AG4E4XFA.js +0 -112
  840. package/dist/following-YGM6TBK3.js +0 -113
  841. package/dist/fonts-IO4X2AKN.js +0 -39
  842. package/dist/forecast-HMNQZFVL.js +0 -169
  843. package/dist/forecast-HMNQZFVL.js.map +0 -1
  844. package/dist/forecast-MOFJ3BKH.js +0 -121
  845. package/dist/funding-WZNGXRLJ.js +0 -85
  846. package/dist/funnel-FR7JQUZW.js +0 -397
  847. package/dist/ga4-W3U5YTRT.js +0 -55
  848. package/dist/generate-KAWRRYTT.js +0 -263
  849. package/dist/get-3MTAVNTP.js +0 -56
  850. package/dist/get-5SPNAIUQ.js +0 -62
  851. package/dist/get-BMJIYS25.js +0 -62
  852. package/dist/get-GEUSRD5Y.js +0 -59
  853. package/dist/get-JIZPYK3Z.js +0 -74
  854. package/dist/get-MXXANBI3.js +0 -82
  855. package/dist/get-TS2ZJDCQ.js +0 -38
  856. package/dist/get-YWDZYEAC.js +0 -92
  857. package/dist/gif-NP6EDGEE.js +0 -111
  858. package/dist/google-3CAUWNWE.js +0 -3300
  859. package/dist/google-3CAUWNWE.js.map +0 -1
  860. package/dist/google-MHFI5OGW.js +0 -163
  861. package/dist/google-ads-ULZRFDZU.js +0 -198
  862. package/dist/group-3DT4UYSR.js +0 -43
  863. package/dist/group-OEKKCFXT.js +0 -43
  864. package/dist/gsc-4FEFPFPB.js +0 -30
  865. package/dist/history-F3U3WNEJ.js +0 -102
  866. package/dist/history-SGFTHPT2.js +0 -153
  867. package/dist/history-YQSYXBJH.js +0 -69
  868. package/dist/hubspot-FASIF5U5.js +0 -814
  869. package/dist/hubspot-FASIF5U5.js.map +0 -1
  870. package/dist/icon-43UJTGGE.js +0 -138
  871. package/dist/ideas-TKCOPOMS.js +0 -45
  872. package/dist/images-K4EPTLTF.js +0 -92
  873. package/dist/improve-IMXQN6OD.js +0 -86
  874. package/dist/ingest-MCCJBWYC.js +0 -131
  875. package/dist/ingest-T3AV5OR4.js +0 -28
  876. package/dist/insights-BR3456EI.js +0 -658
  877. package/dist/insights-UVCFOB3N.js +0 -132
  878. package/dist/inspect-3OHTBHNO.js +0 -192
  879. package/dist/inspiration-XZI5KCQW.js +0 -53
  880. package/dist/instant-experiences-2LKF7XVK.js +0 -264
  881. package/dist/intent-F5NTOSQC.js +0 -95
  882. package/dist/job-GOX3KIKG.js +0 -202
  883. package/dist/job-create-F2PQSN3C.js +0 -109
  884. package/dist/job-status-3FMA5D7T.js +0 -74
  885. package/dist/keep-23ZYMWPG.js +0 -78
  886. package/dist/keyword-gap-EB5QATYN.js +0 -130
  887. package/dist/keyword-metrics-E4PPLUYX.js +0 -200
  888. package/dist/keywords-for-site-HD2FOBMH.js +0 -131
  889. package/dist/knowledge-7M7DSRF3.js +0 -195
  890. package/dist/landing-NC2A277E.js +0 -28
  891. package/dist/landings-VNQ4VA2U.js +0 -151
  892. package/dist/languages-2X22HXM3.js +0 -55
  893. package/dist/languages-4S26FJDP.js +0 -40
  894. package/dist/launches-L4EUROCJ.js +0 -19
  895. package/dist/layerize-6QHQMA7Q.js +0 -190
  896. package/dist/lead-routes-5TPFJEVH.js +0 -733
  897. package/dist/leads-4TLOH47R.js +0 -541
  898. package/dist/leads-LL2S6ENL.js +0 -115
  899. package/dist/learn-2CP2SROJ.js +0 -207
  900. package/dist/library-MNJC24E4.js +0 -212
  901. package/dist/lighthouse-DJMAXFTD.js +0 -75
  902. package/dist/line-item-writes-56A4ITU6.js +0 -211
  903. package/dist/line-items-AIIDDTTH.js +0 -107
  904. package/dist/link-BIXBY5KG.js +0 -67
  905. package/dist/linkedin-TXX22PPH.js +0 -1344
  906. package/dist/linkedin-TXX22PPH.js.map +0 -1
  907. package/dist/linkedin-person-5KEGEX6G.js +0 -139
  908. package/dist/list-2277GCPH.js +0 -51
  909. package/dist/list-537S75BZ.js +0 -76
  910. package/dist/list-C5AT3LF4.js +0 -306
  911. package/dist/list-Q52FPW3H.js +0 -50
  912. package/dist/list-UQNU4QUE.js +0 -154
  913. package/dist/list-V4PSDBLX.js +0 -93
  914. package/dist/list-WIXQXNKB.js +0 -65
  915. package/dist/list-XK33NCSC.js +0 -57
  916. package/dist/list-YBHQ3HIB.js +0 -67
  917. package/dist/locations-UWBQLHXW.js +0 -40
  918. package/dist/locations-WXGOI3VV.js +0 -69
  919. package/dist/log-FZJTWN3S.js +0 -95
  920. package/dist/logo-4LSFZ3ZO.js +0 -19
  921. package/dist/lookup-WIM5WR25.js +0 -23
  922. package/dist/make-CGWFHT3N.js +0 -1367
  923. package/dist/map-WDOBMEAW.js +0 -445
  924. package/dist/mcp-JJZ5YGSS.js +0 -729
  925. package/dist/media-34I7UB7Z.js +0 -89
  926. package/dist/media-KKI3KWLR.js +0 -18
  927. package/dist/media-sources-AJ5USQXV.js +0 -35
  928. package/dist/members-NSR7S62Y.js +0 -47
  929. package/dist/meme-6NFYFQ7T.js +0 -108
  930. package/dist/meta-2UK7KIE4.js +0 -124
  931. package/dist/meta-2UK7KIE4.js.map +0 -1
  932. package/dist/metrics-4AFEEDVP.js +0 -152
  933. package/dist/metrics-4AFEEDVP.js.map +0 -1
  934. package/dist/normalize-G75RDSE4.js +0 -806
  935. package/dist/normalize-RQEHHRES.js +0 -144
  936. package/dist/options-4BW4P6JD.js +0 -125
  937. package/dist/organization-TKGXZYH6.js +0 -949
  938. package/dist/output-ELEO2Z6R.js +0 -24
  939. package/dist/page-4X6IBUWG.js +0 -105
  940. package/dist/page-photos-KNBLMFLN.js +0 -118
  941. package/dist/pages-7HW5YOZV.js +0 -67
  942. package/dist/performance-27VHB3UA.js +0 -27
  943. package/dist/performance-XGHZDQGU.js +0 -5565
  944. package/dist/pinterest-KA6VFDM4.js +0 -105
  945. package/dist/pixels-D5HF24FI.js +0 -109
  946. package/dist/pixels-HEI5WVAO.js +0 -62
  947. package/dist/plan-XCA6R3HZ.js +0 -208
  948. package/dist/posts-ALGM6ONV.js +0 -36
  949. package/dist/preview-2YRMPWI2.js +0 -101
  950. package/dist/preview-55TRUF4Q.js +0 -245
  951. package/dist/profile-NHUPUCBR.js +0 -159
  952. package/dist/promoted-tweet-writes-PT6BW64X.js +0 -183
  953. package/dist/promoted-tweets-SBZXEU7S.js +0 -119
  954. package/dist/properties-2ZXA5BPJ.js +0 -101
  955. package/dist/publish-Z7ZK3XB7.js +0 -350
  956. package/dist/query-63CTX2PH.js +0 -231
  957. package/dist/query-DMWY3TDD.js +0 -236
  958. package/dist/query-K7MYBRTS.js +0 -62
  959. package/dist/questionnaire-WHE42RD4.js +0 -94
  960. package/dist/read-NESEKULG.js +0 -141
  961. package/dist/reddit-L4RQNJBL.js +0 -29
  962. package/dist/refresh-EWALAFUQ.js +0 -97
  963. package/dist/refresh-ILDEPU5A.js +0 -42
  964. package/dist/release-C2H2KBNY.js +0 -63
  965. package/dist/relevant-pages-XYQKVX3U.js +0 -99
  966. package/dist/remove-JOXARFD3.js +0 -53
  967. package/dist/remove-NHE4UT7G.js +0 -49
  968. package/dist/reopen-WRW4JVO2.js +0 -66
  969. package/dist/rerun-3I7MF3FV.js +0 -97
  970. package/dist/research-422BF4O4.js +0 -265
  971. package/dist/research-MCTV6ZJZ.js +0 -75
  972. package/dist/research-MCTV6ZJZ.js.map +0 -1
  973. package/dist/reset-7ANRT4I3.js +0 -57
  974. package/dist/reset-MZDRR5VP.js +0 -57
  975. package/dist/resolve-KKRG65WF.js +0 -124
  976. package/dist/retry-PDKRPWIZ.js +0 -63
  977. package/dist/retry-YZCBWAHT.js +0 -65
  978. package/dist/retry-failed-R5HPQ3KQ.js +0 -45
  979. package/dist/revenue-F7E5ZRLB.js +0 -91
  980. package/dist/rule-writes-QB4IWFCJ.js +0 -530
  981. package/dist/rules-FYVD2QBB.js +0 -217
  982. package/dist/rules-GRLAFAZU.js +0 -99
  983. package/dist/rules-add-3C7LW4HD.js +0 -465
  984. package/dist/run-HJQ4KAWX.js +0 -72
  985. package/dist/run-ZV73UQ3E.js +0 -69
  986. package/dist/scaffold-ad-LBLEARDJ.js +0 -1513
  987. package/dist/scaffold-static-ad-GBRLIWKP.js +0 -1012
  988. package/dist/scaffold-video-EINW32ZH.js +0 -885
  989. package/dist/schedule-D7EDEM45.js +0 -67
  990. package/dist/schedule-X5ZKZXPC.js +0 -64
  991. package/dist/scheduled-agents-APZA42K2.js +0 -55
  992. package/dist/scheduled-agents-APZA42K2.js.map +0 -1
  993. package/dist/schema-6JF4ZNGY.js +0 -135
  994. package/dist/schema-Z43AJOJ4.js +0 -152
  995. package/dist/scrape-VL2RWSTW.js +0 -2209
  996. package/dist/screenshot-Y6EEXS3Q.js +0 -103
  997. package/dist/search-4VAIJA2O.js +0 -177
  998. package/dist/search-CXC7N5XJ.js +0 -51
  999. package/dist/search-JEXYEAPQ.js +0 -228
  1000. package/dist/search-L3GTZYRW.js +0 -92
  1001. package/dist/search-TXBYKNQC.js +0 -91
  1002. package/dist/search-XHSTUBDY.js +0 -26
  1003. package/dist/search-copy-FIPG7OCC.js +0 -168
  1004. package/dist/seeds-ADJKURNG.js +0 -101
  1005. package/dist/select-YZO5DDY6.js +0 -110
  1006. package/dist/sends-RS4LWRAC.js +0 -349
  1007. package/dist/sequences-2RPKDKGQ.js +0 -146
  1008. package/dist/set-prompt-GU3HPWWZ.js +0 -199
  1009. package/dist/setup-links-ORBZ5T4H.js +0 -144
  1010. package/dist/shared-4GGUIOF2.js +0 -32
  1011. package/dist/shopify-SN3TBTL5.js +0 -4009
  1012. package/dist/site-3ZORNMAE.js +0 -180
  1013. package/dist/sitemaps-Z6IELTQV.js +0 -77
  1014. package/dist/sites-KLAKI2EY.js +0 -97
  1015. package/dist/skills-OJP36EVR.js +0 -47
  1016. package/dist/sources-WGEC6FGZ.js +0 -457
  1017. package/dist/sources-WT6M3QIX.js +0 -30
  1018. package/dist/stale-BOT3VZCB.js +0 -90
  1019. package/dist/stats-MIMFX4R7.js +0 -34
  1020. package/dist/status-WED3AXTZ.js +0 -65
  1021. package/dist/sticker-IREEEN7I.js +0 -103
  1022. package/dist/stock-33GHQWNQ.js +0 -212
  1023. package/dist/studies-YGYAH3JI.js +0 -250
  1024. package/dist/studio-4EV5S7PR.js +0 -49
  1025. package/dist/study-writes-UPGJB36A.js +0 -471
  1026. package/dist/suggest-5RTISDLI.js +0 -66
  1027. package/dist/sync-2GLGCSRQ.js +0 -57
  1028. package/dist/sync-OHIXI4I6.js +0 -55
  1029. package/dist/sync-VCAFAYW4.js +0 -279
  1030. package/dist/sync-definition-SNUWHPGO.js +0 -70
  1031. package/dist/tag-DSCUKNC3.js +0 -57
  1032. package/dist/tag-manager-IINALUEJ.js +0 -43
  1033. package/dist/tags-AQNOA7X5.js +0 -23
  1034. package/dist/tags-CVPMOYKI.js +0 -23
  1035. package/dist/tags-IQY7GYMU.js +0 -227
  1036. package/dist/tags-MYUCES3W.js +0 -26
  1037. package/dist/tags-SCMHCPF4.js +0 -23
  1038. package/dist/targeting-BM72UTI6.js +0 -762
  1039. package/dist/targeting-constants-54S3FXIF.js +0 -118
  1040. package/dist/targeting-criteria-RVJHW22S.js +0 -113
  1041. package/dist/targets-G6SN6VTL.js +0 -106
  1042. package/dist/terms-OFHNLW6U.js +0 -102
  1043. package/dist/testimonials-JALUWWLB.js +0 -32
  1044. package/dist/themes-FW3VWZJE.js +0 -95
  1045. package/dist/themes-FW3VWZJE.js.map +0 -1
  1046. package/dist/top-companies-WR6TXTNM.js +0 -111
  1047. package/dist/top-companies-WR6TXTNM.js.map +0 -1
  1048. package/dist/transcript-JMRRJEET.js +0 -165
  1049. package/dist/translate-YNOS5HTV.js +0 -603
  1050. package/dist/triggers-UUSPHGXX.js +0 -144
  1051. package/dist/tweets-TRTXC6O4.js +0 -123
  1052. package/dist/unfollow-DATOGPLZ.js +0 -46
  1053. package/dist/unlink-U5VBTO7P.js +0 -70
  1054. package/dist/unstage-KSYT7FOP.js +0 -88
  1055. package/dist/unstage-LLQCMZ5H.js +0 -96
  1056. package/dist/update-GFKDIJRE.js +0 -66
  1057. package/dist/update-QF6BLM5F.js +0 -101
  1058. package/dist/update-SD5YQIJC.js +0 -81
  1059. package/dist/update-VBQKI72I.js +0 -192
  1060. package/dist/update-ZIKHDZRT.js +0 -155
  1061. package/dist/upload-7PPMVWVA.js +0 -155
  1062. package/dist/upload-UYE73VLK.js +0 -137
  1063. package/dist/upscale-WVJZG76V.js +0 -109
  1064. package/dist/url-options-AHJPR5VY.js +0 -131
  1065. package/dist/url-options-AHJPR5VY.js.map +0 -1
  1066. package/dist/url-params-P6MV2HKB.js +0 -101
  1067. package/dist/use-6FADOAFZ.js +0 -111
  1068. package/dist/validate-TTVHWWX5.js +0 -135
  1069. package/dist/variant-RNM36P4J.js +0 -338
  1070. package/dist/videos-GHFCOTT7.js +0 -146
  1071. package/dist/videos-XGQL37V4.js +0 -41
  1072. package/dist/view-YR6MDLWL.js +0 -133
  1073. package/dist/viewer-check-UPLR7C2K.js +0 -83
  1074. package/dist/web-PIMTCU4V.js +0 -173
  1075. package/dist/winners-4T5RFQXU.js +0 -113
  1076. package/dist/winning-ads-P4MXWYK6.js +0 -86
  1077. package/dist/write-commands-24EOSYWL.js +0 -1524
  1078. package/dist/write-commands-6D55SB56.js +0 -206
  1079. package/dist/write-commands-AIWLEGO2.js +0 -1169
  1080. package/dist/write-commands-UO3OQIHH.js +0 -721
  1081. package/dist/x-HBA6AJJA.js +0 -47
  1082. /package/dist/{account-52WDLW4Z.js.map → account-WFAMHUCQ.js.map} +0 -0
  1083. /package/dist/{account-SGHH4SIM.js.map → account-Y7ZFEM7U.js.map} +0 -0
  1084. /package/dist/{account-NSBALYYS.js.map → account-YYB2KWLU.js.map} +0 -0
  1085. /package/dist/{account-assets-EPEYTJFD.js.map → account-assets-BFMQWV33.js.map} +0 -0
  1086. /package/dist/{account-level-VD4NLB2D.js.map → account-level-47IS2CZB.js.map} +0 -0
  1087. /package/dist/{account-users-KP6A43DU.js.map → account-users-QAFQDSZQ.js.map} +0 -0
  1088. /package/dist/{account-writes-3BJSUM2V.js.map → account-writes-EEKHPF5I.js.map} +0 -0
  1089. /package/dist/{accounts-ZV4IXOF5.js.map → accounts-H3KO5AEN.js.map} +0 -0
  1090. /package/dist/{accounts-A47QUTTB.js.map → accounts-LTGUK6OV.js.map} +0 -0
  1091. /package/dist/{accounts-E5TF2AFI.js.map → accounts-LTUEBWJL.js.map} +0 -0
  1092. /package/dist/{accounts-FV5FPX3X.js.map → accounts-TFUGF7UK.js.map} +0 -0
  1093. /package/dist/{actions-RZ62K3WT.js.map → actions-FTIRKAAN.js.map} +0 -0
  1094. /package/dist/{active-entities-XRSJNBOV.js.map → active-entities-QWJXR4W6.js.map} +0 -0
  1095. /package/dist/{activecampaign-E6PM6YNO.js.map → activecampaign-BCOEXYZ7.js.map} +0 -0
  1096. /package/dist/{activities-ZDWREYR7.js.map → activities-ZRP22SC2.js.map} +0 -0
  1097. /package/dist/{ad-group-writes-KU4QMQZP.js.map → ad-group-writes-UDQ4563V.js.map} +0 -0
  1098. /package/dist/{ad-groups-NMW2G32A.js.map → ad-groups-RXT2XKSE.js.map} +0 -0
  1099. /package/dist/{ad-writes-7NOFTOM4.js.map → ad-writes-SHLTL2FY.js.map} +0 -0
  1100. /package/dist/{add-25YZMFSH.js.map → add-F65GOWKP.js.map} +0 -0
  1101. /package/dist/{add-D44VCDRU.js.map → add-IALA4VRA.js.map} +0 -0
  1102. /package/dist/{add-7MAL7JRX.js.map → add-ITX64WEC.js.map} +0 -0
  1103. /package/dist/{add-MLTE6PPC.js.map → add-L6MKL2G2.js.map} +0 -0
  1104. /package/dist/{add-HMAQJG4J.js.map → add-QGJPTGU7.js.map} +0 -0
  1105. /package/dist/{add-JO4ZPS23.js.map → add-WAVXB2QA.js.map} +0 -0
  1106. /package/dist/{add-accounts-EKMSHAA4.js.map → add-accounts-YTLQCSXB.js.map} +0 -0
  1107. /package/dist/{ads-DGL5SGP3.js.map → ads-A34INCCM.js.map} +0 -0
  1108. /package/dist/{ads-4YZYNU66.js.map → ads-AKF5AT6O.js.map} +0 -0
  1109. /package/dist/{ads-T6J6QQKX.js.map → ads-AYXMFUIF.js.map} +0 -0
  1110. /package/dist/{ads-P4Z3MLKS.js.map → ads-CUMOMBI3.js.map} +0 -0
  1111. /package/dist/{adsets-PSVCPCE3.js.map → adsets-HNFBX4LB.js.map} +0 -0
  1112. /package/dist/{advertisers-FP7MTMUI.js.map → advertisers-RVTUZ53M.js.map} +0 -0
  1113. /package/dist/{advertisers-7NAPI5ZU.js.map → advertisers-YTG6VA6R.js.map} +0 -0
  1114. /package/dist/{analytics-D2IA2P5E.js.map → analytics-4YHYFRHH.js.map} +0 -0
  1115. /package/dist/{animate-VX7E7KJE.js.map → animate-MBNFCDUZ.js.map} +0 -0
  1116. /package/dist/{approved-E4EZA5RT.js.map → approved-3W56YTOZ.js.map} +0 -0
  1117. /package/dist/{asset-writes-NDSHY5OT.js.map → asset-writes-2CYNDRPU.js.map} +0 -0
  1118. /package/dist/{assign-EE4EDOPX.js.map → assign-JC5BK5XE.js.map} +0 -0
  1119. /package/dist/{audience-size-SRNH57FA.js.map → audience-size-ZVRH3BEL.js.map} +0 -0
  1120. /package/dist/{audience-writes-4KQXVGHO.js.map → audience-writes-JNVGUHGN.js.map} +0 -0
  1121. /package/dist/{audiences-P3SPTAJT.js.map → audiences-KBW2UAOP.js.map} +0 -0
  1122. /package/dist/{audiences-T5LMTT3B.js.map → audiences-OOXSXKIT.js.map} +0 -0
  1123. /package/dist/{audiences-UHLVATR6.js.map → audiences-S6TXNKQ2.js.map} +0 -0
  1124. /package/dist/{audit-R5JG3ABY.js.map → audit-JXRVO37K.js.map} +0 -0
  1125. /package/dist/{audit-46DO2HV3.js.map → audit-O2RRST7B.js.map} +0 -0
  1126. /package/dist/{autocomplete-AIKXLHME.js.map → autocomplete-CBBFRPJZ.js.map} +0 -0
  1127. /package/dist/{avatars-3CAQ5OBN.js.map → avatars-GB7B2MGR.js.map} +0 -0
  1128. /package/dist/{bid-pricing-PDZIJGOX.js.map → bid-pricing-G4IXJRVK.js.map} +0 -0
  1129. /package/dist/{brand-2SN7MM72.js.map → brand-VKQ72SRQ.js.map} +0 -0
  1130. /package/dist/{brief-S4R3NZMS.js.map → brief-X3FRAPUH.js.map} +0 -0
  1131. /package/dist/{businesses-TRFYMZ4I.js.map → businesses-HOAQVYRH.js.map} +0 -0
  1132. /package/dist/{campaign-groups-OHL6POG2.js.map → campaign-groups-NA73I7JR.js.map} +0 -0
  1133. /package/dist/{campaign-writes-P5XPFTRK.js.map → campaign-writes-JYMQF6CK.js.map} +0 -0
  1134. /package/dist/{campaign-writes-RKCE4MSZ.js.map → campaign-writes-ZOLIX3EB.js.map} +0 -0
  1135. /package/dist/{campaigns-HGMQSYUM.js.map → campaigns-DZAZIUES.js.map} +0 -0
  1136. /package/dist/{campaigns-2MTON2IE.js.map → campaigns-EEH3VDK6.js.map} +0 -0
  1137. /package/dist/{campaigns-UWUEENB6.js.map → campaigns-PB3QNTI4.js.map} +0 -0
  1138. /package/dist/{campaigns-SWZJVE2T.js.map → campaigns-TMHFCPAZ.js.map} +0 -0
  1139. /package/dist/{canvas-RAPLCU3Y.js.map → canvas-4EGLYNYM.js.map} +0 -0
  1140. /package/dist/{capabilities-FF6NNJ5L.js.map → capabilities-JZFPET7C.js.map} +0 -0
  1141. /package/dist/{cards-CXKIVM4D.js.map → cards-OOKI2WSA.js.map} +0 -0
  1142. /package/dist/{catalog-TOHUVBEU.js.map → catalog-2P422WOQ.js.map} +0 -0
  1143. /package/dist/{catalogs-4DNLG4AM.js.map → catalogs-WBXWK7NT.js.map} +0 -0
  1144. /package/dist/{catalogs-V7PTEJBO.js.map → catalogs-XFYYY3CS.js.map} +0 -0
  1145. /package/dist/{chatgpt-JBMYNVJB.js.map → chatgpt-KNLATOZ6.js.map} +0 -0
  1146. /package/dist/{chats-XVAFLM47.js.map → chats-CE7RKD6W.js.map} +0 -0
  1147. /package/dist/{check-FFRPBGUH.js.map → check-SIMBAMXJ.js.map} +0 -0
  1148. /package/dist/{chunk-QVO5VPNA.js.map → chunk-2NXACVED.js.map} +0 -0
  1149. /package/dist/{chunk-N7EHQNNG.js.map → chunk-2S3VIE7D.js.map} +0 -0
  1150. /package/dist/{chunk-IYDESWW4.js.map → chunk-2ZKQNMK2.js.map} +0 -0
  1151. /package/dist/{chunk-47VWQ7FQ.js.map → chunk-37QNC344.js.map} +0 -0
  1152. /package/dist/{chunk-CTAXKC5J.js.map → chunk-45ETXHUI.js.map} +0 -0
  1153. /package/dist/{chunk-H7LKYGLJ.js.map → chunk-4DHHMWP4.js.map} +0 -0
  1154. /package/dist/{chunk-C7KV5O5J.js.map → chunk-4GRVNPHA.js.map} +0 -0
  1155. /package/dist/{chunk-4SAO6RT2.js.map → chunk-5G7UBTBE.js.map} +0 -0
  1156. /package/dist/{chunk-2EEDKWYY.js.map → chunk-5HQ64Z7X.js.map} +0 -0
  1157. /package/dist/{chunk-FLTAPEVY.js.map → chunk-5IHZTLDH.js.map} +0 -0
  1158. /package/dist/{chunk-7YEP3NFN.js.map → chunk-5QCAWD6V.js.map} +0 -0
  1159. /package/dist/{chunk-3WN5GWX4.js.map → chunk-62UGVR7Q.js.map} +0 -0
  1160. /package/dist/{chunk-W3TZPHZO.js.map → chunk-6LLA6IF6.js.map} +0 -0
  1161. /package/dist/{chunk-ITIUWJGQ.js.map → chunk-6PJGHPXG.js.map} +0 -0
  1162. /package/dist/{chunk-TLQY4QBW.js.map → chunk-6ZW5AR5N.js.map} +0 -0
  1163. /package/dist/{chunk-J4BJLHLQ.js.map → chunk-7LFOSBF4.js.map} +0 -0
  1164. /package/dist/{chunk-EJ6EED6I.js.map → chunk-7XFQPPYB.js.map} +0 -0
  1165. /package/dist/{chunk-M2RXXLK3.js.map → chunk-AWYXZU45.js.map} +0 -0
  1166. /package/dist/{chunk-BFAPSFS7.js.map → chunk-AYOTYURE.js.map} +0 -0
  1167. /package/dist/{chunk-HM4NWA72.js.map → chunk-BYV4VS5E.js.map} +0 -0
  1168. /package/dist/{chunk-DGHSXHZR.js.map → chunk-CGLNCFAG.js.map} +0 -0
  1169. /package/dist/{chunk-KGJ6EIX3.js.map → chunk-CP5IVVYM.js.map} +0 -0
  1170. /package/dist/{chunk-RBR5PHYJ.js.map → chunk-CXVHS2SV.js.map} +0 -0
  1171. /package/dist/{chunk-LAOCXV6Z.js.map → chunk-DCBCEYSH.js.map} +0 -0
  1172. /package/dist/{chunk-MKOI6QYM.js.map → chunk-DFE77XT5.js.map} +0 -0
  1173. /package/dist/{chunk-6MJKVNLL.js.map → chunk-DN6EMVA4.js.map} +0 -0
  1174. /package/dist/{chunk-Q736UFSD.js.map → chunk-E2G2USTA.js.map} +0 -0
  1175. /package/dist/{chunk-CBVUO7SK.js.map → chunk-EFZVDV7F.js.map} +0 -0
  1176. /package/dist/{chunk-TEQEZAJI.js.map → chunk-FTP6NDOU.js.map} +0 -0
  1177. /package/dist/{chunk-C57CXCTI.js.map → chunk-FUFLMP4B.js.map} +0 -0
  1178. /package/dist/{chunk-WTPID22G.js.map → chunk-HJS6FPQX.js.map} +0 -0
  1179. /package/dist/{chunk-BIBXZJZI.js.map → chunk-HZ7QUFUW.js.map} +0 -0
  1180. /package/dist/{chunk-AP7X3ONA.js.map → chunk-IDFAFNL6.js.map} +0 -0
  1181. /package/dist/{chunk-RHBCKOF2.js.map → chunk-ILLS2XWG.js.map} +0 -0
  1182. /package/dist/{chunk-RRKUXGAU.js.map → chunk-ITABNSX6.js.map} +0 -0
  1183. /package/dist/{chunk-LJEJCIHR.js.map → chunk-JCFZ7ECN.js.map} +0 -0
  1184. /package/dist/{chunk-U6AWJIFP.js.map → chunk-JTYD7A3C.js.map} +0 -0
  1185. /package/dist/{chunk-DXQ5DUFU.js.map → chunk-K2WKQXGH.js.map} +0 -0
  1186. /package/dist/{chunk-H6ASYVQX.js.map → chunk-KMZ4YWS4.js.map} +0 -0
  1187. /package/dist/{chunk-7GFGFBWZ.js.map → chunk-KSBXVA4K.js.map} +0 -0
  1188. /package/dist/{chunk-L2LGHWJN.js.map → chunk-KSJRHAE4.js.map} +0 -0
  1189. /package/dist/{chunk-SPNY52S5.js.map → chunk-KYLTADVX.js.map} +0 -0
  1190. /package/dist/{chunk-GQUBM3Z6.js.map → chunk-L6UZM3ZN.js.map} +0 -0
  1191. /package/dist/{chunk-2N7TB346.js.map → chunk-LRIP2J5S.js.map} +0 -0
  1192. /package/dist/{chunk-VSALEVXN.js.map → chunk-M27HR7YD.js.map} +0 -0
  1193. /package/dist/{chunk-VAV5CCDD.js.map → chunk-M7BSXJNL.js.map} +0 -0
  1194. /package/dist/{chunk-4AO3LSYM.js.map → chunk-MGUEAG6W.js.map} +0 -0
  1195. /package/dist/{chunk-V7EN5LFS.js.map → chunk-MIBOIXCP.js.map} +0 -0
  1196. /package/dist/{chunk-URGXEDFV.js.map → chunk-MNFJQRUO.js.map} +0 -0
  1197. /package/dist/{chunk-OJZKY5UM.js.map → chunk-MQU4LNYG.js.map} +0 -0
  1198. /package/dist/{chunk-5XB352F5.js.map → chunk-MSOFG7FT.js.map} +0 -0
  1199. /package/dist/{chunk-L7I47VGM.js.map → chunk-MUT2BPDM.js.map} +0 -0
  1200. /package/dist/{chunk-PRZBEZBA.js.map → chunk-MUU27AJF.js.map} +0 -0
  1201. /package/dist/{chunk-C4BPAMAJ.js.map → chunk-MVDMMSXS.js.map} +0 -0
  1202. /package/dist/{chunk-AQRBEPZL.js.map → chunk-MWPM6HNV.js.map} +0 -0
  1203. /package/dist/{chunk-DHF4FXWS.js.map → chunk-NE3AZ25Y.js.map} +0 -0
  1204. /package/dist/{chunk-JGK2FDZW.js.map → chunk-NEALLMDP.js.map} +0 -0
  1205. /package/dist/{chunk-OJRS3TGS.js.map → chunk-NZOMEXDN.js.map} +0 -0
  1206. /package/dist/{chunk-NAZ7A7LN.js.map → chunk-O5K5EKJC.js.map} +0 -0
  1207. /package/dist/{chunk-SIRRBWQ2.js.map → chunk-OFSUVUXT.js.map} +0 -0
  1208. /package/dist/{chunk-M4KFO256.js.map → chunk-P6H6JZXO.js.map} +0 -0
  1209. /package/dist/{chunk-2K5GSSPU.js.map → chunk-P7OX5Y75.js.map} +0 -0
  1210. /package/dist/{chunk-EV2HVFTJ.js.map → chunk-QY6GNZFH.js.map} +0 -0
  1211. /package/dist/{chunk-3GXHML4V.js.map → chunk-RM5JT6XF.js.map} +0 -0
  1212. /package/dist/{chunk-3QPG2D27.js.map → chunk-ROWUTQFG.js.map} +0 -0
  1213. /package/dist/{chunk-ZCGM7ZWM.js.map → chunk-RSABCQLI.js.map} +0 -0
  1214. /package/dist/{chunk-KJXKLEJ7.js.map → chunk-SGA5V2BM.js.map} +0 -0
  1215. /package/dist/{chunk-CF5I4Q5M.js.map → chunk-SO7NANAH.js.map} +0 -0
  1216. /package/dist/{chunk-33ZP44QR.js.map → chunk-SQZKWZ6F.js.map} +0 -0
  1217. /package/dist/{chunk-JAME5NBT.js.map → chunk-SULQZX5W.js.map} +0 -0
  1218. /package/dist/{chunk-7MIOMG22.js.map → chunk-T3YHV2UM.js.map} +0 -0
  1219. /package/dist/{chunk-Q3G4ZI2U.js.map → chunk-T4HIFVNK.js.map} +0 -0
  1220. /package/dist/{chunk-O5VSYBUA.js.map → chunk-TJTCHTR4.js.map} +0 -0
  1221. /package/dist/{chunk-YAMKCMAS.js.map → chunk-TUS2VOMZ.js.map} +0 -0
  1222. /package/dist/{chunk-UK4XSLV2.js.map → chunk-U3LO5TDH.js.map} +0 -0
  1223. /package/dist/{chunk-L4QEMWNJ.js.map → chunk-UDNN4POE.js.map} +0 -0
  1224. /package/dist/{chunk-H25GY4U4.js.map → chunk-UYVMINV2.js.map} +0 -0
  1225. /package/dist/{chunk-MYGPWKEI.js.map → chunk-VC2XB5JT.js.map} +0 -0
  1226. /package/dist/{chunk-S5S54J2K.js.map → chunk-VGJFNHSA.js.map} +0 -0
  1227. /package/dist/{chunk-JJBO7QIR.js.map → chunk-VQMEXYP3.js.map} +0 -0
  1228. /package/dist/{chunk-5QNW5PCM.js.map → chunk-VQOBDHZP.js.map} +0 -0
  1229. /package/dist/{chunk-Q5XUFN2W.js.map → chunk-VRQ5HEVU.js.map} +0 -0
  1230. /package/dist/{chunk-ARCQQUEL.js.map → chunk-VUG7DFVI.js.map} +0 -0
  1231. /package/dist/{chunk-7NBQQOCU.js.map → chunk-VVITBZKP.js.map} +0 -0
  1232. /package/dist/{chunk-Q5DLTIYL.js.map → chunk-WB4FNMSI.js.map} +0 -0
  1233. /package/dist/{chunk-2CC4CPDT.js.map → chunk-WFTTF2MP.js.map} +0 -0
  1234. /package/dist/{chunk-CKN4HQZM.js.map → chunk-WUNWVQAI.js.map} +0 -0
  1235. /package/dist/{chunk-6EOWBGGW.js.map → chunk-XMIV53FM.js.map} +0 -0
  1236. /package/dist/{chunk-DPOUS5DN.js.map → chunk-XNUUEUJB.js.map} +0 -0
  1237. /package/dist/{chunk-AZIXX73C.js.map → chunk-YB2UVOAD.js.map} +0 -0
  1238. /package/dist/{chunk-IJ6WA2JW.js.map → chunk-YP5SD6O2.js.map} +0 -0
  1239. /package/dist/{chunk-S3XCG55E.js.map → chunk-YRW2AAKX.js.map} +0 -0
  1240. /package/dist/{chunk-YRWCXYWW.js.map → chunk-YT6YI47O.js.map} +0 -0
  1241. /package/dist/{chunk-2KQQHBBQ.js.map → chunk-YYFARPMN.js.map} +0 -0
  1242. /package/dist/{chunk-OHVXHNUR.js.map → chunk-Z2QKUVHP.js.map} +0 -0
  1243. /package/dist/{chunk-AXJ2DMM4.js.map → chunk-Z2WTCFQ6.js.map} +0 -0
  1244. /package/dist/{chunk-Z3RGBLVJ.js.map → chunk-Z3KRNKEA.js.map} +0 -0
  1245. /package/dist/{chunk-MIHY534L.js.map → chunk-Z6RTEOEY.js.map} +0 -0
  1246. /package/dist/{cite-WCAOCOO5.js.map → cite-I5UV5SKS.js.map} +0 -0
  1247. /package/dist/{claim-YABJMHON.js.map → claim-QS3M3TOL.js.map} +0 -0
  1248. /package/dist/{client-VCKP6WBR.js.map → client-DKZM6XTS.js.map} +0 -0
  1249. /package/dist/{code-VXOTFGD2.js.map → code-D3J5FQCF.js.map} +0 -0
  1250. /package/dist/{connect-FWT2IC5N.js.map → companies-XCKJCRHM.js.map} +0 -0
  1251. /package/dist/{company-6JAVJPSU.js.map → company-IQ4LMS24.js.map} +0 -0
  1252. /package/dist/{complete-4R6O7TAF.js.map → complete-PPHC25BS.js.map} +0 -0
  1253. /package/dist/{config-UR45YCIN.js.map → config-ACEF37UO.js.map} +0 -0
  1254. /package/dist/{customers-HHQUU3MA.js.map → connect-F6LPMOCU.js.map} +0 -0
  1255. /package/dist/{content-EQQIKG5H.js.map → content-5RTSXURF.js.map} +0 -0
  1256. /package/dist/{conversation-DSRM4JIU.js.map → conversation-GYDBXZN2.js.map} +0 -0
  1257. /package/dist/{conversion-report-2FREFML5.js.map → conversion-report-6SVHPLHT.js.map} +0 -0
  1258. /package/dist/{conversion-upload-command-JAGV6GMG.js.map → conversion-upload-command-J3STKMAL.js.map} +0 -0
  1259. /package/dist/{conversion-writes-JZIJSQ7T.js.map → conversion-writes-PEKNBIDQ.js.map} +0 -0
  1260. /package/dist/{conversions-4D5TEPO4.js.map → conversions-7PSI7L55.js.map} +0 -0
  1261. /package/dist/{conversions-Q5EBTEXA.js.map → conversions-ICSKSSLX.js.map} +0 -0
  1262. /package/dist/{copy-writes-JVUX3YDL.js.map → copy-writes-ER5ZB5C4.js.map} +0 -0
  1263. /package/dist/{countries-GRCU4IGM.js.map → countries-OJZQQYFT.js.map} +0 -0
  1264. /package/dist/{create-VW23RNWT.js.map → create-AJPHIQIT.js.map} +0 -0
  1265. /package/dist/{create-SDFDKJGJ.js.map → create-DM7DUVDQ.js.map} +0 -0
  1266. /package/dist/{create-3OYFSUR5.js.map → create-R6BEEL3J.js.map} +0 -0
  1267. /package/dist/{create-FMGLMQZC.js.map → create-XYJYG7CU.js.map} +0 -0
  1268. /package/dist/{creatives-SLKVFR4Y.js.map → creatives-LD76JBM4.js.map} +0 -0
  1269. /package/dist/{creatives-E33LXJG7.js.map → creatives-R6Q2QUQI.js.map} +0 -0
  1270. /package/dist/{creatives-4EPM3RHG.js.map → creatives-ZGXH7UA7.js.map} +0 -0
  1271. /package/dist/{credentials-WGGZFBDJ.js.map → credentials-P7L6PQKJ.js.map} +0 -0
  1272. /package/dist/{critique-US4B3ZY5.js.map → critique-DIVRMX7I.js.map} +0 -0
  1273. /package/dist/{critique-EOYMGUIK.js.map → critique-KLGX7RI6.js.map} +0 -0
  1274. /package/dist/{crm-UBQ735O6.js.map → crm-Y3F5UUXL.js.map} +0 -0
  1275. /package/dist/{crop-NE7YX4SS.js.map → crop-SRCLDYM5.js.map} +0 -0
  1276. /package/dist/{custom-conversions-GQTU5E6X.js.map → custom-conversions-RTSR3KKJ.js.map} +0 -0
  1277. /package/dist/{env-NZXNMWSD.js.map → customers-7NG2IPJK.js.map} +0 -0
  1278. /package/dist/{decide-6Q5X3V3F.js.map → decide-2WQKE6HC.js.map} +0 -0
  1279. /package/dist/{delete-QHDDR66K.js.map → delete-DWQS7UCJ.js.map} +0 -0
  1280. /package/dist/{delete-X5TD7P3U.js.map → delete-HGIMNZ4V.js.map} +0 -0
  1281. /package/dist/{delete-UC5XQZWC.js.map → delete-KDD6QSJA.js.map} +0 -0
  1282. /package/dist/{delete-EKKOEB3N.js.map → delete-MJSASLP6.js.map} +0 -0
  1283. /package/dist/{delete-SP66F7ZV.js.map → delete-N76JN5MP.js.map} +0 -0
  1284. /package/dist/{delete-JPIV5E2Y.js.map → delete-S7U6A435.js.map} +0 -0
  1285. /package/dist/{demographics-6GQYZIVR.js.map → demographics-PNEXYSZD.js.map} +0 -0
  1286. /package/dist/{describe-MAGTSOW4.js.map → describe-42XBBR6J.js.map} +0 -0
  1287. /package/dist/{describe-DJPIUEFE.js.map → describe-TKOJMWML.js.map} +0 -0
  1288. /package/dist/{dimensions-IC2H7V3H.js.map → dimensions-5OS26IF6.js.map} +0 -0
  1289. /package/dist/{discard-5UNX5TEZ.js.map → discard-MT26YH73.js.map} +0 -0
  1290. /package/dist/{discover-PSL2NBJL.js.map → discover-IDC6PQV2.js.map} +0 -0
  1291. /package/dist/{domain-7BOPJLTP.js.map → domain-H6GRR7WD.js.map} +0 -0
  1292. /package/dist/{download-B4IV43AJ.js.map → download-QCDXPSUM.js.map} +0 -0
  1293. /package/dist/{download-EHDJXBAC.js.map → download-QH4VHDS6.js.map} +0 -0
  1294. /package/dist/{draft-MWYKIZC4.js.map → draft-3MYPEBSF.js.map} +0 -0
  1295. /package/dist/{draft-VRE52N6B.js.map → draft-EUWOFQXE.js.map} +0 -0
  1296. /package/dist/{draft-JESKGZ6O.js.map → draft-FJ55MZB4.js.map} +0 -0
  1297. /package/dist/{draft-QT6MVG47.js.map → draft-FRX24TKC.js.map} +0 -0
  1298. /package/dist/{draft-FVB6SEP3.js.map → draft-RKKOSTJF.js.map} +0 -0
  1299. /package/dist/{draft-27NMTARB.js.map → draft-W7FYHKI2.js.map} +0 -0
  1300. /package/dist/{draft-GCOCG4PO.js.map → draft-ZDS6KFZ3.js.map} +0 -0
  1301. /package/dist/{fit-2R5NGB7E.js.map → env-AMOXYHCA.js.map} +0 -0
  1302. /package/dist/{experiment-XAYSEYTU.js.map → experiment-TBLKWI2J.js.map} +0 -0
  1303. /package/dist/{experiments-3JSDRY5W.js.map → experiments-SJV3ZE46.js.map} +0 -0
  1304. /package/dist/{export-W54UZ62P.js.map → export-AMOLHZB6.js.map} +0 -0
  1305. /package/dist/{extract-BVSL6H3S.js.map → extract-MT3P3SYT.js.map} +0 -0
  1306. /package/dist/{facets-NN33WFSR.js.map → facets-LWJT5J4S.js.map} +0 -0
  1307. /package/dist/{favorites-Y6CT6NSQ.js.map → favorites-Z24QDACW.js.map} +0 -0
  1308. /package/dist/{feed-35BRQPTH.js.map → feed-2XCJ2JIV.js.map} +0 -0
  1309. /package/dist/{feedback-BYXZEEW3.js.map → feedback-AB2QVJU3.js.map} +0 -0
  1310. /package/dist/{feedback-P7ZGD7JV.js.map → feedback-EGVQJTCD.js.map} +0 -0
  1311. /package/dist/{feedback-record-ZFEXC54P.js.map → feedback-record-F32XSTKZ.js.map} +0 -0
  1312. /package/dist/{fetch-3JPN4QAJ.js.map → fetch-M5KGRBEI.js.map} +0 -0
  1313. /package/dist/{fetch-I6P72CDL.js.map → fetch-Z5MNAIQS.js.map} +0 -0
  1314. /package/dist/{find-SVGRA7IA.js.map → find-XMISWVZT.js.map} +0 -0
  1315. /package/dist/{fonts-IO4X2AKN.js.map → fit-YDHY7E7H.js.map} +0 -0
  1316. /package/dist/{flows-XM7GBTIU.js.map → flows-3V47HJQ3.js.map} +0 -0
  1317. /package/dist/{follow-24QSDNAG.js.map → follow-542NYE76.js.map} +0 -0
  1318. /package/dist/{follow-competitors-AG4E4XFA.js.map → follow-competitors-NZDLHP7P.js.map} +0 -0
  1319. /package/dist/{following-YGM6TBK3.js.map → following-JTZZCSQX.js.map} +0 -0
  1320. /package/dist/{ideas-TKCOPOMS.js.map → fonts-3GV2ZO5E.js.map} +0 -0
  1321. /package/dist/{forecast-MOFJ3BKH.js.map → forecast-YKHZXBSB.js.map} +0 -0
  1322. /package/dist/{funding-WZNGXRLJ.js.map → funding-HKPP53U2.js.map} +0 -0
  1323. /package/dist/{funnel-FR7JQUZW.js.map → funnel-B4WROVPH.js.map} +0 -0
  1324. /package/dist/{ga4-W3U5YTRT.js.map → ga4-MUIZN7ID.js.map} +0 -0
  1325. /package/dist/{generate-KAWRRYTT.js.map → generate-GBFLO76C.js.map} +0 -0
  1326. /package/dist/{get-GEUSRD5Y.js.map → get-3QLANJES.js.map} +0 -0
  1327. /package/dist/{get-5SPNAIUQ.js.map → get-D5G2RNTR.js.map} +0 -0
  1328. /package/dist/{get-BMJIYS25.js.map → get-FG3VO3BZ.js.map} +0 -0
  1329. /package/dist/{get-JIZPYK3Z.js.map → get-G4UPOHVY.js.map} +0 -0
  1330. /package/dist/{get-3MTAVNTP.js.map → get-GOXOADPY.js.map} +0 -0
  1331. /package/dist/{get-MXXANBI3.js.map → get-HQUIC2MQ.js.map} +0 -0
  1332. /package/dist/{get-TS2ZJDCQ.js.map → get-JUI3RVMT.js.map} +0 -0
  1333. /package/dist/{get-YWDZYEAC.js.map → get-T7A3CTS2.js.map} +0 -0
  1334. /package/dist/{gif-NP6EDGEE.js.map → gif-4KAQUYPX.js.map} +0 -0
  1335. /package/dist/{google-MHFI5OGW.js.map → google-PKT7ORVP.js.map} +0 -0
  1336. /package/dist/{google-ads-ULZRFDZU.js.map → google-ads-AKIWTLR4.js.map} +0 -0
  1337. /package/dist/{group-3DT4UYSR.js.map → group-4GYPBQMU.js.map} +0 -0
  1338. /package/dist/{group-OEKKCFXT.js.map → group-GH5CSQKA.js.map} +0 -0
  1339. /package/dist/{gsc-4FEFPFPB.js.map → gsc-3EIBYMON.js.map} +0 -0
  1340. /package/dist/{history-F3U3WNEJ.js.map → history-FX223L6D.js.map} +0 -0
  1341. /package/dist/{history-SGFTHPT2.js.map → history-HB45CGYR.js.map} +0 -0
  1342. /package/dist/{history-YQSYXBJH.js.map → history-K4VYVCZC.js.map} +0 -0
  1343. /package/dist/{icon-43UJTGGE.js.map → icon-VYFLZ4FS.js.map} +0 -0
  1344. /package/dist/{ingest-T3AV5OR4.js.map → ideas-6GD47AQW.js.map} +0 -0
  1345. /package/dist/{images-K4EPTLTF.js.map → images-BC7ZWZ4B.js.map} +0 -0
  1346. /package/dist/{improve-IMXQN6OD.js.map → improve-ZBPSMVFI.js.map} +0 -0
  1347. /package/dist/{ingest-MCCJBWYC.js.map → ingest-T3FJWORN.js.map} +0 -0
  1348. /package/dist/{launches-L4EUROCJ.js.map → ingest-XJ5DDUNG.js.map} +0 -0
  1349. /package/dist/{insights-BR3456EI.js.map → insights-2NWY4XJR.js.map} +0 -0
  1350. /package/dist/{insights-UVCFOB3N.js.map → insights-RHOCF7VR.js.map} +0 -0
  1351. /package/dist/{inspect-3OHTBHNO.js.map → inspect-GYEHCDZR.js.map} +0 -0
  1352. /package/dist/{inspiration-XZI5KCQW.js.map → inspiration-6FGGHV73.js.map} +0 -0
  1353. /package/dist/{instant-experiences-2LKF7XVK.js.map → instant-experiences-YZYOLGBA.js.map} +0 -0
  1354. /package/dist/{intent-F5NTOSQC.js.map → intent-TKFH57DZ.js.map} +0 -0
  1355. /package/dist/{job-GOX3KIKG.js.map → job-2XYPZRJ6.js.map} +0 -0
  1356. /package/dist/{job-create-F2PQSN3C.js.map → job-create-BPUOBKXA.js.map} +0 -0
  1357. /package/dist/{job-status-3FMA5D7T.js.map → job-status-HUDHF6BU.js.map} +0 -0
  1358. /package/dist/{keep-23ZYMWPG.js.map → keep-XBYR2NII.js.map} +0 -0
  1359. /package/dist/{keyword-gap-EB5QATYN.js.map → keyword-gap-7I2CIUTK.js.map} +0 -0
  1360. /package/dist/{keyword-metrics-E4PPLUYX.js.map → keyword-metrics-K7L6CVTZ.js.map} +0 -0
  1361. /package/dist/{keywords-for-site-HD2FOBMH.js.map → keywords-for-site-HBQBMVFS.js.map} +0 -0
  1362. /package/dist/{knowledge-7M7DSRF3.js.map → knowledge-ILQIN5FL.js.map} +0 -0
  1363. /package/dist/{landing-NC2A277E.js.map → landing-RYX65ZJJ.js.map} +0 -0
  1364. /package/dist/{landings-VNQ4VA2U.js.map → landings-GRJAJKHY.js.map} +0 -0
  1365. /package/dist/{languages-2X22HXM3.js.map → languages-22VMY7JN.js.map} +0 -0
  1366. /package/dist/{languages-4S26FJDP.js.map → languages-FMHPUVOL.js.map} +0 -0
  1367. /package/dist/{logo-4LSFZ3ZO.js.map → launches-NUMSS7HP.js.map} +0 -0
  1368. /package/dist/{layerize-6QHQMA7Q.js.map → layerize-TFRXRHVL.js.map} +0 -0
  1369. /package/dist/{lead-routes-5TPFJEVH.js.map → lead-routes-D5ITHESC.js.map} +0 -0
  1370. /package/dist/{leads-LL2S6ENL.js.map → leads-OAFYKOCF.js.map} +0 -0
  1371. /package/dist/{leads-4TLOH47R.js.map → leads-VEHYM23G.js.map} +0 -0
  1372. /package/dist/{learn-2CP2SROJ.js.map → learn-SIATYUQL.js.map} +0 -0
  1373. /package/dist/{library-MNJC24E4.js.map → library-JB2UBSJ5.js.map} +0 -0
  1374. /package/dist/{lighthouse-DJMAXFTD.js.map → lighthouse-EQZFYGFL.js.map} +0 -0
  1375. /package/dist/{line-item-writes-56A4ITU6.js.map → line-item-writes-4LAJW33S.js.map} +0 -0
  1376. /package/dist/{line-items-AIIDDTTH.js.map → line-items-4FLTV275.js.map} +0 -0
  1377. /package/dist/{link-BIXBY5KG.js.map → link-4EWQ6R6D.js.map} +0 -0
  1378. /package/dist/{linkedin-person-5KEGEX6G.js.map → linkedin-person-EFBNRT7A.js.map} +0 -0
  1379. /package/dist/{list-2277GCPH.js.map → list-5BWNSHYO.js.map} +0 -0
  1380. /package/dist/{list-WIXQXNKB.js.map → list-A363BF25.js.map} +0 -0
  1381. /package/dist/{list-XK33NCSC.js.map → list-JARIB5LC.js.map} +0 -0
  1382. /package/dist/{list-YBHQ3HIB.js.map → list-K7ROIVKU.js.map} +0 -0
  1383. /package/dist/{list-537S75BZ.js.map → list-RO4YLUFK.js.map} +0 -0
  1384. /package/dist/{list-UQNU4QUE.js.map → list-TJJPI57I.js.map} +0 -0
  1385. /package/dist/{list-Q52FPW3H.js.map → list-UD43QCLC.js.map} +0 -0
  1386. /package/dist/{list-C5AT3LF4.js.map → list-VGMXUBFE.js.map} +0 -0
  1387. /package/dist/{list-V4PSDBLX.js.map → list-XPLMANXX.js.map} +0 -0
  1388. /package/dist/{locations-WXGOI3VV.js.map → locations-DD3JRZ4C.js.map} +0 -0
  1389. /package/dist/{locations-UWBQLHXW.js.map → locations-HWMEJ64P.js.map} +0 -0
  1390. /package/dist/{log-FZJTWN3S.js.map → log-M7UCG5LZ.js.map} +0 -0
  1391. /package/dist/{lookup-WIM5WR25.js.map → logo-KDGD6LRA.js.map} +0 -0
  1392. /package/dist/{output-ELEO2Z6R.js.map → lookup-7HIPFF2U.js.map} +0 -0
  1393. /package/dist/{make-CGWFHT3N.js.map → make-US3C4YLT.js.map} +0 -0
  1394. /package/dist/{map-WDOBMEAW.js.map → map-OT5M3BJF.js.map} +0 -0
  1395. /package/dist/{mcp-JJZ5YGSS.js.map → mcp-32LXPARX.js.map} +0 -0
  1396. /package/dist/{media-KKI3KWLR.js.map → media-6VI4PN4N.js.map} +0 -0
  1397. /package/dist/{media-34I7UB7Z.js.map → media-WIFXVGKU.js.map} +0 -0
  1398. /package/dist/{media-sources-AJ5USQXV.js.map → media-sources-Z4JJELU7.js.map} +0 -0
  1399. /package/dist/{members-NSR7S62Y.js.map → members-2BNKMQ2I.js.map} +0 -0
  1400. /package/dist/{meme-6NFYFQ7T.js.map → meme-I43AVLGS.js.map} +0 -0
  1401. /package/dist/{normalize-G75RDSE4.js.map → normalize-5B5WIBV4.js.map} +0 -0
  1402. /package/dist/{normalize-RQEHHRES.js.map → normalize-GV2POGHI.js.map} +0 -0
  1403. /package/dist/{options-4BW4P6JD.js.map → options-HKGF6VEW.js.map} +0 -0
  1404. /package/dist/{organization-TKGXZYH6.js.map → organization-G4VL7IQH.js.map} +0 -0
  1405. /package/dist/{performance-27VHB3UA.js.map → output-W5J5RKRR.js.map} +0 -0
  1406. /package/dist/{page-4X6IBUWG.js.map → page-KUDKDDLJ.js.map} +0 -0
  1407. /package/dist/{page-photos-KNBLMFLN.js.map → page-photos-52S2XRIW.js.map} +0 -0
  1408. /package/dist/{pages-7HW5YOZV.js.map → pages-RMTL3RCK.js.map} +0 -0
  1409. /package/dist/{performance-XGHZDQGU.js.map → performance-67DDDP3X.js.map} +0 -0
  1410. /package/dist/{query-K7MYBRTS.js.map → performance-MF4547I7.js.map} +0 -0
  1411. /package/dist/{pinterest-KA6VFDM4.js.map → pinterest-GMNQ2AVG.js.map} +0 -0
  1412. /package/dist/{pixels-HEI5WVAO.js.map → pixels-3CINROKJ.js.map} +0 -0
  1413. /package/dist/{pixels-D5HF24FI.js.map → pixels-YQJKJWAC.js.map} +0 -0
  1414. /package/dist/{plan-XCA6R3HZ.js.map → plan-33F5F2OR.js.map} +0 -0
  1415. /package/dist/{posts-ALGM6ONV.js.map → posts-MZFKWSZ6.js.map} +0 -0
  1416. /package/dist/{preview-55TRUF4Q.js.map → preview-HWM6KHV5.js.map} +0 -0
  1417. /package/dist/{preview-2YRMPWI2.js.map → preview-JITAEUWU.js.map} +0 -0
  1418. /package/dist/{profile-NHUPUCBR.js.map → profile-OYCGBQWF.js.map} +0 -0
  1419. /package/dist/{promoted-tweet-writes-PT6BW64X.js.map → promoted-tweet-writes-K7YJNRMS.js.map} +0 -0
  1420. /package/dist/{promoted-tweets-SBZXEU7S.js.map → promoted-tweets-JIKZFJXO.js.map} +0 -0
  1421. /package/dist/{properties-2ZXA5BPJ.js.map → properties-PMY3KKUU.js.map} +0 -0
  1422. /package/dist/{publish-Z7ZK3XB7.js.map → publish-4YT3CR4T.js.map} +0 -0
  1423. /package/dist/{query-DMWY3TDD.js.map → query-ALRSR5OF.js.map} +0 -0
  1424. /package/dist/{reddit-L4RQNJBL.js.map → query-NYH5PMQF.js.map} +0 -0
  1425. /package/dist/{query-63CTX2PH.js.map → query-ZGGHOYOH.js.map} +0 -0
  1426. /package/dist/{questionnaire-WHE42RD4.js.map → questionnaire-4AJFPLM2.js.map} +0 -0
  1427. /package/dist/{read-NESEKULG.js.map → read-Z7BBSAEK.js.map} +0 -0
  1428. /package/dist/{run-HJQ4KAWX.js.map → reddit-CTAWHQ6K.js.map} +0 -0
  1429. /package/dist/{refresh-ILDEPU5A.js.map → refresh-VE3UKLXX.js.map} +0 -0
  1430. /package/dist/{refresh-EWALAFUQ.js.map → refresh-YYP23L3T.js.map} +0 -0
  1431. /package/dist/{release-C2H2KBNY.js.map → release-ZPU626XC.js.map} +0 -0
  1432. /package/dist/{relevant-pages-XYQKVX3U.js.map → relevant-pages-QIF35NBQ.js.map} +0 -0
  1433. /package/dist/{remove-JOXARFD3.js.map → remove-7RQJRXOV.js.map} +0 -0
  1434. /package/dist/{remove-NHE4UT7G.js.map → remove-VGEKRK34.js.map} +0 -0
  1435. /package/dist/{reopen-WRW4JVO2.js.map → reopen-HANTJFNU.js.map} +0 -0
  1436. /package/dist/{rerun-3I7MF3FV.js.map → rerun-LSWO6K7O.js.map} +0 -0
  1437. /package/dist/{research-422BF4O4.js.map → research-ZARG4TUX.js.map} +0 -0
  1438. /package/dist/{reset-MZDRR5VP.js.map → reset-LO2WLWSF.js.map} +0 -0
  1439. /package/dist/{reset-7ANRT4I3.js.map → reset-PDQTEM2J.js.map} +0 -0
  1440. /package/dist/{resolve-KKRG65WF.js.map → resolve-RXWBSGHW.js.map} +0 -0
  1441. /package/dist/{retry-YZCBWAHT.js.map → retry-M5RY4EFT.js.map} +0 -0
  1442. /package/dist/{retry-PDKRPWIZ.js.map → retry-WRNZN2GO.js.map} +0 -0
  1443. /package/dist/{retry-failed-R5HPQ3KQ.js.map → retry-failed-GEORPC3E.js.map} +0 -0
  1444. /package/dist/{revenue-F7E5ZRLB.js.map → revenue-IXQTSRYQ.js.map} +0 -0
  1445. /package/dist/{rule-writes-QB4IWFCJ.js.map → rule-writes-DRZUEIV6.js.map} +0 -0
  1446. /package/dist/{rules-FYVD2QBB.js.map → rules-BBALKNBK.js.map} +0 -0
  1447. /package/dist/{rules-GRLAFAZU.js.map → rules-O64G4QVU.js.map} +0 -0
  1448. /package/dist/{rules-add-3C7LW4HD.js.map → rules-add-HW6UNH3U.js.map} +0 -0
  1449. /package/dist/{run-ZV73UQ3E.js.map → run-ENK7RU6R.js.map} +0 -0
  1450. /package/dist/{search-XHSTUBDY.js.map → run-FO6EDDEN.js.map} +0 -0
  1451. /package/dist/{scaffold-ad-LBLEARDJ.js.map → scaffold-ad-FFKVESN3.js.map} +0 -0
  1452. /package/dist/{scaffold-static-ad-GBRLIWKP.js.map → scaffold-static-ad-TWJM3TUK.js.map} +0 -0
  1453. /package/dist/{scaffold-video-EINW32ZH.js.map → scaffold-video-OK4TWNUK.js.map} +0 -0
  1454. /package/dist/{schedule-D7EDEM45.js.map → schedule-L5NVM4DN.js.map} +0 -0
  1455. /package/dist/{schedule-X5ZKZXPC.js.map → schedule-U4JVZER5.js.map} +0 -0
  1456. /package/dist/{schema-Z43AJOJ4.js.map → schema-3IEI64TQ.js.map} +0 -0
  1457. /package/dist/{schema-6JF4ZNGY.js.map → schema-6I2RSDO2.js.map} +0 -0
  1458. /package/dist/{scrape-VL2RWSTW.js.map → scrape-YEZGRX2B.js.map} +0 -0
  1459. /package/dist/{screenshot-Y6EEXS3Q.js.map → screenshot-6EBASY4U.js.map} +0 -0
  1460. /package/dist/{search-JEXYEAPQ.js.map → search-BZLTII6V.js.map} +0 -0
  1461. /package/dist/{search-L3GTZYRW.js.map → search-I7CCYBB5.js.map} +0 -0
  1462. /package/dist/{search-TXBYKNQC.js.map → search-NA7DBOLW.js.map} +0 -0
  1463. /package/dist/{search-4VAIJA2O.js.map → search-QONARWFY.js.map} +0 -0
  1464. /package/dist/{search-CXC7N5XJ.js.map → search-RM4MN7KO.js.map} +0 -0
  1465. /package/dist/{shared-4GGUIOF2.js.map → search-SNEFCCJX.js.map} +0 -0
  1466. /package/dist/{search-copy-FIPG7OCC.js.map → search-copy-S6JVQZLI.js.map} +0 -0
  1467. /package/dist/{seeds-ADJKURNG.js.map → seeds-BIY565P3.js.map} +0 -0
  1468. /package/dist/{select-YZO5DDY6.js.map → select-EBLEMFQI.js.map} +0 -0
  1469. /package/dist/{sends-RS4LWRAC.js.map → sends-7JKFJTRE.js.map} +0 -0
  1470. /package/dist/{sequences-2RPKDKGQ.js.map → sequences-KZSNIELI.js.map} +0 -0
  1471. /package/dist/{set-prompt-GU3HPWWZ.js.map → set-prompt-CDYOXIIY.js.map} +0 -0
  1472. /package/dist/{setup-links-ORBZ5T4H.js.map → setup-links-QQ2AWOZG.js.map} +0 -0
  1473. /package/dist/{sync-definition-SNUWHPGO.js.map → shared-P5UDXZAG.js.map} +0 -0
  1474. /package/dist/{shopify-SN3TBTL5.js.map → shopify-SSDXRXN5.js.map} +0 -0
  1475. /package/dist/{site-3ZORNMAE.js.map → site-PHU5BRRL.js.map} +0 -0
  1476. /package/dist/{sitemaps-Z6IELTQV.js.map → sitemaps-WCARK2BM.js.map} +0 -0
  1477. /package/dist/{sites-KLAKI2EY.js.map → sites-JQZ2ZC6W.js.map} +0 -0
  1478. /package/dist/{skills-OJP36EVR.js.map → skills-V2FRLLOW.js.map} +0 -0
  1479. /package/dist/{sources-WT6M3QIX.js.map → sources-I52AANVB.js.map} +0 -0
  1480. /package/dist/{sources-WGEC6FGZ.js.map → sources-XH6RL3GF.js.map} +0 -0
  1481. /package/dist/{stale-BOT3VZCB.js.map → stale-A6RYRZDV.js.map} +0 -0
  1482. /package/dist/{stats-MIMFX4R7.js.map → stats-W7CCPRTG.js.map} +0 -0
  1483. /package/dist/{status-WED3AXTZ.js.map → status-O4AGHCJY.js.map} +0 -0
  1484. /package/dist/{sticker-IREEEN7I.js.map → sticker-NDSJDIAK.js.map} +0 -0
  1485. /package/dist/{stock-33GHQWNQ.js.map → stock-C2TUFJUH.js.map} +0 -0
  1486. /package/dist/{studies-YGYAH3JI.js.map → studies-4JOP2GQJ.js.map} +0 -0
  1487. /package/dist/{studio-4EV5S7PR.js.map → studio-TG2UAKFI.js.map} +0 -0
  1488. /package/dist/{study-writes-UPGJB36A.js.map → study-writes-PMTRTUXP.js.map} +0 -0
  1489. /package/dist/{suggest-5RTISDLI.js.map → suggest-F5GIJR4K.js.map} +0 -0
  1490. /package/dist/{sync-VCAFAYW4.js.map → sync-IDULIJUZ.js.map} +0 -0
  1491. /package/dist/{sync-2GLGCSRQ.js.map → sync-NNNB2PWZ.js.map} +0 -0
  1492. /package/dist/{sync-OHIXI4I6.js.map → sync-STPHWKTE.js.map} +0 -0
  1493. /package/dist/{viewer-check-UPLR7C2K.js.map → sync-definition-AABUGAYW.js.map} +0 -0
  1494. /package/dist/{tag-DSCUKNC3.js.map → tag-MMY3QT2N.js.map} +0 -0
  1495. /package/dist/{tag-manager-IINALUEJ.js.map → tag-manager-JDGWAHCZ.js.map} +0 -0
  1496. /package/dist/{tags-MYUCES3W.js.map → tags-A2PCL4OL.js.map} +0 -0
  1497. /package/dist/{tags-CVPMOYKI.js.map → tags-KH6N6OKV.js.map} +0 -0
  1498. /package/dist/{tags-SCMHCPF4.js.map → tags-LAMQOQWY.js.map} +0 -0
  1499. /package/dist/{tags-IQY7GYMU.js.map → tags-MIR75PDJ.js.map} +0 -0
  1500. /package/dist/{tags-AQNOA7X5.js.map → tags-PHEHMZC7.js.map} +0 -0
  1501. /package/dist/{targeting-BM72UTI6.js.map → targeting-AVHPKERN.js.map} +0 -0
  1502. /package/dist/{targeting-constants-54S3FXIF.js.map → targeting-constants-T7Y6RVEH.js.map} +0 -0
  1503. /package/dist/{targeting-criteria-RVJHW22S.js.map → targeting-criteria-MRAEWFOW.js.map} +0 -0
  1504. /package/dist/{targets-G6SN6VTL.js.map → targets-JJO4Z4DI.js.map} +0 -0
  1505. /package/dist/{terms-OFHNLW6U.js.map → terms-ETG7YCJC.js.map} +0 -0
  1506. /package/dist/{testimonials-JALUWWLB.js.map → testimonials-5455FK4Y.js.map} +0 -0
  1507. /package/dist/{transcript-JMRRJEET.js.map → transcript-JHGN7KW7.js.map} +0 -0
  1508. /package/dist/{translate-YNOS5HTV.js.map → translate-YWSIWVRT.js.map} +0 -0
  1509. /package/dist/{triggers-UUSPHGXX.js.map → triggers-RNGTCIVF.js.map} +0 -0
  1510. /package/dist/{tweets-TRTXC6O4.js.map → tweets-3H7CW3ZI.js.map} +0 -0
  1511. /package/dist/{unfollow-DATOGPLZ.js.map → unfollow-PEEPIMZY.js.map} +0 -0
  1512. /package/dist/{unlink-U5VBTO7P.js.map → unlink-PACTZ674.js.map} +0 -0
  1513. /package/dist/{unstage-LLQCMZ5H.js.map → unstage-GUPBLCPZ.js.map} +0 -0
  1514. /package/dist/{unstage-KSYT7FOP.js.map → unstage-NAJI4DDV.js.map} +0 -0
  1515. /package/dist/{update-GFKDIJRE.js.map → update-5EXPDJ2T.js.map} +0 -0
  1516. /package/dist/{update-QF6BLM5F.js.map → update-GK3QSHWA.js.map} +0 -0
  1517. /package/dist/{update-VBQKI72I.js.map → update-KPWP4DPC.js.map} +0 -0
  1518. /package/dist/{update-SD5YQIJC.js.map → update-TNOOVX3P.js.map} +0 -0
  1519. /package/dist/{update-ZIKHDZRT.js.map → update-XZGK5UFK.js.map} +0 -0
  1520. /package/dist/{upload-UYE73VLK.js.map → upload-JYZFK5ZO.js.map} +0 -0
  1521. /package/dist/{upload-7PPMVWVA.js.map → upload-W2UTHRP2.js.map} +0 -0
  1522. /package/dist/{upscale-WVJZG76V.js.map → upscale-MTWSJ3EJ.js.map} +0 -0
  1523. /package/dist/{url-params-P6MV2HKB.js.map → url-params-OHLTOL33.js.map} +0 -0
  1524. /package/dist/{use-6FADOAFZ.js.map → use-K5EP7JJM.js.map} +0 -0
  1525. /package/dist/{validate-TTVHWWX5.js.map → validate-H6J4M43Q.js.map} +0 -0
  1526. /package/dist/{variant-RNM36P4J.js.map → variant-BZCX46QL.js.map} +0 -0
  1527. /package/dist/{videos-XGQL37V4.js.map → videos-5N3JQIAY.js.map} +0 -0
  1528. /package/dist/{videos-GHFCOTT7.js.map → videos-QIDOIJ24.js.map} +0 -0
  1529. /package/dist/{view-YR6MDLWL.js.map → view-CD5UWMR4.js.map} +0 -0
  1530. /package/dist/{web-PIMTCU4V.js.map → web-CV3VMSDO.js.map} +0 -0
  1531. /package/dist/{winners-4T5RFQXU.js.map → winners-CSNTBOVM.js.map} +0 -0
  1532. /package/dist/{winning-ads-P4MXWYK6.js.map → winning-ads-FVTCV3GX.js.map} +0 -0
  1533. /package/dist/{write-commands-UO3OQIHH.js.map → write-commands-AASXCKRN.js.map} +0 -0
  1534. /package/dist/{write-commands-6D55SB56.js.map → write-commands-OV7RE6O2.js.map} +0 -0
  1535. /package/dist/{write-commands-24EOSYWL.js.map → write-commands-W4Z6MANM.js.map} +0 -0
  1536. /package/dist/{write-commands-AIWLEGO2.js.map → write-commands-XFYXMTXO.js.map} +0 -0
  1537. /package/dist/{x-HBA6AJJA.js.map → x-WFYI4F6X.js.map} +0 -0
@@ -0,0 +1,2234 @@
1
+ import {
2
+ outputRatioWarningsFor,
3
+ runResult,
4
+ shownBaseline,
5
+ shownVersion
6
+ } from "./chunk-VUG7DFVI.js";
7
+ import {
8
+ nodeParamsPreview
9
+ } from "./chunk-Z3KRNKEA.js";
10
+ import {
11
+ waitForSheet
12
+ } from "./chunk-WN4KX7GE.js";
13
+ import {
14
+ fetchBrandLogo
15
+ } from "./chunk-UYVMINV2.js";
16
+ import {
17
+ advanceDefinitionStatus
18
+ } from "./chunk-3ACMDRSE.js";
19
+ import {
20
+ correctedPicture,
21
+ growFromVersion,
22
+ ingestedNow,
23
+ keepsChosen,
24
+ madeThisRun,
25
+ makesSameVariants,
26
+ pictureRecord,
27
+ plainRunGrowth,
28
+ previousAdImage,
29
+ previousDelivered,
30
+ relaysSizesOnly,
31
+ runBaker,
32
+ seriesLeadsAbove,
33
+ seriesMembers,
34
+ seriesRunHints,
35
+ variantFiles,
36
+ variantImage,
37
+ versionRun,
38
+ writeSeriesMemberCanvas
39
+ } from "./chunk-O5K5EKJC.js";
40
+ import {
41
+ AUTO_FIX_ROUNDS,
42
+ autoFixStep,
43
+ clearLegacyDirtyMarker,
44
+ correctFrom,
45
+ fixMemoryOf,
46
+ formatOfSizeNode,
47
+ frameChanges,
48
+ isStaticAdCanvas,
49
+ lostVital,
50
+ oneSizeFix,
51
+ paidFor,
52
+ peopleReader,
53
+ persistingDefects,
54
+ pictureEdit,
55
+ placedTooFar,
56
+ plainRunEdit,
57
+ prefilterSpend,
58
+ readRenderState,
59
+ recordRenderAttempt,
60
+ recordRendered,
61
+ recordReviewOutcome,
62
+ recordSeriesLeadRun,
63
+ recordSnapshot,
64
+ rendersNewPicture,
65
+ repeatsFailedFix,
66
+ reviewStaticRun,
67
+ runCostHint,
68
+ sizeShapeOf,
69
+ specEditInstruction,
70
+ staticReviewTargets,
71
+ stopsWithoutRepair,
72
+ verdictBrief,
73
+ withDeliveredSizes,
74
+ withExtendedSizes,
75
+ withRelayEdit,
76
+ withRelayNote,
77
+ withSizesFollowingFix
78
+ } from "./chunk-P7OX5Y75.js";
79
+ import {
80
+ buildFailedRunRecord,
81
+ buildInitialRunRecord,
82
+ buildRunRecord,
83
+ creativeSlugFromCanvasPath,
84
+ finalFiles,
85
+ finalOutputLabelsFromCanvas,
86
+ nodeOutputsToRecord,
87
+ withFacts
88
+ } from "./chunk-M7BSXJNL.js";
89
+ import {
90
+ CanvasPrepareError,
91
+ REBUILD_FILE,
92
+ anchorLines,
93
+ castHandles,
94
+ computeSourceSha,
95
+ exitOnPrepareError,
96
+ findBrandRoot,
97
+ fixStaticAd,
98
+ formatOfAdaptId,
99
+ isNativeCanvas,
100
+ listSceneFiles,
101
+ prepareCanvas,
102
+ readIdeaAnchor,
103
+ readStaticBrandKit,
104
+ readStaticPromptJson,
105
+ rederiveFromVariant,
106
+ seriesOf,
107
+ wireNamedPeople,
108
+ wireProofBadges
109
+ } from "./chunk-MVDMMSXS.js";
110
+ import {
111
+ gatewayViewerModel,
112
+ jevReadJudge,
113
+ liveViewerLookups,
114
+ mayBeCorrection,
115
+ readTurnRenders,
116
+ recordTurnRender,
117
+ recordViewerFail,
118
+ roundFitsRun,
119
+ turnRenderRefusal,
120
+ updateTurnRenders,
121
+ viewerCheckBeforeRender,
122
+ viewerCheckSkip,
123
+ viewerChecksSpent
124
+ } from "./chunk-BXR45CRI.js";
125
+ import {
126
+ heldRules
127
+ } from "./chunk-WB4FNMSI.js";
128
+ import {
129
+ readAvatars,
130
+ writeAvatars
131
+ } from "./chunk-DN6EMVA4.js";
132
+ import {
133
+ readCaseFile
134
+ } from "./chunk-KSBXVA4K.js";
135
+ import {
136
+ ruleTells
137
+ } from "./chunk-BNEWJXKU.js";
138
+ import {
139
+ holdUnbilledSpend,
140
+ holdWhenSettled,
141
+ sendBillingSpend,
142
+ takeUnbilledSpend
143
+ } from "./chunk-T4HIFVNK.js";
144
+ import {
145
+ canvasOutputsRoot,
146
+ describeRewrites,
147
+ findWorkspaceRoot,
148
+ localPathParam
149
+ } from "./chunk-CGLNCFAG.js";
150
+ import {
151
+ ValidationError,
152
+ createEngineFromEnv,
153
+ resolveConcurrency,
154
+ ulid
155
+ } from "./chunk-BYV4VS5E.js";
156
+ import {
157
+ BackendClient,
158
+ STATIC_ADAPT_FORMAT_ROLE,
159
+ castsNobody,
160
+ isPlateCanvas,
161
+ nodesWithRole,
162
+ regenerateTargets,
163
+ rolesById
164
+ } from "./chunk-LRIP2J5S.js";
165
+ import {
166
+ bytesOf
167
+ } from "./chunk-AYOTYURE.js";
168
+ import {
169
+ reviewAgainstRules
170
+ } from "./chunk-MQU4LNYG.js";
171
+ import {
172
+ AdSpecSchema,
173
+ adSpecJsonSchema,
174
+ decisionOf,
175
+ isAdSpec,
176
+ isMemeTemplate,
177
+ isVital,
178
+ jevCitationJudge,
179
+ nativeCopy
180
+ } from "./chunk-NEALLMDP.js";
181
+ import {
182
+ RENDER_REVIEW_MODEL,
183
+ RENDER_REVIEW_UNAVAILABLE,
184
+ askAboutImages,
185
+ reviewContextBeside,
186
+ reviewRenderedVideo,
187
+ rulesDigest,
188
+ sceneWindowsBeside,
189
+ videoPathFromOutput
190
+ } from "./chunk-37QNC344.js";
191
+ import {
192
+ VIEWER_CHECK_MODEL
193
+ } from "./chunk-MCJ5I5LR.js";
194
+ import {
195
+ LayerExecutionError,
196
+ RunAbortedError,
197
+ describeFailureReason,
198
+ requireCredentialsFromEnv,
199
+ runFailureCode,
200
+ sha256Hex
201
+ } from "./chunk-EFZVDV7F.js";
202
+ import {
203
+ optionalChatId,
204
+ optionalTurnId
205
+ } from "./chunk-OMLZ35HJ.js";
206
+
207
+ // src/commands/canvas/run.ts
208
+ import { readFile as readFile4 } from "fs/promises";
209
+ import path5 from "path";
210
+ import { defineCommand } from "citty";
211
+
212
+ // src/commands/canvas/run-progress.ts
213
+ function clampNodeError(error) {
214
+ return { ...error, message: error.message.slice(0, 2e3) };
215
+ }
216
+ var RunProgressTracker = class {
217
+ runId;
218
+ meta;
219
+ startedAt;
220
+ nodes = /* @__PURE__ */ new Map();
221
+ finalLabels;
222
+ planned = false;
223
+ constructor(runId, meta, finalLabels) {
224
+ this.runId = runId;
225
+ this.meta = meta;
226
+ this.finalLabels = finalLabels;
227
+ this.startedAt = Date.now();
228
+ }
229
+ apply(event) {
230
+ if (event.kind === "plan") {
231
+ for (const node of event.nodes) {
232
+ this.nodes.set(node.node_id, {
233
+ nodeId: node.node_id,
234
+ nodeType: node.node_type,
235
+ cached: false,
236
+ credits: 0,
237
+ durationMs: 0,
238
+ outputs: [],
239
+ deps: node.deps,
240
+ status: "pending",
241
+ paramsPreview: nodeParamsPreview(node.params, node.deps),
242
+ ...node.role !== void 0 ? { role: node.role } : {}
243
+ });
244
+ }
245
+ this.planned = true;
246
+ return;
247
+ }
248
+ if (event.kind === "node_start") {
249
+ this.patchNode(event.node_id, { status: "running" });
250
+ return;
251
+ }
252
+ if (event.kind === "node_settled") {
253
+ this.patchNode(event.run.node_id, {
254
+ status: "completed",
255
+ cached: event.run.cached,
256
+ credits: event.run.credits,
257
+ durationMs: event.run.duration_ms,
258
+ outputs: nodeOutputsToRecord(
259
+ event.outputs,
260
+ event.run.node_id === this.finalLabels?.nodeId ? this.finalLabels.labels : void 0
261
+ ),
262
+ ...withFacts(event.outputs)
263
+ });
264
+ return;
265
+ }
266
+ this.patchNode(event.node_id, { status: "failed", error: clampNodeError(event.error) });
267
+ }
268
+ /** True once the plan event landed — before that there is nothing worth posting. */
269
+ hasPlan() {
270
+ return this.planned;
271
+ }
272
+ /** Plan facts (deps + params preview) for stamping the terminal record's nodes. */
273
+ planInfo() {
274
+ const info = /* @__PURE__ */ new Map();
275
+ for (const node of this.nodes.values()) {
276
+ info.set(node.nodeId, {
277
+ deps: node.deps ?? [],
278
+ paramsPreview: node.paramsPreview,
279
+ ...node.role !== void 0 ? { role: node.role } : {}
280
+ });
281
+ }
282
+ return info;
283
+ }
284
+ /** The current in-flight state as a postable full record. */
285
+ snapshot() {
286
+ const nodes = [...this.nodes.values()];
287
+ return {
288
+ runId: this.runId,
289
+ ...this.meta,
290
+ status: "running",
291
+ stats: {
292
+ totalNodes: nodes.length,
293
+ cachedNodes: nodes.filter((n) => n.cached).length,
294
+ totalCredits: nodes.reduce((sum, n) => sum + n.credits, 0),
295
+ durationMs: Date.now() - this.startedAt
296
+ },
297
+ nodes
298
+ };
299
+ }
300
+ /**
301
+ * Terminal record for a failed run, preserving what each node got to —
302
+ * completed nodes keep their outputs so the graph shows exactly where the
303
+ * run died instead of an empty husk.
304
+ */
305
+ failedSnapshot(errorMessage) {
306
+ const snapshot = this.snapshot();
307
+ return {
308
+ ...snapshot,
309
+ status: "failed",
310
+ errorMessage: errorMessage.slice(0, 2e3),
311
+ stats: { ...snapshot.stats, durationMs: Date.now() - this.startedAt }
312
+ };
313
+ }
314
+ patchNode(nodeId, patch) {
315
+ const existing = this.nodes.get(nodeId);
316
+ if (!existing) return;
317
+ this.nodes.set(nodeId, { ...existing, ...patch, status: patch.status ?? existing.status });
318
+ }
319
+ };
320
+ var RunRecordPoster = class {
321
+ post;
322
+ latest = null;
323
+ inflight = null;
324
+ warned = false;
325
+ keepaliveTimer = null;
326
+ constructor(post) {
327
+ this.post = post;
328
+ }
329
+ /** Queue a progress snapshot; returns immediately. */
330
+ enqueue(payload) {
331
+ this.latest = payload;
332
+ if (!this.inflight) this.inflight = this.pump();
333
+ }
334
+ /**
335
+ * Re-post the latest snapshot on an interval even with no new node events, so
336
+ * the backend's `canvasRuns.updatedAt` heartbeat stays fresh during a long
337
+ * single-clip poll (a video_generate clip can run minutes with no
338
+ * intervening node events). When this process dies the keepalive stops → the
339
+ * run's `updatedAt` goes stale → the backend reconciliation sweep force-fails
340
+ * it as interrupted and surfaces the clips that finished. `produce` returns
341
+ * null before the plan lands (nothing worth posting yet).
342
+ */
343
+ startKeepalive(produce, intervalMs = 6e4) {
344
+ if (this.keepaliveTimer) return;
345
+ this.keepaliveTimer = setInterval(() => {
346
+ const snapshot = produce();
347
+ if (snapshot) this.enqueue(snapshot);
348
+ }, intervalMs);
349
+ this.keepaliveTimer.unref?.();
350
+ }
351
+ stopKeepalive() {
352
+ if (this.keepaliveTimer) {
353
+ clearInterval(this.keepaliveTimer);
354
+ this.keepaliveTimer = null;
355
+ }
356
+ }
357
+ /**
358
+ * Post the terminal record (awaited, errors surfaced to the caller). Any
359
+ * queued progress snapshot is superseded — the terminal record is the full
360
+ * state — but an in-flight POST is awaited first so it can't land after.
361
+ */
362
+ async flush(terminal) {
363
+ this.stopKeepalive();
364
+ this.latest = null;
365
+ if (this.inflight) await this.inflight;
366
+ await this.post(terminal);
367
+ }
368
+ async pump() {
369
+ while (this.latest) {
370
+ const payload = this.latest;
371
+ this.latest = null;
372
+ try {
373
+ await this.post(payload);
374
+ } catch (e) {
375
+ if (!this.warned) {
376
+ this.warned = true;
377
+ const msg = e instanceof Error ? e.message : String(e);
378
+ process.stderr.write(`[warn] live run progress not streaming (${msg})
379
+ `);
380
+ }
381
+ }
382
+ }
383
+ this.inflight = null;
384
+ }
385
+ };
386
+
387
+ // src/commands/canvas/run-retention.ts
388
+ import { rm } from "fs/promises";
389
+ import path from "path";
390
+ function runDirsToPrune(entries, keep, currentRunId) {
391
+ const runs = entries.filter((e) => /^r_[0-9A-Za-z]+$/.test(e) && e !== currentRunId).sort();
392
+ if (keep <= 0) return runs;
393
+ return runs.slice(0, Math.max(0, runs.length - keep));
394
+ }
395
+ async function pruneOldRuns(outputsDir, keep, currentRunId, log) {
396
+ const { readdir: readdir2 } = await import("fs/promises");
397
+ let entries;
398
+ try {
399
+ entries = await readdir2(outputsDir);
400
+ } catch {
401
+ return;
402
+ }
403
+ const toPrune = runDirsToPrune(entries, keep, currentRunId);
404
+ if (toPrune.length === 0) return;
405
+ for (const dir of toPrune) {
406
+ await rm(path.join(outputsDir, dir), { recursive: true, force: true }).catch(
407
+ (e) => log(`[prune ] could not remove ${dir}: ${e.message}`)
408
+ );
409
+ }
410
+ log(`[prune ] removed ${toPrune.length} old run dir(s), kept the ${keep} newest`);
411
+ }
412
+
413
+ // src/commands/canvas/run-resume.ts
414
+ import { randomUUID } from "crypto";
415
+ import { rmSync } from "fs";
416
+ import { mkdir, readFile, rm as rm2, writeFile } from "fs/promises";
417
+ import path2 from "path";
418
+ function markerKey(canvasPath) {
419
+ const slug = creativeSlugFromCanvasPath(canvasPath);
420
+ const identity = slug ?? path2.relative(process.cwd(), path2.resolve(canvasPath));
421
+ return sha256Hex(Buffer.from(identity)).slice(0, 32);
422
+ }
423
+ function markerFile(outputsDir, canvasPath) {
424
+ return path2.join(outputsDir, ".inflight", `${markerKey(canvasPath)}.json`);
425
+ }
426
+ function classifyRemoteRun(run) {
427
+ if (run.interrupted === true || run.status === "awaiting_approval") return "adopt";
428
+ if (run.status !== "running") return "ignore";
429
+ return run.adoptable === true ? "adopt" : "concurrent";
430
+ }
431
+ var HEARTBEAT_MS = 2e4;
432
+ var MARKER_LIVE_MS = 9e4;
433
+ function isLiveRender(marker, now = Date.now()) {
434
+ if (marker.pid === void 0) return false;
435
+ const beat = marker.heartbeatAt ?? marker.startedAt;
436
+ if (beat === void 0 || now - beat > MARKER_LIVE_MS) return false;
437
+ try {
438
+ process.kill(marker.pid, 0);
439
+ return true;
440
+ } catch (e) {
441
+ return e.code === "EPERM";
442
+ }
443
+ }
444
+ async function resolveRunId(opts) {
445
+ const existing = await readMarker(opts.outputsDir, opts.canvasPath);
446
+ if (existing?.pid !== void 0 && existing.pid !== process.pid && (opts.isRendering ?? ((marker) => isLiveRender(marker)))(existing)) {
447
+ return { runId: existing.runId, resumed: false, rendering: { runId: existing.runId, pid: existing.pid } };
448
+ }
449
+ if (opts.explicitRunId) return { runId: opts.explicitRunId, resumed: false };
450
+ if (!opts.fresh) {
451
+ if (existing) {
452
+ const sameSource = existing.sourceSha !== void 0 && existing.sourceSha === opts.sourceSha;
453
+ return { runId: existing.runId, resumed: true, source: "local", sameSource };
454
+ }
455
+ if (opts.adoptedRunId) return { runId: opts.adoptedRunId, resumed: true, source: "remote", sameSource: true };
456
+ if (opts.remote) {
457
+ try {
458
+ const active = await opts.remote.getActiveRun(opts.remote.creativeSlug, opts.remote.sourceSha);
459
+ if (active) {
460
+ const decision = classifyRemoteRun(active);
461
+ if (decision === "adopt") return { runId: active.runId, resumed: true, source: "remote", sameSource: true };
462
+ if (decision === "concurrent") {
463
+ return { runId: `r_${ulid()}`, resumed: false, concurrentRunId: active.runId };
464
+ }
465
+ }
466
+ } catch (e) {
467
+ const msg = e instanceof Error ? e.message : String(e);
468
+ process.stderr.write(`[warn] resumable-run lookup failed (${msg}) \u2014 starting a fresh run
469
+ `);
470
+ }
471
+ }
472
+ }
473
+ return { runId: `r_${ulid()}`, resumed: false };
474
+ }
475
+ async function readMarker(outputsDir, canvasPath) {
476
+ try {
477
+ const parsed = JSON.parse(await readFile(markerFile(outputsDir, canvasPath), "utf8"));
478
+ if (typeof parsed.runId !== "string" || parsed.runId.length === 0) return null;
479
+ const num = (value) => typeof value === "number" && Number.isFinite(value) ? value : void 0;
480
+ return {
481
+ runId: parsed.runId,
482
+ ...Number.isInteger(parsed.pid) ? { pid: parsed.pid } : {},
483
+ ...typeof parsed.token === "string" ? { token: parsed.token } : {},
484
+ ...num(parsed.startedAt) !== void 0 ? { startedAt: num(parsed.startedAt) } : {},
485
+ ...num(parsed.heartbeatAt) !== void 0 ? { heartbeatAt: num(parsed.heartbeatAt) } : {},
486
+ ...typeof parsed.sourceSha === "string" ? { sourceSha: parsed.sourceSha } : {}
487
+ };
488
+ } catch {
489
+ return null;
490
+ }
491
+ }
492
+ async function markRunInFlight(outputsDir, canvasPath, runId, sourceSha) {
493
+ const file = markerFile(outputsDir, canvasPath);
494
+ const token = randomUUID();
495
+ const startedAt = Date.now();
496
+ const write = (heartbeatAt) => writeFile(
497
+ file,
498
+ JSON.stringify({
499
+ runId,
500
+ pid: process.pid,
501
+ token,
502
+ canvasPath: path2.resolve(canvasPath),
503
+ startedAt,
504
+ heartbeatAt,
505
+ ...sourceSha ? { sourceSha } : {}
506
+ })
507
+ );
508
+ try {
509
+ await mkdir(path2.dirname(file), { recursive: true });
510
+ await write(startedAt);
511
+ } catch {
512
+ }
513
+ const timer = setInterval(() => {
514
+ void readMarker(outputsDir, canvasPath).then((marker) => marker?.token === token ? write(Date.now()) : void 0).catch(() => void 0);
515
+ }, HEARTBEAT_MS);
516
+ timer.unref();
517
+ return { token, stop: () => clearInterval(timer) };
518
+ }
519
+ function busyFile(outputsDir, canvasPath) {
520
+ return path2.join(outputsDir, ".inflight", `${markerKey(canvasPath)}.busy.json`);
521
+ }
522
+ async function markCanvasBusy(outputsDir, canvasPath, runId, pid = process.pid) {
523
+ const file = busyFile(outputsDir, canvasPath);
524
+ const write = () => writeFile(file, JSON.stringify({ runId, pid, heartbeatAt: Date.now() }));
525
+ try {
526
+ await mkdir(path2.dirname(file), { recursive: true });
527
+ await write();
528
+ } catch {
529
+ }
530
+ const timer = setInterval(() => void write().catch(() => void 0), HEARTBEAT_MS);
531
+ timer.unref();
532
+ let released = false;
533
+ const release = () => {
534
+ if (released) return;
535
+ released = true;
536
+ clearInterval(timer);
537
+ try {
538
+ rmSync(file, { force: true });
539
+ } catch {
540
+ }
541
+ };
542
+ return { release };
543
+ }
544
+ async function canvasBusyElsewhere(outputsDir, canvasPath, now = Date.now()) {
545
+ try {
546
+ const held = JSON.parse(await readFile(busyFile(outputsDir, canvasPath), "utf8"));
547
+ if (typeof held.runId !== "string" || held.pid === void 0 || held.pid === process.pid) return null;
548
+ return isLiveRender(held, now) ? { runId: held.runId, pid: held.pid } : null;
549
+ } catch {
550
+ return null;
551
+ }
552
+ }
553
+ async function clearRunMarker(outputsDir, canvasPath, token) {
554
+ try {
555
+ if (token !== void 0) {
556
+ const marker = await readMarker(outputsDir, canvasPath);
557
+ if (marker?.token !== void 0 && marker.token !== token) return;
558
+ }
559
+ await rm2(markerFile(outputsDir, canvasPath), { force: true });
560
+ } catch {
561
+ }
562
+ }
563
+
564
+ // src/commands/canvas/run-snapshot.ts
565
+ import { existsSync } from "fs";
566
+ import { mkdir as mkdir2, readdir, readFile as readFile2, stat, writeFile as writeFile2 } from "fs/promises";
567
+ import path3 from "path";
568
+ var SNAPSHOT_SCHEMA = "baker-canvas-snapshot/1";
569
+ var MAX_SNAPSHOT_FILE_BYTES = 32 * 1024 * 1024;
570
+ var EXT_TO_MIME = {
571
+ json: "application/json",
572
+ html: "text/html",
573
+ css: "text/css",
574
+ js: "text/javascript",
575
+ txt: "text/plain",
576
+ md: "text/markdown",
577
+ png: "image/png",
578
+ jpg: "image/jpeg",
579
+ jpeg: "image/jpeg",
580
+ webp: "image/webp",
581
+ gif: "image/gif",
582
+ avif: "image/avif",
583
+ mp3: "audio/mpeg",
584
+ wav: "audio/wav",
585
+ mp4: "video/mp4",
586
+ webm: "video/webm",
587
+ mov: "video/quicktime",
588
+ ttf: "font/ttf",
589
+ otf: "font/otf",
590
+ woff: "font/woff",
591
+ woff2: "font/woff2"
592
+ };
593
+ function mimeForFile(filePath) {
594
+ const ext = path3.extname(filePath).slice(1).toLowerCase();
595
+ return EXT_TO_MIME[ext] ?? "application/octet-stream";
596
+ }
597
+ function toPosix(p) {
598
+ return p.split(path3.sep).join("/");
599
+ }
600
+ function isInside(dir, target) {
601
+ const rel = path3.relative(dir, target);
602
+ return !rel.startsWith("..") && !path3.isAbsolute(rel);
603
+ }
604
+ function localPathRefsFromCanvas(parsed) {
605
+ const nodes = parsed?.nodes;
606
+ if (!Array.isArray(nodes)) return [];
607
+ const refs = /* @__PURE__ */ new Set();
608
+ for (const node of nodes) {
609
+ const n = node;
610
+ const params = n.params;
611
+ if (!params || typeof params !== "object") continue;
612
+ const key = localPathParam(n);
613
+ const value = key ? params[key] : void 0;
614
+ if (isSnapshotablePath(value)) refs.add(value);
615
+ }
616
+ return [...refs];
617
+ }
618
+ function isSnapshotablePath(value) {
619
+ return typeof value === "string" && value.length > 0 && !value.includes("[TODO");
620
+ }
621
+ var FINGERPRINTED_FILES = ["prompt.json", "_definition.md"];
622
+ async function sourceRefsToSnapshot(canvasDir, parsed) {
623
+ const refs = new Set(localPathRefsFromCanvas(parsed));
624
+ for (const sceneFile of await listSceneFiles(canvasDir)) {
625
+ refs.add(toPosix(path3.relative(canvasDir, sceneFile)));
626
+ }
627
+ refs.add(REBUILD_FILE);
628
+ for (const fingerprinted of FINGERPRINTED_FILES) {
629
+ if (existsSync(path3.join(canvasDir, fingerprinted))) refs.add(fingerprinted);
630
+ }
631
+ return [...refs];
632
+ }
633
+ async function uploadRunSnapshot(client, opts) {
634
+ try {
635
+ const canvasDir = path3.dirname(opts.canvasPath);
636
+ const canvasBytes = Buffer.from(opts.raw);
637
+ const canvasEntry = {
638
+ path: path3.basename(opts.canvasPath),
639
+ bytes: canvasBytes,
640
+ sha256: sha256Hex(canvasBytes),
641
+ mime: "application/json"
642
+ };
643
+ const files = [];
644
+ const skipped = [];
645
+ for (const refPath of await sourceRefsToSnapshot(canvasDir, opts.parsed)) {
646
+ const abs = path3.isAbsolute(refPath) ? refPath : path3.resolve(canvasDir, refPath);
647
+ if (!isInside(canvasDir, abs)) {
648
+ skipped.push({
649
+ path: toPosix(path3.relative(canvasDir, abs)),
650
+ reason: "outside the creative folder \u2014 read from the workspace on rerun"
651
+ });
652
+ continue;
653
+ }
654
+ let st;
655
+ try {
656
+ st = await stat(abs);
657
+ } catch {
658
+ skipped.push({ path: toPosix(path3.relative(canvasDir, abs)), reason: "missing" });
659
+ continue;
660
+ }
661
+ const fileList = st.isDirectory() ? await listFilesRecursive(abs) : [abs];
662
+ for (const file of fileList) {
663
+ const rel = toPosix(path3.relative(canvasDir, file));
664
+ const size = (await stat(file)).size;
665
+ if (size > MAX_SNAPSHOT_FILE_BYTES) {
666
+ skipped.push({ path: rel, reason: `too large (${size} bytes)` });
667
+ continue;
668
+ }
669
+ const bytes = await readFile2(file);
670
+ files.push({ path: rel, bytes, sha256: sha256Hex(bytes), mime: mimeForFile(file) });
671
+ }
672
+ }
673
+ const identity = sha256Hex(
674
+ Buffer.from(
675
+ JSON.stringify({
676
+ creativeSlug: opts.creativeSlug,
677
+ entries: [canvasEntry, ...files].map((entry) => [entry.path, entry.sha256]),
678
+ skipped
679
+ })
680
+ )
681
+ );
682
+ if (opts.previous?.identity === identity) return opts.previous;
683
+ const put = (bytes, mime) => putContentAddressed(client, bytes, mime, opts.signal);
684
+ const canvasUpload = await put(canvasEntry.bytes, canvasEntry.mime);
685
+ const uploaded = [];
686
+ for (const file of files) {
687
+ const upload = await put(file.bytes, file.mime);
688
+ uploaded.push({ path: file.path, sha256: upload.sha256, url: upload.url });
689
+ }
690
+ const manifest = {
691
+ schema: SNAPSHOT_SCHEMA,
692
+ creativeSlug: opts.creativeSlug,
693
+ canvasSha: canvasUpload.sha256,
694
+ canvas: { path: canvasEntry.path, sha256: canvasUpload.sha256, url: canvasUpload.url },
695
+ files: uploaded,
696
+ skipped: skipped.length > 0 ? skipped : void 0
697
+ };
698
+ const manifestUpload = await put(Buffer.from(JSON.stringify(manifest)), "application/json");
699
+ return { identity, url: manifestUpload.url };
700
+ } catch (e) {
701
+ const msg = e instanceof Error ? e.message : String(e);
702
+ process.stderr.write(`[warn] canvas snapshot not uploaded (${msg}) \u2014 this run cannot be re-run from another workspace
703
+ `);
704
+ return null;
705
+ }
706
+ }
707
+ var MAX_GRAPH_BYTES = 4 * 1024 * 1024;
708
+ async function uploadRunGraph(client, graph, signal) {
709
+ try {
710
+ const bytes = Buffer.from(JSON.stringify(graph));
711
+ if (bytes.length > MAX_GRAPH_BYTES) return null;
712
+ return (await putContentAddressed(client, bytes, "application/json", signal)).url;
713
+ } catch (e) {
714
+ const msg = e instanceof Error ? e.message : String(e);
715
+ process.stderr.write(`[warn] run graph not kept (${msg}) \u2014 a correction from another workspace starts from its picture
716
+ `);
717
+ return null;
718
+ }
719
+ }
720
+ async function putContentAddressed(client, bytes, mime, signal) {
721
+ const sha256 = sha256Hex(bytes);
722
+ const { putUrl, publicUrl } = await client.presignAssetUpload(sha256, mime, signal, "blueprint");
723
+ const held = await fetch(publicUrl, { method: "HEAD", signal }).then(
724
+ (res2) => res2.ok,
725
+ () => false
726
+ );
727
+ if (held) return { sha256, url: publicUrl };
728
+ const res = await fetch(putUrl, {
729
+ method: "PUT",
730
+ body: new Uint8Array(bytes),
731
+ headers: { "Content-Type": mime },
732
+ signal
733
+ });
734
+ if (!res.ok) throw new Error(`snapshot PUT failed ${res.status} ${res.statusText}`);
735
+ return { sha256, url: publicUrl };
736
+ }
737
+ async function listFilesRecursive(dir) {
738
+ const entries = await readdir(dir, { recursive: true, withFileTypes: true });
739
+ return entries.filter((d) => d.isFile()).map((d) => path3.join(d.parentPath, d.name));
740
+ }
741
+ var SnapshotConflictError = class extends Error {
742
+ conflicts;
743
+ constructor(conflicts) {
744
+ super(`local files differ from the recorded snapshot: ${conflicts.join(", ")}`);
745
+ this.name = "SnapshotConflictError";
746
+ this.conflicts = conflicts;
747
+ }
748
+ };
749
+ async function restoreRunSnapshot(manifest, targetDir, opts = {}) {
750
+ const entries = [manifest.canvas, ...manifest.files];
751
+ const resolvedTarget = path3.resolve(targetDir);
752
+ const planned = [];
753
+ const conflicts = [];
754
+ const upToDate = [];
755
+ for (const entry of entries) {
756
+ if (path3.isAbsolute(entry.path) || entry.path.split("/").includes("..")) {
757
+ throw new Error(`snapshot entry escapes the creative directory: ${entry.path}`);
758
+ }
759
+ const target = path3.resolve(resolvedTarget, entry.path);
760
+ if (target !== resolvedTarget && !target.startsWith(resolvedTarget + path3.sep)) {
761
+ throw new Error(`snapshot entry escapes the creative directory: ${entry.path}`);
762
+ }
763
+ const existing = await readFile2(target).catch(() => null);
764
+ if (existing) {
765
+ if (sha256Hex(existing) === entry.sha256) {
766
+ upToDate.push(entry.path);
767
+ continue;
768
+ }
769
+ if (!opts.force) {
770
+ conflicts.push(entry.path);
771
+ continue;
772
+ }
773
+ }
774
+ planned.push({ entry, target });
775
+ }
776
+ if (conflicts.length > 0) throw new SnapshotConflictError(conflicts);
777
+ const restored = [];
778
+ for (const { entry, target } of planned) {
779
+ const res = await fetch(entry.url);
780
+ if (!res.ok) throw new Error(`snapshot download failed for ${entry.path}: ${res.status} ${res.statusText}`);
781
+ const bytes = Buffer.from(await res.arrayBuffer());
782
+ if (sha256Hex(bytes) !== entry.sha256) {
783
+ throw new Error(`snapshot download for ${entry.path} does not match its recorded sha256`);
784
+ }
785
+ await mkdir2(path3.dirname(target), { recursive: true });
786
+ await writeFile2(target, bytes);
787
+ restored.push(entry.path);
788
+ }
789
+ return { canvasPath: path3.resolve(resolvedTarget, manifest.canvas.path), restored, upToDate };
790
+ }
791
+
792
+ // src/commands/avatars/namedPerson.ts
793
+ var RESEARCH_TIMEOUT_MS = 18e4;
794
+ async function avatarOfNamedPerson(who) {
795
+ const research = await writeAvatars(
796
+ "/api/avatars/research",
797
+ { who, create: true },
798
+ { timeoutMs: RESEARCH_TIMEOUT_MS }
799
+ );
800
+ const handle = research.avatar?.handle;
801
+ if (research.status !== "found" || !handle) return null;
802
+ const read = () => readAvatars("/api/avatars/get", { handle });
803
+ const avatar = await waitForSheet(await read(), read);
804
+ return avatar.sheetUrl ? { handle, sheetUrl: avatar.sheetUrl } : null;
805
+ }
806
+
807
+ // src/commands/canvas/slug-restore.ts
808
+ import { existsSync as existsSync2 } from "fs";
809
+ import path4 from "path";
810
+ var SLUG_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
811
+ var SlugRestoreError = class extends Error {
812
+ code;
813
+ fix;
814
+ constructor(code, message, fix) {
815
+ super(message);
816
+ this.name = "SlugRestoreError";
817
+ this.code = code;
818
+ this.fix = fix;
819
+ }
820
+ };
821
+ async function canvasForSlug(slug, opts) {
822
+ if (!SLUG_PATTERN.test(slug)) {
823
+ throw new SlugRestoreError("invalid_slug", `"${slug}" is not a valid creative slug`);
824
+ }
825
+ const targetDir = path4.join(opts.workspaceRoot, "src", "creatives", slug);
826
+ const local = path4.join(targetDir, `${slug}.canvas.json`);
827
+ if (!opts.forceRemote && existsSync2(local)) return { canvasPath: local };
828
+ const client = opts.client();
829
+ if (!client) {
830
+ throw new SlugRestoreError(
831
+ "missing_credentials",
832
+ `"${slug}" is not in this workspace, and restoring it from run history needs Baker credentials (BAKER_API_URL / BAKER_API_KEY).`
833
+ );
834
+ }
835
+ const latest = await client.getLatestSnapshotRun(slug);
836
+ if (!latest) {
837
+ throw new SlugRestoreError(
838
+ "no_snapshot_run",
839
+ `No creative "${slug}" in this workspace, and no recorded run of it to restore from.`,
840
+ "Check the slug against `ls src/creatives`, or scaffold the creative first."
841
+ );
842
+ }
843
+ const manifest = await fetchManifest(latest.canvasSnapshotUrl);
844
+ if (latest.canvasSha && manifest.canvasSha !== latest.canvasSha) {
845
+ throw new SlugRestoreError("snapshot_mismatch", `the snapshot of run ${latest.runId} does not match its recorded canvas`);
846
+ }
847
+ try {
848
+ const restore = await restoreRunSnapshot(manifest, targetDir, { force: opts.forceRemote });
849
+ opts.log(
850
+ restore.restored.length > 0 ? `[restore] ${restore.restored.length} file(s) from run ${latest.runId}: ${restore.restored.join(", ")}` : `[restore] local files already match run ${latest.runId}, nothing downloaded`
851
+ );
852
+ for (const skipped of manifest.skipped ?? []) {
853
+ opts.log(`[warn] snapshot omitted ${skipped.path} (${skipped.reason}); supply it locally if the run needs it fresh`);
854
+ }
855
+ return { canvasPath: restore.canvasPath, adoptRunId: await adoptableRun(client, slug, latest.runId) };
856
+ } catch (e) {
857
+ if (e instanceof SnapshotConflictError) {
858
+ throw new SlugRestoreError(
859
+ "local_files_differ",
860
+ `local files differ from the recorded snapshot: ${e.conflicts.join(", ")}`,
861
+ "Re-run with --force-remote to overwrite them, or run the local canvas file directly with `baker canvas run <file>`."
862
+ );
863
+ }
864
+ throw e;
865
+ }
866
+ }
867
+ async function adoptableRun(client, slug, restoredRunId) {
868
+ const active = await client.getActiveRun(slug).catch(() => null);
869
+ return active?.runId === restoredRunId && active.adoptable === true ? restoredRunId : void 0;
870
+ }
871
+ async function fetchManifest(url) {
872
+ const res = await fetch(url);
873
+ if (!res.ok) {
874
+ throw new SlugRestoreError("snapshot_unavailable", `snapshot manifest download failed: ${res.status} ${res.statusText}`);
875
+ }
876
+ const manifest = await res.json();
877
+ if (manifest?.schema !== SNAPSHOT_SCHEMA || typeof manifest.canvas?.path !== "string") {
878
+ throw new SlugRestoreError("snapshot_invalid", "snapshot manifest has an unexpected shape");
879
+ }
880
+ return manifest;
881
+ }
882
+
883
+ // src/commands/canvas/series-run.ts
884
+ async function runSeries(slugs, deps) {
885
+ return Promise.all(
886
+ slugs.map(async (slug) => {
887
+ const plan = await deps.plan(slug);
888
+ if ("refused" in plan) return { slug, status: "refused", error: plan.refused };
889
+ if (!plan.run) return { slug, status: "up_to_date", ...plan.runId ? { run_id: plan.runId } : {} };
890
+ return resultOf(slug, await deps.run(slug));
891
+ })
892
+ );
893
+ }
894
+ function resultOf(slug, answer) {
895
+ if (answer.ok !== true) {
896
+ const error = answer.error ?? {};
897
+ return {
898
+ slug,
899
+ status: "failed",
900
+ error: {
901
+ code: error.code ?? "render_failed",
902
+ message: error.message ?? "The render did not finish.",
903
+ ...error.fix ? { fix: error.fix } : {}
904
+ }
905
+ };
906
+ }
907
+ const verdict = answer.verdict;
908
+ const status = verdict === "ready" || verdict === "ready_with_notes" || verdict === "needs_fixes" ? verdict : "ready";
909
+ return {
910
+ slug,
911
+ status,
912
+ ...typeof answer.run_id === "string" ? { run_id: answer.run_id } : {},
913
+ ...answer.files !== void 0 ? { files: answer.files } : {}
914
+ };
915
+ }
916
+ function seriesEnvelope(lead, results) {
917
+ const ready = results.filter((r) => r.status === "ready" || r.status === "ready_with_notes");
918
+ const fixes = results.filter((r) => r.status === "needs_fixes");
919
+ const stopped = results.filter((r) => r.status === "refused" || r.status === "failed");
920
+ return {
921
+ ok: true,
922
+ data: { lead, ready: ready.map((r) => r.slug), ads: results },
923
+ hints: [
924
+ ...ready.filter((r) => r.run_id).map((r) => `Save: baker creatives publish --slug ${r.slug} --run-id ${r.run_id} --title "<title>" --output <lead size>`),
925
+ ...fixes.length > 0 ? [
926
+ `Still needs fixes after its own corrections: ${fixes.map((r) => r.slug).join(", ")}. Correct each by itself (baker canvas run --slug <slug> --fix "<what to change>"); the others stay as they are.`
927
+ ] : [],
928
+ ...stopped.map((r) => `${r.slug}: ${r.error?.message ?? "not rendered"}${r.error?.fix ? ` ${r.error.fix}` : ""}`),
929
+ `A new version of the lead (${lead}) reaches every ad of the series on the next \`baker canvas run --series ${lead}\`.`
930
+ ]
931
+ };
932
+ }
933
+
934
+ // src/commands/canvas/voice-retake.ts
935
+ var nodesOf = (graph) => {
936
+ const nodes = graph?.nodes;
937
+ return Array.isArray(nodes) ? nodes : [];
938
+ };
939
+ function refsIn(value) {
940
+ if (typeof value === "string") {
941
+ const id = /^\$ref:([^.]+)\./.exec(value)?.[1];
942
+ return id ? [id] : [];
943
+ }
944
+ if (Array.isArray(value)) return value.flatMap(refsIn);
945
+ if (value && typeof value === "object") return Object.values(value).flatMap(refsIn);
946
+ return [];
947
+ }
948
+ function keptVoiceClips(graph) {
949
+ const nodes = nodesOf(graph);
950
+ const byId = new Map(nodes.flatMap((n) => typeof n.id === "string" ? [[n.id, n]] : []));
951
+ const tracks = nodes.filter((n) => {
952
+ const tags = n.tags ?? {};
953
+ return n.type === "audio_timeline" && tags.role === "voice" && tags.on_camera === true;
954
+ });
955
+ const seen = /* @__PURE__ */ new Set();
956
+ const queue = tracks.flatMap((t) => refsIn(t.inputs));
957
+ while (queue.length > 0) {
958
+ const id = queue.pop();
959
+ if (seen.has(id)) continue;
960
+ seen.add(id);
961
+ queue.push(...refsIn(byId.get(id)?.inputs));
962
+ }
963
+ return [...seen].flatMap((id) => {
964
+ const node = byId.get(id);
965
+ return node?.type === "video_generate" ? [node] : [];
966
+ });
967
+ }
968
+ var promptOf = (node) => JSON.stringify(node?.params?.prompt ?? null);
969
+ function retakenTalkingScenes(previous, canvas) {
970
+ const before = new Map(nodesOf(previous).map((n) => [n.id, n]));
971
+ return keptVoiceClips(canvas).filter((clip) => before.has(clip.id) && promptOf(before.get(clip.id)) !== promptOf(clip)).map((clip) => String(clip.id));
972
+ }
973
+
974
+ // src/commands/canvas/static-spec-repair.ts
975
+ import { readFile as readFile3, writeFile as writeFile3 } from "fs/promises";
976
+ import sharp from "sharp";
977
+ import { z } from "zod";
978
+ var Answer = z.object({
979
+ changed: z.string().min(1),
980
+ set: z.array(z.object({ path: z.string().min(1), value: z.unknown() }))
981
+ });
982
+ function withValueAt(root, path6, value) {
983
+ const [key, ...rest] = path6;
984
+ if (key === void 0) return value;
985
+ if (Array.isArray(root)) {
986
+ const at = Number(key);
987
+ if (!Number.isInteger(at) || at < 0 || at > root.length) return root;
988
+ const next = [...root];
989
+ next[at] = withValueAt(root[at], rest, value);
990
+ return next;
991
+ }
992
+ const holder = root && typeof root === "object" ? root : {};
993
+ return { ...holder, [key]: withValueAt(holder[key], rest, value) };
994
+ }
995
+ function declaredAvatars(spec) {
996
+ return new Set((spec.concept?.load_bearing ?? []).filter(isVital).flatMap((l) => castHandles(l.ours ?? "")));
997
+ }
998
+ function groundedAvatars(spec) {
999
+ return new Set(spec.references.flatMap((r) => r.avatar ? [r.avatar.toLowerCase()] : []));
1000
+ }
1001
+ function castsOnly(spec, avatars) {
1002
+ const people = spec.references.filter((r) => r.id.startsWith("PERSON_"));
1003
+ return people.length > 0 && people.every((r) => r.avatar !== void 0 && avatars.has(r.avatar.toLowerCase()));
1004
+ }
1005
+ function keepsCast(was, now) {
1006
+ const declared = declaredAvatars(was);
1007
+ if (castsNobody(was) && !castsNobody(now) && !castsOnly(now, declared)) return false;
1008
+ const before = groundedAvatars(was);
1009
+ const after = groundedAvatars(now);
1010
+ return ![...declared].some((handle) => before.has(handle) && !after.has(handle));
1011
+ }
1012
+ function memeTemplateReferences(spec) {
1013
+ return spec.references.filter(isMemeTemplate);
1014
+ }
1015
+ function keepsMemeTemplates(was, now) {
1016
+ return memeTemplateReferences(was).every(
1017
+ (t) => now.references.some((r) => r.id === t.id && r.role === t.role && r.image === t.image && r.what === t.what && r.keep === t.keep)
1018
+ );
1019
+ }
1020
+ function printedWords(spec) {
1021
+ return [...spec.copy.map((l) => l.text), ...spec.native ? nativeCopy(spec.native) : []];
1022
+ }
1023
+ function acceptRepair(before, answer, held = { rules: [] }) {
1024
+ const parsed = Answer.safeParse(answer);
1025
+ if (!parsed.success || !isAdSpec(before)) return null;
1026
+ const spec = parsed.data.set.reduce((at, { path: path6, value }) => withValueAt(at, path6.split("."), value), before);
1027
+ if (!isAdSpec(spec)) return null;
1028
+ const was = AdSpecSchema.safeParse(before);
1029
+ const now = AdSpecSchema.safeParse(spec);
1030
+ if (!was.success || !now.success) return null;
1031
+ if (JSON.stringify(was.data) === JSON.stringify(now.data)) return null;
1032
+ for (const key of ["concept", "mechanism", "message", "brand", "viewer"]) {
1033
+ if (JSON.stringify(was.data[key]) !== JSON.stringify(now.data[key])) return null;
1034
+ }
1035
+ if (was.data.native && was.data.native.surface !== now.data.native?.surface) return null;
1036
+ if (!keepsCast(was.data, now.data) || !keepsMemeTemplates(was.data, now.data)) return null;
1037
+ const kept = printedWords(now.data);
1038
+ const said = printedWords(was.data);
1039
+ if (!said.every((text) => kept.includes(text))) return null;
1040
+ if (was.data.native) {
1041
+ const shown = now.data.native ? nativeCopy(now.data.native) : [];
1042
+ if (!nativeCopy(was.data.native).every((text) => shown.includes(text))) return null;
1043
+ }
1044
+ const added = kept.filter((text) => !said.includes(text));
1045
+ if (ruleTells(added, held.rules, held.language).some((t) => t.kind === "forbidden")) return null;
1046
+ return { changed: parsed.data.changed, spec };
1047
+ }
1048
+ function memeTemplatesOf(spec) {
1049
+ let raw;
1050
+ try {
1051
+ raw = JSON.parse(spec);
1052
+ } catch {
1053
+ return [];
1054
+ }
1055
+ const parsed = AdSpecSchema.safeParse(raw);
1056
+ return parsed.success ? memeTemplateReferences(parsed.data).map((r) => `${r.id} (${r.what})`) : [];
1057
+ }
1058
+ function buildSpecRepairPrompt(spec, findings, schema, rejected = [], restore = []) {
1059
+ const templates = memeTemplatesOf(spec);
1060
+ return [
1061
+ "This is the spec (prompt.json) a static ad was drawn from, and the image is the ad it gave.",
1062
+ "A review found these defects in it, and they come from what the spec asks for, so drawing it again or editing the picture brings them back:",
1063
+ ...findings.map((f) => `- ${f}`),
1064
+ ...restore.length > 0 ? [
1065
+ "",
1066
+ "Restore what made the proven ad win, as the concept declares it: put each of these back in the scene, the references and the lines' `look`, carried by exactly what of ours the concept names; never drop it or put anything the concept does not declare in its place.",
1067
+ ...restore.map((r) => `- ${r}`)
1068
+ ] : [],
1069
+ ...rejected.length > 0 ? [
1070
+ "",
1071
+ "What the person rejected in earlier versions of this ad, in their words: never bring back any of it, in the scene, the references or the layout.",
1072
+ ...rejected.map((r) => `- ${r}`)
1073
+ ] : [],
1074
+ "",
1075
+ "Correct the spec so these defects cannot happen, changing as little as you can:",
1076
+ "- Drop, replace or reword the element, photo, reference, layout or scene instruction that causes a defect (never what the concept keeps of the proven ad). A second subject the viewer would read as another one (another pet, another person) is dropped, or made unmistakably the same one.",
1077
+ "- A rating or stars shown with no source: name the source only if the spec already states one anywhere; otherwise drop the stars or the rating. Never invent a source, a number or a claim.",
1078
+ "- A native screen's layout (where its headline, bubbles or cards sit, what it shows) is changed in its `native` block.",
1079
+ "- Keep every line of copy word for word: never reword, shorten or drop one. Keep the schema, the brand and everything the defects do not touch.",
1080
+ "- Preserve `concept`, `mechanism`, `message` and `brand` exactly, including the CTA colour. Fix how the ad executes its idea; never change why it works or remove its load-bearing elements to make a defect pass.",
1081
+ ...templates.length > 0 ? [
1082
+ `- These references are real meme templates, grounded on their real pictures: ${templates.join("; ")}. Keep each exactly as it is (id, role, image and use) and keep the scene using it as the picture; never drop, replace or redraw one, and never describe its people or faces in the scene for the image model to draw.`
1083
+ ] : [],
1084
+ "- Keep a native screen on the same `native.surface`. Notes stays Notes, a review stays on its review platform. Change its layout or content only; never replace it with a physical document or a generic ad.",
1085
+ "",
1086
+ 'Reply with only this JSON, naming only the fields you replace, each by its dotted path in the spec ("scene.layout", "references", "copy.2.position", "native.messages"), with its whole new value: {"changed": "<one plain sentence a marketer reads: what you changed and why>", "set": [{"path": "<dotted path>", "value": <its new value>}]}',
1087
+ "",
1088
+ "The spec:",
1089
+ spec,
1090
+ // Bench, Oct 2026: without it the model set a field the spec does not have ("native.layout").
1091
+ ...schema ? ["", "Its JSON schema: set only fields and values it allows.", JSON.stringify(schema)] : []
1092
+ ].join("\n");
1093
+ }
1094
+ function restoreLines(spec, jobs) {
1095
+ const parsed = AdSpecSchema.safeParse(spec);
1096
+ if (!parsed.success || jobs.length === 0) return [];
1097
+ return (parsed.data.concept?.load_bearing ?? []).filter((l) => isVital(l) && l.job !== void 0 && jobs.includes(l.job)).map((l) => {
1098
+ const carried = decisionOf(l) === "keep" ? "kept as in the proven ad" : `carried by ${l.ours?.trim() || "what of ours the concept names"}`;
1099
+ return `${l.job === "stop" ? "what stops the scroll" : "the proof"}, "${l.element}": ${carried}`;
1100
+ });
1101
+ }
1102
+ var REPAIR_TIMEOUT_MS = 15e4;
1103
+ var SHOWN_WIDTH = 768;
1104
+ async function repairSpec(opts) {
1105
+ const text = await readFile3(opts.promptPath, "utf8").catch(() => null);
1106
+ if (text === null) return null;
1107
+ let before;
1108
+ try {
1109
+ before = JSON.parse(text);
1110
+ } catch {
1111
+ return null;
1112
+ }
1113
+ const shown = opts.image ? await bytesOf(opts.image).then(async (bytes) => (await sharp(bytes).resize({ width: SHOWN_WIDTH }).jpeg({ quality: 85 }).toBuffer()).toString("base64")).catch(() => null) : null;
1114
+ const prompt = buildSpecRepairPrompt(
1115
+ text,
1116
+ opts.findings,
1117
+ adSpecJsonSchema(),
1118
+ opts.rejected,
1119
+ restoreLines(before, opts.restore ?? [])
1120
+ );
1121
+ const repair = acceptRepair(
1122
+ before,
1123
+ await askAboutImages(RENDER_REVIEW_MODEL, shown ? [shown] : [], prompt, opts.onSpend, REPAIR_TIMEOUT_MS),
1124
+ opts.held
1125
+ );
1126
+ if (!repair) return null;
1127
+ await writeFile3(opts.promptPath, `${JSON.stringify(repair.spec, null, 2)}
1128
+ `, "utf8");
1129
+ return repair.changed;
1130
+ }
1131
+
1132
+ // src/commands/canvas/run.ts
1133
+ function refusePlateVersion(runId) {
1134
+ const message = `The version of run ${runId} could not be found with the picture its sizes are cut from, so it cannot be changed on top of. Render the creative again (baker canvas run --slug <slug>), then make the change on that version.`;
1135
+ process.stderr.write(`${JSON.stringify({ ok: false, error: { code: "version_not_found", message } }, null, 2)}
1136
+ `);
1137
+ process.exit(2);
1138
+ }
1139
+ var OPERATOR = "Operator only, agents never need it.";
1140
+ var runCommand = defineCommand({
1141
+ meta: {
1142
+ name: "run",
1143
+ description: "Validate and execute a canvas. Pass the canvas file, or `--slug <slug>` to run a creative by name: its canvas in this workspace, or, when this workspace does not have it (a fresh workspace, another chat's creative), its files restored from its latest recorded run first. A run that was interrupted resumes; a finished one re-renders from the cache."
1144
+ },
1145
+ args: {
1146
+ file: { type: "positional", required: false, description: "Path to canvas JSON (or use --slug)" },
1147
+ slug: {
1148
+ type: "string",
1149
+ description: "Run the creative src/creatives/<slug>/ by name instead of passing its file. Restores its files from run history when they are not in this workspace; local files are never overwritten unless you pass --force-remote."
1150
+ },
1151
+ series: {
1152
+ type: "string",
1153
+ description: "Render every ad of the series this lead ad leads, all at once (`baker creatives make <idea> --series <lead>` made them): each is the lead's ready version with its own words, reviewed and corrected on its own. An ad already ready from the lead's current version is not rendered again. Start here for several messages in one style: baker canvas run --series spring-offer"
1154
+ },
1155
+ "force-remote": {
1156
+ type: "boolean",
1157
+ default: false,
1158
+ description: "With --slug: restore the recorded files even over local ones, replacing those that differ"
1159
+ },
1160
+ until: {
1161
+ type: "string",
1162
+ description: "Stop before the expensive half and leave the run resumable. `frames` settles the pictures and stops on the doorstep of the clips, so the look can be checked for the price of a few images instead of a whole ad. Continue with `baker canvas run <file> --run-id <the same id>` \u2014 everything already done is cached and is not paid for twice."
1163
+ },
1164
+ brief: {
1165
+ type: "string",
1166
+ description: "What the person asked for, IN THEIR OWN WORDS \u2014 paste their message, do not summarise it. The review compares the finished video against this and reports what they asked for that is missing or contradicted. Without it the review can only say whether the video is well made, not whether it is the one they wanted: every other check grades the render against the spec, and a spec that misread the request agrees with itself."
1167
+ },
1168
+ full: {
1169
+ type: "boolean",
1170
+ default: false,
1171
+ description: "Also print the per-node output, the run's stats, the judge's scores and the full guide in hints. The default is the result alone on stdout (verdict, review, the next step as hints, run_id, files); the progress, [warn] and [hint] lines (the full guide) go to stderr."
1172
+ },
1173
+ "run-id": { type: "string", description: "Override run id (also resumes that run, re-attaching its in-flight jobs)" },
1174
+ fix: {
1175
+ type: "string",
1176
+ description: `Static ad only: correct a finished version instead of rendering a new one. One render takes that version as its first reference and changes only what you say here ("the CTA sits in the Stories band: move it up", "'Analitica' is missing its accent"), keeping the picture, layout and every other word. It is added on top of that version: its options, pick and earlier corrections are kept as they were made (free), the edit after them. Every size is made again from it (each other size re-laid out from it, one request each) and the review follows as usual. The version is the creative's last render, or --from <run_id>.`
1177
+ },
1178
+ from: {
1179
+ type: "string",
1180
+ description: "With --fix, --use-variant or a --regenerate of sizes only: the run id of the version (default: the one the creative shows, its last render here, or in a new chat the version chosen, else its newest)"
1181
+ },
1182
+ "use-variant": {
1183
+ type: "string",
1184
+ description: "Static ad only: the person asked in the chat for another of a version's variants over the judge's pick. Give its sha256 (the picture's, never the option's number): every size is made again from that picture, the judge's pick replaced. The only requests re-lay out each other size from that picture (one per size). The version is --from <run_id>, else the creative's last render."
1185
+ },
1186
+ autofix: {
1187
+ type: "boolean",
1188
+ default: true,
1189
+ description: `Static ad: when the review finds a blocking defect, the run corrects it itself before it reports (up to ${AUTO_FIX_ROUNDS} more renders: the chosen picture fixed, or only the size at fault laid out again). --no-autofix reports after the first render.`
1190
+ },
1191
+ "skip-viewer-check": {
1192
+ type: "boolean",
1193
+ default: false,
1194
+ description: "Static ad only: render without the viewer check (see `baker canvas viewer-check`). Only when the person has heard what the viewer missed and asked for this copy as it is."
1195
+ },
1196
+ fresh: {
1197
+ type: "boolean",
1198
+ default: false,
1199
+ description: "Ignore any interrupted-run marker and start a new run id instead of resuming"
1200
+ },
1201
+ "cache-policy": { type: "string", description: "read_write | bypass | read_only" },
1202
+ regenerate: {
1203
+ type: "string",
1204
+ description: "Comma-separated node ids or roles to force fresh THIS run (e.g. --regenerate pick,adapt; on a static ad --regenerate static_variants, or its id gen, renders the variants again; on one cut from one picture --regenerate format_9x16 sets the 9:16's words again on the picture the last version shows, its --fix correction or chosen variant included; on one laid out again for each size --regenerate adapt_9x16 lays out the 9:16 again from that picture, and --regenerate static_adapt_format every re-laid-out size), bypassing the content cache for just those nodes + everything downstream. For a persistent re-render, bump a node's `regenerate` field in the canvas JSON instead."
1205
+ },
1206
+ concurrency: {
1207
+ type: "string",
1208
+ description: "Max nodes running at once (default 8; env BAKER_CANVAS_CONCURRENCY)"
1209
+ },
1210
+ parallel: {
1211
+ type: "string",
1212
+ description: "Alias for --concurrency: independent clips (and every other same-layer node) already fan out in parallel up to this bound"
1213
+ },
1214
+ // citty consumes any `--no-<flag>` as a negation of `<flag>`, so the
1215
+ // opt-out spelling `--no-record` requires the flag to be named `record`
1216
+ // (a literal "no-record" arg would never receive a value).
1217
+ record: {
1218
+ type: "boolean",
1219
+ default: true,
1220
+ description: "Post the durable run-history record to Baker (disable with --no-record)"
1221
+ },
1222
+ "cache-dir": { type: "string", description: `${OPERATOR} Cache root (default <workspace root>/canvas/.cache)` },
1223
+ "outputs-dir": { type: "string", description: `${OPERATOR} Per-run outputs root (default <workspace root>/canvas)` },
1224
+ "keep-runs": {
1225
+ type: "string",
1226
+ description: `${OPERATOR} After the run, prune old r_* run dirs, keeping the N newest (off by default)`
1227
+ },
1228
+ "remote-cache": {
1229
+ type: "string",
1230
+ description: `${OPERATOR} on | off: company-scoped remote cache + durable asset persistence (default on; env BAKER_CANVAS_REMOTE_CACHE)`
1231
+ }
1232
+ },
1233
+ async run({ args }) {
1234
+ if (args.series) {
1235
+ await executeSeriesRun(String(args.series));
1236
+ return;
1237
+ }
1238
+ await executeCanvasRun({
1239
+ file: args.file ? String(args.file) : void 0,
1240
+ slug: args.slug ? String(args.slug) : void 0,
1241
+ forceRemote: args["force-remote"] === true,
1242
+ cacheDir: args["cache-dir"] ? String(args["cache-dir"]) : void 0,
1243
+ outputsDir: args["outputs-dir"] ? String(args["outputs-dir"]) : void 0,
1244
+ runId: args["run-id"] ? String(args["run-id"]) : void 0,
1245
+ fresh: args.fresh === true,
1246
+ fix: args.fix ? String(args.fix) : void 0,
1247
+ from: args.from ? String(args.from) : void 0,
1248
+ useVariant: args["use-variant"] ? String(args["use-variant"]) : void 0,
1249
+ skipViewerCheck: args["skip-viewer-check"] === true,
1250
+ autoFix: args.autofix !== false,
1251
+ brief: args.brief ? String(args.brief) : void 0,
1252
+ until: args.until ? String(args.until) : void 0,
1253
+ cachePolicy: args["cache-policy"] ? String(args["cache-policy"]) : void 0,
1254
+ regenerate: args.regenerate !== void 0 ? String(args.regenerate) : void 0,
1255
+ // --concurrency wins; --parallel is the discoverable alias for the same bound.
1256
+ concurrency: (args.concurrency ?? args.parallel) !== void 0 ? String(args.concurrency ?? args.parallel) : void 0,
1257
+ keepRuns: args["keep-runs"] !== void 0 ? Number(args["keep-runs"]) : void 0,
1258
+ remoteCache: args["remote-cache"] !== void 0 ? String(args["remote-cache"]) !== "off" : void 0,
1259
+ record: args.record !== false,
1260
+ full: args.full === true
1261
+ });
1262
+ }
1263
+ });
1264
+ function stopBeforeKinds(until) {
1265
+ if (until?.trim() === "frames") return /* @__PURE__ */ new Set(["video_generate"]);
1266
+ return null;
1267
+ }
1268
+ function failPreflight(code, message, fix) {
1269
+ process.stderr.write(`${JSON.stringify({ ok: false, error: { code, message, ...fix ? { fix } : {} } }, null, 2)}
1270
+ `);
1271
+ process.exit(2);
1272
+ }
1273
+ async function canvasFileFor(opts) {
1274
+ if (opts.file) return { canvasPath: path5.resolve(opts.file) };
1275
+ if (!opts.slug) failPreflight("missing_canvas", "Pass the canvas file, or --slug <slug> to run a creative by name.");
1276
+ const cwd = process.cwd();
1277
+ try {
1278
+ return await canvasForSlug(opts.slug, {
1279
+ workspaceRoot: findWorkspaceRoot(cwd) ?? cwd,
1280
+ forceRemote: opts.forceRemote === true,
1281
+ client: buildBackendClient,
1282
+ log: (line) => process.stdout.write(`${line}
1283
+ `)
1284
+ });
1285
+ } catch (e) {
1286
+ if (e instanceof SlugRestoreError) failPreflight(e.code, e.message, e.fix);
1287
+ throw e;
1288
+ }
1289
+ }
1290
+ async function executeSeriesRun(lead) {
1291
+ const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();
1292
+ const members = await seriesMembers(root, lead);
1293
+ if (members.length === 0) {
1294
+ failPreflight(
1295
+ "no_series_ads",
1296
+ `No ad names "${lead}" as its lead (\`series: ${lead}\` in its _definition.md).`,
1297
+ `Make each other message as an ad of the series first (baker creatives make <idea> --series ${lead}), or each language (baker creatives translate --slug ${lead} --to es-MX,de).`
1298
+ );
1299
+ }
1300
+ const canvasRoot = path5.join(root, "canvas");
1301
+ process.stdout.write(`[series] rendering ${members.length} ads of ${lead} at once: ${members.join(", ")}
1302
+ `);
1303
+ const results = await runSeries(members, {
1304
+ plan: async (slug) => {
1305
+ const made = await writeSeriesMemberCanvas(root, slug, { takeLeadDesign: true });
1306
+ if (made === null) return { refused: { code: "not_in_series", message: `${slug} is no ad of this series.`, fix: "" } };
1307
+ if ("refused" in made) return made;
1308
+ if (made.designFromLead) process.stdout.write(`[series] ${slug} takes the lead's design, its own words kept
1309
+ `);
1310
+ try {
1311
+ const prepared = await prepareCanvas(made.canvasPath, { write: false });
1312
+ const state = await readRenderState(canvasRoot, slug);
1313
+ const fresh = state.rendered?.sourceSha === prepared.sourceSha && (state.blocking ?? []).length === 0;
1314
+ return fresh ? { run: false, runId: state.rendered?.runId } : { run: true };
1315
+ } catch (e) {
1316
+ const envelope = e instanceof CanvasPrepareError ? e.toEnvelope().error : null;
1317
+ return {
1318
+ refused: {
1319
+ code: String(envelope?.code ?? "prepare_failed"),
1320
+ message: String(envelope?.message ?? (e instanceof Error ? e.message : e)),
1321
+ fix: String(envelope?.fix ?? "")
1322
+ }
1323
+ };
1324
+ }
1325
+ },
1326
+ run: (slug) => runBaker(["canvas", "run", "--slug", slug])
1327
+ });
1328
+ process.stdout.write(`${JSON.stringify(seriesEnvelope(lead, results), null, 2)}
1329
+ `);
1330
+ }
1331
+ async function refreshSeriesAd(opts) {
1332
+ const slug = opts.slug ?? (opts.file ? creativeSlugFromCanvasPath(path5.resolve(opts.file)) : null);
1333
+ if (!slug) return false;
1334
+ const root = findWorkspaceRoot(opts.file ? path5.dirname(path5.resolve(opts.file)) : process.cwd());
1335
+ if (!root) return false;
1336
+ const made = await writeSeriesMemberCanvas(root, slug);
1337
+ if (made === null) return false;
1338
+ if ("refused" in made) failPreflight(made.refused.code, made.refused.message, made.refused.fix);
1339
+ process.stdout.write(
1340
+ `[series] ${slug} is the lead ${made.lead}'s version ${made.leadRunId} with this ad's words${made.written ? " (canvas written)" : ""}
1341
+ `
1342
+ );
1343
+ return made.newLeadVersion;
1344
+ }
1345
+ async function editScopeNotes(input) {
1346
+ const { opts, shown } = input;
1347
+ const plain = (opts.autoFixRound ?? 0) === 0 && opts.fix === void 0 && opts.regenerate === void 0 && opts.useVariant === void 0 && opts.from === void 0;
1348
+ if (!plain || !shown.rendered) return [];
1349
+ const notes = [];
1350
+ const changed = !input.native && input.asEdit === null && shown.prompt ? frameChanges(shown.prompt, input.promptNow) : [];
1351
+ if (changed.length > 0) {
1352
+ notes.push(
1353
+ `[scope] this run changes ${changed.join(", ")} since the version shown: new pictures are made. If the person asked only for words, colours or one element, put the rest back (or use --fix).`
1354
+ );
1355
+ }
1356
+ const local = { record: async () => null, graph: async () => null };
1357
+ const previous = await versionRun(input.canvasRoot, shown.rendered.runId, local);
1358
+ for (const clip of previous ? retakenTalkingScenes(previous.canvas, input.canvas) : []) {
1359
+ notes.push(
1360
+ `[voice] the take ${clip} is said again by the video model: it may not sound like the other takes; listen to it before you show it.`
1361
+ );
1362
+ }
1363
+ return notes;
1364
+ }
1365
+ var canvasHeld = false;
1366
+ var RECORDED_RULE_IDS = 100;
1367
+ async function executeCanvasRun(opts) {
1368
+ const startedAt = opts.autoFixStartedAt ?? Date.now();
1369
+ const newAsk = (opts.autoFixRound ?? 0) === 0 ? await refreshSeriesAd(opts) : false;
1370
+ const { canvasPath: filePath, adoptRunId } = await canvasFileFor(opts);
1371
+ const canvasRoot = canvasOutputsRoot(filePath);
1372
+ const creativeSlug = creativeSlugFromCanvasPath(filePath) ?? void 0;
1373
+ const held = creativeSlug ? await heldRules(path5.dirname(filePath)) : { rules: [] };
1374
+ if (creativeSlug) await clearLegacyDirtyMarker(canvasRoot, creativeSlug);
1375
+ const turnId = optionalTurnId();
1376
+ const turnCache = opts.cacheDir ?? path5.join(canvasRoot, ".cache");
1377
+ const refuseTurnRender = async (correction) => {
1378
+ if (!creativeSlug || (opts.autoFixRound ?? 0) > 0) return;
1379
+ const onDisk = await readFile4(filePath, "utf8").then((text) => JSON.parse(text)).catch(() => null);
1380
+ const shape = sizeShapeOf(onDisk);
1381
+ const refusal = turnRenderRefusal(await readTurnRenders(turnCache), turnId, creativeSlug, { correction, shape });
1382
+ if (!refusal) return;
1383
+ process.stderr.write(
1384
+ `${JSON.stringify({ ok: false, error: { code: refusal.code, message: refusal.message, fix: refusal.fix } }, null, 2)}
1385
+ `
1386
+ );
1387
+ process.exit(2);
1388
+ };
1389
+ const shown = creativeSlug ? await shownVersion(canvasRoot, creativeSlug) : {};
1390
+ const promptOnDisk = await readFile4(path5.join(path5.dirname(filePath), "prompt.json"), "utf8").then((text) => JSON.parse(text)).catch(() => null);
1391
+ await refuseTurnRender(mayBeCorrection(opts, shown.prompt, promptOnDisk));
1392
+ const ideaHeld = creativeSlug && (opts.autoFixRound ?? 0) === 0 ? (await shownBaseline({
1393
+ canvasRoot,
1394
+ slug: creativeSlug,
1395
+ creativeDir: path5.dirname(filePath),
1396
+ turnId,
1397
+ shown,
1398
+ record: true
1399
+ })).baseline : void 0;
1400
+ const citing = [];
1401
+ await wireProofBadges(
1402
+ path5.join(path5.dirname(filePath), "prompt.json"),
1403
+ fetchBrandLogo,
1404
+ (line) => process.stderr.write(`${line}
1405
+ `),
1406
+ jevCitationJudge((u) => citing.push(u))
1407
+ );
1408
+ await holdUnbilledSpend(turnCache, citing);
1409
+ if ((opts.autoFixRound ?? 0) === 0) {
1410
+ const reading = [];
1411
+ await wireNamedPeople(
1412
+ path5.join(path5.dirname(filePath), "prompt.json"),
1413
+ avatarOfNamedPerson,
1414
+ (line) => process.stderr.write(`${line}
1415
+ `),
1416
+ peopleReader(turnCache, (u) => reading.push(u))
1417
+ );
1418
+ await holdUnbilledSpend(turnCache, reading);
1419
+ }
1420
+ let prepared;
1421
+ try {
1422
+ prepared = await prepareCanvas(filePath, {
1423
+ requireSuppliedAssets: true,
1424
+ gate: true,
1425
+ log: (line) => process.stderr.write(`${line}
1426
+ `),
1427
+ ...ideaHeld ? { baseline: ideaHeld } : {},
1428
+ firstRender: creativeSlug !== void 0 && !shown.rendered && (opts.autoFixRound ?? 0) === 0
1429
+ });
1430
+ } catch (e) {
1431
+ if (creativeSlug) await recordRenderAttempt(canvasRoot, creativeSlug, await computeSourceSha(filePath));
1432
+ exitOnPrepareError(e);
1433
+ }
1434
+ if (creativeSlug) await recordRenderAttempt(canvasRoot, creativeSlug, prepared.sourceSha);
1435
+ if (prepared.rewrites.length > 0) {
1436
+ process.stderr.write(
1437
+ `[canvas] rewrote ${prepared.rewrites.length} asset reference(s) in the canvas file so it says what runs (absolute paths \u2192 canvas-relative, a URL in an ingest path \u2192 source "url", a path into canvas/ \u2192 the durable URL of the same bytes):
1438
+ ${describeRewrites(prepared.rewrites)}
1439
+ `
1440
+ );
1441
+ }
1442
+ let parsed = prepared.canvas;
1443
+ const promptNow = isStaticAdCanvas(parsed) ? await readStaticPromptJson(parsed).catch(() => null) : null;
1444
+ const native = isNativeCanvas(parsed);
1445
+ if (native && (opts.fix !== void 0 || opts.useVariant !== void 0)) {
1446
+ process.stderr.write(
1447
+ `${JSON.stringify(
1448
+ {
1449
+ ok: false,
1450
+ error: {
1451
+ code: "nothing_to_fix",
1452
+ message: "This ad is a native screen drawn exactly from prompt.json, not a painted picture: there is nothing to correct by --fix or to pick by --use-variant.",
1453
+ fix: "Edit prompt.json's `native` block (its words, people, photos, frame) and run again: nothing renders but a photo whose description changed. A photo with a defect: `--regenerate photo_<n>`."
1454
+ }
1455
+ },
1456
+ null,
1457
+ 2
1458
+ )}
1459
+ `
1460
+ );
1461
+ process.exit(2);
1462
+ }
1463
+ const asEdit = opts.fix === void 0 && opts.useVariant === void 0 && opts.regenerate === void 0 && opts.from === void 0 && shown.rendered ? plainRunEdit(parsed, shown.prompt, promptNow) : null;
1464
+ const editOf = asEdit && shown.rendered ? await previousAdImage(canvasRoot, shown.rendered.runId, void 0, rolesById(parsed)) : null;
1465
+ const editInstruction = editOf ? asEdit : null;
1466
+ if (editInstruction) {
1467
+ process.stdout.write(`[edit] only the words or colours changed: editing the version of run ${shown.rendered?.runId}: ${editInstruction}
1468
+ `);
1469
+ }
1470
+ const runNotes = await editScopeNotes({
1471
+ opts,
1472
+ asEdit,
1473
+ native,
1474
+ shown,
1475
+ promptNow,
1476
+ canvas: parsed,
1477
+ canvasRoot
1478
+ });
1479
+ for (const note of runNotes) process.stderr.write(`${note}
1480
+ `);
1481
+ const fixInstruction = opts.fix ?? editInstruction ?? void 0;
1482
+ const requested = opts.regenerate?.split(",").map((id) => id.trim()) ?? [];
1483
+ await refuseTurnRender(
1484
+ fixInstruction !== void 0 || requested.length > 0 && isStaticAdCanvas(parsed) && relaysSizesOnly(parsed, regenerateTargets(parsed, requested).ids)
1485
+ );
1486
+ const fromRun = opts.from ?? shown.rendered?.runId;
1487
+ const memory = fixMemoryOf(shown, opts.from);
1488
+ if (opts.fix !== void 0 && repeatsFailedFix(memory.lastFix, opts.fix)) {
1489
+ const left = memory.lastFix?.blocking ?? [];
1490
+ process.stderr.write(
1491
+ `${JSON.stringify(
1492
+ {
1493
+ ok: false,
1494
+ error: {
1495
+ code: "no_progress",
1496
+ message: `Not rendered: this exact fix already ran and left ${left.length === 1 ? "this" : "these"} in place: ${left.join(" | ")}`,
1497
+ fix: `Do not ask for the same correction again. Change the approach: edit prompt.json so the problem cannot happen (shorter words, a line moved or dropped, a different position), make just the size at fault again (${oneSizeFix(sizeShapeOf(parsed))}), or ask for new options with \`--regenerate static_variants\`.`
1498
+ }
1499
+ },
1500
+ null,
1501
+ 2
1502
+ )}
1503
+ `
1504
+ );
1505
+ process.exit(2);
1506
+ }
1507
+ let grown = null;
1508
+ const growOn = async (from, growth) => {
1509
+ const version = await versionRun(canvasRoot, from);
1510
+ return version ? growFromVersion(parsed, version, growth) : null;
1511
+ };
1512
+ if (fixInstruction !== void 0) {
1513
+ const instruction = fixInstruction.trim();
1514
+ const from = opts.from ?? shown.rendered?.runId;
1515
+ const previous = editOf ?? (from ? await previousAdImage(canvasRoot, from, void 0, rolesById(parsed)) : null);
1516
+ if (!instruction || !isStaticAdCanvas(parsed) || !from || !previous) {
1517
+ const message = !instruction ? "--fix needs the correction in words." : !isStaticAdCanvas(parsed) ? "--fix corrects a static ad; this canvas is not one." : !from ? "--fix needs a version to correct: this creative has no recorded render here. Pass --from <run_id>." : `--fix could not find the finished ad of run ${from}: pass --from with a run that rendered one.`;
1518
+ process.stderr.write(`${JSON.stringify({ ok: false, error: { code: "nothing_to_fix", message } }, null, 2)}
1519
+ `);
1520
+ process.exit(2);
1521
+ }
1522
+ const rejected = creativeSlug ? await readCaseFile(creativeSlug) : [];
1523
+ const { rules } = held;
1524
+ grown = await growOn(from, { kind: "edit", instruction, promptJson: promptNow, rejected, rules });
1525
+ if (!grown && isPlateCanvas(parsed)) refusePlateVersion(from);
1526
+ parsed = grown ? grown.canvas : fixStaticAd(parsed, { instruction, previous, promptJson: promptNow, rejected, rules });
1527
+ const labels = finalOutputLabelsFromCanvas(parsed);
1528
+ const delivered = await previousDelivered(canvasRoot, from, labels?.nodeId ?? "final", labels?.labels ?? [], {
1529
+ prefer: "url"
1530
+ });
1531
+ const last = Object.fromEntries(
1532
+ nodesWithRole(parsed, STATIC_ADAPT_FORMAT_ROLE).flatMap((n) => {
1533
+ const path6 = delivered.find((d) => d.format === formatOfAdaptId(n.id))?.path;
1534
+ return path6 ? [[n.id, path6]] : [];
1535
+ })
1536
+ );
1537
+ parsed = withSizesFollowingFix(parsed, {
1538
+ last,
1539
+ change: instruction.replace(/^Change only this: /, ""),
1540
+ ...opts.relayAlso ? { also: opts.relayAlso } : {}
1541
+ });
1542
+ const kept = delivered.filter((d) => opts.keepSizes?.includes(d.format));
1543
+ if (kept.length > 0) {
1544
+ parsed = withDeliveredSizes(parsed, Object.fromEntries(kept.map((d) => [d.format, d.path])));
1545
+ process.stdout.write(`[fix] keeping ${kept.map((d) => d.format).join(", ")} as it was: nothing blocking on it
1546
+ `);
1547
+ }
1548
+ if (!editInstruction) process.stdout.write(`[fix] correcting the version of run ${from}: ${instruction}
1549
+ `);
1550
+ }
1551
+ if (opts.useVariant !== void 0 && opts.fix === void 0) {
1552
+ const sha = opts.useVariant.trim();
1553
+ const from = opts.from ?? shown.rendered?.runId;
1554
+ grown = from && isStaticAdCanvas(parsed) ? await growOn(from, { kind: "variant", sha256: sha }) : null;
1555
+ const url = from && !grown && isStaticAdCanvas(parsed) ? await variantImage(canvasRoot, from, sha, void 0, rolesById(parsed)) : null;
1556
+ if (!from || !grown && !url) {
1557
+ const message = !isStaticAdCanvas(parsed) ? "--use-variant re-makes the sizes of a static ad; this canvas is not one." : !from ? "--use-variant needs the version the variant belongs to: this creative has no recorded render here. Pass --from <run_id>." : `--use-variant found no variant ${sha} in run ${from}: pass the sha256 \`baker creatives feedback --slug <slug>\` prints, and --from with that version's run.`;
1558
+ process.stderr.write(`${JSON.stringify({ ok: false, error: { code: "no_such_variant", message } }, null, 2)}
1559
+ `);
1560
+ process.exit(2);
1561
+ }
1562
+ if (!grown && isPlateCanvas(parsed)) refusePlateVersion(from);
1563
+ if (grown) parsed = grown.canvas;
1564
+ else if (url) parsed = rederiveFromVariant(parsed, { url });
1565
+ process.stdout.write(`[variant] making every size of run ${from} again from the chosen variant ${sha.slice(0, 12)}
1566
+ `);
1567
+ }
1568
+ let relaidFrom;
1569
+ if (opts.regenerate !== void 0 && opts.fix === void 0 && opts.useVariant === void 0 && isStaticAdCanvas(parsed)) {
1570
+ const requested2 = opts.regenerate.split(",").map((id) => id.trim());
1571
+ const from = opts.from ?? shown.rendered?.runId;
1572
+ const sizesOnly = relaysSizesOnly(parsed, regenerateTargets(parsed, requested2).ids);
1573
+ grown = from && sizesOnly ? await growOn(from, { kind: "keep" }) : null;
1574
+ const url = from && sizesOnly && !grown ? await correctedPicture(canvasRoot, from) ?? (shown.picture?.redrawn && shown.picture.runId === from ? await previousAdImage(canvasRoot, from, void 0, rolesById(parsed)) : null) : null;
1575
+ if (from && grown) {
1576
+ parsed = grown.canvas;
1577
+ relaidFrom = from;
1578
+ process.stdout.write(`[regenerate] re-laying out from the picture run ${from} shows, kept as it was made
1579
+ `);
1580
+ } else if (from && url && !isPlateCanvas(parsed)) {
1581
+ parsed = rederiveFromVariant(parsed, { url });
1582
+ relaidFrom = from;
1583
+ process.stdout.write(`[regenerate] re-laying out from the picture run ${from} shows (its correction or the person's choice)
1584
+ `);
1585
+ }
1586
+ }
1587
+ const plain = fixInstruction === void 0 && opts.useVariant === void 0 && opts.regenerate === void 0 && (opts.extendSizes?.length ?? 0) === 0;
1588
+ if (plain && fromRun && !native && isStaticAdCanvas(parsed) && !seriesOf(parsed)) {
1589
+ const version = await versionRun(canvasRoot, fromRun);
1590
+ const same = version !== null && makesSameVariants(parsed, version, await ingestedNow(variantFiles(parsed), path5.dirname(filePath)));
1591
+ const growth = version ? plainRunGrowth(parsed, version, {
1592
+ sameVariants: same,
1593
+ frameChanged: shown.prompt !== void 0 && frameChanges(shown.prompt, promptNow).length > 0,
1594
+ wordsChanged: shown.prompt !== void 0 && specEditInstruction(shown.prompt, promptNow) !== null,
1595
+ pictureChanged: shown.prompt !== void 0 && pictureEdit(shown.prompt, promptNow) !== null
1596
+ }) : null;
1597
+ grown = version && growth ? growFromVersion(parsed, version, growth) : null;
1598
+ if (grown) {
1599
+ parsed = grown.canvas;
1600
+ relaidFrom = fromRun;
1601
+ process.stdout.write(`[version] nothing the variants are made from changed: keeping the picture of run ${fromRun}
1602
+ `);
1603
+ }
1604
+ }
1605
+ if (grown) {
1606
+ const kept = Object.keys(grown.pinned);
1607
+ process.stdout.write(`[version] built on top of the version before: ${kept.join(", ")} kept as they were made (free)
1608
+ `);
1609
+ }
1610
+ const canvasText = prepared.text;
1611
+ let regenerate;
1612
+ if (opts.regenerate !== void 0) {
1613
+ const requested2 = opts.regenerate.split(",").map((id) => id.trim()).filter((id) => id.length > 0);
1614
+ const known = new Set(canvasNodeIds(parsed));
1615
+ const { ids: resolved, unknown } = regenerateTargets(parsed, requested2);
1616
+ if (unknown.length > 0) {
1617
+ process.stderr.write(
1618
+ `${JSON.stringify(
1619
+ {
1620
+ ok: false,
1621
+ error: {
1622
+ code: "unknown_regenerate_node",
1623
+ message: `--regenerate names node id(s) not in this canvas: ${unknown.join(", ")}. Known ids: ${[...known].join(", ")}`
1624
+ }
1625
+ },
1626
+ null,
1627
+ 2
1628
+ )}
1629
+ `
1630
+ );
1631
+ process.exit(2);
1632
+ }
1633
+ if (resolved.length > 0) {
1634
+ regenerate = new Set(resolved);
1635
+ process.stdout.write(`[regenerate] forcing fresh this run: ${[...regenerate].join(", ")} (+ downstream)
1636
+ `);
1637
+ if (opts.relayNote) parsed = withRelayNote(parsed, resolved, opts.relayNote);
1638
+ const editFrom = opts.from ?? shown.rendered?.runId;
1639
+ if (opts.relayEdits && editFrom) {
1640
+ const labels = finalOutputLabelsFromCanvas(parsed);
1641
+ const delivered = await previousDelivered(canvasRoot, editFrom, labels?.nodeId ?? "final", labels?.labels ?? [], {
1642
+ prefer: "url"
1643
+ });
1644
+ for (const [id, instruction] of Object.entries(opts.relayEdits)) {
1645
+ if (!resolved.includes(id)) continue;
1646
+ const last = delivered.find((d) => d.format === formatOfSizeNode(parsed, id))?.path;
1647
+ parsed = last ? withRelayEdit(parsed, id, { previous: last, instruction, asked: opts.relayAsked?.[id] ?? [] }) : withRelayNote(parsed, [id], instruction);
1648
+ }
1649
+ const relaid = resolved.flatMap((id) => formatOfSizeNode(parsed, id) ?? []);
1650
+ parsed = withDeliveredSizes(
1651
+ parsed,
1652
+ Object.fromEntries(delivered.filter((d) => !relaid.includes(d.format)).map((d) => [d.format, d.path]))
1653
+ );
1654
+ }
1655
+ }
1656
+ }
1657
+ if (opts.extendSizes && opts.extendSizes.length > 0 && isStaticAdCanvas(parsed)) {
1658
+ const from = opts.from ?? shown.rendered?.runId;
1659
+ if (opts.extendOnly && from) {
1660
+ const labels = finalOutputLabelsFromCanvas(parsed);
1661
+ const delivered = await previousDelivered(canvasRoot, from, labels?.nodeId ?? "final", labels?.labels ?? [], {
1662
+ prefer: "url"
1663
+ });
1664
+ parsed = withDeliveredSizes(parsed, Object.fromEntries(delivered.map((d) => [d.format, d.path])));
1665
+ }
1666
+ parsed = withExtendedSizes(parsed, opts.extendSizes);
1667
+ process.stdout.write(`[extend] placing ${opts.extendSizes.join(", ")} clear of what covers or cuts it, its margins painted
1668
+ `);
1669
+ }
1670
+ const cacheDir = opts.cacheDir ?? path5.join(canvasRoot, ".cache");
1671
+ const engine = createEngineFromEnv({
1672
+ cacheDir,
1673
+ outputsDir: opts.outputsDir ?? canvasRoot,
1674
+ log: (line) => process.stdout.write(`${line}
1675
+ `),
1676
+ remoteCache: opts.remoteCache
1677
+ });
1678
+ const validation = await engine.validateDeep(parsed);
1679
+ if (!validation.ok) {
1680
+ process.stderr.write(
1681
+ `${JSON.stringify({ ok: false, error: { code: "validation", issues: validation.issues } }, null, 2)}
1682
+ `
1683
+ );
1684
+ process.exit(2);
1685
+ }
1686
+ const advisories = (validation.warnings ?? []).filter((w) => w.code !== "ORPHAN_NODE");
1687
+ for (const w of [...advisories, ...await outputRatioWarningsFor(parsed, filePath)]) {
1688
+ process.stdout.write(`[warn] ${w.code}: ${w.message}
1689
+ `);
1690
+ }
1691
+ const canvasSha = sha256Hex(Buffer.from(canvasText));
1692
+ const sourceSha = prepared.sourceSha;
1693
+ const client = opts.record === false ? null : buildBackendClient();
1694
+ const outputsDir = opts.outputsDir ? path5.resolve(opts.outputsDir) : canvasRoot;
1695
+ const { runId, resumed, source, sameSource, concurrentRunId, rendering } = await resolveRunId({
1696
+ explicitRunId: opts.runId,
1697
+ adoptedRunId: adoptRunId,
1698
+ fresh: opts.fresh === true || fixInstruction !== void 0 || opts.useVariant !== void 0 || relaidFrom !== void 0,
1699
+ outputsDir,
1700
+ canvasPath: filePath,
1701
+ sourceSha,
1702
+ remote: client && creativeSlug && sourceSha ? { creativeSlug, sourceSha, getActiveRun: (slug, sha) => client.getActiveRun(slug, sha) } : void 0
1703
+ });
1704
+ const holder = rendering ?? await canvasBusyElsewhere(outputsDir, filePath);
1705
+ if (holder) {
1706
+ process.stderr.write(
1707
+ `${JSON.stringify(
1708
+ {
1709
+ ok: false,
1710
+ error: {
1711
+ code: "CONFLICT",
1712
+ message: `This canvas is already rendering in another process (run ${holder.runId}, pid ${holder.pid}).`,
1713
+ fix: "Wait for that render to finish and use its result instead of starting a second one: two renders of one canvas share a run and overwrite each other. If you started it in the background, read its output when it completes."
1714
+ }
1715
+ },
1716
+ null,
1717
+ 2
1718
+ )}
1719
+ `
1720
+ );
1721
+ process.exit(2);
1722
+ }
1723
+ const viewerUsage = [];
1724
+ const viewerCheck = creativeSlug && isStaticAdCanvas(parsed) ? await viewerCheckBeforeRender({
1725
+ creativeDir: path5.dirname(filePath),
1726
+ cacheDir,
1727
+ slug: creativeSlug,
1728
+ skip: viewerCheckSkip({
1729
+ fix: opts.fix !== void 0,
1730
+ useVariant: opts.useVariant !== void 0,
1731
+ relaid: relaidFrom !== void 0,
1732
+ autoFixRound: opts.autoFixRound ?? 0,
1733
+ resumed: resumed && sameSource === true,
1734
+ asked: opts.skipViewerCheck === true
1735
+ }),
1736
+ spent: viewerChecksSpent(await readTurnRenders(turnCache), turnId, creativeSlug),
1737
+ lookups: liveViewerLookups(path5.dirname(canvasRoot)),
1738
+ model: VIEWER_CHECK_MODEL,
1739
+ ask: gatewayViewerModel(VIEWER_CHECK_MODEL, (usage) => viewerUsage.push(usage)),
1740
+ judge: jevReadJudge((usage) => viewerUsage.push(usage))
1741
+ }) : null;
1742
+ for (const line of viewerCheck?.lines ?? []) process.stdout.write(`${line}
1743
+ `);
1744
+ await holdUnbilledSpend(cacheDir, viewerUsage);
1745
+ if (viewerCheck?.failure) {
1746
+ if (creativeSlug && turnId && viewerCheck.failure.error.code === "viewer_check_failed") {
1747
+ await updateTurnRenders(turnCache, (ledger) => recordViewerFail(ledger, turnId, creativeSlug));
1748
+ }
1749
+ process.stderr.write(`${JSON.stringify(viewerCheck.failure, null, 2)}
1750
+ `);
1751
+ process.exit(2);
1752
+ }
1753
+ if (resumed) {
1754
+ process.stdout.write(
1755
+ `[resume] continuing interrupted run ${runId}${source === "remote" ? " (adopted from run history)" : ""} \u2014 in-flight jobs re-attach, cached nodes skip
1756
+ `
1757
+ );
1758
+ }
1759
+ if (concurrentRunId) {
1760
+ process.stderr.write(
1761
+ `[concurrent] this canvas appears to be running elsewhere right now (run ${concurrentRunId}) \u2014 starting a separate run; pass --run-id ${concurrentRunId} to adopt it instead
1762
+ `
1763
+ );
1764
+ }
1765
+ const abort = new AbortController();
1766
+ let abortedBy = null;
1767
+ for (const signalName of ["SIGINT", "SIGTERM"]) {
1768
+ process.once(signalName, () => {
1769
+ abortedBy = signalName;
1770
+ process.stderr.write(`[interrupt] ${signalName} received \u2014 flushing a resumable snapshot (repeat to force-quit)
1771
+ `);
1772
+ abort.abort(new Error(`aborted by ${signalName}`));
1773
+ });
1774
+ }
1775
+ const inFlight = await markRunInFlight(outputsDir, filePath, runId, sourceSha);
1776
+ if (!canvasHeld) {
1777
+ const held2 = await markCanvasBusy(outputsDir, filePath, runId);
1778
+ canvasHeld = true;
1779
+ process.once("exit", held2.release);
1780
+ }
1781
+ const clearMarker = () => {
1782
+ inFlight.stop();
1783
+ return clearRunMarker(outputsDir, filePath, inFlight.token);
1784
+ };
1785
+ const snapshot = client && creativeSlug ? await uploadRunSnapshot(client, {
1786
+ canvasPath: filePath,
1787
+ raw: canvasText,
1788
+ creativeSlug,
1789
+ parsed,
1790
+ previous: (await readRenderState(canvasRoot, creativeSlug)).snapshot
1791
+ }) : null;
1792
+ if (snapshot && creativeSlug) await recordSnapshot(canvasRoot, creativeSlug, snapshot);
1793
+ const graphUrl = client && creativeSlug && isStaticAdCanvas(parsed) ? await uploadRunGraph(client, parsed) : null;
1794
+ const recordMeta = {
1795
+ creativeSlug,
1796
+ canvasPath: path5.relative(path5.dirname(canvasRoot), filePath) || void 0,
1797
+ canvasSha,
1798
+ // The fingerprint the dashboard compares against the current source to flag
1799
+ // "edited since last render": the same `computeSourceSha` the edit-sync posts,
1800
+ // taken after the preflight wrote the projected graph, so the two are comparable.
1801
+ sourceSha,
1802
+ chatId: optionalChatId(),
1803
+ canvasSnapshotUrl: snapshot?.url,
1804
+ ...graphUrl ? { graphUrl } : {},
1805
+ ...newAsk ? { newAsk: true } : {},
1806
+ ...creativeSlug ? { rules: { digest: rulesDigest(held.rules), ids: held.rules.slice(0, RECORDED_RULE_IDS).map((r) => r.id) } } : {}
1807
+ };
1808
+ if (client) {
1809
+ const registered = await postInitialRunRecord(client, buildInitialRunRecord(runId, recordMeta));
1810
+ if (!registered) {
1811
+ process.stderr.write(
1812
+ "[warn] run start not registered \u2014 this run stays invisible to the dashboard until a later progress post lands, and cannot be resumed from another workspace\n"
1813
+ );
1814
+ }
1815
+ }
1816
+ const leadRun = seriesOf(parsed)?.run_id;
1817
+ if (creativeSlug && leadRun) await recordSeriesLeadRun(canvasRoot, creativeSlug, leadRun);
1818
+ const record = client ? (payload) => client.recordRun(payload) : null;
1819
+ const finalLabels = finalOutputLabelsFromCanvas(parsed) ?? void 0;
1820
+ const progress = record ? new RunProgressTracker(runId, recordMeta, finalLabels) : null;
1821
+ const poster = record ? new RunRecordPoster(record) : null;
1822
+ const flushBilled = async (p, payload) => {
1823
+ const failure = await sendBillingSpend(cacheDir, payload.reviewUsage ?? [], () => p.flush(payload));
1824
+ if (failure !== null) process.stderr.write(`[warn] run record not persisted (${failure})
1825
+ `);
1826
+ };
1827
+ if (progress && poster) {
1828
+ poster.startKeepalive(() => progress.hasPlan() ? progress.snapshot() : null);
1829
+ }
1830
+ const frameUrls = [];
1831
+ let next = null;
1832
+ const madeHere = grown ? madeThisRun({ canvas: parsed, pinned: grown.pinned }) : parsed;
1833
+ const readerSpend = holdWhenSettled(cacheDir, (run, outputs) => prefilterSpend(madeHere, { [run.node_id]: outputs }, [run]));
1834
+ const isFrameNode = (id) => parsed.nodes?.find((n) => n.id === id)?.type === "image_generate";
1835
+ try {
1836
+ const policy = opts.cachePolicy ?? "read_write";
1837
+ const result = await engine.run(parsed, {
1838
+ run_id: runId,
1839
+ signal: abort.signal,
1840
+ cache_policy: policy,
1841
+ ...stopBeforeKinds(opts.until) ? { stop_before_kinds: stopBeforeKinds(opts.until) } : {},
1842
+ concurrency: resolveConcurrency(opts.concurrency, process.env.BAKER_CANVAS_CONCURRENCY),
1843
+ regenerate,
1844
+ ...grown ? { pinned: grown.pinned } : {},
1845
+ // Always set, because the frame collector has to run whether or not this run is
1846
+ // reporting progress to a backend — without it a checkpoint stops with nothing to
1847
+ // show, which is the only thing a checkpoint is for.
1848
+ onProgress: (event) => {
1849
+ if (event.kind === "node_settled") readerSpend.settled(event.run, event.outputs);
1850
+ if (event.kind === "node_settled" && isFrameNode(event.run.node_id)) {
1851
+ for (const out of Object.values(event.outputs ?? {})) {
1852
+ const url = out?.url;
1853
+ if (url) frameUrls.push(url);
1854
+ }
1855
+ }
1856
+ if (progress && poster) {
1857
+ progress.apply(event);
1858
+ if (progress.hasPlan()) poster.enqueue(progress.snapshot());
1859
+ }
1860
+ }
1861
+ });
1862
+ await clearMarker();
1863
+ const beforeRunId = shown.rendered?.runId;
1864
+ if (creativeSlug) {
1865
+ const idea = await readIdeaAnchor(path5.dirname(filePath));
1866
+ await recordRendered(canvasRoot, creativeSlug, sourceSha, result.run_id, {
1867
+ ...promptNow ? { prompt: promptNow } : {},
1868
+ ...idea ? { anchor: idea.anchor, idea: anchorLines(idea.view) } : {},
1869
+ ...seriesOf(parsed)?.run_id ? { seriesLeadRun: seriesOf(parsed)?.run_id } : {},
1870
+ picture: pictureRecord(result.run_id, {
1871
+ chose: opts.useVariant !== void 0,
1872
+ of: shown.picture,
1873
+ from: fromRun,
1874
+ keeps: fixInstruction !== void 0 || relaidFrom !== void 0,
1875
+ redrawn: opts.autoFixKind === "regenerate"
1876
+ })
1877
+ });
1878
+ }
1879
+ const keepRuns = opts.keepRuns;
1880
+ if (keepRuns !== void 0 && Number.isFinite(keepRuns)) {
1881
+ await pruneOldRuns(outputsDir, keepRuns, result.run_id, (line) => process.stdout.write(`${line}
1882
+ `));
1883
+ }
1884
+ const reviewable = videoPathFromOutput(result.output);
1885
+ await readerSpend.drained();
1886
+ const reviewUsage = poster ? await takeUnbilledSpend(cacheDir) : [];
1887
+ const videoRules = held.rules;
1888
+ const review = reviewable ? await reviewRenderedVideo({
1889
+ video: reviewable,
1890
+ windows: await sceneWindowsBeside(filePath),
1891
+ ...await reviewContextBeside(filePath),
1892
+ rules: videoRules,
1893
+ checkStills: (stills, labels) => reviewAgainstRules({ stills, formats: labels, rules: videoRules, onSpend: (usage) => reviewUsage.push(usage) }),
1894
+ brief: opts.brief?.trim() || void 0,
1895
+ onSpend: (usage) => reviewUsage.push(usage)
1896
+ }) : null;
1897
+ const brandKit = reviewable ? null : await readStaticBrandKit(await findBrandRoot(path5.dirname(filePath)) ?? process.cwd());
1898
+ const runShape = {
1899
+ fix: fixInstruction !== void 0,
1900
+ useVariant: opts.useVariant !== void 0,
1901
+ sizesOnly: relaidFrom !== void 0 || opts.extendOnly === true || regenerate !== void 0 && relaysSizesOnly(parsed, [...regenerate])
1902
+ };
1903
+ const staticReview = reviewable ? null : await reviewStaticRun({
1904
+ parsed: madeHere,
1905
+ output: result.output,
1906
+ outputsByNode: result.outputs_by_node,
1907
+ onSpend: (usage) => reviewUsage.push(usage),
1908
+ viewer: viewerCheck?.viewer ?? null,
1909
+ ...brandKit?.name ? { brandName: brandKit.name } : {},
1910
+ ...brandKit?.lockup ? { lockup: brandKit.lockup } : {},
1911
+ // Only a new picture is compared with the last one: an edit, a fix, a chosen option or a
1912
+ // re-layout keeps it on purpose, and would read as "this retry changed nothing".
1913
+ ...beforeRunId && beforeRunId !== result.run_id && rendersNewPicture(runShape) ? { previous: await previousDelivered(canvasRoot, beforeRunId, finalLabels?.nodeId ?? "final", finalLabels?.labels ?? []) } : {},
1914
+ // A size this round did not touch keeps the last round's verdict: the review's second look at it is no defect of the round.
1915
+ ...opts.settledReview && opts.from ? {
1916
+ settled: {
1917
+ review: opts.settledReview,
1918
+ images: await previousDelivered(canvasRoot, opts.from, finalLabels?.nodeId ?? "final", finalLabels?.labels ?? [])
1919
+ }
1920
+ } : {}
1921
+ });
1922
+ const blockingNow = (staticReview?.review ?? []).filter((f) => f.severity === "blocking").map((f) => f.what);
1923
+ const stillThere = fixInstruction !== void 0 && staticReview?.review ? persistingDefects(memory.blocking, staticReview.review) : [];
1924
+ if (creativeSlug && staticReview) {
1925
+ await recordReviewOutcome(canvasRoot, creativeSlug, {
1926
+ blocking: blockingNow,
1927
+ ...fixInstruction !== void 0 ? { lastFix: { instruction: fixInstruction.trim(), blocking: stillThere } } : {}
1928
+ });
1929
+ }
1930
+ const costHint = staticReview ? runCostHint(result.stats, paidFor(runShape)) : null;
1931
+ const corrected = opts.autoFixed ?? [];
1932
+ const seriesRoot = creativeSlug && staticReview ? findWorkspaceRoot(path5.dirname(filePath)) : null;
1933
+ const seriesHints = seriesRoot && creativeSlug ? seriesRunHints(creativeSlug, {
1934
+ leads: await seriesLeadsAbove(seriesRoot, creativeSlug),
1935
+ members: await seriesMembers(seriesRoot, creativeSlug)
1936
+ }) : [];
1937
+ const unremoved = stillThere.length > 0 ? [
1938
+ `The fix did not remove ${stillThere.length === 1 ? "this" : "these"}: ${stillThere.join(" | ")}. The same instruction will not run again; change the approach (edit prompt.json so it cannot happen, or make only that size again with \`--regenerate\` on its size node).`
1939
+ ] : [];
1940
+ const reviewHints = staticReview ? [
1941
+ ...corrected.length > 0 ? [
1942
+ `Corrected automatically before this result, ${corrected.length} more render${corrected.length === 1 ? "" : "s"}: ${corrected.join(" Then ")} What follows is the review of the corrected version.`
1943
+ ] : [],
1944
+ ...staticReview.hints,
1945
+ ...costHint ? [costHint] : [],
1946
+ ...seriesHints,
1947
+ ...unremoved
1948
+ ] : reviewable ? review === null ? [RENDER_REVIEW_UNAVAILABLE] : review.length === 0 ? ["Reviewed the finished video frame by frame \u2014 nothing to report."] : [
1949
+ `Reviewed the finished video and found ${review.length} thing${review.length === 1 ? "" : "s"} to fix. Show the user what is wrong before you show them the ad.`,
1950
+ ...review.map((f) => `${f.severity === "blocking" ? "Must fix" : "Should fix"} \u2014 ${f.what}`),
1951
+ ...review.some((f) => f.scene) ? [
1952
+ `Anything about the mark or the closing card is a composition fix, not a re-render: both are drawn as HTML by the caption composition, so editing it and re-running re-renders only that pass \u2014 the clips are cached and no generation is paid for again. Fix them, then re-run: edit the \`show\` of the scene files named above \u2014 a shot with a person handling equipment is where limbs and objects go wrong, so widen it, move the hands out of frame, or drop the person from that beat. Re-running re-renders only the scenes you edited; everything else comes from the cache (this run: ${result.stats?.cached_nodes ?? 0} of ${result.stats?.total_nodes ?? 0} nodes were cached).`
1953
+ ] : []
1954
+ ] : [];
1955
+ const hints = [...runNotes, ...reviewHints];
1956
+ const brief = staticReview ? [
1957
+ ...runNotes,
1958
+ ...corrected.length > 0 ? [`Corrected automatically before this result, ${corrected.length} more render${corrected.length === 1 ? "" : "s"}; what follows is the review of the corrected version.`] : [],
1959
+ ...verdictBrief(staticReview.verdict, sizeShapeOf(madeHere)),
1960
+ ...staticReview.notes,
1961
+ ...seriesHints,
1962
+ ...unremoved
1963
+ ] : reviewable && review !== null && review.length > 0 ? [...runNotes, ...reviewHints.slice(0, 1)] : void 0;
1964
+ const lead = (hint) => {
1965
+ hints.unshift(hint);
1966
+ brief?.unshift(hint);
1967
+ };
1968
+ const findings = staticReview ? staticReview.review : review;
1969
+ const ready = staticReview ? staticReview.verdict === "ready" || staticReview.verdict === "ready_with_notes" : review !== null && !review.some((f) => f.severity === "blocking");
1970
+ const definitionStatus = ready && creativeSlug ? await advanceDefinitionStatus(path5.join(path5.dirname(filePath), "_definition.md"), "rendered") : null;
1971
+ if (poster) {
1972
+ await flushBilled(
1973
+ poster,
1974
+ // `review` is null only when nobody looked (no key, no ffmpeg, unreadable video);
1975
+ // an empty array is a render that was reviewed and came back clean. The record
1976
+ // has to keep those apart.
1977
+ buildRunRecord(
1978
+ result,
1979
+ {
1980
+ ...recordMeta,
1981
+ ...findings ? { review: findings } : {},
1982
+ ...reviewUsage.length > 0 ? { reviewUsage } : {},
1983
+ // A static ad that failed a check is never shown as a version (the backend reads both).
1984
+ ...staticReview ? { verdict: staticReview.verdict, presentable: staticReview.verdict !== "needs_fixes" } : {}
1985
+ },
1986
+ progress?.planInfo(),
1987
+ finalLabels
1988
+ )
1989
+ );
1990
+ }
1991
+ const round = opts.autoFixRound ?? 0;
1992
+ const keepPicture = opts.useVariant !== void 0 || opts.autoFixKeepPicture === true || (fixInstruction !== void 0 || relaidFrom !== void 0) && keepsChosen(shown.picture, fromRun);
1993
+ const attempts = staticReview?.review ? [...opts.autoFixAttempts ?? [], { runId: result.run_id, review: staticReview.review }] : [];
1994
+ const base = attempts.length > 0 ? correctFrom(attempts) : null;
1995
+ const reverted = base !== null && base.runId !== result.run_id;
1996
+ let step = staticReview && base && opts.autoFix !== false ? (
1997
+ // The graph the next round re-prepares (the file's), never this run's rewrite of it: a fix or a
1998
+ // re-layout takes the variants out of `parsed`, and only the file's graph can draw a new picture.
1999
+ autoFixStep(prepared.canvas, base.review, {
2000
+ round,
2001
+ keepPicture,
2002
+ // Gone back to an earlier attempt: what this round did and left is no longer the picture's.
2003
+ ...!reverted && opts.autoFixKind ? { previous: opts.autoFixKind } : {},
2004
+ ...!reverted && fixInstruction !== void 0 ? { lastFix: { instruction: fixInstruction.trim(), blocking: stillThere } } : {},
2005
+ tooFar: reverted ? [] : placedTooFar(parsed, result.outputs_by_node),
2006
+ fixedBefore: base.fixedBefore
2007
+ })
2008
+ ) : null;
2009
+ if (step && reverted && base) {
2010
+ process.stdout.write(
2011
+ `[autofix] run ${result.run_id} came out worse than run ${base.runId}: the next correction starts from run ${base.runId}
2012
+ `
2013
+ );
2014
+ }
2015
+ const outOfTime = step !== null && !roundFitsRun(Date.now() - startedAt, step.kind);
2016
+ if (outOfTime) {
2017
+ process.stdout.write(
2018
+ `[autofix] not started: this render has had its time (${Math.round((Date.now() - startedAt) / 6e4)} min). It stands as it is.
2019
+ `
2020
+ );
2021
+ lead(
2022
+ "This render's automatic corrections are out of time. Correct what is left with a run of your own (`--fix \"<what to change>\"`, or `--regenerate format_<size>` / `adapt_<size>` for one size); when this turn's runs for this ad are used up, show this version as it stands and say in one plain sentence what is left."
2023
+ );
2024
+ step = null;
2025
+ }
2026
+ if (!step && reverted && base) {
2027
+ lead(
2028
+ `Run ${base.runId} has fewer problems than this one: correct that one, never this one (add \`--from ${base.runId}\` to a --fix).`
2029
+ );
2030
+ }
2031
+ let respecced = null;
2032
+ const briefFindings = step?.kind === "respec" ? step.findings : step?.kind === "regenerate" ? step.brief ?? [] : [];
2033
+ const lost = [...new Set((base?.review ?? []).filter(lostVital).flatMap((f) => f.kind?.job ? [f.kind.job] : []))];
2034
+ if (briefFindings.length > 0) {
2035
+ const target = staticReviewTargets(parsed, result.output);
2036
+ const spent = [];
2037
+ respecced = target ? await repairSpec({
2038
+ promptPath: target.promptPath,
2039
+ findings: briefFindings,
2040
+ rejected: creativeSlug ? await readCaseFile(creativeSlug) : [],
2041
+ held,
2042
+ ...lost.length > 0 ? { restore: lost } : {},
2043
+ ...target.images[0] ? { image: target.images[0].path } : {},
2044
+ onSpend: (usage) => spent.push(usage)
2045
+ }) : null;
2046
+ if (spent.length > 0) await holdUnbilledSpend(cacheDir, spent);
2047
+ if (step?.kind === "respec" && respecced === null) step = null;
2048
+ }
2049
+ if (step && stopsWithoutRepair(base?.review ?? [], briefFindings, respecced !== null)) {
2050
+ process.stdout.write(
2051
+ "[autofix] stopped: what made the proven ad win is gone and no correction of prompt.json may restore it\n"
2052
+ );
2053
+ lead(
2054
+ "The automatic correction stopped: what made the proven ad win is gone and no correction of prompt.json may restore it, so a new picture from the same plan would come back without it."
2055
+ );
2056
+ step = null;
2057
+ }
2058
+ if (step) {
2059
+ const did = step.kind === "respec" ? `The spec was corrected: ${respecced}` : step.kind === "fix" ? `The picture was corrected for: ${step.instruction.replace(/^[^:]*: /, "")}` : step.kind === "regenerate" && relaysSizesOnly(parsed, regenerateTargets(parsed, step.ids).ids) ? `The ${step.ids.join(" and ")} ${step.ids.length === 1 ? "was" : "were"} made again from the same chosen picture, avoiding: ${step.note.replace(/^[^:]*: /, "")}` : step.kind === "regenerate" ? `${respecced ? `The spec was corrected (${respecced}) and a` : "A"} new picture was made, avoiding: ${step.note.replace(/^[^:]*: /, "")}` : step.kind === "extend" ? `The ${step.sizes.join(" and ")} ${step.sizes.length === 1 ? "was" : "were"} placed clear of what covers or cuts ${step.sizes.length === 1 ? "it" : "them"}, the margins painted to match.` : `The ${step.ids.map((id) => formatOfSizeNode(parsed, id) ?? id).join(" and ")} was edited: ${Object.values(step.edits).join(" ")}`;
2060
+ const files = finalFiles(result.output, finalLabels?.labels);
2061
+ process.stdout.write(
2062
+ `[autofix] round ${round + 1} of ${AUTO_FIX_ROUNDS}: run ${result.run_id} needs fixes. ${did} If the correction fails, run ${result.run_id} stands as the latest version: ${JSON.stringify(files)}
2063
+ `
2064
+ );
2065
+ next = {
2066
+ file: filePath,
2067
+ cacheDir: opts.cacheDir,
2068
+ outputsDir: opts.outputsDir,
2069
+ concurrency: opts.concurrency,
2070
+ keepRuns: opts.keepRuns,
2071
+ remoteCache: opts.remoteCache,
2072
+ record: opts.record,
2073
+ brief: opts.brief,
2074
+ full: opts.full,
2075
+ cachePolicy: opts.cachePolicy,
2076
+ fresh: true,
2077
+ from: base?.runId ?? result.run_id,
2078
+ autoFixRound: round + 1,
2079
+ autoFixAttempts: attempts,
2080
+ autoFixStartedAt: startedAt,
2081
+ autoFixed: [...corrected, did],
2082
+ autoFixKind: step.kind,
2083
+ ...base ? { settledReview: [...base.review] } : {},
2084
+ ...keepPicture ? { autoFixKeepPicture: true } : {},
2085
+ ...step.kind === "fix" ? {
2086
+ fix: step.instruction,
2087
+ ...step.relay ? { relayAlso: step.relay } : {},
2088
+ ...step.keep ? { keepSizes: step.keep } : {},
2089
+ ...step.extend ? { extendSizes: step.extend } : {}
2090
+ } : step.kind === "extend" ? { extendSizes: step.sizes, extendOnly: true } : step.kind === "relayout" ? {
2091
+ ...step.extend ? { extendSizes: step.extend } : {},
2092
+ regenerate: step.ids.join(","),
2093
+ relayEdits: step.edits,
2094
+ // A second edit of a size is told what the first asked for.
2095
+ ...opts.autoFixKind === "relayout" && opts.relayEdits ? { relayAsked: Object.fromEntries(Object.entries(opts.relayEdits).map(([id, asked]) => [id, [asked]])) } : {}
2096
+ } : step.kind === "regenerate" ? { regenerate: step.ids.join(","), relayNote: step.note, ...step.extend ? { extendSizes: step.extend } : {} } : {}
2097
+ };
2098
+ } else {
2099
+ if (creativeSlug && turnId && staticReview) {
2100
+ await updateTurnRenders(
2101
+ turnCache,
2102
+ (ledger) => recordTurnRender(ledger, turnId, creativeSlug, staticReview.verdict)
2103
+ );
2104
+ }
2105
+ if (brief && opts.full !== true) for (const hint of hints) process.stderr.write(`[hint] ${hint}
2106
+ `);
2107
+ process.stdout.write(
2108
+ `${JSON.stringify(
2109
+ runResult(
2110
+ {
2111
+ outputs_dir: result.outputs_dir,
2112
+ output: result.output,
2113
+ stats: result.stats,
2114
+ // The agent reads a finding's words; the review model's typed fields are the correction's.
2115
+ ...findings ? { review: findings.map(({ kind: _kind, ...finding }) => finding) } : {},
2116
+ ...staticReview?.judge?.length ? { judge: staticReview.judge } : {},
2117
+ ...definitionStatus === "updated" ? { definition_status: "rendered" } : {},
2118
+ hints,
2119
+ ...brief ? { brief } : {},
2120
+ // A static ad whose review found a blocking problem is finished but NOT ready.
2121
+ ...staticReview ? { verdict: staticReview.verdict } : {},
2122
+ run_id: result.run_id,
2123
+ files: finalFiles(result.output, finalLabels?.labels)
2124
+ },
2125
+ { full: opts.full === true }
2126
+ ),
2127
+ null,
2128
+ 2
2129
+ )}
2130
+ `
2131
+ );
2132
+ }
2133
+ } catch (e) {
2134
+ const failedPayload = async (message) => {
2135
+ await readerSpend.drained();
2136
+ const payload = progress?.hasPlan() ? progress.failedSnapshot(message) : buildFailedRunRecord(runId, message, recordMeta);
2137
+ const held2 = await takeUnbilledSpend(cacheDir);
2138
+ return held2.length > 0 ? { ...payload, reviewUsage: held2 } : payload;
2139
+ };
2140
+ if (e instanceof RunAbortedError && e.reason === "signal") {
2141
+ const message = `Interrupted${abortedBy ? ` by ${abortedBy}` : ""} \u2014 re-run \`baker canvas run\` to resume; in-flight jobs re-attach, completed nodes come from the cache.`;
2142
+ if (poster) await flushBilled(poster, { ...await failedPayload(message), interrupted: true });
2143
+ process.stderr.write(`${JSON.stringify({ ok: false, error: { code: "interrupted", message } }, null, 2)}
2144
+ `);
2145
+ process.exit(abortedBy === "SIGTERM" ? 143 : 130);
2146
+ }
2147
+ if (e instanceof RunAbortedError && e.reason === "checkpoint") {
2148
+ await clearMarker();
2149
+ if (poster) {
2150
+ await flushBilled(poster, {
2151
+ ...await failedPayload(`Frames ready to review before the clips. Resume with --run-id ${runId}.`),
2152
+ status: "awaiting_approval"
2153
+ });
2154
+ }
2155
+ const frames = frameUrls;
2156
+ process.stdout.write(
2157
+ `${JSON.stringify(
2158
+ {
2159
+ ok: true,
2160
+ data: { stopped: "frames", runId, frames },
2161
+ hints: [
2162
+ `${e.message}`,
2163
+ frames.length > 0 ? `Review these ${frames.length} frames against the brief and Brand, fix any defects, then resume immediately with the same run id. Wait for the user only when they explicitly requested storyboards only or a review before continuing; do not ask them to choose a version.` : "No frame outputs were captured \u2014 carry on rather than blocking on nothing.",
2164
+ `Carry on with: baker canvas run ${filePath} --run-id ${runId}`
2165
+ ]
2166
+ },
2167
+ null,
2168
+ 2
2169
+ )}
2170
+ `
2171
+ );
2172
+ process.exit(0);
2173
+ }
2174
+ await clearMarker();
2175
+ if (e instanceof ValidationError) {
2176
+ process.stderr.write(
2177
+ `${JSON.stringify({ ok: false, error: { code: "validation", issues: e.issues } }, null, 2)}
2178
+ `
2179
+ );
2180
+ process.exit(2);
2181
+ }
2182
+ if (e instanceof LayerExecutionError) {
2183
+ const failures = e.failures.map((f) => ({ node_id: f.nodeId, message: describeFailureReason(f.reason) }));
2184
+ if (poster) await flushBilled(poster, await failedPayload(e.message));
2185
+ process.stderr.write(
2186
+ `${JSON.stringify({ ok: false, error: { code: runFailureCode(e), message: e.message, failures } }, null, 2)}
2187
+ `
2188
+ );
2189
+ process.exit(1);
2190
+ }
2191
+ const msg = e instanceof Error ? e.message : String(e);
2192
+ if (poster) await flushBilled(poster, await failedPayload(msg));
2193
+ process.stderr.write(`${JSON.stringify({ ok: false, error: { code: runFailureCode(e), message: msg } }, null, 2)}
2194
+ `);
2195
+ process.exit(1);
2196
+ }
2197
+ if (next) await executeCanvasRun(next);
2198
+ }
2199
+ function canvasNodeIds(parsed) {
2200
+ const nodes = parsed?.nodes;
2201
+ if (!Array.isArray(nodes)) return [];
2202
+ return nodes.map((node) => node?.id).filter((id) => typeof id === "string");
2203
+ }
2204
+ function buildBackendClient() {
2205
+ try {
2206
+ const creds = requireCredentialsFromEnv();
2207
+ return new BackendClient({ baseUrl: creds.url, apiKey: creds.apiKey });
2208
+ } catch (e) {
2209
+ const msg = e instanceof Error ? e.message : String(e);
2210
+ process.stderr.write(`[warn] run history disabled (${msg})
2211
+ `);
2212
+ return null;
2213
+ }
2214
+ }
2215
+ var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
2216
+ async function postInitialRunRecord(client, payload) {
2217
+ for (let attempt = 0; attempt < 3; attempt++) {
2218
+ try {
2219
+ await client.recordRun(payload);
2220
+ return true;
2221
+ } catch {
2222
+ if (attempt < 2) await sleep(500 * 2 ** attempt);
2223
+ }
2224
+ }
2225
+ return false;
2226
+ }
2227
+
2228
+ export {
2229
+ runCommand,
2230
+ stopBeforeKinds,
2231
+ executeCanvasRun,
2232
+ buildBackendClient
2233
+ };
2234
+ //# sourceMappingURL=chunk-XGTZ3WQX.js.map