@koda-sl/baker-cli 0.570.0 → 0.571.0-dev.6a3439a0a

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 (872) hide show
  1. package/README.md +1 -1
  2. package/dist/account-EXGRZIXS.js +82 -0
  3. package/dist/account-JVDP5ERG.js +82 -0
  4. package/dist/account-reads-Z467VAL4.js +219 -0
  5. package/dist/account-users-342OZALE.js +64 -0
  6. package/dist/account-writes-KEXINJ5D.js +68 -0
  7. package/dist/accounts-QESGQJGZ.js +713 -0
  8. package/dist/accounts-QR6OQ3GC.js +119 -0
  9. package/dist/accounts-UWC2TT6R.js +80 -0
  10. package/dist/actions-NT3HXFFA.js +55 -0
  11. package/dist/activecampaign-EYRHDSXY.js +938 -0
  12. package/dist/ad-group-writes-SVR4RCKB.js +172 -0
  13. package/dist/ad-groups-C726HUXS.js +70 -0
  14. package/dist/ad-writes-RWJIWGEL.js +176 -0
  15. package/dist/add-EPOHDTUO.js +305 -0
  16. package/dist/add-NSW26HIM.js +107 -0
  17. package/dist/ads-3KK7VQPU.js +79 -0
  18. package/dist/ads-EWZGIC4T.js +48 -0
  19. package/dist/advertisers-AHOWL3YL.js +123 -0
  20. package/dist/analytics-7H6NDVUQ.js +447 -0
  21. package/dist/analytics-GFFXCMLV.js +2437 -0
  22. package/dist/animate-GTUI7XX4.js +480 -0
  23. package/dist/assign-SDPPWP3Q.js +80 -0
  24. package/dist/audience-size-LKDDHKED.js +76 -0
  25. package/dist/audiences-6L43K2T2.js +280 -0
  26. package/dist/audit-TSZIQTUB.js +154 -0
  27. package/dist/autocomplete-5BSAOAMZ.js +114 -0
  28. package/dist/avatars-S6RRD7M3.js +38 -0
  29. package/dist/bid-pricing-5KUAINH4.js +103 -0
  30. package/dist/brand-KFK2MQWW.js +22 -0
  31. package/dist/brief-6DV2PKAU.js +543 -0
  32. package/dist/campaign-groups-5RPZPDNW.js +99 -0
  33. package/dist/campaign-writes-FUIGN5OR.js +176 -0
  34. package/dist/campaign-writes-XMYBEVZF.js +168 -0
  35. package/dist/campaigns-5A3IE735.js +111 -0
  36. package/dist/campaigns-JNP3VDZK.js +113 -0
  37. package/dist/campaigns-N2SWSBYT.js +78 -0
  38. package/dist/canvas-CHFNQTLY.js +46 -0
  39. package/dist/capabilities-2W3SRZ2I.js +147 -0
  40. package/dist/catalog-6BER3SF7.js +66 -0
  41. package/dist/catalogs-G5NOKL4L.js +130 -0
  42. package/dist/changes-AS4RVEAL.js +167 -0
  43. package/dist/chatgpt-O6EEAYLF.js +47 -0
  44. package/dist/chats-4JLWMUAC.js +584 -0
  45. package/dist/check-BOKLY5WG.js +107 -0
  46. package/dist/chunk-3KUNRKNV.js +430 -0
  47. package/dist/chunk-3UNMVVSI.js +917 -0
  48. package/dist/chunk-3UNMVVSI.js.map +1 -0
  49. package/dist/chunk-4INBMXUS.js +930 -0
  50. package/dist/chunk-5NMKNHJI.js +46 -0
  51. package/dist/chunk-6D7WTUF3.js +98 -0
  52. package/dist/chunk-6DSPB6YA.js +7904 -0
  53. package/dist/chunk-6DSPB6YA.js.map +1 -0
  54. package/dist/chunk-6FQ7CJEX.js +57 -0
  55. package/dist/chunk-6OIKNJ7G.js +26 -0
  56. package/dist/chunk-6OZDN2FI.js +19 -0
  57. package/dist/chunk-75OGTGC4.js +89 -0
  58. package/dist/chunk-AXLKR3E4.js +66 -0
  59. package/dist/chunk-BEZEZHQ6.js +455 -0
  60. package/dist/chunk-BMK4F4CU.js +169 -0
  61. package/dist/chunk-C52Q3L4C.js +51 -0
  62. package/dist/chunk-CST52ZME.js +142 -0
  63. package/dist/chunk-CUTTTFAU.js +783 -0
  64. package/dist/chunk-D32EWSMB.js +150 -0
  65. package/dist/chunk-DW3H2XQA.js +91 -0
  66. package/dist/chunk-EAA273XW.js +2250 -0
  67. package/dist/chunk-EAA273XW.js.map +1 -0
  68. package/dist/chunk-EM5R3BYC.js +131 -0
  69. package/dist/chunk-EMR5KGNY.js +685 -0
  70. package/dist/chunk-EONUZOJV.js +962 -0
  71. package/dist/chunk-F3CZFUXZ.js +3187 -0
  72. package/dist/chunk-F3CZFUXZ.js.map +1 -0
  73. package/dist/chunk-GRX3JXSR.js +843 -0
  74. package/dist/chunk-H4RHZJ65.js +207 -0
  75. package/dist/chunk-HFIHXIYY.js +547 -0
  76. package/dist/chunk-HOA74TOS.js +249 -0
  77. package/dist/chunk-HQDNDKNR.js +5471 -0
  78. package/dist/chunk-HXSYWXLH.js +709 -0
  79. package/dist/chunk-I3QLWGKS.js +64 -0
  80. package/dist/chunk-IMS53EQU.js +4277 -0
  81. package/dist/chunk-IMS53EQU.js.map +1 -0
  82. package/dist/chunk-J4AWNWKN.js +1919 -0
  83. package/dist/chunk-JAK5VDSG.js +103 -0
  84. package/dist/chunk-JGSEHX2Q.js +3107 -0
  85. package/dist/chunk-JGSEHX2Q.js.map +1 -0
  86. package/dist/chunk-JLAFNORO.js +285 -0
  87. package/dist/chunk-KG5VNPKU.js +91 -0
  88. package/dist/chunk-KJHG2DWS.js +170 -0
  89. package/dist/chunk-LAMSUL26.js +1518 -0
  90. package/dist/chunk-LLTHDEM2.js +479 -0
  91. package/dist/chunk-M5PZ6QQB.js +312 -0
  92. package/dist/chunk-MFGUR5OD.js +334 -0
  93. package/dist/chunk-MZLPOYCC.js +10058 -0
  94. package/dist/chunk-MZLPOYCC.js.map +1 -0
  95. package/dist/chunk-NOCBNING.js +638 -0
  96. package/dist/chunk-NWLK5RPA.js +197 -0
  97. package/dist/chunk-PR5OPERY.js +167 -0
  98. package/dist/chunk-QGAUDVMR.js +148 -0
  99. package/dist/chunk-QRRAMUKV.js +468 -0
  100. package/dist/chunk-QZ4YHQLW.js +63 -0
  101. package/dist/chunk-RGLTITIH.js +494 -0
  102. package/dist/chunk-RIVQ4PQQ.js +225 -0
  103. package/dist/chunk-RLLPY62L.js +163 -0
  104. package/dist/chunk-RQHXWPET.js +61 -0
  105. package/dist/chunk-RULW4627.js +23 -0
  106. package/dist/chunk-S4RCF3YT.js +156 -0
  107. package/dist/chunk-SIKCVWM3.js +76 -0
  108. package/dist/chunk-TCLJRWST.js +831 -0
  109. package/dist/chunk-UVUY6FLV.js +1254 -0
  110. package/dist/chunk-V4HS5JRL.js +1320 -0
  111. package/dist/chunk-WTOBG3YL.js +392 -0
  112. package/dist/chunk-WYMX3F47.js +399 -0
  113. package/dist/chunk-WZXMZFVB.js +238 -0
  114. package/dist/chunk-X5YHMGAT.js +224 -0
  115. package/dist/chunk-X7USE7IA.js +24026 -0
  116. package/dist/chunk-X7USE7IA.js.map +1 -0
  117. package/dist/chunk-XA7JN7YE.js +297 -0
  118. package/dist/chunk-XHAGX4J4.js +604 -0
  119. package/dist/chunk-XY7W6MQN.js +274 -0
  120. package/dist/chunk-YAINUFSC.js +203 -0
  121. package/dist/chunk-Z5BG47PO.js +5752 -0
  122. package/dist/chunk-Z5BG47PO.js.map +1 -0
  123. package/dist/chunk-Z7ICQKC2.js +344 -0
  124. package/dist/chunk-ZBXV2KOQ.js +220 -0
  125. package/dist/chunk-ZMNRSTNV.js +454 -0
  126. package/dist/claim-L4WLCVUL.js +200 -0
  127. package/dist/cli.js +32 -32
  128. package/dist/companies-HW46BRQG.js +198 -0
  129. package/dist/company-KCIDE7SL.js +308 -0
  130. package/dist/complete-JXM25FVW.js +84 -0
  131. package/dist/connect-7TX7AAM5.js +45 -0
  132. package/dist/conversation-YIDUB6GL.js +96 -0
  133. package/dist/conversion-report-33SG7SHU.js +127 -0
  134. package/dist/conversion-upload-command-N3OMLLF2.js +439 -0
  135. package/dist/conversion-writes-XGGTBML5.js +122 -0
  136. package/dist/conversions-F4OZYUCT.js +140 -0
  137. package/dist/conversions-PPP4QK7U.js +78 -0
  138. package/dist/create-6EAKNERA.js +239 -0
  139. package/dist/create-772LZHZR.js +218 -0
  140. package/dist/create-FDNMIVFX.js +62 -0
  141. package/dist/create-X2QM7GA7.js +135 -0
  142. package/dist/creatives-K2AAW6EL.js +58 -0
  143. package/dist/creatives-SNYN4KIM.js +229 -0
  144. package/dist/credentials-KZZVBO42.js +290 -0
  145. package/dist/critique-G5QXRHPF.js +1451 -0
  146. package/dist/critique-PUHOJI7V.js +232 -0
  147. package/dist/crm-4LZZVT4N.js +229 -0
  148. package/dist/crm-M6NXDU5B.js +323 -0
  149. package/dist/currency-HK2ZW2VW.js +88 -0
  150. package/dist/customers-V5NT4W7X.js +65 -0
  151. package/dist/delete-GQIKNO53.js +57 -0
  152. package/dist/delete-LFZIPQEO.js +69 -0
  153. package/dist/delete-YOEI63OT.js +67 -0
  154. package/dist/demographics-CEQ74O74.js +141 -0
  155. package/dist/discard-5GDF3TP3.js +69 -0
  156. package/dist/discover-Q5PAOIQQ.js +172 -0
  157. package/dist/domain-PKOUPHHF.js +101 -0
  158. package/dist/download-2WNTN7JQ.js +172 -0
  159. package/dist/draft-CF4XNJG5.js +578 -0
  160. package/dist/draft-F4CVSL2I.js +332 -0
  161. package/dist/draft-L2NXCIYT.js +315 -0
  162. package/dist/draft-RZCTAOI2.js +374 -0
  163. package/dist/draft-UEVBUNKV.js +220 -0
  164. package/dist/engine/index.js +8 -8
  165. package/dist/experiments-DWC6L72S.js +236 -0
  166. package/dist/extract-6HJXSOZW.js +143 -0
  167. package/dist/facets-TBOXGYJT.js +117 -0
  168. package/dist/feedback-MSMFYAEY.js +114 -0
  169. package/dist/feedback-WAC6S42V.js +115 -0
  170. package/dist/feedback-record-XRQ2R2WD.js +269 -0
  171. package/dist/fetch-LGX7B3IC.js +204 -0
  172. package/dist/fit-RVWPRBNO.js +65 -0
  173. package/dist/flows-LA6EYMLS.js +340 -0
  174. package/dist/fonts-WRC34VSV.js +39 -0
  175. package/dist/forecast-6VHRGBJG.js +121 -0
  176. package/dist/forecast-OVKXBLJB.js +169 -0
  177. package/dist/funnel-U3GQIGND.js +397 -0
  178. package/dist/generate-Y4NJEYIH.js +263 -0
  179. package/dist/get-AHI247JG.js +82 -0
  180. package/dist/get-PF3HGECD.js +62 -0
  181. package/dist/google-BMUJKAUO.js +3300 -0
  182. package/dist/google-ZVAIFXQZ.js +163 -0
  183. package/dist/google-ads-6Z7P3SCD.js +198 -0
  184. package/dist/history-4QUV45ZJ.js +102 -0
  185. package/dist/history-PD7FCTDD.js +153 -0
  186. package/dist/history-VKRYKQ4C.js +69 -0
  187. package/dist/hubspot-WEFAFKVJ.js +814 -0
  188. package/dist/ideas-SMSEXKIA.js +45 -0
  189. package/dist/images-KAT4BPYV.js +92 -0
  190. package/dist/ingest-IHKTSJ4H.js +28 -0
  191. package/dist/ingest-TOHQ6MZA.js +131 -0
  192. package/dist/insights-3IPSEBYW.js +132 -0
  193. package/dist/inspect-5MZBPDYS.js +192 -0
  194. package/dist/intent-ZM4K623V.js +95 -0
  195. package/dist/keyword-gap-FAAF2I6V.js +130 -0
  196. package/dist/keyword-metrics-EXNJRJBY.js +200 -0
  197. package/dist/keywords-for-site-5LW77QWF.js +131 -0
  198. package/dist/landing-ZH4SD3DW.js +28 -0
  199. package/dist/languages-ZGDTERIQ.js +40 -0
  200. package/dist/leads-736RILZN.js +115 -0
  201. package/dist/learn-BESXWXEN.js +207 -0
  202. package/dist/line-item-writes-FA72DHNQ.js +211 -0
  203. package/dist/line-items-XVYE3IYT.js +107 -0
  204. package/dist/link-6FPKFVC3.js +67 -0
  205. package/dist/linkedin-TE6P4RYN.js +1344 -0
  206. package/dist/linkedin-person-TZJ6VEXE.js +139 -0
  207. package/dist/list-4R5EMKUQ.js +154 -0
  208. package/dist/list-MN2FPF3T.js +306 -0
  209. package/dist/list-ORO4WDF4.js +67 -0
  210. package/dist/locations-A65MFB7Q.js +69 -0
  211. package/dist/locations-WN6B3IJK.js +40 -0
  212. package/dist/log-ABBZLPRU.js +95 -0
  213. package/dist/make-QAFKU6WO.js +1367 -0
  214. package/dist/map-52P35OKE.js +445 -0
  215. package/dist/mcp-PZ3VBIF4.js +729 -0
  216. package/dist/media-sources-TT374PLN.js +35 -0
  217. package/dist/members-CF6VG6ZW.js +47 -0
  218. package/dist/metrics-3U3ZO2RF.js +152 -0
  219. package/dist/models-VOSJJFO2.js +155 -0
  220. package/dist/normalize-4LZCLMTQ.js +144 -0
  221. package/dist/options-6IRL7CL6.js +125 -0
  222. package/dist/organization-WMLLJE66.js +949 -0
  223. package/dist/performance-A7CYFBW2.js +5565 -0
  224. package/dist/performance-HYSTXLTS.js +27 -0
  225. package/dist/pixels-U6UA662G.js +62 -0
  226. package/dist/preview-76ZP2QA3.js +101 -0
  227. package/dist/promoted-tweet-writes-I5G4IDL5.js +183 -0
  228. package/dist/promoted-tweets-X5XNO7IT.js +119 -0
  229. package/dist/publish-S2Z4EF4H.js +350 -0
  230. package/dist/query-SAQADBM2.js +62 -0
  231. package/dist/reddit-S2L5WDY7.js +29 -0
  232. package/dist/refresh-K2YTJSH3.js +97 -0
  233. package/dist/release-FX76IIVN.js +63 -0
  234. package/dist/relevant-pages-KTSODNNW.js +99 -0
  235. package/dist/remove-LOVWPLDO.js +53 -0
  236. package/dist/reopen-DXV2Y6Z3.js +66 -0
  237. package/dist/rerun-TFQCRRFK.js +97 -0
  238. package/dist/research-7PGDAKC7.js +265 -0
  239. package/dist/research-HY5PSUCC.js +75 -0
  240. package/dist/reset-MEHUQJA4.js +57 -0
  241. package/dist/reset-Y5VZJRDQ.js +57 -0
  242. package/dist/resolve-FAVABEJW.js +124 -0
  243. package/dist/retry-5IY4MNDW.js +65 -0
  244. package/dist/retry-OMJ3C3AX.js +63 -0
  245. package/dist/revenue-S4KFZCOI.js +91 -0
  246. package/dist/rules-66IGR2KA.js +99 -0
  247. package/dist/rules-add-G7YGOYZJ.js +465 -0
  248. package/dist/run-LJVBH3JS.js +72 -0
  249. package/dist/run-XJBWDWN6.js +69 -0
  250. package/dist/scaffold-ad-GNMCB3QY.js +1513 -0
  251. package/dist/scaffold-static-ad-QIWKWURL.js +1013 -0
  252. package/dist/scaffold-static-ad-QIWKWURL.js.map +1 -0
  253. package/dist/scaffold-video-G6G2NPUF.js +885 -0
  254. package/dist/schedule-OX5XHXLH.js +64 -0
  255. package/dist/scheduled-agents-A5ZFQB5X.js +55 -0
  256. package/dist/schema-NTGHAPR2.js +135 -0
  257. package/dist/search-WCXQBMMM.js +177 -0
  258. package/dist/select-5ZD7FVBT.js +110 -0
  259. package/dist/set-prompt-NGCVMQIQ.js +199 -0
  260. package/dist/setup-links-4HCSF55G.js +144 -0
  261. package/dist/shopify-GDR5WGHH.js +4009 -0
  262. package/dist/site-B7LT6KAO.js +180 -0
  263. package/dist/sources-6DPUEROC.js +30 -0
  264. package/dist/sources-OSUXCLID.js +457 -0
  265. package/dist/stale-YKFKPPOH.js +90 -0
  266. package/dist/status-KIC3P5JV.js +65 -0
  267. package/dist/stock-VWFUFRYV.js +212 -0
  268. package/dist/studio-XLC37YGX.js +49 -0
  269. package/dist/sync-QBW4XH2H.js +57 -0
  270. package/dist/sync-definition-4KMJK46H.js +70 -0
  271. package/dist/tags-4F5UBPYG.js +227 -0
  272. package/dist/tags-4O5FPEEY.js +26 -0
  273. package/dist/tags-7RKKCQ4X.js +23 -0
  274. package/dist/tags-CB4MWI3A.js +23 -0
  275. package/dist/tags-QZJIP4LJ.js +23 -0
  276. package/dist/targeting-criteria-65UU7EYD.js +113 -0
  277. package/dist/targets-T742OPQI.js +106 -0
  278. package/dist/testimonials-HKJJXONO.js +32 -0
  279. package/dist/themes-Q6LVMEMF.js +95 -0
  280. package/dist/top-companies-T6AMU4C6.js +111 -0
  281. package/dist/transcript-DOUYMZAP.js +165 -0
  282. package/dist/translate-WKOXFZTQ.js +603 -0
  283. package/dist/triggers-EYY4GSUL.js +144 -0
  284. package/dist/unlink-JNM4WRZK.js +70 -0
  285. package/dist/unstage-QF4JT5YP.js +88 -0
  286. package/dist/update-6V3RBRIE.js +101 -0
  287. package/dist/update-J4DURR4K.js +192 -0
  288. package/dist/update-J7Y6LZC5.js +155 -0
  289. package/dist/update-MQ4NYIU6.js +66 -0
  290. package/dist/upload-CEIYYPID.js +137 -0
  291. package/dist/url-options-6WC2XQKB.js +131 -0
  292. package/dist/url-params-OVBIP6UA.js +101 -0
  293. package/dist/validate-UHXI2ESE.js +135 -0
  294. package/dist/videos-Z72RXCRB.js +41 -0
  295. package/dist/viewer-check-655BZRML.js +83 -0
  296. package/dist/web-4QN6QB7L.js +173 -0
  297. package/dist/winning-ads-2J2RIOLR.js +86 -0
  298. package/dist/write-commands-V7B4FBMX.js +1524 -0
  299. package/dist/x-7KXNCWTJ.js +47 -0
  300. package/package.json +1 -1
  301. package/dist/account-52WDLW4Z.js +0 -82
  302. package/dist/account-7KZ7MHMN.js +0 -82
  303. package/dist/account-reads-RXF37O4N.js +0 -219
  304. package/dist/account-users-NUI3ILRE.js +0 -64
  305. package/dist/account-writes-3BJSUM2V.js +0 -68
  306. package/dist/accounts-FLKNFDIE.js +0 -713
  307. package/dist/accounts-I2ZLR76R.js +0 -80
  308. package/dist/accounts-ZV4IXOF5.js +0 -119
  309. package/dist/actions-IR47GVZ6.js +0 -55
  310. package/dist/activecampaign-MNJYIWJL.js +0 -938
  311. package/dist/ad-group-writes-KU4QMQZP.js +0 -172
  312. package/dist/ad-groups-NMW2G32A.js +0 -70
  313. package/dist/ad-writes-7NOFTOM4.js +0 -176
  314. package/dist/add-4I25INAO.js +0 -107
  315. package/dist/add-QMTD6EGI.js +0 -305
  316. package/dist/ads-BT2DF3XN.js +0 -48
  317. package/dist/ads-P4Z3MLKS.js +0 -79
  318. package/dist/advertisers-LOIXTTGP.js +0 -123
  319. package/dist/analytics-6AHC3J4L.js +0 -447
  320. package/dist/analytics-NL2KGDLK.js +0 -2437
  321. package/dist/animate-VX7E7KJE.js +0 -480
  322. package/dist/assign-NKHIHVGI.js +0 -80
  323. package/dist/audience-size-WEOM6XIL.js +0 -76
  324. package/dist/audiences-P3SPTAJT.js +0 -280
  325. package/dist/audit-4RIBJ7BR.js +0 -154
  326. package/dist/autocomplete-FMTJDXTL.js +0 -114
  327. package/dist/avatars-LY5SFMWO.js +0 -38
  328. package/dist/bid-pricing-MQ7WLV5U.js +0 -103
  329. package/dist/brand-LR5IXW3W.js +0 -22
  330. package/dist/brief-4DSXIX3F.js +0 -543
  331. package/dist/campaign-groups-EZYLKMO2.js +0 -99
  332. package/dist/campaign-writes-P5XPFTRK.js +0 -176
  333. package/dist/campaign-writes-UMENYMKO.js +0 -168
  334. package/dist/campaigns-PP2DQMJE.js +0 -113
  335. package/dist/campaigns-SWZJVE2T.js +0 -78
  336. package/dist/campaigns-TAFDM242.js +0 -111
  337. package/dist/canvas-RKR3ZB4E.js +0 -46
  338. package/dist/capabilities-45RZ6E6W.js +0 -147
  339. package/dist/catalog-TOHUVBEU.js +0 -66
  340. package/dist/catalogs-V7PTEJBO.js +0 -130
  341. package/dist/changes-5OW3UYMF.js +0 -167
  342. package/dist/chatgpt-JBMYNVJB.js +0 -47
  343. package/dist/chats-VOLBYA3R.js +0 -584
  344. package/dist/check-4DI73QX4.js +0 -107
  345. package/dist/chunk-22RM3UOO.js +0 -63
  346. package/dist/chunk-2N7TB346.js +0 -5368
  347. package/dist/chunk-2N7TB346.js.map +0 -1
  348. package/dist/chunk-2Q7K4F4H.js +0 -7899
  349. package/dist/chunk-2Q7K4F4H.js.map +0 -1
  350. package/dist/chunk-2TS2ITSG.js +0 -392
  351. package/dist/chunk-2YXTXSYG.js +0 -454
  352. package/dist/chunk-2Z6PFHD2.js +0 -91
  353. package/dist/chunk-47VWQ7FQ.js +0 -843
  354. package/dist/chunk-4QFMRL6O.js +0 -455
  355. package/dist/chunk-5OC6VUDZ.js +0 -930
  356. package/dist/chunk-5VXEH72O.js +0 -249
  357. package/dist/chunk-B4BITHOD.js +0 -2235
  358. package/dist/chunk-B4BITHOD.js.map +0 -1
  359. package/dist/chunk-BFAPSFS7.js +0 -1518
  360. package/dist/chunk-BMMXYR7A.js +0 -238
  361. package/dist/chunk-BNEWJXKU.js +0 -638
  362. package/dist/chunk-BXTIG5JL.js +0 -66
  363. package/dist/chunk-C7KV5O5J.js +0 -274
  364. package/dist/chunk-CDPX6WAL.js +0 -207
  365. package/dist/chunk-COOJKEJE.js +0 -312
  366. package/dist/chunk-CTJWMZPL.js +0 -430
  367. package/dist/chunk-D5HD46VV.js +0 -163
  368. package/dist/chunk-EGICPBDY.js +0 -1920
  369. package/dist/chunk-EGICPBDY.js.map +0 -1
  370. package/dist/chunk-EKOMZH2S.js +0 -685
  371. package/dist/chunk-ELC42LJJ.js +0 -8954
  372. package/dist/chunk-ELC42LJJ.js.map +0 -1
  373. package/dist/chunk-G4FU6VC5.js +0 -23
  374. package/dist/chunk-H3RCEM6L.js +0 -61
  375. package/dist/chunk-H7LKYGLJ.js +0 -24026
  376. package/dist/chunk-H7LKYGLJ.js.map +0 -1
  377. package/dist/chunk-HI4SKWNW.js +0 -709
  378. package/dist/chunk-HM4NWA72.js +0 -5471
  379. package/dist/chunk-I33FO2ON.js +0 -170
  380. package/dist/chunk-IAE24RKD.js +0 -604
  381. package/dist/chunk-IGCS3X4F.js +0 -150
  382. package/dist/chunk-IJ6WA2JW.js +0 -148
  383. package/dist/chunk-ITIUWJGQ.js +0 -131
  384. package/dist/chunk-J4BJLHLQ.js +0 -3510
  385. package/dist/chunk-J4BJLHLQ.js.map +0 -1
  386. package/dist/chunk-JAC6JVCI.js +0 -26
  387. package/dist/chunk-JCDCIQMA.js +0 -479
  388. package/dist/chunk-JGK2FDZW.js +0 -1919
  389. package/dist/chunk-JSOOLOHP.js +0 -468
  390. package/dist/chunk-JT3UUBID.js +0 -142
  391. package/dist/chunk-KUI74TNG.js +0 -169
  392. package/dist/chunk-LAOCXV6Z.js +0 -98
  393. package/dist/chunk-LQACNCAV.js +0 -334
  394. package/dist/chunk-MC5F2L64.js +0 -962
  395. package/dist/chunk-MCJ5I5LR.js +0 -3187
  396. package/dist/chunk-MCJ5I5LR.js.map +0 -1
  397. package/dist/chunk-MKG57P2E.js +0 -783
  398. package/dist/chunk-MZPS46OR.js +0 -76
  399. package/dist/chunk-O2ECZKXP.js +0 -197
  400. package/dist/chunk-OJZKY5UM.js +0 -46
  401. package/dist/chunk-P4UCSXNA.js +0 -156
  402. package/dist/chunk-QLO4RNHU.js +0 -51
  403. package/dist/chunk-QSS34JWZ.js +0 -224
  404. package/dist/chunk-QVHZTCB5.js +0 -1254
  405. package/dist/chunk-RVIBHENP.js +0 -344
  406. package/dist/chunk-TEJOILEY.js +0 -203
  407. package/dist/chunk-TEQEZAJI.js +0 -1320
  408. package/dist/chunk-TNI7CN4L.js +0 -547
  409. package/dist/chunk-TPJ34LXX.js +0 -220
  410. package/dist/chunk-U6AWJIFP.js +0 -225
  411. package/dist/chunk-V5ODOBBI.js +0 -399
  412. package/dist/chunk-VAURJ4QJ.js +0 -89
  413. package/dist/chunk-VAV5CCDD.js +0 -167
  414. package/dist/chunk-VWHUO3AP.js +0 -103
  415. package/dist/chunk-W3TZPHZO.js +0 -285
  416. package/dist/chunk-WZATC4O5.js +0 -297
  417. package/dist/chunk-X25XRSDP.js +0 -57
  418. package/dist/chunk-XGG72YRO.js +0 -91
  419. package/dist/chunk-XHWHBGKX.js +0 -4277
  420. package/dist/chunk-XHWHBGKX.js.map +0 -1
  421. package/dist/chunk-XWAOECD2.js +0 -831
  422. package/dist/chunk-YDALLZNS.js +0 -494
  423. package/dist/chunk-Z3RGBLVJ.js +0 -64
  424. package/dist/chunk-Z5JWFNG4.js +0 -19
  425. package/dist/claim-3UMAFZEM.js +0 -200
  426. package/dist/companies-RL5A26AT.js +0 -198
  427. package/dist/company-DJ44F5C6.js +0 -308
  428. package/dist/complete-PGNIP3LN.js +0 -84
  429. package/dist/connect-ROARWN63.js +0 -45
  430. package/dist/conversation-GDFMJL7X.js +0 -96
  431. package/dist/conversion-report-2FREFML5.js +0 -127
  432. package/dist/conversion-upload-command-G7LLWHSK.js +0 -439
  433. package/dist/conversion-writes-JZIJSQ7T.js +0 -122
  434. package/dist/conversions-2IFWDQKK.js +0 -140
  435. package/dist/conversions-Q5EBTEXA.js +0 -78
  436. package/dist/create-B5DIYK5D.js +0 -218
  437. package/dist/create-BRCSXXFO.js +0 -239
  438. package/dist/create-PXAUL6FF.js +0 -62
  439. package/dist/create-R6CMATVY.js +0 -135
  440. package/dist/creatives-D6O6Z46U.js +0 -229
  441. package/dist/creatives-XNVWQWFF.js +0 -58
  442. package/dist/credentials-CLJO7WWY.js +0 -290
  443. package/dist/critique-MBMKW6SL.js +0 -1451
  444. package/dist/critique-OUJDTVMI.js +0 -232
  445. package/dist/crm-H5ITJ2RC.js +0 -229
  446. package/dist/crm-JJHYRABB.js +0 -323
  447. package/dist/currency-EFDQYW5B.js +0 -88
  448. package/dist/customers-C5YXAVXI.js +0 -65
  449. package/dist/delete-3GYCQK6B.js +0 -57
  450. package/dist/delete-NBUDIGSD.js +0 -69
  451. package/dist/delete-WZ3KVVX5.js +0 -67
  452. package/dist/demographics-O7AJW7DO.js +0 -141
  453. package/dist/discard-RMVZAX2J.js +0 -69
  454. package/dist/discover-BPUUWRBP.js +0 -172
  455. package/dist/domain-J3ZMBOHS.js +0 -101
  456. package/dist/download-ZVOGLTFB.js +0 -172
  457. package/dist/draft-6PJD3MCW.js +0 -374
  458. package/dist/draft-GCOCG4PO.js +0 -315
  459. package/dist/draft-Q4PEFBJB.js +0 -578
  460. package/dist/draft-TPR3DH5N.js +0 -220
  461. package/dist/draft-ZPGGWU7E.js +0 -332
  462. package/dist/experiments-MM4BYHRH.js +0 -236
  463. package/dist/extract-JMY6YRPW.js +0 -143
  464. package/dist/facets-B5AZAU2C.js +0 -117
  465. package/dist/feedback-2EVDGTEN.js +0 -115
  466. package/dist/feedback-4MCMOMVN.js +0 -114
  467. package/dist/feedback-record-DL7UEU2H.js +0 -269
  468. package/dist/fetch-JDNFK476.js +0 -204
  469. package/dist/fit-DKVH5BDW.js +0 -65
  470. package/dist/flows-LURTZICL.js +0 -340
  471. package/dist/fonts-HUXFDDAE.js +0 -39
  472. package/dist/forecast-ITLKAFHM.js +0 -169
  473. package/dist/forecast-UHTW4Y7Q.js +0 -121
  474. package/dist/funnel-QM7WFFMD.js +0 -397
  475. package/dist/generate-KAWRRYTT.js +0 -263
  476. package/dist/get-237TYJZT.js +0 -82
  477. package/dist/get-FWPR2YPC.js +0 -62
  478. package/dist/google-DTSLO3PT.js +0 -163
  479. package/dist/google-JY7KDAFC.js +0 -3300
  480. package/dist/google-ads-RZOQQDQN.js +0 -198
  481. package/dist/history-H7S7XRBX.js +0 -153
  482. package/dist/history-XL52537O.js +0 -102
  483. package/dist/history-YQSYXBJH.js +0 -69
  484. package/dist/hubspot-2DSISSUI.js +0 -814
  485. package/dist/ideas-2XBFQJ56.js +0 -45
  486. package/dist/images-VFRQ32G5.js +0 -92
  487. package/dist/ingest-4RPLN54K.js +0 -28
  488. package/dist/ingest-TPVH44VI.js +0 -131
  489. package/dist/insights-UVCFOB3N.js +0 -132
  490. package/dist/inspect-VD3GVXDU.js +0 -192
  491. package/dist/intent-F5NTOSQC.js +0 -95
  492. package/dist/keyword-gap-EB5QATYN.js +0 -130
  493. package/dist/keyword-metrics-PW2DDIJW.js +0 -200
  494. package/dist/keywords-for-site-JEPABY6E.js +0 -131
  495. package/dist/landing-4N6YSB4L.js +0 -28
  496. package/dist/languages-4S26FJDP.js +0 -40
  497. package/dist/leads-R5OZJQHW.js +0 -115
  498. package/dist/learn-AQ2FRFB7.js +0 -207
  499. package/dist/line-item-writes-LGO7HIJJ.js +0 -211
  500. package/dist/line-items-AAZVKQ7E.js +0 -107
  501. package/dist/link-7IGHVARH.js +0 -67
  502. package/dist/linkedin-UB2CW4KP.js +0 -1344
  503. package/dist/linkedin-person-D6U2ZAUW.js +0 -139
  504. package/dist/list-P44QRX2O.js +0 -154
  505. package/dist/list-UMJACDTQ.js +0 -67
  506. package/dist/list-VZKUHY4Y.js +0 -306
  507. package/dist/locations-UWBQLHXW.js +0 -40
  508. package/dist/locations-WXGOI3VV.js +0 -69
  509. package/dist/log-6ZKMUTYS.js +0 -95
  510. package/dist/make-5CEIJRBC.js +0 -1367
  511. package/dist/map-ZL4MQVJZ.js +0 -445
  512. package/dist/mcp-GSRYLRD4.js +0 -729
  513. package/dist/media-sources-VSPVHLYN.js +0 -35
  514. package/dist/members-L6SXP6GC.js +0 -47
  515. package/dist/metrics-4AFEEDVP.js +0 -152
  516. package/dist/models-2ZEM64H5.js +0 -155
  517. package/dist/normalize-GK7DH7ZP.js +0 -144
  518. package/dist/options-FDAAHG7C.js +0 -125
  519. package/dist/organization-K2FTFAAO.js +0 -949
  520. package/dist/performance-N3UROH7Z.js +0 -5565
  521. package/dist/performance-RG2HR46T.js +0 -27
  522. package/dist/pixels-HEI5WVAO.js +0 -62
  523. package/dist/preview-NVWIEUHF.js +0 -101
  524. package/dist/promoted-tweet-writes-7QZRFDOM.js +0 -183
  525. package/dist/promoted-tweets-V555Y7DN.js +0 -119
  526. package/dist/publish-5KR6YLA6.js +0 -350
  527. package/dist/query-K7MYBRTS.js +0 -62
  528. package/dist/reddit-XPQ7YAJW.js +0 -29
  529. package/dist/refresh-XFHEBSDU.js +0 -97
  530. package/dist/release-3ECEF26P.js +0 -63
  531. package/dist/relevant-pages-XYQKVX3U.js +0 -99
  532. package/dist/remove-OCTUC3RB.js +0 -53
  533. package/dist/reopen-JRI3TYD4.js +0 -66
  534. package/dist/rerun-HWWYCDT2.js +0 -97
  535. package/dist/research-ODPU62BA.js +0 -265
  536. package/dist/research-TG5CBTYP.js +0 -75
  537. package/dist/reset-J2NLNITD.js +0 -57
  538. package/dist/reset-SRU7YJUR.js +0 -57
  539. package/dist/resolve-KHMMUGB2.js +0 -124
  540. package/dist/retry-VLH4AO7F.js +0 -65
  541. package/dist/retry-WP7LWKZF.js +0 -63
  542. package/dist/revenue-EEIS2AV5.js +0 -91
  543. package/dist/rules-TTUGQAEB.js +0 -99
  544. package/dist/rules-add-AIXUAZXG.js +0 -465
  545. package/dist/run-AQTACLY6.js +0 -69
  546. package/dist/run-YA6IWQAJ.js +0 -72
  547. package/dist/scaffold-ad-IYNFJPT7.js +0 -1513
  548. package/dist/scaffold-static-ad-SPYKSAJR.js +0 -1012
  549. package/dist/scaffold-static-ad-SPYKSAJR.js.map +0 -1
  550. package/dist/scaffold-video-BUN27PKS.js +0 -885
  551. package/dist/schedule-EH2MOC5C.js +0 -64
  552. package/dist/scheduled-agents-DTAEP25E.js +0 -55
  553. package/dist/schema-7B4MVVAS.js +0 -135
  554. package/dist/search-ZZWIJRXJ.js +0 -177
  555. package/dist/select-LWZRF7KV.js +0 -110
  556. package/dist/set-prompt-YKDH6FYK.js +0 -199
  557. package/dist/setup-links-OE6PC2YQ.js +0 -144
  558. package/dist/shopify-CCPLZI2H.js +0 -4009
  559. package/dist/site-FW5BBLYG.js +0 -180
  560. package/dist/sources-WPHMWBEK.js +0 -30
  561. package/dist/sources-X77TGJ52.js +0 -457
  562. package/dist/stale-SPCDL73V.js +0 -90
  563. package/dist/status-FLETGJ2A.js +0 -65
  564. package/dist/stock-5AOSQH52.js +0 -212
  565. package/dist/studio-4EV5S7PR.js +0 -49
  566. package/dist/sync-363VKXU3.js +0 -57
  567. package/dist/sync-definition-ZDE5L644.js +0 -70
  568. package/dist/tags-6MN3AWKN.js +0 -23
  569. package/dist/tags-VOKUNEIW.js +0 -227
  570. package/dist/tags-Y6MNMIEA.js +0 -23
  571. package/dist/tags-YHAC3NVY.js +0 -23
  572. package/dist/tags-ZCQMJ5YH.js +0 -26
  573. package/dist/targeting-criteria-ECQFHQF3.js +0 -113
  574. package/dist/targets-U2JHTB5U.js +0 -106
  575. package/dist/testimonials-IDVLMXDT.js +0 -32
  576. package/dist/themes-QMR5TWTI.js +0 -95
  577. package/dist/top-companies-CBI4O3ZB.js +0 -111
  578. package/dist/transcript-IIRFTFRW.js +0 -165
  579. package/dist/translate-N6QW4FZB.js +0 -603
  580. package/dist/triggers-Q3KRAMA3.js +0 -144
  581. package/dist/unlink-7RVQXKAR.js +0 -70
  582. package/dist/unstage-3LPHNZKR.js +0 -88
  583. package/dist/update-AL3LBHGK.js +0 -192
  584. package/dist/update-AWR7EHGA.js +0 -155
  585. package/dist/update-LNSSLZXG.js +0 -66
  586. package/dist/update-YBTFH5MN.js +0 -101
  587. package/dist/upload-45GCGMA5.js +0 -137
  588. package/dist/url-options-AHJPR5VY.js +0 -131
  589. package/dist/url-params-U6ZM4LL2.js +0 -101
  590. package/dist/validate-S325RXPH.js +0 -135
  591. package/dist/videos-NW2UP342.js +0 -41
  592. package/dist/viewer-check-IDXFRRCO.js +0 -83
  593. package/dist/web-VMPKMBKA.js +0 -173
  594. package/dist/winning-ads-7UJXCWFH.js +0 -86
  595. package/dist/write-commands-R42DQEW6.js +0 -1524
  596. package/dist/x-UGTUOCVR.js +0 -47
  597. /package/dist/{account-7KZ7MHMN.js.map → account-EXGRZIXS.js.map} +0 -0
  598. /package/dist/{account-52WDLW4Z.js.map → account-JVDP5ERG.js.map} +0 -0
  599. /package/dist/{account-reads-RXF37O4N.js.map → account-reads-Z467VAL4.js.map} +0 -0
  600. /package/dist/{account-users-NUI3ILRE.js.map → account-users-342OZALE.js.map} +0 -0
  601. /package/dist/{account-writes-3BJSUM2V.js.map → account-writes-KEXINJ5D.js.map} +0 -0
  602. /package/dist/{accounts-FLKNFDIE.js.map → accounts-QESGQJGZ.js.map} +0 -0
  603. /package/dist/{accounts-ZV4IXOF5.js.map → accounts-QR6OQ3GC.js.map} +0 -0
  604. /package/dist/{accounts-I2ZLR76R.js.map → accounts-UWC2TT6R.js.map} +0 -0
  605. /package/dist/{actions-IR47GVZ6.js.map → actions-NT3HXFFA.js.map} +0 -0
  606. /package/dist/{activecampaign-MNJYIWJL.js.map → activecampaign-EYRHDSXY.js.map} +0 -0
  607. /package/dist/{ad-group-writes-KU4QMQZP.js.map → ad-group-writes-SVR4RCKB.js.map} +0 -0
  608. /package/dist/{ad-groups-NMW2G32A.js.map → ad-groups-C726HUXS.js.map} +0 -0
  609. /package/dist/{ad-writes-7NOFTOM4.js.map → ad-writes-RWJIWGEL.js.map} +0 -0
  610. /package/dist/{add-QMTD6EGI.js.map → add-EPOHDTUO.js.map} +0 -0
  611. /package/dist/{add-4I25INAO.js.map → add-NSW26HIM.js.map} +0 -0
  612. /package/dist/{ads-P4Z3MLKS.js.map → ads-3KK7VQPU.js.map} +0 -0
  613. /package/dist/{ads-BT2DF3XN.js.map → ads-EWZGIC4T.js.map} +0 -0
  614. /package/dist/{advertisers-LOIXTTGP.js.map → advertisers-AHOWL3YL.js.map} +0 -0
  615. /package/dist/{analytics-6AHC3J4L.js.map → analytics-7H6NDVUQ.js.map} +0 -0
  616. /package/dist/{analytics-NL2KGDLK.js.map → analytics-GFFXCMLV.js.map} +0 -0
  617. /package/dist/{animate-VX7E7KJE.js.map → animate-GTUI7XX4.js.map} +0 -0
  618. /package/dist/{assign-NKHIHVGI.js.map → assign-SDPPWP3Q.js.map} +0 -0
  619. /package/dist/{audience-size-WEOM6XIL.js.map → audience-size-LKDDHKED.js.map} +0 -0
  620. /package/dist/{audiences-P3SPTAJT.js.map → audiences-6L43K2T2.js.map} +0 -0
  621. /package/dist/{audit-4RIBJ7BR.js.map → audit-TSZIQTUB.js.map} +0 -0
  622. /package/dist/{autocomplete-FMTJDXTL.js.map → autocomplete-5BSAOAMZ.js.map} +0 -0
  623. /package/dist/{avatars-LY5SFMWO.js.map → avatars-S6RRD7M3.js.map} +0 -0
  624. /package/dist/{bid-pricing-MQ7WLV5U.js.map → bid-pricing-5KUAINH4.js.map} +0 -0
  625. /package/dist/{brand-LR5IXW3W.js.map → brand-KFK2MQWW.js.map} +0 -0
  626. /package/dist/{brief-4DSXIX3F.js.map → brief-6DV2PKAU.js.map} +0 -0
  627. /package/dist/{campaign-groups-EZYLKMO2.js.map → campaign-groups-5RPZPDNW.js.map} +0 -0
  628. /package/dist/{campaign-writes-P5XPFTRK.js.map → campaign-writes-FUIGN5OR.js.map} +0 -0
  629. /package/dist/{campaign-writes-UMENYMKO.js.map → campaign-writes-XMYBEVZF.js.map} +0 -0
  630. /package/dist/{campaigns-TAFDM242.js.map → campaigns-5A3IE735.js.map} +0 -0
  631. /package/dist/{campaigns-PP2DQMJE.js.map → campaigns-JNP3VDZK.js.map} +0 -0
  632. /package/dist/{campaigns-SWZJVE2T.js.map → campaigns-N2SWSBYT.js.map} +0 -0
  633. /package/dist/{canvas-RKR3ZB4E.js.map → canvas-CHFNQTLY.js.map} +0 -0
  634. /package/dist/{capabilities-45RZ6E6W.js.map → capabilities-2W3SRZ2I.js.map} +0 -0
  635. /package/dist/{catalog-TOHUVBEU.js.map → catalog-6BER3SF7.js.map} +0 -0
  636. /package/dist/{catalogs-V7PTEJBO.js.map → catalogs-G5NOKL4L.js.map} +0 -0
  637. /package/dist/{changes-5OW3UYMF.js.map → changes-AS4RVEAL.js.map} +0 -0
  638. /package/dist/{chatgpt-JBMYNVJB.js.map → chatgpt-O6EEAYLF.js.map} +0 -0
  639. /package/dist/{chats-VOLBYA3R.js.map → chats-4JLWMUAC.js.map} +0 -0
  640. /package/dist/{check-4DI73QX4.js.map → check-BOKLY5WG.js.map} +0 -0
  641. /package/dist/{chunk-CTJWMZPL.js.map → chunk-3KUNRKNV.js.map} +0 -0
  642. /package/dist/{chunk-5OC6VUDZ.js.map → chunk-4INBMXUS.js.map} +0 -0
  643. /package/dist/{chunk-OJZKY5UM.js.map → chunk-5NMKNHJI.js.map} +0 -0
  644. /package/dist/{chunk-LAOCXV6Z.js.map → chunk-6D7WTUF3.js.map} +0 -0
  645. /package/dist/{chunk-X25XRSDP.js.map → chunk-6FQ7CJEX.js.map} +0 -0
  646. /package/dist/{chunk-JAC6JVCI.js.map → chunk-6OIKNJ7G.js.map} +0 -0
  647. /package/dist/{chunk-Z5JWFNG4.js.map → chunk-6OZDN2FI.js.map} +0 -0
  648. /package/dist/{chunk-VAURJ4QJ.js.map → chunk-75OGTGC4.js.map} +0 -0
  649. /package/dist/{chunk-BXTIG5JL.js.map → chunk-AXLKR3E4.js.map} +0 -0
  650. /package/dist/{chunk-4QFMRL6O.js.map → chunk-BEZEZHQ6.js.map} +0 -0
  651. /package/dist/{chunk-KUI74TNG.js.map → chunk-BMK4F4CU.js.map} +0 -0
  652. /package/dist/{chunk-QLO4RNHU.js.map → chunk-C52Q3L4C.js.map} +0 -0
  653. /package/dist/{chunk-JT3UUBID.js.map → chunk-CST52ZME.js.map} +0 -0
  654. /package/dist/{chunk-MKG57P2E.js.map → chunk-CUTTTFAU.js.map} +0 -0
  655. /package/dist/{chunk-IGCS3X4F.js.map → chunk-D32EWSMB.js.map} +0 -0
  656. /package/dist/{chunk-XGG72YRO.js.map → chunk-DW3H2XQA.js.map} +0 -0
  657. /package/dist/{chunk-ITIUWJGQ.js.map → chunk-EM5R3BYC.js.map} +0 -0
  658. /package/dist/{chunk-EKOMZH2S.js.map → chunk-EMR5KGNY.js.map} +0 -0
  659. /package/dist/{chunk-MC5F2L64.js.map → chunk-EONUZOJV.js.map} +0 -0
  660. /package/dist/{chunk-47VWQ7FQ.js.map → chunk-GRX3JXSR.js.map} +0 -0
  661. /package/dist/{chunk-CDPX6WAL.js.map → chunk-H4RHZJ65.js.map} +0 -0
  662. /package/dist/{chunk-TNI7CN4L.js.map → chunk-HFIHXIYY.js.map} +0 -0
  663. /package/dist/{chunk-5VXEH72O.js.map → chunk-HOA74TOS.js.map} +0 -0
  664. /package/dist/{chunk-HM4NWA72.js.map → chunk-HQDNDKNR.js.map} +0 -0
  665. /package/dist/{chunk-HI4SKWNW.js.map → chunk-HXSYWXLH.js.map} +0 -0
  666. /package/dist/{chunk-Z3RGBLVJ.js.map → chunk-I3QLWGKS.js.map} +0 -0
  667. /package/dist/{chunk-JGK2FDZW.js.map → chunk-J4AWNWKN.js.map} +0 -0
  668. /package/dist/{chunk-VWHUO3AP.js.map → chunk-JAK5VDSG.js.map} +0 -0
  669. /package/dist/{chunk-W3TZPHZO.js.map → chunk-JLAFNORO.js.map} +0 -0
  670. /package/dist/{chunk-2Z6PFHD2.js.map → chunk-KG5VNPKU.js.map} +0 -0
  671. /package/dist/{chunk-I33FO2ON.js.map → chunk-KJHG2DWS.js.map} +0 -0
  672. /package/dist/{chunk-BFAPSFS7.js.map → chunk-LAMSUL26.js.map} +0 -0
  673. /package/dist/{chunk-JCDCIQMA.js.map → chunk-LLTHDEM2.js.map} +0 -0
  674. /package/dist/{chunk-COOJKEJE.js.map → chunk-M5PZ6QQB.js.map} +0 -0
  675. /package/dist/{chunk-LQACNCAV.js.map → chunk-MFGUR5OD.js.map} +0 -0
  676. /package/dist/{chunk-BNEWJXKU.js.map → chunk-NOCBNING.js.map} +0 -0
  677. /package/dist/{chunk-O2ECZKXP.js.map → chunk-NWLK5RPA.js.map} +0 -0
  678. /package/dist/{chunk-VAV5CCDD.js.map → chunk-PR5OPERY.js.map} +0 -0
  679. /package/dist/{chunk-IJ6WA2JW.js.map → chunk-QGAUDVMR.js.map} +0 -0
  680. /package/dist/{chunk-JSOOLOHP.js.map → chunk-QRRAMUKV.js.map} +0 -0
  681. /package/dist/{chunk-22RM3UOO.js.map → chunk-QZ4YHQLW.js.map} +0 -0
  682. /package/dist/{chunk-YDALLZNS.js.map → chunk-RGLTITIH.js.map} +0 -0
  683. /package/dist/{chunk-U6AWJIFP.js.map → chunk-RIVQ4PQQ.js.map} +0 -0
  684. /package/dist/{chunk-D5HD46VV.js.map → chunk-RLLPY62L.js.map} +0 -0
  685. /package/dist/{chunk-H3RCEM6L.js.map → chunk-RQHXWPET.js.map} +0 -0
  686. /package/dist/{chunk-G4FU6VC5.js.map → chunk-RULW4627.js.map} +0 -0
  687. /package/dist/{chunk-P4UCSXNA.js.map → chunk-S4RCF3YT.js.map} +0 -0
  688. /package/dist/{chunk-MZPS46OR.js.map → chunk-SIKCVWM3.js.map} +0 -0
  689. /package/dist/{chunk-XWAOECD2.js.map → chunk-TCLJRWST.js.map} +0 -0
  690. /package/dist/{chunk-QVHZTCB5.js.map → chunk-UVUY6FLV.js.map} +0 -0
  691. /package/dist/{chunk-TEQEZAJI.js.map → chunk-V4HS5JRL.js.map} +0 -0
  692. /package/dist/{chunk-2TS2ITSG.js.map → chunk-WTOBG3YL.js.map} +0 -0
  693. /package/dist/{chunk-V5ODOBBI.js.map → chunk-WYMX3F47.js.map} +0 -0
  694. /package/dist/{chunk-BMMXYR7A.js.map → chunk-WZXMZFVB.js.map} +0 -0
  695. /package/dist/{chunk-QSS34JWZ.js.map → chunk-X5YHMGAT.js.map} +0 -0
  696. /package/dist/{chunk-WZATC4O5.js.map → chunk-XA7JN7YE.js.map} +0 -0
  697. /package/dist/{chunk-IAE24RKD.js.map → chunk-XHAGX4J4.js.map} +0 -0
  698. /package/dist/{chunk-C7KV5O5J.js.map → chunk-XY7W6MQN.js.map} +0 -0
  699. /package/dist/{chunk-TEJOILEY.js.map → chunk-YAINUFSC.js.map} +0 -0
  700. /package/dist/{chunk-RVIBHENP.js.map → chunk-Z7ICQKC2.js.map} +0 -0
  701. /package/dist/{chunk-TPJ34LXX.js.map → chunk-ZBXV2KOQ.js.map} +0 -0
  702. /package/dist/{chunk-2YXTXSYG.js.map → chunk-ZMNRSTNV.js.map} +0 -0
  703. /package/dist/{claim-3UMAFZEM.js.map → claim-L4WLCVUL.js.map} +0 -0
  704. /package/dist/{companies-RL5A26AT.js.map → companies-HW46BRQG.js.map} +0 -0
  705. /package/dist/{company-DJ44F5C6.js.map → company-KCIDE7SL.js.map} +0 -0
  706. /package/dist/{complete-PGNIP3LN.js.map → complete-JXM25FVW.js.map} +0 -0
  707. /package/dist/{connect-ROARWN63.js.map → connect-7TX7AAM5.js.map} +0 -0
  708. /package/dist/{conversation-GDFMJL7X.js.map → conversation-YIDUB6GL.js.map} +0 -0
  709. /package/dist/{conversion-report-2FREFML5.js.map → conversion-report-33SG7SHU.js.map} +0 -0
  710. /package/dist/{conversion-upload-command-G7LLWHSK.js.map → conversion-upload-command-N3OMLLF2.js.map} +0 -0
  711. /package/dist/{conversion-writes-JZIJSQ7T.js.map → conversion-writes-XGGTBML5.js.map} +0 -0
  712. /package/dist/{conversions-2IFWDQKK.js.map → conversions-F4OZYUCT.js.map} +0 -0
  713. /package/dist/{conversions-Q5EBTEXA.js.map → conversions-PPP4QK7U.js.map} +0 -0
  714. /package/dist/{create-BRCSXXFO.js.map → create-6EAKNERA.js.map} +0 -0
  715. /package/dist/{create-B5DIYK5D.js.map → create-772LZHZR.js.map} +0 -0
  716. /package/dist/{create-PXAUL6FF.js.map → create-FDNMIVFX.js.map} +0 -0
  717. /package/dist/{create-R6CMATVY.js.map → create-X2QM7GA7.js.map} +0 -0
  718. /package/dist/{creatives-XNVWQWFF.js.map → creatives-K2AAW6EL.js.map} +0 -0
  719. /package/dist/{creatives-D6O6Z46U.js.map → creatives-SNYN4KIM.js.map} +0 -0
  720. /package/dist/{credentials-CLJO7WWY.js.map → credentials-KZZVBO42.js.map} +0 -0
  721. /package/dist/{critique-MBMKW6SL.js.map → critique-G5QXRHPF.js.map} +0 -0
  722. /package/dist/{critique-OUJDTVMI.js.map → critique-PUHOJI7V.js.map} +0 -0
  723. /package/dist/{crm-H5ITJ2RC.js.map → crm-4LZZVT4N.js.map} +0 -0
  724. /package/dist/{crm-JJHYRABB.js.map → crm-M6NXDU5B.js.map} +0 -0
  725. /package/dist/{currency-EFDQYW5B.js.map → currency-HK2ZW2VW.js.map} +0 -0
  726. /package/dist/{customers-C5YXAVXI.js.map → customers-V5NT4W7X.js.map} +0 -0
  727. /package/dist/{delete-3GYCQK6B.js.map → delete-GQIKNO53.js.map} +0 -0
  728. /package/dist/{delete-NBUDIGSD.js.map → delete-LFZIPQEO.js.map} +0 -0
  729. /package/dist/{delete-WZ3KVVX5.js.map → delete-YOEI63OT.js.map} +0 -0
  730. /package/dist/{demographics-O7AJW7DO.js.map → demographics-CEQ74O74.js.map} +0 -0
  731. /package/dist/{discard-RMVZAX2J.js.map → discard-5GDF3TP3.js.map} +0 -0
  732. /package/dist/{discover-BPUUWRBP.js.map → discover-Q5PAOIQQ.js.map} +0 -0
  733. /package/dist/{domain-J3ZMBOHS.js.map → domain-PKOUPHHF.js.map} +0 -0
  734. /package/dist/{download-ZVOGLTFB.js.map → download-2WNTN7JQ.js.map} +0 -0
  735. /package/dist/{draft-Q4PEFBJB.js.map → draft-CF4XNJG5.js.map} +0 -0
  736. /package/dist/{draft-ZPGGWU7E.js.map → draft-F4CVSL2I.js.map} +0 -0
  737. /package/dist/{draft-GCOCG4PO.js.map → draft-L2NXCIYT.js.map} +0 -0
  738. /package/dist/{draft-6PJD3MCW.js.map → draft-RZCTAOI2.js.map} +0 -0
  739. /package/dist/{draft-TPR3DH5N.js.map → draft-UEVBUNKV.js.map} +0 -0
  740. /package/dist/{experiments-MM4BYHRH.js.map → experiments-DWC6L72S.js.map} +0 -0
  741. /package/dist/{extract-JMY6YRPW.js.map → extract-6HJXSOZW.js.map} +0 -0
  742. /package/dist/{facets-B5AZAU2C.js.map → facets-TBOXGYJT.js.map} +0 -0
  743. /package/dist/{feedback-4MCMOMVN.js.map → feedback-MSMFYAEY.js.map} +0 -0
  744. /package/dist/{feedback-2EVDGTEN.js.map → feedback-WAC6S42V.js.map} +0 -0
  745. /package/dist/{feedback-record-DL7UEU2H.js.map → feedback-record-XRQ2R2WD.js.map} +0 -0
  746. /package/dist/{fetch-JDNFK476.js.map → fetch-LGX7B3IC.js.map} +0 -0
  747. /package/dist/{fit-DKVH5BDW.js.map → fit-RVWPRBNO.js.map} +0 -0
  748. /package/dist/{flows-LURTZICL.js.map → flows-LA6EYMLS.js.map} +0 -0
  749. /package/dist/{fonts-HUXFDDAE.js.map → fonts-WRC34VSV.js.map} +0 -0
  750. /package/dist/{forecast-UHTW4Y7Q.js.map → forecast-6VHRGBJG.js.map} +0 -0
  751. /package/dist/{forecast-ITLKAFHM.js.map → forecast-OVKXBLJB.js.map} +0 -0
  752. /package/dist/{funnel-QM7WFFMD.js.map → funnel-U3GQIGND.js.map} +0 -0
  753. /package/dist/{generate-KAWRRYTT.js.map → generate-Y4NJEYIH.js.map} +0 -0
  754. /package/dist/{get-237TYJZT.js.map → get-AHI247JG.js.map} +0 -0
  755. /package/dist/{get-FWPR2YPC.js.map → get-PF3HGECD.js.map} +0 -0
  756. /package/dist/{google-JY7KDAFC.js.map → google-BMUJKAUO.js.map} +0 -0
  757. /package/dist/{google-DTSLO3PT.js.map → google-ZVAIFXQZ.js.map} +0 -0
  758. /package/dist/{google-ads-RZOQQDQN.js.map → google-ads-6Z7P3SCD.js.map} +0 -0
  759. /package/dist/{history-XL52537O.js.map → history-4QUV45ZJ.js.map} +0 -0
  760. /package/dist/{history-H7S7XRBX.js.map → history-PD7FCTDD.js.map} +0 -0
  761. /package/dist/{history-YQSYXBJH.js.map → history-VKRYKQ4C.js.map} +0 -0
  762. /package/dist/{hubspot-2DSISSUI.js.map → hubspot-WEFAFKVJ.js.map} +0 -0
  763. /package/dist/{ideas-2XBFQJ56.js.map → ideas-SMSEXKIA.js.map} +0 -0
  764. /package/dist/{images-VFRQ32G5.js.map → images-KAT4BPYV.js.map} +0 -0
  765. /package/dist/{ingest-4RPLN54K.js.map → ingest-IHKTSJ4H.js.map} +0 -0
  766. /package/dist/{ingest-TPVH44VI.js.map → ingest-TOHQ6MZA.js.map} +0 -0
  767. /package/dist/{insights-UVCFOB3N.js.map → insights-3IPSEBYW.js.map} +0 -0
  768. /package/dist/{inspect-VD3GVXDU.js.map → inspect-5MZBPDYS.js.map} +0 -0
  769. /package/dist/{intent-F5NTOSQC.js.map → intent-ZM4K623V.js.map} +0 -0
  770. /package/dist/{keyword-gap-EB5QATYN.js.map → keyword-gap-FAAF2I6V.js.map} +0 -0
  771. /package/dist/{keyword-metrics-PW2DDIJW.js.map → keyword-metrics-EXNJRJBY.js.map} +0 -0
  772. /package/dist/{keywords-for-site-JEPABY6E.js.map → keywords-for-site-5LW77QWF.js.map} +0 -0
  773. /package/dist/{landing-4N6YSB4L.js.map → landing-ZH4SD3DW.js.map} +0 -0
  774. /package/dist/{languages-4S26FJDP.js.map → languages-ZGDTERIQ.js.map} +0 -0
  775. /package/dist/{leads-R5OZJQHW.js.map → leads-736RILZN.js.map} +0 -0
  776. /package/dist/{learn-AQ2FRFB7.js.map → learn-BESXWXEN.js.map} +0 -0
  777. /package/dist/{line-item-writes-LGO7HIJJ.js.map → line-item-writes-FA72DHNQ.js.map} +0 -0
  778. /package/dist/{line-items-AAZVKQ7E.js.map → line-items-XVYE3IYT.js.map} +0 -0
  779. /package/dist/{link-7IGHVARH.js.map → link-6FPKFVC3.js.map} +0 -0
  780. /package/dist/{linkedin-UB2CW4KP.js.map → linkedin-TE6P4RYN.js.map} +0 -0
  781. /package/dist/{linkedin-person-D6U2ZAUW.js.map → linkedin-person-TZJ6VEXE.js.map} +0 -0
  782. /package/dist/{list-P44QRX2O.js.map → list-4R5EMKUQ.js.map} +0 -0
  783. /package/dist/{list-VZKUHY4Y.js.map → list-MN2FPF3T.js.map} +0 -0
  784. /package/dist/{list-UMJACDTQ.js.map → list-ORO4WDF4.js.map} +0 -0
  785. /package/dist/{locations-WXGOI3VV.js.map → locations-A65MFB7Q.js.map} +0 -0
  786. /package/dist/{locations-UWBQLHXW.js.map → locations-WN6B3IJK.js.map} +0 -0
  787. /package/dist/{log-6ZKMUTYS.js.map → log-ABBZLPRU.js.map} +0 -0
  788. /package/dist/{make-5CEIJRBC.js.map → make-QAFKU6WO.js.map} +0 -0
  789. /package/dist/{map-ZL4MQVJZ.js.map → map-52P35OKE.js.map} +0 -0
  790. /package/dist/{mcp-GSRYLRD4.js.map → mcp-PZ3VBIF4.js.map} +0 -0
  791. /package/dist/{media-sources-VSPVHLYN.js.map → media-sources-TT374PLN.js.map} +0 -0
  792. /package/dist/{members-L6SXP6GC.js.map → members-CF6VG6ZW.js.map} +0 -0
  793. /package/dist/{metrics-4AFEEDVP.js.map → metrics-3U3ZO2RF.js.map} +0 -0
  794. /package/dist/{models-2ZEM64H5.js.map → models-VOSJJFO2.js.map} +0 -0
  795. /package/dist/{normalize-GK7DH7ZP.js.map → normalize-4LZCLMTQ.js.map} +0 -0
  796. /package/dist/{options-FDAAHG7C.js.map → options-6IRL7CL6.js.map} +0 -0
  797. /package/dist/{organization-K2FTFAAO.js.map → organization-WMLLJE66.js.map} +0 -0
  798. /package/dist/{performance-N3UROH7Z.js.map → performance-A7CYFBW2.js.map} +0 -0
  799. /package/dist/{performance-RG2HR46T.js.map → performance-HYSTXLTS.js.map} +0 -0
  800. /package/dist/{pixels-HEI5WVAO.js.map → pixels-U6UA662G.js.map} +0 -0
  801. /package/dist/{preview-NVWIEUHF.js.map → preview-76ZP2QA3.js.map} +0 -0
  802. /package/dist/{promoted-tweet-writes-7QZRFDOM.js.map → promoted-tweet-writes-I5G4IDL5.js.map} +0 -0
  803. /package/dist/{promoted-tweets-V555Y7DN.js.map → promoted-tweets-X5XNO7IT.js.map} +0 -0
  804. /package/dist/{publish-5KR6YLA6.js.map → publish-S2Z4EF4H.js.map} +0 -0
  805. /package/dist/{query-K7MYBRTS.js.map → query-SAQADBM2.js.map} +0 -0
  806. /package/dist/{reddit-XPQ7YAJW.js.map → reddit-S2L5WDY7.js.map} +0 -0
  807. /package/dist/{refresh-XFHEBSDU.js.map → refresh-K2YTJSH3.js.map} +0 -0
  808. /package/dist/{release-3ECEF26P.js.map → release-FX76IIVN.js.map} +0 -0
  809. /package/dist/{relevant-pages-XYQKVX3U.js.map → relevant-pages-KTSODNNW.js.map} +0 -0
  810. /package/dist/{remove-OCTUC3RB.js.map → remove-LOVWPLDO.js.map} +0 -0
  811. /package/dist/{reopen-JRI3TYD4.js.map → reopen-DXV2Y6Z3.js.map} +0 -0
  812. /package/dist/{rerun-HWWYCDT2.js.map → rerun-TFQCRRFK.js.map} +0 -0
  813. /package/dist/{research-ODPU62BA.js.map → research-7PGDAKC7.js.map} +0 -0
  814. /package/dist/{research-TG5CBTYP.js.map → research-HY5PSUCC.js.map} +0 -0
  815. /package/dist/{reset-SRU7YJUR.js.map → reset-MEHUQJA4.js.map} +0 -0
  816. /package/dist/{reset-J2NLNITD.js.map → reset-Y5VZJRDQ.js.map} +0 -0
  817. /package/dist/{resolve-KHMMUGB2.js.map → resolve-FAVABEJW.js.map} +0 -0
  818. /package/dist/{retry-VLH4AO7F.js.map → retry-5IY4MNDW.js.map} +0 -0
  819. /package/dist/{retry-WP7LWKZF.js.map → retry-OMJ3C3AX.js.map} +0 -0
  820. /package/dist/{revenue-EEIS2AV5.js.map → revenue-S4KFZCOI.js.map} +0 -0
  821. /package/dist/{rules-TTUGQAEB.js.map → rules-66IGR2KA.js.map} +0 -0
  822. /package/dist/{rules-add-AIXUAZXG.js.map → rules-add-G7YGOYZJ.js.map} +0 -0
  823. /package/dist/{run-YA6IWQAJ.js.map → run-LJVBH3JS.js.map} +0 -0
  824. /package/dist/{run-AQTACLY6.js.map → run-XJBWDWN6.js.map} +0 -0
  825. /package/dist/{scaffold-ad-IYNFJPT7.js.map → scaffold-ad-GNMCB3QY.js.map} +0 -0
  826. /package/dist/{scaffold-video-BUN27PKS.js.map → scaffold-video-G6G2NPUF.js.map} +0 -0
  827. /package/dist/{schedule-EH2MOC5C.js.map → schedule-OX5XHXLH.js.map} +0 -0
  828. /package/dist/{scheduled-agents-DTAEP25E.js.map → scheduled-agents-A5ZFQB5X.js.map} +0 -0
  829. /package/dist/{schema-7B4MVVAS.js.map → schema-NTGHAPR2.js.map} +0 -0
  830. /package/dist/{search-ZZWIJRXJ.js.map → search-WCXQBMMM.js.map} +0 -0
  831. /package/dist/{select-LWZRF7KV.js.map → select-5ZD7FVBT.js.map} +0 -0
  832. /package/dist/{set-prompt-YKDH6FYK.js.map → set-prompt-NGCVMQIQ.js.map} +0 -0
  833. /package/dist/{setup-links-OE6PC2YQ.js.map → setup-links-4HCSF55G.js.map} +0 -0
  834. /package/dist/{shopify-CCPLZI2H.js.map → shopify-GDR5WGHH.js.map} +0 -0
  835. /package/dist/{site-FW5BBLYG.js.map → site-B7LT6KAO.js.map} +0 -0
  836. /package/dist/{sources-WPHMWBEK.js.map → sources-6DPUEROC.js.map} +0 -0
  837. /package/dist/{sources-X77TGJ52.js.map → sources-OSUXCLID.js.map} +0 -0
  838. /package/dist/{stale-SPCDL73V.js.map → stale-YKFKPPOH.js.map} +0 -0
  839. /package/dist/{status-FLETGJ2A.js.map → status-KIC3P5JV.js.map} +0 -0
  840. /package/dist/{stock-5AOSQH52.js.map → stock-VWFUFRYV.js.map} +0 -0
  841. /package/dist/{studio-4EV5S7PR.js.map → studio-XLC37YGX.js.map} +0 -0
  842. /package/dist/{sync-363VKXU3.js.map → sync-QBW4XH2H.js.map} +0 -0
  843. /package/dist/{sync-definition-ZDE5L644.js.map → sync-definition-4KMJK46H.js.map} +0 -0
  844. /package/dist/{tags-VOKUNEIW.js.map → tags-4F5UBPYG.js.map} +0 -0
  845. /package/dist/{tags-ZCQMJ5YH.js.map → tags-4O5FPEEY.js.map} +0 -0
  846. /package/dist/{tags-YHAC3NVY.js.map → tags-7RKKCQ4X.js.map} +0 -0
  847. /package/dist/{tags-6MN3AWKN.js.map → tags-CB4MWI3A.js.map} +0 -0
  848. /package/dist/{tags-Y6MNMIEA.js.map → tags-QZJIP4LJ.js.map} +0 -0
  849. /package/dist/{targeting-criteria-ECQFHQF3.js.map → targeting-criteria-65UU7EYD.js.map} +0 -0
  850. /package/dist/{targets-U2JHTB5U.js.map → targets-T742OPQI.js.map} +0 -0
  851. /package/dist/{testimonials-IDVLMXDT.js.map → testimonials-HKJJXONO.js.map} +0 -0
  852. /package/dist/{themes-QMR5TWTI.js.map → themes-Q6LVMEMF.js.map} +0 -0
  853. /package/dist/{top-companies-CBI4O3ZB.js.map → top-companies-T6AMU4C6.js.map} +0 -0
  854. /package/dist/{transcript-IIRFTFRW.js.map → transcript-DOUYMZAP.js.map} +0 -0
  855. /package/dist/{translate-N6QW4FZB.js.map → translate-WKOXFZTQ.js.map} +0 -0
  856. /package/dist/{triggers-Q3KRAMA3.js.map → triggers-EYY4GSUL.js.map} +0 -0
  857. /package/dist/{unlink-7RVQXKAR.js.map → unlink-JNM4WRZK.js.map} +0 -0
  858. /package/dist/{unstage-3LPHNZKR.js.map → unstage-QF4JT5YP.js.map} +0 -0
  859. /package/dist/{update-YBTFH5MN.js.map → update-6V3RBRIE.js.map} +0 -0
  860. /package/dist/{update-AL3LBHGK.js.map → update-J4DURR4K.js.map} +0 -0
  861. /package/dist/{update-AWR7EHGA.js.map → update-J7Y6LZC5.js.map} +0 -0
  862. /package/dist/{update-LNSSLZXG.js.map → update-MQ4NYIU6.js.map} +0 -0
  863. /package/dist/{upload-45GCGMA5.js.map → upload-CEIYYPID.js.map} +0 -0
  864. /package/dist/{url-options-AHJPR5VY.js.map → url-options-6WC2XQKB.js.map} +0 -0
  865. /package/dist/{url-params-U6ZM4LL2.js.map → url-params-OVBIP6UA.js.map} +0 -0
  866. /package/dist/{validate-S325RXPH.js.map → validate-UHXI2ESE.js.map} +0 -0
  867. /package/dist/{videos-NW2UP342.js.map → videos-Z72RXCRB.js.map} +0 -0
  868. /package/dist/{viewer-check-IDXFRRCO.js.map → viewer-check-655BZRML.js.map} +0 -0
  869. /package/dist/{web-VMPKMBKA.js.map → web-4QN6QB7L.js.map} +0 -0
  870. /package/dist/{winning-ads-7UJXCWFH.js.map → winning-ads-2J2RIOLR.js.map} +0 -0
  871. /package/dist/{write-commands-R42DQEW6.js.map → write-commands-V7B4FBMX.js.map} +0 -0
  872. /package/dist/{x-UGTUOCVR.js.map → x-7KXNCWTJ.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/canvas/scaffold-static-ad.ts","../src/commands/canvas/scaffold-viewer.ts"],"sourcesContent":["import { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport {\n AD_DESCRIBE_FOCUS,\n AD_DESCRIBE_MODEL,\n AD_PLATFORM_LEAD,\n AD_SELECT_PROMPT,\n AD_SELECT_SYSTEM,\n BLUEPRINT_ANALYSIS_MODEL,\n} from \"@baker/canvas-contract\";\nimport { referenceReadResponseSchema } from \"@baker/api/ad-library\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport type { BackendClient } from \"../../engine/client/backend-client.ts\";\nimport type { ValidationIssue } from \"../../engine/engine/errors.ts\";\nimport { createEngineFromEnv, defaultRegistry, ValidationError, validateCanvasDeep } from \"../../engine/index.ts\";\nimport { toModelSafeImage } from \"../../engine/nodes/ingest.ts\";\nimport { sha256Hex } from \"../../engine/storage/sha256.ts\";\nimport { fetchExternalBytes, MAX_REMOTE_IMAGE_BYTES } from \"../../lib/externalFetch.ts\";\nimport { brandBlock, readNamedTypefaces, readStaticBrandKit } from \"../../engine/scaffold/static-brand.ts\";\nimport { withClientLogo } from \"./clientLogo.ts\";\nimport { brandHeadlineFont, type ResolvedFont, webFontUrl } from \"../../engine/scaffold/static-fonts.ts\";\nimport { pickImageModel } from \"../../engine/lib/image-model-router.ts\";\nimport { recordedShape } from \"../../engine/scaffold/static-shape-route.ts\";\nimport type { MasterShape } from \"../../engine/scaffold/static-sizes.ts\";\nimport { conceptClassOf, conceptProblems, readAdSpec } from \"../../engine/scaffold/static-ad-spec.ts\";\nimport {\n castAvatarsOnStaticElements,\n castOnIdeaSpec,\n type StaticAdOpts,\n scaffoldStaticAd,\n staticAdReport,\n staticAdSpec,\n staticAvatarsNotCast,\n} from \"../../engine/scaffold/staticAd.ts\";\nimport {\n fail,\n fileExists,\n loadAssetText,\n parseElements,\n resolveModel,\n} from \"./scaffold-common.ts\";\nimport { fetchJson, lookupGoogleCss } from \"../brand/fonts.ts\";\nimport { findBrandRoot } from \"./static-copy-projection.ts\";\nimport {\n buildCreativeDefinition,\n type DefinitionSourceFields,\n describeBlueprintIntent,\n resolveFormatList,\n setDefinitionDelivery,\n setDefinitionViewer,\n rebasedDefinition,\n titleFromSlug,\n} from \"./creative-definition.ts\";\nimport { type DeliveryFlags, deliveryDefinitionFields, deliveryNote, namesDelivery, scaffoldDelivery } from \"./scaffold-delivery.ts\";\nimport type { ResolvedDelivery } from \"../../engine/scaffold/static-delivery.ts\";\nimport { buildBackendClient } from \"./run.ts\";\nimport { isValidScaffoldSlug, resolveScaffoldStaticAdPaths } from \"./scaffold-static-ad-paths.ts\";\nimport { resolveRelativeCanvasPaths } from \"./resolve-paths.ts\";\nimport { computeSourceSha } from \"./source-version.ts\";\nimport { readDefinitionPlatforms, syncCreativeDefinitionBestEffort } from \"./sync-definition.ts\";\nimport { type ScaffoldViewer, scaffoldViewer } from \"./scaffold-viewer.ts\";\nimport { describeViewer, liveViewerLookups } from \"./viewer-check.ts\";\nimport { resolveCastAvatars } from \"../avatars/resolveCast.ts\";\nimport {\n type DesignRefusal,\n fetchLibraryReference,\n LIBRARY_PLATFORMS,\n type LibraryReference,\n libraryReferenceBlock,\n mergeReferenceIntoBlueprint,\n notADesignReference,\n referenceDescribeContext,\n resolveSourcePlatform,\n} from \"./library-reference.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { conceptFromFit, fitHints, NO_FIT_HINT, readCachedFit } from \"../winning-ads/fit.ts\";\nimport { readLogoFile } from \"./logo-file.ts\";\nimport { findWorkspaceRoot } from \"./normalize-paths.ts\";\nimport { marketFromCompanyDoc, VIEWER_TEMPERATURE_VALUES } from \"../../viewer-profile.ts\";\n\n/** A workspace file as the canvas refers to it: relative to the canvas, never absolute. */\nfunction toCanvasRelative(canvasDir: string, file: string): string {\n const rel = path.relative(canvasDir, file).split(path.sep).join(\"/\");\n return rel.startsWith(\".\") ? rel : `./${rel}`;\n}\n\n/**\n * Localize the source image to the durable content-addressed R2 store — downloading a URL first,\n * since winning-ad references are presigned and expire within the hour — so both the vision passes\n * and the emitted canvas ingest a stable URL that re-runs in any future sandbox. Raster source\n * images NEVER enter git (they bloated every client repo when this wrote a committed\n * `references/` copy); the R2 URL is content-addressed, so it survives forever and re-scaffolds\n * of the same source upload nothing new.\n *\n * The bytes are normalized through `toModelSafeImage` up front (rasterizing SVG/AVIF/HEIC/… to\n * PNG), so the first `baker canvas run` ingests a model-safe reference.\n */\nexport async function uploadSourceAsReference(\n source: string,\n isUrl: boolean,\n client: BackendClient,\n): Promise<string> {\n let bytes: Buffer;\n if (isUrl) {\n // Somebody else's server, so it climbs on a refusal. The R2 PUT below is\n // ours and deliberately stays a bare `fetch` — routing our own storage\n // through a metered exit would bill us for our own bytes.\n try {\n ({ buffer: bytes } = await fetchExternalBytes(source, { maxBytes: MAX_REMOTE_IMAGE_BYTES }));\n } catch (e) {\n throw new Error(`failed to download source image (${e instanceof Error ? e.message : String(e)})`);\n }\n } else {\n bytes = await readFile(source);\n }\n const safe = await toModelSafeImage(bytes);\n const sha256 = sha256Hex(safe.bytes);\n // \"source\": wired into the COMMITTED canvas.json — the GC registry pins it forever.\n const { putUrl, publicUrl } = await client.presignAssetUpload(sha256, safe.mime, undefined, \"source\");\n const putRes = await fetch(putUrl, {\n method: \"PUT\",\n body: new Uint8Array(safe.bytes),\n headers: { \"Content-Type\": safe.mime },\n });\n if (!putRes.ok) throw new Error(`source upload failed (${putRes.status})`);\n return publicUrl;\n}\n\n/**\n * The typeface the model is shown: the brand's font file, else the family tokens.json or\n * BRAND.md names (fetched as a web font file). Null when the brand names none: the model\n * then follows the blueprint's `fonts`, and no neutral default is put in front of it.\n */\nasync function brandFace(\n root: string,\n kit: { headlineFont?: string },\n toCanvas: (file: string) => string,\n): Promise<ResolvedFont | null> {\n const font = await brandHeadlineFont({\n file: kit.headlineFont,\n named: await readNamedTypefaces(root),\n resolveUrl: (family, weight) => webFontUrl(family, weight, { lookupGoogleCss, fetchJson }),\n });\n if (!font) return null;\n return \"path\" in font.slot ? { ...font, slot: { path: toCanvas(font.slot.path) } } : font;\n}\n\ntype Report = ReturnType<typeof staticAdReport>;\n\n/** What the checklist says about the copy. */\nfunction staticTextNote(report: Report): string {\n if (report.text_forward) {\n return \"The reference pictures nothing but copy, so this ad is its words on the brand's colours: keep prompt.json's \\`references\\` empty unless the concept wants a picture.\";\n }\n const face = report.font ? `in ${report.font}, shown to it as a specimen` : \"in the face `brand.typeface` names (the brand has no font file)\";\n return `The copy is set by the image model: every line of \\`copy\\` in prompt.json, exactly as written, once. A line marked \\`\"lettering\": \"designed\"\\` is set ${face}; a line marked \\`\"in_scene\"\\` is lettered on the object it names (\\`on\\`), the way \\`look\\` says. Edit the copy in prompt.json; every run compiles the render prompts from it again and the review reads every word back against it.`;\n}\n\n/** How each delivered format is made. */\nfunction staticFormatsNote(report: Report, genModel: string, delivery?: ResolvedDelivery): string {\n const set = delivery ? ` ${deliveryNote(delivery, report.format_plan.master.renderRatio)}` : \"\";\n const banners =\n report.banners.length > 0\n ? ` The fixed banners ${report.banners.join(\", \")} are not made from the picture: make them apart, from the delivered sizes, before staging a display campaign.`\n : \"\";\n const plan = report.format_plan;\n const made: Record<string, (format: string) => string> = {\n master: (format) => `${format} is the chosen picture (rendered at ${plan.master.renderRatio})`,\n relayout: (format) =>\n `${format} is the chosen ad re-laid out for that frame by the image model (one billed request): the same words, people, product and logo, re-scaled for the frame, inside its safe area`,\n crop: (format) => `${format} is cut from it, every word kept inside its safe area (free)`,\n adapt: (format) => `${format} is adapted from it by the reframe model (one billed request)`,\n };\n const how = plan.sizes.map((f) => made[f.from]?.(f.format) ?? f.format).join(\"; \");\n const again = plan.sizes.some((s) => s.from === \"relayout\") ? \"\" : \" No size is rendered again.\";\n return `Delivers ${report.output_formats.join(\", \")}, each at its exact size, all from one picture (${genModel}): ${how}.${again}${set}${banners}`;\n}\n\n/** Who the ad is for, in the output: the ad set and the viewer it reaches, when known. */\nfunction viewerOutput(who: ScaffoldViewer): Record<string, unknown> {\n return {\n ...(who.targetAdSet ? { target_adset: who.targetAdSet } : {}),\n ...(who.viewer\n ? {\n viewer: {\n temperature: who.viewer.temperature,\n knows: who.viewer.knows,\n placements: who.viewer.placements,\n source: who.viewer.source,\n },\n }\n : {}),\n };\n}\n\n/** What the checklist says about the viewer. */\nfunction viewerNote(who: ScaffoldViewer): string {\n if (!who.viewer) {\n return \"Nobody said who sees this ad: pass --target-adset <id> (or, with no ad account, --viewer-temperature from the Knowledge) so the sizes keep clear of its placements and every run checks the ad against that viewer. Until then it is checked against a cold stranger.\";\n }\n const sizes = who.adPlacements ? `the sizes keep clear of ${who.adPlacements.join(\", \")}` : \"the sizes keep clear of every placement (Advantage+)\";\n return `Made for ${describeViewer(who.viewer)}: write prompt.json's \\`viewer\\` for them, ${sizes}, and every run checks the ad against this viewer before it spends.`;\n}\n\n/** Resolve every model id, honoring overrides; an unknown override throws (see `resolveModel`). */\nfunction resolveModels(args: Record<string, unknown>) {\n return {\n describeModel: resolveModel(\"image_describe\", args[\"describe-model\"], AD_DESCRIBE_MODEL),\n selectModel: resolveModel(\"text_generate\", args[\"select-model\"], BLUEPRINT_ANALYSIS_MODEL),\n // The render model: `--gen-model`, else the router's model for the concept (decided once\n // the blueprint is read, `renderModelFor`). Resolved here only so a bad override fails for free.\n genModel: args[\"gen-model\"] ? resolveModel(\"image_generate\", args[\"gen-model\"], String(args[\"gen-model\"])) : undefined,\n };\n}\n\n/**\n * Where the ad runs, decided before anything is billed, or the refusal printed: a creative (a\n * slug) always needs one, an ad-hoc canvas only when a flag names one (else its single size).\n */\nasync function deliveryOrFail(\n args: DeliveryFlags,\n definitionText: string | null,\n isCreative: boolean,\n): Promise<ResolvedDelivery | undefined> {\n if (!isCreative && !namesDelivery(args)) return undefined;\n const resolved = await scaffoldDelivery(args, definitionText);\n if (!resolved.ok) return fail(resolved.error.code, resolved.error.message, resolved.error.fix);\n return resolved.delivery;\n}\n\n/** Where the ad runs, in the output: the platforms, the size designed first, where they were read from. */\nfunction deliveryOutput(delivery: ResolvedDelivery | undefined): Record<string, unknown> {\n return delivery ? { platforms: delivery.platforms, lead: delivery.lead, platform_source: delivery.source } : {};\n}\n\n/**\n * Validate the scaffolded canvas as `canvas validate` will read it: canvas-relative paths\n * (`./prompt.json`) resolved against the canvas's own folder. A prompt over the model's cap\n * is the blueprint the describe pass wrote — already paid for, and fixed by editing\n * prompt.json — so it is reported as a hint on a written canvas, never an exit that\n * discards it. Every other issue still blocks.\n */\nexport async function validateScaffoldedStaticAd(\n canvas: unknown,\n canvasDir: string,\n): Promise<{ blocking: ValidationIssue[]; hints: string[]; estimatedCredits?: number }> {\n const validation = await validateCanvasDeep(resolveRelativeCanvasPaths(canvas, canvasDir), defaultRegistry());\n if (validation.ok) return { blocking: [], hints: [], estimatedCredits: validation.estimatedCredits };\n const overCap = validation.issues.filter((i) => i.code === \"PROMPT_OVER_MODEL_LIMIT\");\n return {\n blocking: validation.issues.filter((i) => i.code !== \"PROMPT_OVER_MODEL_LIMIT\"),\n hints: overCap.map((i) => `${i.code}: ${i.message} Trim prompt.json, then \\`baker canvas validate\\`.`),\n };\n}\n\n/** The describe + element-selection canvas, run once up front; we read both node outputs after. */\nexport function buildDescribeCanvas(\n imageSource: string,\n imageIsUrl: boolean,\n describeModel: string,\n selectModel: string,\n context?: string,\n) {\n const originalParams = imageIsUrl\n ? { source: \"url\" as const, url: imageSource, expect: \"image\" as const }\n : { source: \"path\" as const, path: imageSource, expect: \"image\" as const };\n return {\n schema: \"baker-canvas/1\" as const,\n metadata: { name: \"static-ad describe pass\" },\n nodes: [\n { id: \"original\", type: \"ingest\", params: originalParams },\n {\n id: \"describe\",\n type: \"image_describe\",\n inputs: { image: \"$ref:original.asset\" },\n params: { model: describeModel, max_tokens: 9000, ...(context ? { context } : {}), focus: AD_DESCRIBE_FOCUS },\n },\n {\n id: \"select\",\n type: \"text_generate\",\n inputs: { blueprint: \"$ref:describe.description\" },\n params: {\n model: selectModel,\n max_tokens: 4000,\n temperature: 0,\n response_format: \"json_object\",\n system: AD_SELECT_SYSTEM,\n prompt: AD_SELECT_PROMPT,\n },\n },\n ],\n // No declared output: runVisionPasses reads both node outputs after the run.\n };\n}\n\n/** Run the vision passes and read back the blueprint and the selected elements. */\nasync function runVisionPasses(canvas: ReturnType<typeof buildDescribeCanvas>): Promise<{\n blueprint: unknown;\n elements: unknown[];\n creditsSpent: number | undefined;\n}> {\n const engine = createEngineFromEnv({ log: (line) => process.stderr.write(`${line}\\n`) });\n let outputsByNode: Record<string, Record<string, unknown>>;\n let creditsSpent: number | undefined;\n try {\n const result = await engine.run(canvas, {});\n outputsByNode = result.outputs_by_node;\n creditsSpent = (result.stats as { total_credits?: number })?.total_credits;\n } catch (e) {\n if (e instanceof ValidationError) return fail(\"validation\", JSON.stringify(e.issues));\n return fail(\"describe\", e instanceof Error ? e.message : String(e));\n }\n try {\n const blueprint = JSON.parse(await loadAssetText(outputsByNode.describe?.description, \"describe output\"));\n const elements = parseElements(await loadAssetText(outputsByNode.select?.text, \"selection output\"));\n return { blueprint, elements, creditsSpent };\n } catch (e) {\n return fail(\"read_outputs\", e instanceof Error ? e.message : String(e));\n }\n}\n\n/**\n * Whether the picture's read is the library's shared one: a library ad's own picture read with nothing of the\n * company's own (its context, another model) depends only on the ad, so it is read once for every\n * company (`/api/ad-library/reference-read`; dev, Oct 2026: each company paid ~40 s for the same read).\n */\n/** The note for a reference not fitted yet. `fit` defaults to Meta, so it names the reference's platform. */\nexport function noFitNote(reference: { ad_id: string; platform: string }): string {\n return `${NO_FIT_HINT}: \\`baker winning-ads fit ${reference.ad_id} --platform ${reference.platform}\\` says what it wins on and what we have for it, and re-scaffolding seeds prompt.json's \\`concept\\` from it.`;\n}\n\nexport function sharesLibraryRead(args: Record<string, unknown>, fromLibrary: boolean): boolean {\n return fromLibrary && !args.file && !args.context && !args[\"describe-model\"] && !args[\"select-model\"];\n}\n\n/**\n * The library's shared read of the ad, null when it cannot be had (the run then reads the\n * picture itself). A first read takes as long as a local one; a reused one is instant and free.\n */\nasync function sharedLibraryRead(reference: LibraryReference): Promise<Awaited<ReturnType<typeof runVisionPasses>> | null> {\n try {\n const read = referenceReadResponseSchema.parse(\n await apiPost<unknown>(\n \"/api/ad-library/reference-read\",\n { ad_id: reference.ad_id, platform: reference.platform },\n { timeoutMs: 240_000 },\n ),\n );\n process.stderr.write(`[read ] ${read.reused ? \"the library's read of this ad, already made\" : \"read this ad for the library\"}\\n`);\n return {\n blueprint: read.blueprint,\n elements: parseElements(JSON.stringify({ elements: read.elements })),\n creditsSpent: read.credits_charged,\n };\n } catch (e) {\n process.stderr.write(`[read ] the library's read is unavailable (${e instanceof Error ? e.message : String(e)}); reading the picture here\\n`);\n return null;\n }\n}\n\nconst SOURCE_AD_ID_DESCRIPTION =\n \"The winners-library ad this creative adapts (the `ad_id` from `baker winning-ads search`). The library's read of \" +\n \"that ad (container, layout, colours, text blocks with their roles, persuasion mechanism, offer) is fetched and \" +\n \"written into prompt.json as `reference`, the describe pass is told it so the two reads agree, and the source is \" +\n \"recorded on the creative from this scaffold on. With it, the image is optional: the library's picture is used \" +\n \"when none is given. Pass it whenever the reference came from the library.\";\nconst PLATFORMS_DESCRIPTION =\n \"Where the ad runs, the main platform first. Start here: --platforms meta (4:5 + 9:16), --platforms linkedin (1:1), \" +\n \"--platforms linkedin,meta (1:1 first, then 4:5 + 9:16). Take it from the person's request, the idea or the ad set; \" +\n \"required for a creative, never defaulted. Every size the platforms need is delivered, the platform's own size designed \" +\n \"first, each kept clear of its placement's interface; a placement id names one placement alone (meta_stories: 9:16 only). \" +\n `Platforms: ${Object.entries(AD_PLATFORM_LEAD).map(([p, lead]) => `${p} (${lead})`).join(\", \")}. Fixed banner sizes (728x90…) are listed, not made.`;\nconst FORMATS_DESCRIPTION =\n \"Exactly the sizes to deliver, when the person asks for others than the platform's (e.g. `--platforms linkedin --formats 1:1,4:5`). \" +\n \"A size the platform never shows is refused; leaving out one it needs is honoured with a warning naming the placements that get a cropped picture.\";\nconst RETIRED_PLATFORM_DESCRIPTION = \"Retired: use --platforms. Still read (meta|google|linkedin|tiktok|youtube|x) and mapped onto --platforms.\";\nconst RETIRED_PLACEMENTS_DESCRIPTION =\n \"Retired: use --platforms (meta_feed_stories → meta, meta_all → meta,meta_right_column). `none` is refused: name the placement instead (--platforms meta_stories).\";\n\nconst SOURCE_PLATFORM_DESCRIPTION = `Which platform the library ad is on: ${LIBRARY_PLATFORMS.join(\"|\")} (default meta).`;\nconst TARGET_ADSET_DESCRIPTION =\n \"The Meta ad set this ad will run in (an id from `baker ads meta adsets`). Who it reaches is read off its targeting, \" +\n \"as `baker ads meta adsets --audience` reads it, and recorded in _definition.md as `targetAdSet` and `viewer`; the \" +\n \"sizes and the render brief keep clear of its placements, and every run checks the ad against that viewer. Free, \" +\n \"read before anything is billed. Start here whenever the ad is for a known ad set.\";\nconst VIEWER_TEMPERATURE_DESCRIPTION =\n \"With no ad set to read (no ad account, or not decided yet): how warm the viewer is, from the Knowledge (personas, \" +\n \"funnel): cold (never heard of the brand), warm (knows the brand), hot (a customer). Recorded as `viewer` with \" +\n \"`source: knowledge`. With --target-adset it corrects the temperature read off the ad set.\";\nconst VIEWER_KNOWS_DESCRIPTION =\n \"What the viewer already knows, comma-separated from brand,offer,product (e.g. `brand,offer`). Needs \" +\n \"--viewer-temperature or --target-adset.\";\nconst VIEWER_PLACEMENTS_DESCRIPTION =\n \"Where the viewer meets the ad, comma-separated Meta placements (e.g. `instagram_feed,facebook_feed`, \" +\n \"`instagram_stories`); default automatic (Advantage+, Reels included). The sizes keep clear of these placements' \" +\n \"interface. Needs --viewer-temperature or --target-adset.\";\n// Operator-only flags: citty cannot hide an argument from `--help`, so the description says so and\n// the agent-facing docs leave them out.\nconst OPERATOR = \"Operator only, agents never need it.\";\n\n/** The master shapes an operator may scaffold with (`--master-shape`): the default (ADR 0014) and the one it replaced. */\nconst SCAFFOLD_SHAPES = [\"plate\", \"relayout\"] as const satisfies readonly MasterShape[];\n\n/** `--master-shape`, read: undefined (the default) when absent, null when it names no shape an operator may pick. */\nfunction masterShapeArg(value: unknown): MasterShape | undefined | null {\n if (value === undefined) return undefined;\n const shape = SCAFFOLD_SHAPES.find((s) => s === String(value));\n return shape ?? null;\n}\n\nconst SOURCE_ADVERTISER_ID_DESCRIPTION =\n \"The library advertiser id of the reference (the `advertiser_id` beside the ad in search results). Defaults to the one the library returns for the ad.\";\n\nregisterSchema({\n command: \"canvas.scaffold-static-ad\",\n description:\n \"Turn a reference image into a runnable static-ad canvas: billed image_describe + element-selection passes, then a canvas on which the image model renders the finished ad from prompt.json (the logo drawn from the brand's file, or placed from it when src/brand/tokens.json has \\\"logoPlacement\\\": \\\"composite\\\"). Start here for a static ad adapted from a winning ad: pass `--source-ad-id <ad_id> --source-platform <platform>` from the search result, so the library's structured read grounds the describe pass (and so prompt.json) and the source is recorded on the creative; the image may then be omitted. Use `--avatar <handle>` by default whenever the ad needs a person: inspect `baker avatars list`, choose a ready actor who fits the buyer, or create one with explicit identity and setting. Description-only casting remains available when explicitly requested.\",\n args: {\n file: {\n type: \"positional\",\n required: false,\n description: \"Path or http(s) URL to the reference image. Optional with --source-ad-id: the library's picture is used.\",\n },\n \"source-ad-id\": { type: \"string\", required: false, description: SOURCE_AD_ID_DESCRIPTION },\n spec: {\n type: \"string\",\n required: false,\n description:\n \"Start from an ad spec (a prompt.json) instead of a reference picture: no describe pass, no source. `baker creatives make` writes one from an idea when no proven ad fits. Needs --slug.\",\n },\n \"source-platform\": {\n type: \"string\",\n required: false,\n description: SOURCE_PLATFORM_DESCRIPTION,\n enum: [...LIBRARY_PLATFORMS],\n },\n \"source-advertiser-id\": { type: \"string\", required: false, description: SOURCE_ADVERTISER_ID_DESCRIPTION },\n context: {\n type: \"string\",\n required: false,\n description: \"Known provenance (advertiser, category, market, their brand palette) to ground the describe pass\",\n },\n slug: {\n type: \"string\",\n required: false,\n description: \"Creative slug: writes src/creatives/<slug>/<slug>.canvas.json, prompt.json and _definition.md\",\n },\n title: { type: \"string\", required: false, description: \"Creative title for _definition.md (default: title-cased slug)\" },\n platform: { type: \"string\", required: false, description: RETIRED_PLATFORM_DESCRIPTION },\n advertiser: {\n type: \"string\",\n required: false,\n description: \"Source advertiser name for _definition.md (default: the library ad's advertiser when --source-ad-id is given)\",\n },\n placements: { type: \"string\", required: false, description: RETIRED_PLACEMENTS_DESCRIPTION },\n platforms: { type: \"string\", required: false, description: PLATFORMS_DESCRIPTION },\n formats: { type: \"string\", required: false, description: FORMATS_DESCRIPTION },\n aspect: {\n type: \"string\",\n required: false,\n description: \"Retired: adds this size when the platforms show it (never narrows). For an ad-hoc canvas with no platform, its one size.\",\n },\n \"target-adset\": { type: \"string\", required: false, description: TARGET_ADSET_DESCRIPTION },\n \"viewer-temperature\": {\n type: \"string\",\n required: false,\n description: VIEWER_TEMPERATURE_DESCRIPTION,\n enum: [...VIEWER_TEMPERATURE_VALUES],\n },\n \"viewer-knows\": { type: \"string\", required: false, description: VIEWER_KNOWS_DESCRIPTION },\n \"viewer-placements\": { type: \"string\", required: false, description: VIEWER_PLACEMENTS_DESCRIPTION },\n takes: {\n type: \"string\",\n required: false,\n description: \"Variants of the finished ad rendered (one request each) and judged, 1-3 (default 3). 1 skips the judge.\",\n },\n avatar: {\n type: \"string\",\n required: false,\n description: \"Cast company avatars as the ad's people, comma-separated in detection order (`marta` or `marta,joan`)\",\n },\n out: { type: \"string\", required: false, description: \"Output canvas path (default <image-dir>/static-ad.canvas.json)\" },\n \"describe-model\": { type: \"string\", required: false, description: \"Override the image_describe model id\" },\n \"select-model\": { type: \"string\", required: false, description: \"Override the element-selection text_generate model id\" },\n \"gen-model\": { type: \"string\", required: false, description: \"Override the image_generate model id\" },\n },\n});\n\n/** What the library said about the reference, or why nothing was fetched. Never fails the scaffold. */\nexport type ReferenceLookup =\n | { status: \"none\" }\n | { status: \"refused\"; refusal: DesignRefusal }\n | { status: \"grounded\"; reference: LibraryReference; mediaUrl: string | undefined }\n | { status: \"unavailable\"; adId: string; platform: string; message: string };\n\nexport async function lookupReference(args: Record<string, unknown>): Promise<ReferenceLookup> {\n const adId = args[\"source-ad-id\"] ? String(args[\"source-ad-id\"]).trim() : \"\";\n if (!adId) return { status: \"none\" };\n const platformResult = resolveSourcePlatform(args[\"source-platform\"] ? String(args[\"source-platform\"]) : undefined);\n if (!platformResult.ok) return fail(\"invalid_source_platform\", platformResult.message);\n const platform = platformResult.platform;\n const advertiserId = args[\"source-advertiser-id\"] ? String(args[\"source-advertiser-id\"]).trim() : undefined;\n try {\n const ad = await fetchLibraryReference(adId, platform);\n const refusal = notADesignReference(platform, adId, ad);\n if (refusal) return { status: \"refused\", refusal };\n return {\n status: \"grounded\",\n reference: libraryReferenceBlock(ad, { adId, platform, advertiserId }),\n mediaUrl: ad.media_url ?? undefined,\n };\n } catch (e) {\n return { status: \"unavailable\", adId, platform, message: e instanceof Error ? e.message : String(e) };\n }\n}\n\n/**\n * A static ad started from an ad spec rather than a reference picture: the spec is the ad (its\n * message, viewer and whatever the agent still has to write), the brand and formats are ours,\n * and the canvas has no source picture. Free: nothing is described or billed.\n */\nasync function scaffoldFromSpec(args: Record<string, unknown>, slug: string | undefined): Promise<void> {\n if (!slug) return fail(\"missing_slug\", \"--spec needs --slug: an ad started from a spec is a creative.\");\n const specPath = path.resolve(process.cwd(), String(args.spec));\n let started: ReturnType<typeof readAdSpec>;\n try {\n started = readAdSpec(JSON.parse(await readFile(specPath, \"utf8\")));\n } catch (e) {\n return fail(\"invalid_spec\", `${specPath} is not an ad spec: ${e instanceof Error ? e.message : String(e)}`);\n }\n const outPath = path.join(process.cwd(), \"src\", \"creatives\", slug, `${slug}.canvas.json`);\n const dir = path.dirname(outPath);\n const blueprintPath = path.join(dir, \"prompt.json\");\n const definitionPath = path.join(dir, \"_definition.md\");\n const existingDefinition = (await fileExists(definitionPath)) ? await readFile(definitionPath, \"utf8\") : null;\n // Where the ad runs decides its sizes: settled first, before anything is written or claimed.\n const delivery = await deliveryOrFail(args, existingDefinition, true);\n const who = await scaffoldViewer(args, existingDefinition, liveViewerLookups(process.cwd()).adSetViewer);\n if (!who.ok) return fail(\"invalid_viewer\", who.message);\n // An idea has no people to find: each Avatar asked for is one, cast before anything is written.\n const avatars = await resolveCastAvatars(args.avatar);\n if (\"error\" in avatars) return fail(\"avatar\", avatars.error);\n const persona = existingDefinition?.match(/^persona:\\s*\"?([^\"\\n]+)\"?\\s*$/m)?.[1] ?? started.viewer?.who;\n const cast = castOnIdeaSpec(started, avatars.avatars, persona);\n await mkdir(dir, { recursive: true });\n\n const workspaceRoot = (await findBrandRoot(dir)) ?? process.cwd();\n const found = await withClientLogo(workspaceRoot, await readStaticBrandKit(workspaceRoot), () => readStaticBrandKit(workspaceRoot));\n const kit = found.kit;\n const market =\n who.viewer?.market ?? marketFromCompanyDoc(await readFile(path.join(workspaceRoot, \"COMPANY.md\"), \"utf8\").catch(() => null));\n const brand = brandBlock(kit);\n const font = await brandFace(workspaceRoot, kit, (file) => toCanvasRelative(dir, file));\n const genModel = pickImageModel(conceptClassOf(cast.spec), \"generate\");\n const masterShape = masterShapeArg(args[\"master-shape\"]);\n if (masterShape === null) return fail(\"invalid_master_shape\", `--master-shape is ${SCAFFOLD_SHAPES.join(\" or \")}`);\n const logo = await placedLogo(kit.logo, (file) => toCanvasRelative(dir, file), kit.logoPlacement);\n const opts: StaticAdOpts = {\n genModel,\n blueprintPath: \"./prompt.json\",\n ...(masterShape ? { masterShape } : {}),\n ...(delivery ? { delivery } : {}),\n ...(who.adPlacements ? { adPlacements: who.adPlacements } : {}),\n brand: { logoPath: kit.logo ? toCanvasRelative(dir, kit.logo) : undefined, ...logo.brand, ...(font ? { font } : {}) },\n ...logo.opts,\n };\n const report = staticAdReport({}, cast.elements, { ...opts, spec: cast.spec });\n const spec = {\n ...cast.spec,\n ...(brand ? { brand: { ...brand, ...cast.spec.brand } } : {}),\n formats: report.output_formats,\n logo: Boolean(kit.logo),\n ...(market ? { viewer: { ...(cast.spec.viewer ?? { who: \"the people this ad is for\" }), market } } : {}),\n };\n await writeFile(blueprintPath, `${JSON.stringify(spec, null, 2)}\\n`, \"utf8\");\n const canvas = scaffoldStaticAd({}, cast.elements, { ...opts, spec });\n const validation = await validateScaffoldedStaticAd(canvas, dir);\n if (validation.blocking.length > 0) return fail(\"validation\", validation.blocking.map((i) => i.message).join(\"; \"));\n await writeFile(outPath, `${JSON.stringify(canvas, null, 2)}\\n`, \"utf8\");\n\n const title = args.title ? String(args.title) : titleFromSlug(slug);\n const recorded = who.record ? { targetAdSet: who.targetAdSet, viewer: who.viewer } : {};\n const where = delivery ? deliveryDefinitionFields(delivery) : undefined;\n if (existingDefinition === null) {\n const formats = resolveFormatList(report.output_formats);\n await writeFile(definitionPath, buildCreativeDefinition({ title, kind: \"static\", ...where, formats, ...recorded }), \"utf8\");\n } else if (where) {\n await writeFile(definitionPath, setDefinitionDelivery(existingDefinition, where), \"utf8\");\n }\n await syncCreativeDefinitionBestEffort({\n slug,\n title,\n ...(where ? { platform: where.platform } : {}),\n ...(await readDefinitionPlatforms(outPath)),\n formats: resolveFormatList(report.output_formats),\n canvas,\n sourceSha: await computeSourceSha(outPath),\n });\n process.stdout.write(\n `${JSON.stringify(\n {\n ok: true,\n canvas_path: outPath,\n prompt_path: blueprintPath,\n definition_path: definitionPath,\n output: canvas.output,\n hints: [...who.notes, ...(delivery?.notes ?? []), ...(found.hint ? [found.hint] : []), ...validation.hints],\n ...viewerOutput(who),\n ...deliveryOutput(delivery),\n output_formats: report.output_formats,\n master_shape: report.master_shape,\n stats: { total_nodes: canvas.nodes.length, describe_credits_spent: 0, run_estimated_credits: validation.estimatedCredits },\n },\n null,\n 2,\n )}\\n`,\n );\n}\n\nexport const scaffoldStaticAdCommand = defineCommand({\n meta: {\n name: \"scaffold-static-ad\",\n description:\n \"Turn a source/inspiration image into a runnable static-ad canvas. Runs billed passes — image_describe (read \" +\n \"into prompt.json, the ad spec you rewrite) and an AI selection of the image's MAIN identity elements — then \" +\n \"scaffolds a canvas on which the image model renders the FINISHED ad: up to three variants, one request each, \" +\n \"from a brief compiled from prompt.json, the copy quoted verbatim, the brand's typeface shown as a specimen and \" +\n 'the logo from src/brand/logos/ as a reference (only when prompt.json has \"logo\": true; a brand whose ' +\n 'src/brand/tokens.json has \"logoPlacement\": \"composite\" instead gets its logo file placed on every size, never ' +\n \"drawn: autofix records it after a drawn logo failed a correction). A prefilter drops \" +\n \"variants whose words or placement fail the checks, and a judge compares the rest pairwise against the brief; \" +\n \"the chosen picture is delivered at the platform's lead size (4:5 on Meta, 1:1 on LinkedIn) and every other placement format is that \" +\n \"ad re-laid out for its own frame by one image request, with the chosen picture as the reference: the same \" +\n \"words, people, product and logo, re-scaled for the frame, never cut or shrunk onto a background. The run reads every word back and refuses to call the ad ready when one is off. No copy means the picture is the ad. \" +\n \"Where the ad runs decides its sizes: pass --platforms (meta → 4:5 + 9:16, linkedin → 1:1, tiktok → 9:16), from the person's request; a creative with none is refused. Edit prompt.json and drop the real assets, then `baker canvas run` it. A person \" +\n \"is cast from a suitable company Avatar by default: pass `--avatar <handle>` (`baker avatars list`), \" +\n \"or create one with explicit identity and buyer setting. A description-only one-off remains available when \" +\n \"explicitly requested. Never cast a stranger from a searched photo. A reference from the library: pass \" +\n \"`--source-ad-id <ad_id> --source-platform <platform>` so its structured read grounds the describe pass and the \" +\n \"source is recorded on the creative.\",\n },\n args: {\n file: {\n type: \"positional\",\n required: false,\n description: \"Path or http(s) URL to the source/inspiration image (optional with --source-ad-id)\",\n },\n \"source-ad-id\": { type: \"string\", description: SOURCE_AD_ID_DESCRIPTION },\n spec: {\n type: \"string\",\n description:\n \"Start from an ad spec (a prompt.json) instead of a reference picture: no describe pass, no source. `baker creatives make` writes one from an idea when no proven ad fits. Needs --slug.\",\n },\n \"source-platform\": { type: \"string\", description: SOURCE_PLATFORM_DESCRIPTION },\n \"source-advertiser-id\": { type: \"string\", description: SOURCE_ADVERTISER_ID_DESCRIPTION },\n context: { type: \"string\", description: \"Known provenance (advertiser, category, market) to ground the describe\" },\n out: { type: \"string\", description: \"Output canvas path (default <image-dir>/static-ad.canvas.json)\" },\n slug: {\n type: \"string\",\n description: \"Creative slug — writes the canvas to src/creatives/<slug>/<slug>.canvas.json (repo convention)\",\n },\n title: { type: \"string\", description: \"Creative title for _definition.md (default: title-cased slug)\" },\n platform: { type: \"string\", description: RETIRED_PLATFORM_DESCRIPTION },\n advertiser: {\n type: \"string\",\n description: \"Source advertiser recorded in _definition.md (default: the library ad's advertiser)\",\n },\n \"describe-model\": { type: \"string\", description: \"Override the image_describe model id\" },\n \"select-model\": { type: \"string\", description: \"Override the text_generate model id for element selection\" },\n \"gen-model\": { type: \"string\", description: \"Override the image_generate model id\" },\n aspect: {\n type: \"string\",\n description:\n \"Retired: adds this size when the platforms show it (never narrows). For an ad-hoc canvas with no platform, its one size.\",\n },\n \"target-adset\": { type: \"string\", description: TARGET_ADSET_DESCRIPTION },\n \"viewer-temperature\": { type: \"string\", description: VIEWER_TEMPERATURE_DESCRIPTION },\n \"viewer-knows\": { type: \"string\", description: VIEWER_KNOWS_DESCRIPTION },\n \"viewer-placements\": { type: \"string\", description: VIEWER_PLACEMENTS_DESCRIPTION },\n placements: { type: \"string\", description: RETIRED_PLACEMENTS_DESCRIPTION },\n platforms: { type: \"string\", description: PLATFORMS_DESCRIPTION },\n formats: { type: \"string\", description: FORMATS_DESCRIPTION },\n takes: {\n type: \"string\",\n description: \"Variants of the finished ad to render (one request each) and judge, 1-3 (default 3). 1 skips the judge.\",\n },\n \"master-shape\": {\n type: \"string\",\n description: `${OPERATOR} How the sizes are made: plate (each variant's picture drawn without the ad's words, every size cut from the chosen one and its words set for it) or relayout (each size re-laid out from the chosen ad). Default: routed by the ad's kind, plate for a photo-led ad and relayout for a designed, chat, screenshot or interface one (the output's master_shape says why). On an existing creative, plate moves it onto one picture, keeping its approved size.`,\n },\n avatar: {\n type: \"string\",\n description:\n \"Cast company avatars as the ad's people — preferred whenever an ad needs an actor, including a single ad. \" +\n \"Choose a ready avatar who fits the buyer, or create one with explicit identity and setting. One handle, or \" +\n \"several comma-separated in the order the people were detected (`--avatar marta` / `--avatar marta,joan`). \" +\n \"Each person slot grounds on that avatar's identity sheet and prompt.json describes them in the avatar's own \" +\n \"words, so the ad shows the company's cast instead of the source ad's. `baker avatars list` shows who there is; \" +\n \"checked before anything is billed.\",\n },\n },\n async run({ args }) {\n const slug = args.slug ? String(args.slug) : undefined;\n if (slug && !isValidScaffoldSlug(slug)) {\n process.stderr.write(\n `${JSON.stringify({ ok: false, error: { code: \"invalid_slug\", message: \"--slug must be lowercase kebab (a-z, 0-9, hyphens), max 100 chars\" } }, null, 2)}\\n`,\n );\n process.exit(2);\n }\n // The library's read of the reference, fetched before anything bills. A failed fetch\n // with an image given degrades to a scaffold without the DNA (warned, and said in hints);\n // with no image there is nothing to describe, so it stops here.\n if (args.spec) return scaffoldFromSpec(args, slug);\n const lookup = await lookupReference(args);\n if (lookup.status === \"refused\") return fail(\"not_a_design_reference\", lookup.refusal.message, lookup.refusal.fix);\n if (lookup.status === \"unavailable\") {\n process.stderr.write(\n `[warn] winners-library ad ${lookup.adId} (${lookup.platform}) could not be read (${lookup.message}); scaffolding without its structured read\\n`,\n );\n }\n const reference = lookup.status === \"grounded\" ? lookup.reference : undefined;\n const fileArg = args.file ? String(args.file) : undefined;\n const sourceFile = fileArg ?? (lookup.status === \"grounded\" ? lookup.mediaUrl : undefined);\n if (!sourceFile) {\n if (lookup.status === \"none\") return fail(\"missing_source\", \"Pass the reference image, or --source-ad-id <ad_id> to use a library ad.\");\n if (lookup.status === \"unavailable\") return fail(\"source_unavailable\", `No image given and the library ad could not be read (${lookup.message}).`);\n return fail(\"source_unavailable\", `The library holds no picture for ad ${reference?.ad_id}; pass the image.`);\n }\n\n const { imageIsUrl, imageSource, outPath, blueprintPath, definitionPath, referencesDir } =\n resolveScaffoldStaticAdPaths(sourceFile, args.out ? String(args.out) : undefined, process.cwd(), slug);\n\n\n // Who the ad is for, read before anything is billed: a bad flag fails for free, and an ad\n // set that cannot be read only costs the ad its narrower placements.\n const existingDefinition =\n definitionPath && (await fileExists(definitionPath)) ? await readFile(definitionPath, \"utf8\") : null;\n // Where the ad runs decides its sizes: settled before the billed read, never defaulted.\n const delivery = await deliveryOrFail(args, existingDefinition, definitionPath !== null);\n const who = await scaffoldViewer(args, existingDefinition, liveViewerLookups(process.cwd()).adSetViewer);\n if (!who.ok) return fail(\"invalid_viewer\", who.message);\n\n // The fit made of this reference (`baker winning-ads fit`), read before anything bills: a\n // reference judged not to fit is refused here, and one that fits seeds prompt.json's concept.\n const fitRoot = findWorkspaceRoot(process.cwd()) ?? process.cwd();\n const fit =\n reference || lookup.status === \"unavailable\"\n ? await readCachedFit(fitRoot, reference?.platform ?? (lookup.status === \"unavailable\" ? lookup.platform : \"meta\"), reference?.ad_id ?? (lookup.status === \"unavailable\" ? lookup.adId : \"\"))\n : null;\n const fitProblems = fit ? fitHints(fit, reference?.ad_id ?? \"\").filter((h) => h.startsWith(\"Pick another reference\")) : [];\n if (fitProblems.length > 0) return fail(\"concept_does_not_fit\", fitProblems.join(\" \"));\n\n // Create the creative folder up front (was missing — the agent had to `mkdir -p` and re-run,\n // double-billing the vision passes) and fail before any billed work if the path is unwritable.\n await mkdir(path.dirname(outPath), { recursive: true });\n\n let models: ReturnType<typeof resolveModels>;\n try {\n models = resolveModels(args);\n } catch (e) {\n return fail(\"unknown_model\", e instanceof Error ? e.message : String(e));\n }\n const { describeModel, selectModel } = models;\n\n // Resolved before the billed passes: a handle that cannot be cast fails for free.\n const cast = await resolveCastAvatars(args.avatar);\n if (\"error\" in cast) return fail(\"avatar\", cast.error);\n\n // Localize the source to durable storage BEFORE any billed pass: presigned\n // winning-ad URLs expire within the hour, the raster bytes must never land\n // in git, and the vision passes + emitted canvas then read one stable URL\n // (a dead source aborts here, before any credits are spent).\n let durableSourceUrl: string | undefined;\n if (referencesDir) {\n const client = buildBackendClient();\n if (client) {\n try {\n durableSourceUrl = await uploadSourceAsReference(imageSource, imageIsUrl, client);\n } catch (e) {\n return fail(\"source_unavailable\", e instanceof Error ? e.message : String(e));\n }\n }\n }\n\n // One run: ingest → describe → select. We read both node outputs after.\n const describeCanvas = buildDescribeCanvas(\n durableSourceUrl ?? imageSource,\n durableSourceUrl !== undefined || imageIsUrl,\n describeModel,\n selectModel,\n referenceDescribeContext(reference, args.context ? String(args.context) : undefined),\n );\n const shared =\n reference && sharesLibraryRead(args, lookup.status === \"grounded\") ? await sharedLibraryRead(reference) : null;\n const vision = shared ?? (await runVisionPasses(describeCanvas));\n const { creditsSpent } = vision;\n // The library's read joins the blueprint as `reference` (bookkeeping, never a mechanism).\n const blueprint = mergeReferenceIntoBlueprint(vision.blueprint, reference);\n // Cast by who the ad is for (D2): the definition's persona, else the viewer the ad set reaches.\n const persona = existingDefinition?.match(/^persona:\\s*\"?([^\"\\n]+)\"?\\s*$/m)?.[1];\n const elements = castAvatarsOnStaticElements(vision.elements, cast.avatars, persona);\n const uncast = staticAvatarsNotCast(elements, cast.handles);\n\n // The brand's colours ride in prompt.json as `brand`: the brief ties each to an object and\n // never borrows a colour from the reference ad.\n const canvasDir = path.dirname(outPath);\n const workspaceRoot = (await findBrandRoot(canvasDir)) ?? process.cwd();\n const found = await withClientLogo(workspaceRoot, await readStaticBrandKit(workspaceRoot), () => readStaticBrandKit(workspaceRoot));\n const kit = found.kit;\n // Where the ad runs: the ad set's countries, else the market COMPANY.md names (D1).\n const market =\n who.viewer?.market ?? marketFromCompanyDoc(await readFile(path.join(workspaceRoot, \"COMPANY.md\"), \"utf8\").catch(() => null));\n const brand = brandBlock(kit);\n\n // Creative convention: point the canvas at the durable source URL (content-addressed,\n // never expires, re-runs in any fresh sandbox with zero git bloat) and at a canvas-relative\n // blueprint path. Ad-hoc canvases (no slug) keep their verbatim source + absolute blueprint path.\n let canvasImagePath = imageSource;\n let canvasImageIsUrl = imageIsUrl;\n let canvasBlueprintPath = blueprintPath;\n if (referencesDir) {\n canvasBlueprintPath = \"./prompt.json\";\n if (durableSourceUrl) {\n canvasImagePath = durableSourceUrl;\n canvasImageIsUrl = true;\n }\n }\n\n const where = delivery ? deliveryDefinitionFields(delivery) : undefined;\n\n // The brand's typeface and logo: the canvas points at them by canvas-relative path, so\n // the render reads the real files.\n const relative = (file: string | undefined) => (file ? toCanvasRelative(canvasDir, file) : undefined);\n const takes = args.takes !== undefined ? Number.parseInt(String(args.takes), 10) : undefined;\n if (takes !== undefined && !(takes >= 1 && takes <= 3)) return fail(\"invalid_takes\", \"--takes must be 1, 2 or 3\");\n const masterShape = masterShapeArg(args[\"master-shape\"]);\n if (masterShape === null) return fail(\"invalid_master_shape\", `--master-shape is ${SCAFFOLD_SHAPES.join(\" or \")}`);\n const font = await brandFace(workspaceRoot, kit, (file) => toCanvasRelative(canvasDir, file));\n const logo = await placedLogo(kit.logo, (file) => toCanvasRelative(canvasDir, file), kit.logoPlacement);\n\n // The render model the router picks for this kind of concept, unless `--gen-model` pinned one.\n const genModel = models.genModel ?? pickImageModel(conceptClassOf(staticAdSpec(blueprint, elements)), \"generate\");\n const opts: StaticAdOpts = {\n genModel,\n imagePath: canvasImagePath,\n imageIsUrl: canvasImageIsUrl,\n blueprintPath: canvasBlueprintPath,\n aspectRatio: args.aspect ? String(args.aspect) : undefined,\n ...(delivery ? { delivery } : {}),\n ...(who.adPlacements ? { adPlacements: who.adPlacements } : {}),\n brand: { logoPath: relative(kit.logo), ...logo.brand, ...(font ? { font } : {}) },\n ...logo.opts,\n takes,\n ...(masterShape ? { masterShape } : {}),\n };\n\n // prompt.json is the ad spec the agent rewrites into our ad; every render prompt is\n // compiled from it (static-brief.ts), here and again on every run.\n let canvas: ReturnType<typeof scaffoldStaticAd>;\n let report: ReturnType<typeof staticAdReport>;\n let conceptNotes: string[] = [];\n try {\n report = staticAdReport(blueprint, elements, { ...opts, spec: staticAdSpec(blueprint, elements, { logo: Boolean(kit.logo) }) });\n const spec = staticAdSpec(blueprint, elements, {\n brand,\n formats: report.output_formats,\n logo: Boolean(kit.logo),\n ...(fit ? { fit: conceptFromFit(fit, reference?.ad_id ?? \"\") } : {}),\n ...(market ? { market } : {}),\n });\n await writeFile(blueprintPath, `${JSON.stringify(spec, null, 2)}\\n`, \"utf8\");\n conceptNotes = conceptProblems(spec).map(\n (p) => `CONCEPT: ${p} Then \\`baker canvas run\\`; until then it refuses to render.`,\n );\n if (!fit && reference) {\n conceptNotes.push(noFitNote(reference));\n }\n canvas = scaffoldStaticAd(blueprint, elements, { ...opts, spec });\n } catch (e) {\n return fail(\"scaffold\", e instanceof Error ? e.message : String(e));\n }\n\n const validation = await validateScaffoldedStaticAd(canvas, path.dirname(outPath));\n if (validation.blocking.length > 0) {\n process.stderr.write(\n `${JSON.stringify({ ok: false, error: { code: \"validation\", issues: validation.blocking } }, null, 2)}\\n`,\n );\n process.exit(2);\n }\n\n await writeFile(outPath, `${JSON.stringify(canvas, null, 2)}\\n`, \"utf8\");\n\n // The library ids, recorded on the creative from this scaffold on (the definition and the\n // sync alike), so `baker_uses` in reference search counts this adaptation before Publish.\n const sourceFields: DefinitionSourceFields = reference\n ? {\n sourceAdId: reference.ad_id,\n sourcePlatform: reference.platform,\n ...(reference.advertiser_id ? { sourceAdvertiserId: reference.advertiser_id } : {}),\n }\n : lookup.status === \"unavailable\"\n ? {\n sourceAdId: lookup.adId,\n sourcePlatform: lookup.platform,\n ...(args[\"source-advertiser-id\"] ? { sourceAdvertiserId: String(args[\"source-advertiser-id\"]).trim() } : {}),\n }\n : {};\n\n // Auto-write _definition.md so the creative joins the content collection immediately (title,\n // platform, source metadata) — the agent no longer hand-writes it. Preserve one on re-scaffold.\n const recorded = who.record ? { targetAdSet: who.targetAdSet, viewer: who.viewer } : {};\n const sourceAdvertiser = args.advertiser ? String(args.advertiser) : reference?.advertiser;\n const sourceReferenceUrl = durableSourceUrl ?? (imageIsUrl ? imageSource : undefined);\n const rebased =\n existingDefinition !== null && sourceFields.sourceAdId && sourceFields.sourcePlatform\n ? rebasedDefinition(existingDefinition, {\n ...sourceFields,\n sourceAdId: sourceFields.sourceAdId,\n sourcePlatform: sourceFields.sourcePlatform,\n ...(sourceAdvertiser ? { sourceAdvertiser } : {}),\n ...(sourceReferenceUrl ? { sourceReferenceUrl } : {}),\n })\n : existingDefinition;\n if (definitionPath && rebased !== null && (who.record || where || rebased !== existingDefinition)) {\n const viewed = who.record ? setDefinitionViewer(rebased, recorded) : rebased;\n await writeFile(definitionPath, where ? setDefinitionDelivery(viewed, where) : viewed, \"utf8\");\n }\n if (definitionPath && existingDefinition === null) {\n await writeFile(\n definitionPath,\n buildCreativeDefinition({\n title: args.title ? String(args.title) : titleFromSlug(slug ?? \"\"),\n kind: \"static\",\n ...where,\n formats: resolveFormatList(report.output_formats),\n sourceReferenceUrl: durableSourceUrl ?? (imageIsUrl ? imageSource : undefined),\n sourceAdvertiser: args.advertiser\n ? String(args.advertiser)\n : (reference?.advertiser ?? (args.context ? String(args.context) : undefined)),\n ...sourceFields,\n sourceKind: \"image\",\n ...recorded,\n description: describeBlueprintIntent(blueprint),\n }),\n \"utf8\",\n );\n }\n\n // Push the parsed node-graph so the dashboard can draw this creative's\n // workflow immediately — before the first (billed) run. Best-effort.\n if (slug) {\n await syncCreativeDefinitionBestEffort({\n slug,\n title: args.title ? String(args.title) : titleFromSlug(slug),\n ...(where ? { platform: where.platform } : {}),\n ...(await readDefinitionPlatforms(outPath)),\n formats: resolveFormatList(report.output_formats),\n sourceReferenceUrl: durableSourceUrl ?? (imageIsUrl ? imageSource : undefined),\n ...sourceFields,\n canvas,\n sourceSha: await computeSourceSha(outPath),\n });\n }\n\n const hints = [\n ...who.notes,\n ...(delivery?.notes ?? []),\n ...(lookup.status === \"unavailable\"\n ? [\n `REFERENCE NOT READ: the winners library could not return ad ${lookup.adId} (${lookup.message}). prompt.json is read from the picture alone and has no \\`reference\\` block; the source ids are still recorded. Check the ad id and platform, or continue from the picture.`,\n ]\n : []),\n ...(uncast.length\n ? [\n `NOT CAST: ${uncast.map((h) => `\\`${h}\\``).join(\", \")} — the element selection found fewer people than avatars passed, so ${uncast.length === 1 ? \"this avatar plays\" : \"these avatars play\"} nobody in this ad. Tell the user who is cast and who is not.`,\n ]\n : []),\n ...(found.hint ? [found.hint] : []),\n ...validation.hints,\n ...conceptNotes,\n ...report.describe_gaps.map((gap) =>\n gap === \"winning_mechanisms\"\n ? \"The describe pass named no winning mechanism. Look at the source ad, add a `mechanism` entry to prompt.json ({ device, why_it_works }) and rebuild that device for our brand; a rewrite without it keeps the look and loses what made the ad work.\"\n : \"The describe pass recorded no typefaces. The designed lines are set in the brand's font when one loads (src/brand/fonts/, tokens.json or BRAND.md); with none, name our face in prompt.json's `brand.typeface` (for example \\\"a heavy geometric sans\\\"), or they are set in a plain sans.\",\n ),\n ];\n process.stdout.write(\n `${JSON.stringify(\n {\n ok: true,\n canvas_path: outPath,\n prompt_path: blueprintPath,\n definition_path: definitionPath ?? undefined,\n source_reference: durableSourceUrl ?? undefined,\n ...(reference\n ? {\n reference: {\n ad_id: reference.ad_id,\n platform: reference.platform,\n advertiser_id: reference.advertiser_id,\n format_pattern: reference.format_pattern,\n mechanism: reference.message.mechanism,\n },\n }\n : {}),\n output: canvas.output,\n ...(hints.length ? { hints } : {}),\n models: { describe: describeModel, select: selectModel, gen: opts.genModel },\n aspect_ratio: report.aspect_ratio,\n ...deliveryOutput(delivery),\n ...viewerOutput(who),\n output_formats: report.output_formats,\n // As the canvas records it: its spec carries the fit's concept, which the report's does not.\n master_shape: recordedShape(canvas) ?? report.master_shape,\n stats: {\n total_nodes: canvas.nodes.length,\n describe_credits_spent: creditsSpent,\n run_estimated_credits: validation.estimatedCredits,\n },\n checklist: {\n edit_prompt: `Edit ${path.basename(blueprintPath)}: it is the ad spec, read from your image, to rewrite into the ad you want. \\`viewer\\` (who sees it and what they already know), \\`message\\` (the one thing it tells them), \\`copy\\` (each line, \\`in_scene\\` or \\`designed\\`), \\`scene\\`, \\`references\\` (one picture each, by role), \\`colors\\` (each tied to an object, from the brand) and an optional \\`direction\\`. You never write a model prompt: every render prompt is compiled from this file and shown on its node.${reference ? \" Its `reference` block is the library's read of the source ad (container, layout, mechanism, offer, text blocks): keep it as the account of why the ad won, and rebuild it for our brand.\" : \"\"}`,\n mechanism: report.winning_mechanisms,\n rebuild_the_mechanism:\n \"`mechanism` is WHY the source ad works. Rebuild each device for our brand in prompt.json's copy and scene (a rhyme stays a rhyme in our words, a before/after stays a before/after of our product); never copy the source's literal copy.\",\n assets_to_supply: report.elements,\n summary: report.summary,\n text: staticTextNote(report),\n font: report.font,\n in_scene_text: report.in_scene_text,\n logo: report.logo.why,\n takes:\n report.takes === 1\n ? \"1 finished ad is rendered and used as it is (no judge).\"\n : `${report.takes} variants of the finished ad are rendered, one request each on its own direction. A prefilter drops any whose words or placement fail the checks, and the judge compares the rest pairwise against the brief (words, picture, space, one idea, the brief itself, brand); the winner becomes the ad and the others stay in the run as options the person can switch to (\\`baker canvas run --use-variant\\`).`,\n pictures:\n \"The reference's own people, products, animals and badges are not slots to fill: they are the source's world. Cast a person from a suitable ready company Avatar by default (--avatar <handle>); create one from the buyer context if none fits. A description-only one-off is available when explicitly requested; never use a stranger's found photo. To show our own product or another picture, add it to prompt.json's `references` with its `image` (a path from this folder, or a URL): every run wires it.\",\n formats: staticFormatsNote(report, opts.genModel, delivery),\n viewer: viewerNote(who),\n note: `Populate as you go: for each [TODO] ingest slot, source its real asset and wire it into the slot right away, one at a time. The logo is optional and never a slot to fill: it is given to the model only when prompt.json has \\`\"logo\": true\\` and src/brand/logos/ has the real file; never fetch or draw a stand-in. When every slot is filled, \\`baker canvas validate\\` then \\`baker canvas run\\`. Running generates billed images: it is not free.`,\n },\n },\n null,\n 2,\n )}\\n`,\n );\n },\n});\n\n/**\n * The brand's logo file as every size places it: its shape and its other colourways, paths as the\n * canvas reads them. Placed from the file when the brand's tokens.json says so (`placement`,\n * recorded once its drawn logo failed after a correction), else drawn by the model from it. A file\n * that does not open as a picture is drawn by the model (`logoComposite: false`); the first run says so.\n */\nexport async function placedLogo(\n file: string | undefined,\n relative: (file: string) => string,\n placement?: \"composite\",\n): Promise<{ brand: { logoAspect?: number; logoColourways?: string[] }; opts: { logoComposite?: boolean } }> {\n if (!file) return { brand: {}, opts: {} };\n const read = await readLogoFile(file);\n if (!read) return { brand: {}, opts: { logoComposite: false } };\n return {\n brand: {\n logoAspect: read.aspect,\n ...(read.colourways.length > 0 ? { logoColourways: read.colourways.map(relative) } : {}),\n },\n opts: placement === \"composite\" ? { logoComposite: true } : {},\n };\n}\n","import {\n VIEWER_KNOWS_VALUES,\n VIEWER_TEMPERATURE_VALUES,\n type ViewerKnows,\n type ViewerProfile,\n type ViewerTemperature,\n} from \"../../viewer-profile.ts\";\nimport { parseDefinitionViewerFields } from \"./creative-definition.ts\";\nimport { resolveViewer } from \"./viewer-check.ts\";\n\n/**\n * Who a scaffolded static ad is for, decided before anything is billed: the viewer the\n * ad set it will run in reaches (`--target-adset`, read as `baker ads meta adsets\n * --audience` reads it). The viewer's placements are what the sizes, the brief and the\n * prefilter keep clear of; the viewer itself is recorded in `_definition.md`, where the\n * viewer check reads it before every render.\n */\n\n/** The scaffold flags that say who the ad is for, as citty hands them over. */\nexport type ScaffoldViewerFlags = {\n \"target-adset\"?: unknown;\n \"viewer-temperature\"?: unknown;\n \"viewer-knows\"?: unknown;\n \"viewer-placements\"?: unknown;\n};\n\nexport type ScaffoldViewer = {\n ok: true;\n targetAdSet?: string;\n viewer?: ViewerProfile;\n /** Write `targetAdSet` / `viewer` into `_definition.md`: they came from this scaffold's flags. */\n record: boolean;\n /** The placements the sizes are planned around; absent = Advantage+ (Reels included). */\n adPlacements?: string[];\n /** What could not be read, for the hints. */\n notes: string[];\n};\n\n/** The viewer one ad set reaches, or null when no connected account holds it. */\nexport type AdSetViewerLookup = (adSetId: string) => Promise<ViewerProfile | null>;\n\nfunction flagText(value: unknown): string | undefined {\n const text = typeof value === \"string\" || typeof value === \"number\" ? String(value).trim() : \"\";\n return text || undefined;\n}\n\n/** Placements that narrow what Advantage+ runs; `automatic` alone is Advantage+ itself. */\nfunction narrows(placements: readonly string[]): boolean {\n return placements.some((placement) => placement !== \"automatic\");\n}\n\nfunction flagList(value: unknown): string[] | undefined {\n const list = (flagText(value) ?? \"\")\n .split(\",\")\n .map((item) => item.trim())\n .filter(Boolean);\n return list.length > 0 ? list : undefined;\n}\n\n/** What the `--viewer-*` flags say, checked. */\ntype ViewerFields = { temperature?: ViewerTemperature; knows?: ViewerKnows[]; placements?: string[] };\n\nconst isTemperature = (value: string): value is ViewerTemperature =>\n (VIEWER_TEMPERATURE_VALUES as readonly string[]).includes(value);\nconst isKnows = (value: string): value is ViewerKnows => (VIEWER_KNOWS_VALUES as readonly string[]).includes(value);\n\nfunction viewerFields(flags: ScaffoldViewerFlags): { ok: true; fields: ViewerFields } | { ok: false; message: string } {\n const temperature = flagText(flags[\"viewer-temperature\"]);\n if (temperature !== undefined && !isTemperature(temperature)) {\n return { ok: false, message: `--viewer-temperature must be one of ${VIEWER_TEMPERATURE_VALUES.join(\", \")}` };\n }\n const knows = flagList(flags[\"viewer-knows\"]);\n if (knows && !knows.every(isKnows)) {\n return { ok: false, message: `--viewer-knows takes ${VIEWER_KNOWS_VALUES.join(\", \")}` };\n }\n const placements = flagList(flags[\"viewer-placements\"]);\n return {\n ok: true,\n fields: {\n ...(temperature ? { temperature } : {}),\n ...(knows ? { knows: knows.filter(isKnows) } : {}),\n ...(placements ? { placements } : {}),\n },\n };\n}\n\n/** The viewer the agent read from the Knowledge, with no ad set to read it from. */\nfunction givenViewer(fields: ViewerFields): ViewerProfile | undefined {\n if (!fields.temperature) return undefined;\n return {\n temperature: fields.temperature,\n knows: fields.knows ?? [],\n placements: fields.placements ?? [\"automatic\"],\n source: \"knowledge\",\n reasons: [\"No ad set was read: this viewer was given when the ad was scaffolded, from the Knowledge.\"],\n };\n}\n\nconst FIELD_WORDS: Record<keyof ViewerFields, string> = {\n temperature: \"Temperature\",\n knows: \"What they know\",\n placements: \"Placements\",\n};\n\n/** The viewer read off the ad set, with whatever the agent stated in its place. */\nfunction correctedViewer(read: ViewerProfile, fields: ViewerFields): ViewerProfile {\n const stated = (Object.keys(FIELD_WORDS) as (keyof ViewerFields)[]).filter((key) => fields[key] !== undefined);\n if (stated.length === 0) return read;\n return {\n ...read,\n ...fields,\n reasons: [...read.reasons, ...stated.map((key) => `${FIELD_WORDS[key]} given when the ad was scaffolded.`)],\n };\n}\n\nconst EVERY_PLACEMENT = \"so the sizes keep clear of every placement\";\n\nasync function readAdSet(\n adSetId: string,\n adSetViewer: AdSetViewerLookup,\n notes: string[],\n): Promise<ViewerProfile | undefined> {\n try {\n const viewer = await adSetViewer(adSetId);\n if (viewer) return viewer;\n notes.push(`Ad set ${adSetId} is not in any connected Meta ad account, ${EVERY_PLACEMENT}.`);\n } catch (e) {\n notes.push(`Could not read ad set ${adSetId} (${e instanceof Error ? e.message : String(e)}), ${EVERY_PLACEMENT}.`);\n }\n return undefined;\n}\n\n/**\n * The viewer a creative's `_definition.md` already names, resolved as the viewer check\n * resolves it (the recorded viewer, else its ad set's); nothing is written back.\n */\nasync function recordedViewer(definition: string, adSetViewer: AdSetViewerLookup): Promise<ScaffoldViewer> {\n const { targetAdSet, viewer: recorded } = parseDefinitionViewerFields(definition);\n if (!targetAdSet && recorded === undefined) return { ok: true, record: false, notes: [] };\n const resolved = await resolveViewer({ recorded, targetAdSet }, { adSetViewer, personas: async () => [] });\n const viewer = resolved.from === \"recorded\" || resolved.from === \"ad_set\" ? resolved.viewer : undefined;\n return outcome(targetAdSet, viewer, false, resolved.notes);\n}\n\nfunction outcome(\n targetAdSet: string | undefined,\n viewer: ViewerProfile | undefined,\n record: boolean,\n notes: string[],\n): ScaffoldViewer {\n return {\n ok: true,\n ...(targetAdSet ? { targetAdSet } : {}),\n ...(viewer ? { viewer } : {}),\n record,\n ...(viewer && narrows(viewer.placements) ? { adPlacements: viewer.placements } : {}),\n notes,\n };\n}\n\n/**\n * Who the ad is for, from the scaffold's flags: `--target-adset` read off the ad set (any\n * `--viewer-*` flag correcting that read), else the `--viewer-*` flags alone (a viewer from\n * the Knowledge); with neither, whatever the creative's `_definition.md` already records.\n * A bad flag is refused before anything is billed; an ad set that cannot be read is not.\n */\nexport async function scaffoldViewer(\n flags: ScaffoldViewerFlags,\n existingDefinition: string | null,\n adSetViewer: AdSetViewerLookup,\n): Promise<ScaffoldViewer | { ok: false; message: string }> {\n const targetAdSet = flagText(flags[\"target-adset\"]);\n const given = viewerFields(flags);\n if (!given.ok) return given;\n const { fields } = given;\n if (!targetAdSet && !fields.temperature && (fields.knows || fields.placements)) {\n return {\n ok: false,\n message: \"--viewer-knows and --viewer-placements describe a viewer: pass --viewer-temperature too\",\n };\n }\n if (!targetAdSet && !fields.temperature && existingDefinition !== null) {\n return await recordedViewer(existingDefinition, adSetViewer);\n }\n const notes: string[] = [];\n const read = targetAdSet ? await readAdSet(targetAdSet, adSetViewer, notes) : undefined;\n const viewer = read ? correctedViewer(read, fields) : givenViewer(fields);\n return outcome(targetAdSet, viewer, targetAdSet !== undefined || viewer !== undefined, notes);\n}\n"],"mappings":"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","names":[]}