@koda-sl/baker-cli 0.553.0 → 0.555.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (857) hide show
  1. package/README.md +8 -4
  2. package/dist/account-H5CL6KUY.js +82 -0
  3. package/dist/account-assets-QMKT5AT7.js +290 -0
  4. package/dist/account-level-BELF6JHB.js +611 -0
  5. package/dist/account-reads-T6GTSAXE.js +219 -0
  6. package/dist/account-users-ZGJCVGX4.js +64 -0
  7. package/dist/accounts-EXQNPSYH.js +701 -0
  8. package/dist/accounts-GNVLFZ3X.js +80 -0
  9. package/dist/actions-Q2BMP27K.js +55 -0
  10. package/dist/activecampaign-SJO2YK6M.js +938 -0
  11. package/dist/add-Q3FGYX5Q.js +305 -0
  12. package/dist/add-YGQBSEVK.js +107 -0
  13. package/dist/ads-7QKQEHKT.js +48 -0
  14. package/dist/ads-H5AEYIY3.js +120 -0
  15. package/dist/adsets-BUIT7HF2.js +182 -0
  16. package/dist/advertisers-ZAHXMIAT.js +123 -0
  17. package/dist/analytics-B6ER4TQ7.js +2437 -0
  18. package/dist/analytics-QW5ZXDJR.js +447 -0
  19. package/dist/animate-Q43SOWB4.js +480 -0
  20. package/dist/asset-writes-JVFE457M.js +50 -0
  21. package/dist/assign-HJ2NXW4W.js +80 -0
  22. package/dist/audience-size-IM3N6W7C.js +76 -0
  23. package/dist/audience-writes-DWSCHYQF.js +327 -0
  24. package/dist/audiences-PYBJU2GV.js +106 -0
  25. package/dist/audit-N3LAQMD4.js +154 -0
  26. package/dist/autocomplete-FBTPT5MA.js +114 -0
  27. package/dist/avatars-Y3DALQIU.js +38 -0
  28. package/dist/bid-pricing-UUAC4GTQ.js +103 -0
  29. package/dist/brand-IZYD5SBJ.js +22 -0
  30. package/dist/brief-NA3E2W4P.js +543 -0
  31. package/dist/campaign-groups-3IUOLEK2.js +99 -0
  32. package/dist/campaign-writes-Y7QNFOE7.js +168 -0
  33. package/dist/campaigns-2Z6WXIVA.js +130 -0
  34. package/dist/campaigns-B2AUW4TV.js +111 -0
  35. package/dist/campaigns-IDEA3LOK.js +113 -0
  36. package/dist/canvas-WHFDCHUP.js +46 -0
  37. package/dist/capabilities-FVMMLKPY.js +147 -0
  38. package/dist/catalog-URTZYAPU.js +66 -0
  39. package/dist/catalogs-OEUNVE4N.js +782 -0
  40. package/dist/chatgpt-YBHXCXWZ.js +47 -0
  41. package/dist/chats-EENMDXWZ.js +449 -0
  42. package/dist/check-7735BPTR.js +107 -0
  43. package/dist/chunk-2QGGI7MF.js +831 -0
  44. package/dist/chunk-3HKZU3Y5.js +19 -0
  45. package/dist/chunk-3OMFSYQ3.js +344 -0
  46. package/dist/chunk-4N3Y5QWW.js +29 -0
  47. package/dist/chunk-4N3Y5QWW.js.map +1 -0
  48. package/dist/chunk-65CQYRMK.js +98 -0
  49. package/dist/chunk-6MZFOMLU.js +225 -0
  50. package/dist/chunk-6PT22YSR.js +91 -0
  51. package/dist/chunk-6WVYBY2G.js +8954 -0
  52. package/dist/chunk-757ZFIL4.js +910 -0
  53. package/dist/chunk-75HAGIH6.js +61 -0
  54. package/dist/chunk-7BVRFQN4.js +430 -0
  55. package/dist/chunk-7TDJCDKT.js +163 -0
  56. package/dist/chunk-AL4MRNYI.js +709 -0
  57. package/dist/chunk-BMNOMOWP.js +156 -0
  58. package/dist/chunk-BS2MC62Y.js +203 -0
  59. package/dist/chunk-C6PWVZQE.js +103 -0
  60. package/dist/chunk-CDTAKCJR.js +178 -0
  61. package/dist/chunk-CH44XVPE.js +142 -0
  62. package/dist/chunk-CJWLDKFO.js +494 -0
  63. package/dist/chunk-DAMC4FKK.js +224 -0
  64. package/dist/chunk-DSDI5DY3.js +115 -0
  65. package/dist/chunk-DSDI5DY3.js.map +1 -0
  66. package/dist/chunk-DWPOAU4Z.js +5471 -0
  67. package/dist/chunk-EENYLJUN.js +225 -0
  68. package/dist/chunk-EJBLF2LI.js +167 -0
  69. package/dist/chunk-EJMPKO6V.js +287 -0
  70. package/dist/chunk-EKXLJRO3.js +197 -0
  71. package/dist/chunk-EL3TDR5S.js +1744 -0
  72. package/dist/chunk-GRDZWZKQ.js +249 -0
  73. package/dist/chunk-GVUBRSD3.js +51 -0
  74. package/dist/chunk-GYREQDTJ.js +392 -0
  75. package/dist/chunk-HBRXFQQV.js +3510 -0
  76. package/dist/chunk-HLHR3EK2.js +23 -0
  77. package/dist/chunk-IMFIRELA.js +547 -0
  78. package/dist/chunk-IOKD77L2.js +89 -0
  79. package/dist/chunk-KDAINT54.js +131 -0
  80. package/dist/chunk-KKKZRQFY.js +297 -0
  81. package/dist/chunk-KOEXPN3G.js +2209 -0
  82. package/dist/chunk-KT5JVIPZ.js +91 -0
  83. package/dist/chunk-LC6PVPJX.js +76 -0
  84. package/dist/chunk-LETR3RQE.js +275 -0
  85. package/dist/chunk-MKLAZD23.js +7857 -0
  86. package/dist/chunk-MKLAZD23.js.map +1 -0
  87. package/dist/chunk-N3PASNUA.js +136 -0
  88. package/dist/chunk-NL77JRKE.js +170 -0
  89. package/dist/chunk-OBQ5YUOZ.js +1902 -0
  90. package/dist/chunk-OTFHIGEO.js +207 -0
  91. package/dist/chunk-PCUWBZM3.js +169 -0
  92. package/dist/chunk-PNWXTOQ4.js +455 -0
  93. package/dist/chunk-PQFTKHDA.js +479 -0
  94. package/dist/chunk-Q5DFEVLE.js +148 -0
  95. package/dist/chunk-QXCGWAC6.js +399 -0
  96. package/dist/chunk-RKDMYL4A.js +438 -0
  97. package/dist/chunk-SCBSAIVV.js +392 -0
  98. package/dist/chunk-SPBUE7R4.js +685 -0
  99. package/dist/chunk-TWFZIHKK.js +219 -0
  100. package/dist/chunk-U6G6ALXP.js +66 -0
  101. package/dist/chunk-UCJAPB5Y.js +334 -0
  102. package/dist/chunk-VFDWUIGR.js +57 -0
  103. package/dist/chunk-WC3YSN7L.js +604 -0
  104. package/dist/chunk-WIOPEK7K.js +930 -0
  105. package/dist/chunk-X3GWGFZP.js +5368 -0
  106. package/dist/chunk-X6U3B6YK.js +343 -0
  107. package/dist/chunk-X6U3B6YK.js.map +1 -0
  108. package/dist/chunk-XYKODRQR.js +191 -0
  109. package/dist/chunk-XZAVBONI.js +64 -0
  110. package/dist/chunk-Y5PNLB24.js +84 -0
  111. package/dist/claim-PGDIRXIC.js +200 -0
  112. package/dist/cli.js +34 -34
  113. package/dist/companies-WTPKGEB3.js +198 -0
  114. package/dist/company-6H2H73YP.js +308 -0
  115. package/dist/complete-2QBC3POO.js +84 -0
  116. package/dist/connect-35YPFAUL.js +45 -0
  117. package/dist/conversation-YZFNEWDV.js +96 -0
  118. package/dist/conversion-upload-command-J2FIO74Y.js +439 -0
  119. package/dist/conversions-ZFDBD3OU.js +140 -0
  120. package/dist/copy-writes-2B36QJUY.js +170 -0
  121. package/dist/create-3H67EUTO.js +62 -0
  122. package/dist/create-ALTOBDP4.js +239 -0
  123. package/dist/create-C3MWUYX2.js +210 -0
  124. package/dist/create-WHTT6IXY.js +135 -0
  125. package/dist/creatives-22BYP5VN.js +118 -0
  126. package/dist/creatives-LTIV3XPT.js +58 -0
  127. package/dist/creatives-Y2WLGDJW.js +223 -0
  128. package/dist/credentials-J5DMQJWN.js +290 -0
  129. package/dist/critique-RFTS2I46.js +232 -0
  130. package/dist/critique-X6XVPIUG.js +1451 -0
  131. package/dist/crm-LWRGJYHW.js +227 -0
  132. package/dist/crm-RUNEJY2R.js +323 -0
  133. package/dist/crop-4V4P3SKI.js +113 -0
  134. package/dist/custom-conversions-V7QPZIB4.js +128 -0
  135. package/dist/customers-IDB6NLQ6.js +65 -0
  136. package/dist/delete-2QKVUKKB.js +67 -0
  137. package/dist/delete-B7BKF24X.js +57 -0
  138. package/dist/delete-HBRYUWAA.js +69 -0
  139. package/dist/demographics-JHB3NFLU.js +141 -0
  140. package/dist/dimensions-KI3OENZD.js +101 -0
  141. package/dist/discard-FEJ6YL22.js +69 -0
  142. package/dist/domain-JYWNXBKS.js +101 -0
  143. package/dist/download-H3ZDQTFG.js +337 -0
  144. package/dist/download-H3ZDQTFG.js.map +1 -0
  145. package/dist/download-LOBPOIU5.js +172 -0
  146. package/dist/draft-2JVWCYRF.js +134 -0
  147. package/dist/draft-2JVWCYRF.js.map +1 -0
  148. package/dist/draft-4WMYCA7I.js +315 -0
  149. package/dist/draft-4WMYCA7I.js.map +1 -0
  150. package/dist/draft-7VGBJIJU.js +260 -0
  151. package/dist/draft-7VGBJIJU.js.map +1 -0
  152. package/dist/draft-DR5BJK7V.js +138 -0
  153. package/dist/draft-DR5BJK7V.js.map +1 -0
  154. package/dist/draft-EB5ZFDVN.js +557 -0
  155. package/dist/draft-EB5ZFDVN.js.map +1 -0
  156. package/dist/draft-I2FLECEX.js +220 -0
  157. package/dist/draft-N56HPS36.js +374 -0
  158. package/dist/draft-N56HPS36.js.map +1 -0
  159. package/dist/draft-ZLZRTPY6.js +332 -0
  160. package/dist/draft-ZLZRTPY6.js.map +1 -0
  161. package/dist/engine/index.js +5 -5
  162. package/dist/experiments-WVTBHD6G.js +236 -0
  163. package/dist/extract-UELZV3NI.js +142 -0
  164. package/dist/extract-UELZV3NI.js.map +1 -0
  165. package/dist/facets-V2ITIUKD.js +117 -0
  166. package/dist/feedback-PXWPR3NZ.js +136 -0
  167. package/dist/feedback-QSIPSNAL.js +115 -0
  168. package/dist/feedback-record-DJHJWJAF.js +269 -0
  169. package/dist/fetch-QVOOC3FA.js +204 -0
  170. package/dist/fit-REGMM46H.js +65 -0
  171. package/dist/flows-EZV3KCV6.js +250 -0
  172. package/dist/fonts-NUX66HEI.js +39 -0
  173. package/dist/forecast-W6HKYVX5.js +121 -0
  174. package/dist/forecast-XDRKCR65.js +169 -0
  175. package/dist/funnel-3YABA3G2.js +397 -0
  176. package/dist/ga4-IJ2UUICC.js +55 -0
  177. package/dist/generate-22HT24SA.js +263 -0
  178. package/dist/get-GQQLBE5C.js +82 -0
  179. package/dist/get-NL3YZFUJ.js +62 -0
  180. package/dist/google-BPB5JLJG.js +162 -0
  181. package/dist/google-BPB5JLJG.js.map +1 -0
  182. package/dist/google-UJ4YJGTJ.js +3285 -0
  183. package/dist/google-ads-RRKKSKDD.js +198 -0
  184. package/dist/history-2UANIBRN.js +102 -0
  185. package/dist/history-YZ727ZRG.js +153 -0
  186. package/dist/hubspot-KWLXJ6QD.js +782 -0
  187. package/dist/ideas-ZO533P5Y.js +45 -0
  188. package/dist/images-VUWUKGD6.js +92 -0
  189. package/dist/ingest-C2HJ5LUY.js +27 -0
  190. package/dist/ingest-H53JR4GK.js +123 -0
  191. package/dist/inspect-BM6GJHQV.js +192 -0
  192. package/dist/instant-experiences-U6U3FYIH.js +264 -0
  193. package/dist/keyword-metrics-R2QCEDYW.js +200 -0
  194. package/dist/keywords-for-site-NBV72C3W.js +131 -0
  195. package/dist/landing-L3WDTW4D.js +28 -0
  196. package/dist/leads-6PF7ZWCH.js +115 -0
  197. package/dist/leads-IG3IIHXG.js +541 -0
  198. package/dist/learn-V2LIBEEY.js +207 -0
  199. package/dist/line-item-writes-GMNWL4DI.js +211 -0
  200. package/dist/line-items-KPIKXLG4.js +107 -0
  201. package/dist/link-X7IYKR5V.js +67 -0
  202. package/dist/linkedin-RONIUYLJ.js +1330 -0
  203. package/dist/linkedin-RONIUYLJ.js.map +1 -0
  204. package/dist/linkedin-person-47XFTBIN.js +139 -0
  205. package/dist/list-PHNA7QIF.js +154 -0
  206. package/dist/list-QF3BANBM.js +306 -0
  207. package/dist/list-SB3SUTH6.js +67 -0
  208. package/dist/log-JFLSSUJ6.js +95 -0
  209. package/dist/make-ZIJQZD5K.js +1367 -0
  210. package/dist/map-NYJT2MGI.js +436 -0
  211. package/dist/mcp-ABQEICYR.js +729 -0
  212. package/dist/media-AT3VV3PU.js +18 -0
  213. package/dist/media-sources-L4BI7HFL.js +35 -0
  214. package/dist/members-BX37KHKO.js +47 -0
  215. package/dist/meta-2GJZPVKM.js +122 -0
  216. package/dist/normalize-M3VMWF4W.js +806 -0
  217. package/dist/normalize-MA2FBBIV.js +144 -0
  218. package/dist/options-NMWWF2HN.js +125 -0
  219. package/dist/organization-GRAA6ZXU.js +949 -0
  220. package/dist/page-photos-ABK4CJME.js +118 -0
  221. package/dist/performance-MQLRSH44.js +5565 -0
  222. package/dist/performance-RUBIGEAQ.js +27 -0
  223. package/dist/promoted-tweet-writes-3P6QFGLN.js +183 -0
  224. package/dist/promoted-tweets-TGFPH7UI.js +119 -0
  225. package/dist/publish-OUVO65Z5.js +344 -0
  226. package/dist/reddit-HWQCUSEM.js +29 -0
  227. package/dist/refresh-ENQDQGTK.js +97 -0
  228. package/dist/release-ZTVXLUQS.js +63 -0
  229. package/dist/remove-XAFRT7O7.js +53 -0
  230. package/dist/reopen-SWSZHXJZ.js +66 -0
  231. package/dist/rerun-MA2GB6WL.js +96 -0
  232. package/dist/research-TDH4OBX6.js +265 -0
  233. package/dist/research-WWJUNYSJ.js +75 -0
  234. package/dist/reset-34HTKUBQ.js +57 -0
  235. package/dist/reset-KMMGLM7W.js +57 -0
  236. package/dist/resolve-2CIIKADD.js +124 -0
  237. package/dist/retry-V7KZIZKR.js +63 -0
  238. package/dist/retry-YXM23NSB.js +65 -0
  239. package/dist/revenue-D4L6U2CW.js +91 -0
  240. package/dist/rule-writes-HUBHHYEO.js +530 -0
  241. package/dist/rules-47LFGCPW.js +217 -0
  242. package/dist/rules-F6RNUOXP.js +99 -0
  243. package/dist/rules-add-SAQRESVK.js +465 -0
  244. package/dist/run-FRPO2WNQ.js +69 -0
  245. package/dist/run-HENSSAQW.js +71 -0
  246. package/dist/scaffold-ad-QQBCUYUO.js +1513 -0
  247. package/dist/scaffold-static-ad-WUOAQEXS.js +1011 -0
  248. package/dist/scaffold-video-KFQAKQUO.js +885 -0
  249. package/dist/schedule-S4XAVVEI.js +64 -0
  250. package/dist/scheduled-agents-ZWAP6QLC.js +55 -0
  251. package/dist/schema-EJ2XPUN6.js +135 -0
  252. package/dist/search-2BAY3KKX.js +177 -0
  253. package/dist/select-K2SXPDDJ.js +110 -0
  254. package/dist/set-prompt-BZFOV3EB.js +199 -0
  255. package/dist/setup-links-QT63UZBR.js +144 -0
  256. package/dist/shopify-Q7TQIQ6N.js +4009 -0
  257. package/dist/shopify-Q7TQIQ6N.js.map +1 -0
  258. package/dist/site-S6QVMP7W.js +180 -0
  259. package/dist/sources-DTQ4NQAM.js +30 -0
  260. package/dist/sources-ORG5KQSW.js +457 -0
  261. package/dist/stale-5O7BQVTN.js +90 -0
  262. package/dist/status-4G2YUCZR.js +65 -0
  263. package/dist/stock-5SQ2PGEC.js +211 -0
  264. package/dist/stock-5SQ2PGEC.js.map +1 -0
  265. package/dist/studies-QLSKON6M.js +250 -0
  266. package/dist/studio-IDXFTGHP.js +49 -0
  267. package/dist/study-writes-GBUUKX4O.js +471 -0
  268. package/dist/sync-7LJZPHM3.js +57 -0
  269. package/dist/sync-definition-Q3XUSEZJ.js +70 -0
  270. package/dist/tag-manager-5WZPX2FJ.js +43 -0
  271. package/dist/tags-2ARVNEYS.js +23 -0
  272. package/dist/tags-F4IT7RQR.js +23 -0
  273. package/dist/tags-F7ZO52EM.js +23 -0
  274. package/dist/tags-NBGGBHXR.js +227 -0
  275. package/dist/tags-TCSGQYDR.js +26 -0
  276. package/dist/targeting-DAUTJDUB.js +762 -0
  277. package/dist/targeting-criteria-H42LRULY.js +113 -0
  278. package/dist/targets-WB4E5XL2.js +106 -0
  279. package/dist/testimonials-KLF3Y4QO.js +32 -0
  280. package/dist/themes-BGBDYQQK.js +95 -0
  281. package/dist/top-companies-C2W5TJ7G.js +111 -0
  282. package/dist/transcript-S7VR2GJE.js +165 -0
  283. package/dist/translate-CBITGC7C.js +603 -0
  284. package/dist/triggers-EOKMR74O.js +144 -0
  285. package/dist/unlink-PC3TMWUT.js +70 -0
  286. package/dist/unstage-SU2ATDSZ.js +88 -0
  287. package/dist/update-DKX3EEES.js +155 -0
  288. package/dist/update-JYZ45YJG.js +66 -0
  289. package/dist/update-TAZSUOAS.js +192 -0
  290. package/dist/update-WRJUH2NM.js +101 -0
  291. package/dist/upload-BLXTMK5Q.js +130 -0
  292. package/dist/url-params-YVOFU6MK.js +101 -0
  293. package/dist/validate-SAQEORZY.js +125 -0
  294. package/dist/videos-GOIDZVVD.js +41 -0
  295. package/dist/viewer-check-KTRRUVZN.js +83 -0
  296. package/dist/web-6KUM7Q7S.js +173 -0
  297. package/dist/winning-ads-LOMI72Q2.js +86 -0
  298. package/dist/write-commands-3U5ZMIHH.js +1524 -0
  299. package/dist/write-commands-F5XPPLOO.js +1169 -0
  300. package/dist/x-APVY4YHX.js +47 -0
  301. package/package.json +1 -1
  302. package/dist/account-XIC5TTV3.js +0 -82
  303. package/dist/account-assets-V7KSSTVP.js +0 -290
  304. package/dist/account-level-2KLG6HTG.js +0 -611
  305. package/dist/account-reads-ZPZUCB3P.js +0 -219
  306. package/dist/account-users-XTUKRDWK.js +0 -64
  307. package/dist/accounts-25JL77F7.js +0 -701
  308. package/dist/accounts-AF72N4NV.js +0 -80
  309. package/dist/actions-IJO4JW7J.js +0 -55
  310. package/dist/activecampaign-PBTUMTO5.js +0 -938
  311. package/dist/add-KHQXXHC5.js +0 -107
  312. package/dist/add-YQPFRDVM.js +0 -305
  313. package/dist/ads-EVQ37EV3.js +0 -120
  314. package/dist/ads-O5PUYU7H.js +0 -48
  315. package/dist/adsets-4IW5TRAK.js +0 -182
  316. package/dist/advertisers-JNOWSZZC.js +0 -123
  317. package/dist/analytics-CZMCM7XC.js +0 -2437
  318. package/dist/analytics-K5FCQLI5.js +0 -447
  319. package/dist/animate-C6BRMRRD.js +0 -480
  320. package/dist/asset-writes-RF6XTWLY.js +0 -50
  321. package/dist/assign-WXZNXVJH.js +0 -80
  322. package/dist/audience-size-ZCWH4CFC.js +0 -76
  323. package/dist/audience-writes-5KT6FHUY.js +0 -327
  324. package/dist/audiences-ZDOK3OYC.js +0 -106
  325. package/dist/audit-RBRXPPKK.js +0 -154
  326. package/dist/autocomplete-P5OU7QVL.js +0 -114
  327. package/dist/avatars-UHBA2BQ3.js +0 -38
  328. package/dist/bid-pricing-LHNYSDG4.js +0 -103
  329. package/dist/brand-7WL3O74X.js +0 -22
  330. package/dist/brief-HWZU75WP.js +0 -543
  331. package/dist/campaign-groups-BYS3GNEP.js +0 -99
  332. package/dist/campaign-writes-N6OHAK6V.js +0 -168
  333. package/dist/campaigns-2E4AQBFB.js +0 -113
  334. package/dist/campaigns-3U5IRXSV.js +0 -130
  335. package/dist/campaigns-QLKGN4FB.js +0 -111
  336. package/dist/canvas-GGHJ26ZM.js +0 -46
  337. package/dist/capabilities-TKEEHR7K.js +0 -147
  338. package/dist/catalog-7KQN43HS.js +0 -66
  339. package/dist/catalogs-5CHPI4H6.js +0 -782
  340. package/dist/chatgpt-RQQWU7AP.js +0 -47
  341. package/dist/chats-PBXYH2LT.js +0 -449
  342. package/dist/check-SVYI72DF.js +0 -107
  343. package/dist/chunk-2RL2T5JO.js +0 -142
  344. package/dist/chunk-3HLQZTQ3.js +0 -685
  345. package/dist/chunk-42JTSTQ3.js +0 -207
  346. package/dist/chunk-4AEAL63J.js +0 -203
  347. package/dist/chunk-4PM32OS3.js +0 -57
  348. package/dist/chunk-4ULGRGBG.js +0 -333
  349. package/dist/chunk-4ULGRGBG.js.map +0 -1
  350. package/dist/chunk-4XMPL3RU.js +0 -19
  351. package/dist/chunk-5AOTCCTT.js +0 -831
  352. package/dist/chunk-5NLUTJCQ.js +0 -5368
  353. package/dist/chunk-6FWVRXDW.js +0 -64
  354. package/dist/chunk-6MXM6DA6.js +0 -225
  355. package/dist/chunk-73MLPGI2.js +0 -66
  356. package/dist/chunk-7OVPQX4X.js +0 -163
  357. package/dist/chunk-B5UVOCYA.js +0 -344
  358. package/dist/chunk-BRNZMKO4.js +0 -604
  359. package/dist/chunk-CJFCQMUY.js +0 -438
  360. package/dist/chunk-D6VQPBVM.js +0 -5471
  361. package/dist/chunk-DK66PUXL.js +0 -275
  362. package/dist/chunk-DNH2ZPZP.js +0 -287
  363. package/dist/chunk-DWSSQBLO.js +0 -103
  364. package/dist/chunk-ESXUIV6V.js +0 -169
  365. package/dist/chunk-FSEFZZ2T.js +0 -930
  366. package/dist/chunk-I4BQTVMY.js +0 -225
  367. package/dist/chunk-IBBGABK2.js +0 -91
  368. package/dist/chunk-IC4MREQH.js +0 -219
  369. package/dist/chunk-IJ6NQKAT.js +0 -61
  370. package/dist/chunk-IZROFBH7.js +0 -167
  371. package/dist/chunk-J5UTL4HE.js +0 -3510
  372. package/dist/chunk-JBMZVC5D.js +0 -91
  373. package/dist/chunk-LFELUKCA.js +0 -249
  374. package/dist/chunk-LMOZWB4G.js +0 -98
  375. package/dist/chunk-LVLTWPRR.js +0 -392
  376. package/dist/chunk-N5AIO23H.js +0 -2209
  377. package/dist/chunk-NE3OMP7R.js +0 -23
  378. package/dist/chunk-NO52OH3Y.js +0 -156
  379. package/dist/chunk-NRIKX35V.js +0 -399
  380. package/dist/chunk-NZYWKZ3Q.js +0 -76
  381. package/dist/chunk-OIORUNKH.js +0 -1902
  382. package/dist/chunk-OKXLOLEV.js +0 -455
  383. package/dist/chunk-P4MXGSSJ.js +0 -178
  384. package/dist/chunk-PYAR343F.js +0 -479
  385. package/dist/chunk-QFVZIQRQ.js +0 -8954
  386. package/dist/chunk-QI5UKQX3.js +0 -297
  387. package/dist/chunk-RCNAKWK7.js +0 -7852
  388. package/dist/chunk-RCNAKWK7.js.map +0 -1
  389. package/dist/chunk-RHNNFCRY.js +0 -494
  390. package/dist/chunk-RJQT7QXX.js +0 -547
  391. package/dist/chunk-RMZLB4AH.js +0 -197
  392. package/dist/chunk-S4NMWYHW.js +0 -51
  393. package/dist/chunk-S6XZIBWV.js +0 -392
  394. package/dist/chunk-SFQFUQDW.js +0 -170
  395. package/dist/chunk-SP3MHBME.js +0 -89
  396. package/dist/chunk-TGT4XHLX.js +0 -131
  397. package/dist/chunk-VX6GTRT3.js +0 -910
  398. package/dist/chunk-WGJ2QEW4.js +0 -334
  399. package/dist/chunk-XB4NKZAQ.js +0 -136
  400. package/dist/chunk-XSBX3LJP.js +0 -430
  401. package/dist/chunk-XXBP73RV.js +0 -148
  402. package/dist/chunk-Y3SK6EMU.js +0 -84
  403. package/dist/chunk-Y4ZBNZBU.js +0 -191
  404. package/dist/chunk-YCAJCVW4.js +0 -224
  405. package/dist/chunk-ZANXEMON.js +0 -1744
  406. package/dist/chunk-ZMTWQDFC.js +0 -709
  407. package/dist/claim-Q76T3MYA.js +0 -200
  408. package/dist/companies-MLWRWQ73.js +0 -198
  409. package/dist/company-X5Z67PMK.js +0 -308
  410. package/dist/complete-3CFP6XVY.js +0 -84
  411. package/dist/connect-QXFAB4RJ.js +0 -45
  412. package/dist/conversation-C6K6IZTH.js +0 -96
  413. package/dist/conversion-upload-command-D7S5HF22.js +0 -439
  414. package/dist/conversions-4ILDIG3K.js +0 -140
  415. package/dist/copy-writes-FYXKHJDB.js +0 -170
  416. package/dist/create-LDQ3YHET.js +0 -62
  417. package/dist/create-TKOG7DNJ.js +0 -210
  418. package/dist/create-WFMJOZLO.js +0 -135
  419. package/dist/create-WQNT345R.js +0 -239
  420. package/dist/creatives-45SJAD3G.js +0 -118
  421. package/dist/creatives-E4CTMZJJ.js +0 -223
  422. package/dist/creatives-Q4OXNCTT.js +0 -58
  423. package/dist/credentials-E2AIMWKX.js +0 -290
  424. package/dist/critique-EWV3O3TD.js +0 -1451
  425. package/dist/critique-JVT6X2T3.js +0 -232
  426. package/dist/crm-NQH5FTK6.js +0 -227
  427. package/dist/crm-YGQKK76D.js +0 -323
  428. package/dist/crop-KV24WHOR.js +0 -113
  429. package/dist/custom-conversions-EJNX4MCK.js +0 -128
  430. package/dist/customers-YFEPJF4G.js +0 -65
  431. package/dist/delete-2UJVTHRE.js +0 -67
  432. package/dist/delete-7QAJSOCO.js +0 -69
  433. package/dist/delete-O4RO2HMR.js +0 -57
  434. package/dist/demographics-YWBHAMZ5.js +0 -141
  435. package/dist/dimensions-YXOXHOXW.js +0 -101
  436. package/dist/discard-YX4XUXG3.js +0 -69
  437. package/dist/domain-5R6CYVFY.js +0 -101
  438. package/dist/download-D2O4RYJ3.js +0 -172
  439. package/dist/download-SYWQXF57.js +0 -299
  440. package/dist/download-SYWQXF57.js.map +0 -1
  441. package/dist/draft-2NKXOBT6.js +0 -106
  442. package/dist/draft-2NKXOBT6.js.map +0 -1
  443. package/dist/draft-3MPADYS4.js +0 -220
  444. package/dist/draft-AAEGEQZZ.js +0 -247
  445. package/dist/draft-AAEGEQZZ.js.map +0 -1
  446. package/dist/draft-CRDQR5I3.js +0 -342
  447. package/dist/draft-CRDQR5I3.js.map +0 -1
  448. package/dist/draft-I63QQ7LY.js +0 -106
  449. package/dist/draft-I63QQ7LY.js.map +0 -1
  450. package/dist/draft-PO5X4UVA.js +0 -313
  451. package/dist/draft-PO5X4UVA.js.map +0 -1
  452. package/dist/draft-QCKJT7XQ.js +0 -288
  453. package/dist/draft-QCKJT7XQ.js.map +0 -1
  454. package/dist/draft-VMLXZQQX.js +0 -408
  455. package/dist/draft-VMLXZQQX.js.map +0 -1
  456. package/dist/experiments-DYNNWQRB.js +0 -236
  457. package/dist/extract-DWDZI35Y.js +0 -121
  458. package/dist/extract-DWDZI35Y.js.map +0 -1
  459. package/dist/facets-Y2IEM37E.js +0 -117
  460. package/dist/feedback-HJRVTU6C.js +0 -115
  461. package/dist/feedback-IVSLM5PN.js +0 -136
  462. package/dist/feedback-record-P7CO3IGE.js +0 -269
  463. package/dist/fetch-V2U5VUQZ.js +0 -204
  464. package/dist/fit-JDG6E46O.js +0 -65
  465. package/dist/flows-DP574PEX.js +0 -250
  466. package/dist/fonts-RMROS3LX.js +0 -39
  467. package/dist/forecast-AAHHVTBK.js +0 -169
  468. package/dist/forecast-BRXNGMGD.js +0 -121
  469. package/dist/funnel-FQX3DOE7.js +0 -397
  470. package/dist/ga4-A3HLGTSI.js +0 -55
  471. package/dist/generate-SYOQE3F7.js +0 -263
  472. package/dist/get-HMTI2IR6.js +0 -82
  473. package/dist/get-VFDNTZ54.js +0 -62
  474. package/dist/google-HWEDJ4YS.js +0 -144
  475. package/dist/google-HWEDJ4YS.js.map +0 -1
  476. package/dist/google-WH3IXXMX.js +0 -3285
  477. package/dist/google-ads-4DLYASRC.js +0 -198
  478. package/dist/history-6B6RXNV3.js +0 -102
  479. package/dist/history-NLZSX4BK.js +0 -153
  480. package/dist/hubspot-LABBRJ44.js +0 -782
  481. package/dist/ideas-A4ELJN23.js +0 -45
  482. package/dist/images-JVNT7KYM.js +0 -92
  483. package/dist/ingest-GQWR3RHR.js +0 -27
  484. package/dist/ingest-JYN2IDKV.js +0 -123
  485. package/dist/inspect-72DY33YD.js +0 -192
  486. package/dist/instant-experiences-6NTBX4SL.js +0 -264
  487. package/dist/keyword-metrics-GP7L2MQE.js +0 -200
  488. package/dist/keywords-for-site-6YWAUOKJ.js +0 -131
  489. package/dist/landing-EKHAZS5P.js +0 -28
  490. package/dist/leads-RN6RYOMU.js +0 -541
  491. package/dist/leads-UCXIIA5K.js +0 -115
  492. package/dist/learn-EJEFERQZ.js +0 -207
  493. package/dist/line-item-writes-IMCE2FDW.js +0 -211
  494. package/dist/line-items-ISUC3WDO.js +0 -107
  495. package/dist/link-6QL4ZVSU.js +0 -67
  496. package/dist/linkedin-ZOBYUBGV.js +0 -1330
  497. package/dist/linkedin-ZOBYUBGV.js.map +0 -1
  498. package/dist/linkedin-person-C24CBKCH.js +0 -139
  499. package/dist/list-2VNI3U7I.js +0 -154
  500. package/dist/list-PZD2QOZL.js +0 -67
  501. package/dist/list-SUXUMXPJ.js +0 -306
  502. package/dist/log-VLI7KQF2.js +0 -95
  503. package/dist/make-365ZJ25L.js +0 -1367
  504. package/dist/map-OEFL45WA.js +0 -436
  505. package/dist/mcp-NCZYQXQL.js +0 -729
  506. package/dist/media-WASM45QW.js +0 -18
  507. package/dist/media-sources-CZDK4W5Q.js +0 -35
  508. package/dist/members-N3PQSVQC.js +0 -47
  509. package/dist/meta-IRXPQRBH.js +0 -122
  510. package/dist/normalize-4OKUF5BJ.js +0 -806
  511. package/dist/normalize-6DEJPTBF.js +0 -144
  512. package/dist/options-OJX77MYT.js +0 -125
  513. package/dist/organization-URQGKFEC.js +0 -949
  514. package/dist/page-photos-N4S7U7FR.js +0 -118
  515. package/dist/performance-P5T4LJRG.js +0 -27
  516. package/dist/performance-SIWBDORI.js +0 -5565
  517. package/dist/promoted-tweet-writes-S2HP5DEI.js +0 -183
  518. package/dist/promoted-tweets-WZT4N5IR.js +0 -119
  519. package/dist/publish-EDYBQHGJ.js +0 -344
  520. package/dist/reddit-DEGGHR4M.js +0 -29
  521. package/dist/refresh-HPNJGI2U.js +0 -97
  522. package/dist/release-H7M37CEO.js +0 -63
  523. package/dist/remove-MV4YS72N.js +0 -53
  524. package/dist/reopen-EFW2SKOY.js +0 -66
  525. package/dist/rerun-OM4N74YK.js +0 -96
  526. package/dist/research-7YDQOKA6.js +0 -265
  527. package/dist/research-MHXKAQW4.js +0 -75
  528. package/dist/reset-HT4AGJPR.js +0 -57
  529. package/dist/reset-XPZQ5F4D.js +0 -57
  530. package/dist/resolve-RTTXEN2B.js +0 -124
  531. package/dist/retry-DVLVWHEK.js +0 -63
  532. package/dist/retry-SBGWOUQO.js +0 -65
  533. package/dist/revenue-KJLJ53XY.js +0 -91
  534. package/dist/rule-writes-DNXELESR.js +0 -530
  535. package/dist/rules-KCSET46P.js +0 -217
  536. package/dist/rules-NVKU732Z.js +0 -99
  537. package/dist/rules-add-KY42EHJE.js +0 -465
  538. package/dist/run-2LQ7XJEO.js +0 -69
  539. package/dist/run-M7YU6KCV.js +0 -71
  540. package/dist/scaffold-ad-6YPZ75YJ.js +0 -1513
  541. package/dist/scaffold-static-ad-UJEWTDU5.js +0 -1011
  542. package/dist/scaffold-video-M4VWSVJ6.js +0 -885
  543. package/dist/schedule-J7HZQ2EL.js +0 -64
  544. package/dist/scheduled-agents-IVUQUKF4.js +0 -55
  545. package/dist/schema-LHBKBUV7.js +0 -135
  546. package/dist/search-3AW52FO6.js +0 -177
  547. package/dist/select-STIWQ36I.js +0 -110
  548. package/dist/set-prompt-TODWV2F4.js +0 -199
  549. package/dist/setup-links-MNBD3UMH.js +0 -144
  550. package/dist/shopify-PVMHMVIC.js +0 -3980
  551. package/dist/shopify-PVMHMVIC.js.map +0 -1
  552. package/dist/site-ZZUKS6MQ.js +0 -180
  553. package/dist/sources-36MJ6T4V.js +0 -30
  554. package/dist/sources-GNLQHTSJ.js +0 -457
  555. package/dist/stale-GJN7UO3D.js +0 -90
  556. package/dist/status-6EGB6ORB.js +0 -65
  557. package/dist/stock-DJ6I3CTO.js +0 -187
  558. package/dist/stock-DJ6I3CTO.js.map +0 -1
  559. package/dist/studies-4XXCEAHH.js +0 -250
  560. package/dist/studio-OARORMDJ.js +0 -49
  561. package/dist/study-writes-J56UIIE3.js +0 -471
  562. package/dist/sync-QHM3LMAX.js +0 -57
  563. package/dist/sync-definition-YXGN6PIQ.js +0 -70
  564. package/dist/tag-manager-XAX5AI42.js +0 -43
  565. package/dist/tags-GHV5R7NI.js +0 -26
  566. package/dist/tags-IDWUV2FY.js +0 -227
  567. package/dist/tags-MBBRBZJH.js +0 -23
  568. package/dist/tags-MQYF2JHQ.js +0 -23
  569. package/dist/tags-ZGXJHATH.js +0 -23
  570. package/dist/targeting-KJ4DI56R.js +0 -762
  571. package/dist/targeting-criteria-GDCXOAUD.js +0 -113
  572. package/dist/targets-MYHOPAYY.js +0 -106
  573. package/dist/testimonials-R6RFGAKP.js +0 -32
  574. package/dist/themes-LHVXXVTX.js +0 -95
  575. package/dist/top-companies-POTV3Y2A.js +0 -111
  576. package/dist/transcript-4RVYKDVZ.js +0 -165
  577. package/dist/translate-UCASCVMN.js +0 -603
  578. package/dist/triggers-XHMMOZJK.js +0 -144
  579. package/dist/unlink-3IW3EORE.js +0 -70
  580. package/dist/unstage-APVF6KHB.js +0 -88
  581. package/dist/update-2VSJH4LQ.js +0 -66
  582. package/dist/update-42QYBUE3.js +0 -101
  583. package/dist/update-ESK6PSME.js +0 -192
  584. package/dist/update-V7SRDGHN.js +0 -155
  585. package/dist/upload-42IR5RIL.js +0 -130
  586. package/dist/url-params-GEESXN57.js +0 -101
  587. package/dist/validate-Z5SSEUES.js +0 -125
  588. package/dist/videos-PJAPZPOT.js +0 -41
  589. package/dist/viewer-check-6M34VY7K.js +0 -83
  590. package/dist/web-PUVVFMV3.js +0 -173
  591. package/dist/winning-ads-ZCP4MIEQ.js +0 -86
  592. package/dist/write-commands-5LEEPKA7.js +0 -1169
  593. package/dist/write-commands-ZS4O4DSV.js +0 -1524
  594. package/dist/x-2IZMW46M.js +0 -47
  595. /package/dist/{account-XIC5TTV3.js.map → account-H5CL6KUY.js.map} +0 -0
  596. /package/dist/{account-assets-V7KSSTVP.js.map → account-assets-QMKT5AT7.js.map} +0 -0
  597. /package/dist/{account-level-2KLG6HTG.js.map → account-level-BELF6JHB.js.map} +0 -0
  598. /package/dist/{account-reads-ZPZUCB3P.js.map → account-reads-T6GTSAXE.js.map} +0 -0
  599. /package/dist/{account-users-XTUKRDWK.js.map → account-users-ZGJCVGX4.js.map} +0 -0
  600. /package/dist/{accounts-25JL77F7.js.map → accounts-EXQNPSYH.js.map} +0 -0
  601. /package/dist/{accounts-AF72N4NV.js.map → accounts-GNVLFZ3X.js.map} +0 -0
  602. /package/dist/{actions-IJO4JW7J.js.map → actions-Q2BMP27K.js.map} +0 -0
  603. /package/dist/{activecampaign-PBTUMTO5.js.map → activecampaign-SJO2YK6M.js.map} +0 -0
  604. /package/dist/{add-YQPFRDVM.js.map → add-Q3FGYX5Q.js.map} +0 -0
  605. /package/dist/{add-KHQXXHC5.js.map → add-YGQBSEVK.js.map} +0 -0
  606. /package/dist/{ads-O5PUYU7H.js.map → ads-7QKQEHKT.js.map} +0 -0
  607. /package/dist/{ads-EVQ37EV3.js.map → ads-H5AEYIY3.js.map} +0 -0
  608. /package/dist/{adsets-4IW5TRAK.js.map → adsets-BUIT7HF2.js.map} +0 -0
  609. /package/dist/{advertisers-JNOWSZZC.js.map → advertisers-ZAHXMIAT.js.map} +0 -0
  610. /package/dist/{analytics-CZMCM7XC.js.map → analytics-B6ER4TQ7.js.map} +0 -0
  611. /package/dist/{analytics-K5FCQLI5.js.map → analytics-QW5ZXDJR.js.map} +0 -0
  612. /package/dist/{animate-C6BRMRRD.js.map → animate-Q43SOWB4.js.map} +0 -0
  613. /package/dist/{asset-writes-RF6XTWLY.js.map → asset-writes-JVFE457M.js.map} +0 -0
  614. /package/dist/{assign-WXZNXVJH.js.map → assign-HJ2NXW4W.js.map} +0 -0
  615. /package/dist/{audience-size-ZCWH4CFC.js.map → audience-size-IM3N6W7C.js.map} +0 -0
  616. /package/dist/{audience-writes-5KT6FHUY.js.map → audience-writes-DWSCHYQF.js.map} +0 -0
  617. /package/dist/{audiences-ZDOK3OYC.js.map → audiences-PYBJU2GV.js.map} +0 -0
  618. /package/dist/{audit-RBRXPPKK.js.map → audit-N3LAQMD4.js.map} +0 -0
  619. /package/dist/{autocomplete-P5OU7QVL.js.map → autocomplete-FBTPT5MA.js.map} +0 -0
  620. /package/dist/{avatars-UHBA2BQ3.js.map → avatars-Y3DALQIU.js.map} +0 -0
  621. /package/dist/{bid-pricing-LHNYSDG4.js.map → bid-pricing-UUAC4GTQ.js.map} +0 -0
  622. /package/dist/{brand-7WL3O74X.js.map → brand-IZYD5SBJ.js.map} +0 -0
  623. /package/dist/{brief-HWZU75WP.js.map → brief-NA3E2W4P.js.map} +0 -0
  624. /package/dist/{campaign-groups-BYS3GNEP.js.map → campaign-groups-3IUOLEK2.js.map} +0 -0
  625. /package/dist/{campaign-writes-N6OHAK6V.js.map → campaign-writes-Y7QNFOE7.js.map} +0 -0
  626. /package/dist/{campaigns-3U5IRXSV.js.map → campaigns-2Z6WXIVA.js.map} +0 -0
  627. /package/dist/{campaigns-QLKGN4FB.js.map → campaigns-B2AUW4TV.js.map} +0 -0
  628. /package/dist/{campaigns-2E4AQBFB.js.map → campaigns-IDEA3LOK.js.map} +0 -0
  629. /package/dist/{canvas-GGHJ26ZM.js.map → canvas-WHFDCHUP.js.map} +0 -0
  630. /package/dist/{capabilities-TKEEHR7K.js.map → capabilities-FVMMLKPY.js.map} +0 -0
  631. /package/dist/{catalog-7KQN43HS.js.map → catalog-URTZYAPU.js.map} +0 -0
  632. /package/dist/{catalogs-5CHPI4H6.js.map → catalogs-OEUNVE4N.js.map} +0 -0
  633. /package/dist/{chatgpt-RQQWU7AP.js.map → chatgpt-YBHXCXWZ.js.map} +0 -0
  634. /package/dist/{chats-PBXYH2LT.js.map → chats-EENMDXWZ.js.map} +0 -0
  635. /package/dist/{check-SVYI72DF.js.map → check-7735BPTR.js.map} +0 -0
  636. /package/dist/{chunk-5AOTCCTT.js.map → chunk-2QGGI7MF.js.map} +0 -0
  637. /package/dist/{chunk-4XMPL3RU.js.map → chunk-3HKZU3Y5.js.map} +0 -0
  638. /package/dist/{chunk-B5UVOCYA.js.map → chunk-3OMFSYQ3.js.map} +0 -0
  639. /package/dist/{chunk-LMOZWB4G.js.map → chunk-65CQYRMK.js.map} +0 -0
  640. /package/dist/{chunk-I4BQTVMY.js.map → chunk-6MZFOMLU.js.map} +0 -0
  641. /package/dist/{chunk-IBBGABK2.js.map → chunk-6PT22YSR.js.map} +0 -0
  642. /package/dist/{chunk-QFVZIQRQ.js.map → chunk-6WVYBY2G.js.map} +0 -0
  643. /package/dist/{chunk-VX6GTRT3.js.map → chunk-757ZFIL4.js.map} +0 -0
  644. /package/dist/{chunk-IJ6NQKAT.js.map → chunk-75HAGIH6.js.map} +0 -0
  645. /package/dist/{chunk-XSBX3LJP.js.map → chunk-7BVRFQN4.js.map} +0 -0
  646. /package/dist/{chunk-7OVPQX4X.js.map → chunk-7TDJCDKT.js.map} +0 -0
  647. /package/dist/{chunk-ZMTWQDFC.js.map → chunk-AL4MRNYI.js.map} +0 -0
  648. /package/dist/{chunk-NO52OH3Y.js.map → chunk-BMNOMOWP.js.map} +0 -0
  649. /package/dist/{chunk-4AEAL63J.js.map → chunk-BS2MC62Y.js.map} +0 -0
  650. /package/dist/{chunk-DWSSQBLO.js.map → chunk-C6PWVZQE.js.map} +0 -0
  651. /package/dist/{chunk-P4MXGSSJ.js.map → chunk-CDTAKCJR.js.map} +0 -0
  652. /package/dist/{chunk-2RL2T5JO.js.map → chunk-CH44XVPE.js.map} +0 -0
  653. /package/dist/{chunk-RHNNFCRY.js.map → chunk-CJWLDKFO.js.map} +0 -0
  654. /package/dist/{chunk-YCAJCVW4.js.map → chunk-DAMC4FKK.js.map} +0 -0
  655. /package/dist/{chunk-D6VQPBVM.js.map → chunk-DWPOAU4Z.js.map} +0 -0
  656. /package/dist/{chunk-6MXM6DA6.js.map → chunk-EENYLJUN.js.map} +0 -0
  657. /package/dist/{chunk-IZROFBH7.js.map → chunk-EJBLF2LI.js.map} +0 -0
  658. /package/dist/{chunk-DNH2ZPZP.js.map → chunk-EJMPKO6V.js.map} +0 -0
  659. /package/dist/{chunk-RMZLB4AH.js.map → chunk-EKXLJRO3.js.map} +0 -0
  660. /package/dist/{chunk-ZANXEMON.js.map → chunk-EL3TDR5S.js.map} +0 -0
  661. /package/dist/{chunk-LFELUKCA.js.map → chunk-GRDZWZKQ.js.map} +0 -0
  662. /package/dist/{chunk-S4NMWYHW.js.map → chunk-GVUBRSD3.js.map} +0 -0
  663. /package/dist/{chunk-LVLTWPRR.js.map → chunk-GYREQDTJ.js.map} +0 -0
  664. /package/dist/{chunk-J5UTL4HE.js.map → chunk-HBRXFQQV.js.map} +0 -0
  665. /package/dist/{chunk-NE3OMP7R.js.map → chunk-HLHR3EK2.js.map} +0 -0
  666. /package/dist/{chunk-RJQT7QXX.js.map → chunk-IMFIRELA.js.map} +0 -0
  667. /package/dist/{chunk-SP3MHBME.js.map → chunk-IOKD77L2.js.map} +0 -0
  668. /package/dist/{chunk-TGT4XHLX.js.map → chunk-KDAINT54.js.map} +0 -0
  669. /package/dist/{chunk-QI5UKQX3.js.map → chunk-KKKZRQFY.js.map} +0 -0
  670. /package/dist/{chunk-N5AIO23H.js.map → chunk-KOEXPN3G.js.map} +0 -0
  671. /package/dist/{chunk-JBMZVC5D.js.map → chunk-KT5JVIPZ.js.map} +0 -0
  672. /package/dist/{chunk-NZYWKZ3Q.js.map → chunk-LC6PVPJX.js.map} +0 -0
  673. /package/dist/{chunk-DK66PUXL.js.map → chunk-LETR3RQE.js.map} +0 -0
  674. /package/dist/{chunk-XB4NKZAQ.js.map → chunk-N3PASNUA.js.map} +0 -0
  675. /package/dist/{chunk-SFQFUQDW.js.map → chunk-NL77JRKE.js.map} +0 -0
  676. /package/dist/{chunk-OIORUNKH.js.map → chunk-OBQ5YUOZ.js.map} +0 -0
  677. /package/dist/{chunk-42JTSTQ3.js.map → chunk-OTFHIGEO.js.map} +0 -0
  678. /package/dist/{chunk-ESXUIV6V.js.map → chunk-PCUWBZM3.js.map} +0 -0
  679. /package/dist/{chunk-OKXLOLEV.js.map → chunk-PNWXTOQ4.js.map} +0 -0
  680. /package/dist/{chunk-PYAR343F.js.map → chunk-PQFTKHDA.js.map} +0 -0
  681. /package/dist/{chunk-XXBP73RV.js.map → chunk-Q5DFEVLE.js.map} +0 -0
  682. /package/dist/{chunk-NRIKX35V.js.map → chunk-QXCGWAC6.js.map} +0 -0
  683. /package/dist/{chunk-CJFCQMUY.js.map → chunk-RKDMYL4A.js.map} +0 -0
  684. /package/dist/{chunk-S6XZIBWV.js.map → chunk-SCBSAIVV.js.map} +0 -0
  685. /package/dist/{chunk-3HLQZTQ3.js.map → chunk-SPBUE7R4.js.map} +0 -0
  686. /package/dist/{chunk-IC4MREQH.js.map → chunk-TWFZIHKK.js.map} +0 -0
  687. /package/dist/{chunk-73MLPGI2.js.map → chunk-U6G6ALXP.js.map} +0 -0
  688. /package/dist/{chunk-WGJ2QEW4.js.map → chunk-UCJAPB5Y.js.map} +0 -0
  689. /package/dist/{chunk-4PM32OS3.js.map → chunk-VFDWUIGR.js.map} +0 -0
  690. /package/dist/{chunk-BRNZMKO4.js.map → chunk-WC3YSN7L.js.map} +0 -0
  691. /package/dist/{chunk-FSEFZZ2T.js.map → chunk-WIOPEK7K.js.map} +0 -0
  692. /package/dist/{chunk-5NLUTJCQ.js.map → chunk-X3GWGFZP.js.map} +0 -0
  693. /package/dist/{chunk-Y4ZBNZBU.js.map → chunk-XYKODRQR.js.map} +0 -0
  694. /package/dist/{chunk-6FWVRXDW.js.map → chunk-XZAVBONI.js.map} +0 -0
  695. /package/dist/{chunk-Y3SK6EMU.js.map → chunk-Y5PNLB24.js.map} +0 -0
  696. /package/dist/{claim-Q76T3MYA.js.map → claim-PGDIRXIC.js.map} +0 -0
  697. /package/dist/{companies-MLWRWQ73.js.map → companies-WTPKGEB3.js.map} +0 -0
  698. /package/dist/{company-X5Z67PMK.js.map → company-6H2H73YP.js.map} +0 -0
  699. /package/dist/{complete-3CFP6XVY.js.map → complete-2QBC3POO.js.map} +0 -0
  700. /package/dist/{connect-QXFAB4RJ.js.map → connect-35YPFAUL.js.map} +0 -0
  701. /package/dist/{conversation-C6K6IZTH.js.map → conversation-YZFNEWDV.js.map} +0 -0
  702. /package/dist/{conversion-upload-command-D7S5HF22.js.map → conversion-upload-command-J2FIO74Y.js.map} +0 -0
  703. /package/dist/{conversions-4ILDIG3K.js.map → conversions-ZFDBD3OU.js.map} +0 -0
  704. /package/dist/{copy-writes-FYXKHJDB.js.map → copy-writes-2B36QJUY.js.map} +0 -0
  705. /package/dist/{create-LDQ3YHET.js.map → create-3H67EUTO.js.map} +0 -0
  706. /package/dist/{create-WQNT345R.js.map → create-ALTOBDP4.js.map} +0 -0
  707. /package/dist/{create-TKOG7DNJ.js.map → create-C3MWUYX2.js.map} +0 -0
  708. /package/dist/{create-WFMJOZLO.js.map → create-WHTT6IXY.js.map} +0 -0
  709. /package/dist/{creatives-45SJAD3G.js.map → creatives-22BYP5VN.js.map} +0 -0
  710. /package/dist/{creatives-Q4OXNCTT.js.map → creatives-LTIV3XPT.js.map} +0 -0
  711. /package/dist/{creatives-E4CTMZJJ.js.map → creatives-Y2WLGDJW.js.map} +0 -0
  712. /package/dist/{credentials-E2AIMWKX.js.map → credentials-J5DMQJWN.js.map} +0 -0
  713. /package/dist/{critique-JVT6X2T3.js.map → critique-RFTS2I46.js.map} +0 -0
  714. /package/dist/{critique-EWV3O3TD.js.map → critique-X6XVPIUG.js.map} +0 -0
  715. /package/dist/{crm-NQH5FTK6.js.map → crm-LWRGJYHW.js.map} +0 -0
  716. /package/dist/{crm-YGQKK76D.js.map → crm-RUNEJY2R.js.map} +0 -0
  717. /package/dist/{crop-KV24WHOR.js.map → crop-4V4P3SKI.js.map} +0 -0
  718. /package/dist/{custom-conversions-EJNX4MCK.js.map → custom-conversions-V7QPZIB4.js.map} +0 -0
  719. /package/dist/{customers-YFEPJF4G.js.map → customers-IDB6NLQ6.js.map} +0 -0
  720. /package/dist/{delete-2UJVTHRE.js.map → delete-2QKVUKKB.js.map} +0 -0
  721. /package/dist/{delete-O4RO2HMR.js.map → delete-B7BKF24X.js.map} +0 -0
  722. /package/dist/{delete-7QAJSOCO.js.map → delete-HBRYUWAA.js.map} +0 -0
  723. /package/dist/{demographics-YWBHAMZ5.js.map → demographics-JHB3NFLU.js.map} +0 -0
  724. /package/dist/{dimensions-YXOXHOXW.js.map → dimensions-KI3OENZD.js.map} +0 -0
  725. /package/dist/{discard-YX4XUXG3.js.map → discard-FEJ6YL22.js.map} +0 -0
  726. /package/dist/{domain-5R6CYVFY.js.map → domain-JYWNXBKS.js.map} +0 -0
  727. /package/dist/{download-D2O4RYJ3.js.map → download-LOBPOIU5.js.map} +0 -0
  728. /package/dist/{draft-3MPADYS4.js.map → draft-I2FLECEX.js.map} +0 -0
  729. /package/dist/{experiments-DYNNWQRB.js.map → experiments-WVTBHD6G.js.map} +0 -0
  730. /package/dist/{facets-Y2IEM37E.js.map → facets-V2ITIUKD.js.map} +0 -0
  731. /package/dist/{feedback-IVSLM5PN.js.map → feedback-PXWPR3NZ.js.map} +0 -0
  732. /package/dist/{feedback-HJRVTU6C.js.map → feedback-QSIPSNAL.js.map} +0 -0
  733. /package/dist/{feedback-record-P7CO3IGE.js.map → feedback-record-DJHJWJAF.js.map} +0 -0
  734. /package/dist/{fetch-V2U5VUQZ.js.map → fetch-QVOOC3FA.js.map} +0 -0
  735. /package/dist/{fit-JDG6E46O.js.map → fit-REGMM46H.js.map} +0 -0
  736. /package/dist/{flows-DP574PEX.js.map → flows-EZV3KCV6.js.map} +0 -0
  737. /package/dist/{fonts-RMROS3LX.js.map → fonts-NUX66HEI.js.map} +0 -0
  738. /package/dist/{forecast-BRXNGMGD.js.map → forecast-W6HKYVX5.js.map} +0 -0
  739. /package/dist/{forecast-AAHHVTBK.js.map → forecast-XDRKCR65.js.map} +0 -0
  740. /package/dist/{funnel-FQX3DOE7.js.map → funnel-3YABA3G2.js.map} +0 -0
  741. /package/dist/{ga4-A3HLGTSI.js.map → ga4-IJ2UUICC.js.map} +0 -0
  742. /package/dist/{generate-SYOQE3F7.js.map → generate-22HT24SA.js.map} +0 -0
  743. /package/dist/{get-HMTI2IR6.js.map → get-GQQLBE5C.js.map} +0 -0
  744. /package/dist/{get-VFDNTZ54.js.map → get-NL3YZFUJ.js.map} +0 -0
  745. /package/dist/{google-WH3IXXMX.js.map → google-UJ4YJGTJ.js.map} +0 -0
  746. /package/dist/{google-ads-4DLYASRC.js.map → google-ads-RRKKSKDD.js.map} +0 -0
  747. /package/dist/{history-6B6RXNV3.js.map → history-2UANIBRN.js.map} +0 -0
  748. /package/dist/{history-NLZSX4BK.js.map → history-YZ727ZRG.js.map} +0 -0
  749. /package/dist/{hubspot-LABBRJ44.js.map → hubspot-KWLXJ6QD.js.map} +0 -0
  750. /package/dist/{ideas-A4ELJN23.js.map → ideas-ZO533P5Y.js.map} +0 -0
  751. /package/dist/{images-JVNT7KYM.js.map → images-VUWUKGD6.js.map} +0 -0
  752. /package/dist/{ingest-GQWR3RHR.js.map → ingest-C2HJ5LUY.js.map} +0 -0
  753. /package/dist/{ingest-JYN2IDKV.js.map → ingest-H53JR4GK.js.map} +0 -0
  754. /package/dist/{inspect-72DY33YD.js.map → inspect-BM6GJHQV.js.map} +0 -0
  755. /package/dist/{instant-experiences-6NTBX4SL.js.map → instant-experiences-U6U3FYIH.js.map} +0 -0
  756. /package/dist/{keyword-metrics-GP7L2MQE.js.map → keyword-metrics-R2QCEDYW.js.map} +0 -0
  757. /package/dist/{keywords-for-site-6YWAUOKJ.js.map → keywords-for-site-NBV72C3W.js.map} +0 -0
  758. /package/dist/{landing-EKHAZS5P.js.map → landing-L3WDTW4D.js.map} +0 -0
  759. /package/dist/{leads-UCXIIA5K.js.map → leads-6PF7ZWCH.js.map} +0 -0
  760. /package/dist/{leads-RN6RYOMU.js.map → leads-IG3IIHXG.js.map} +0 -0
  761. /package/dist/{learn-EJEFERQZ.js.map → learn-V2LIBEEY.js.map} +0 -0
  762. /package/dist/{line-item-writes-IMCE2FDW.js.map → line-item-writes-GMNWL4DI.js.map} +0 -0
  763. /package/dist/{line-items-ISUC3WDO.js.map → line-items-KPIKXLG4.js.map} +0 -0
  764. /package/dist/{link-6QL4ZVSU.js.map → link-X7IYKR5V.js.map} +0 -0
  765. /package/dist/{linkedin-person-C24CBKCH.js.map → linkedin-person-47XFTBIN.js.map} +0 -0
  766. /package/dist/{list-2VNI3U7I.js.map → list-PHNA7QIF.js.map} +0 -0
  767. /package/dist/{list-SUXUMXPJ.js.map → list-QF3BANBM.js.map} +0 -0
  768. /package/dist/{list-PZD2QOZL.js.map → list-SB3SUTH6.js.map} +0 -0
  769. /package/dist/{log-VLI7KQF2.js.map → log-JFLSSUJ6.js.map} +0 -0
  770. /package/dist/{make-365ZJ25L.js.map → make-ZIJQZD5K.js.map} +0 -0
  771. /package/dist/{map-OEFL45WA.js.map → map-NYJT2MGI.js.map} +0 -0
  772. /package/dist/{mcp-NCZYQXQL.js.map → mcp-ABQEICYR.js.map} +0 -0
  773. /package/dist/{media-WASM45QW.js.map → media-AT3VV3PU.js.map} +0 -0
  774. /package/dist/{media-sources-CZDK4W5Q.js.map → media-sources-L4BI7HFL.js.map} +0 -0
  775. /package/dist/{members-N3PQSVQC.js.map → members-BX37KHKO.js.map} +0 -0
  776. /package/dist/{meta-IRXPQRBH.js.map → meta-2GJZPVKM.js.map} +0 -0
  777. /package/dist/{normalize-4OKUF5BJ.js.map → normalize-M3VMWF4W.js.map} +0 -0
  778. /package/dist/{normalize-6DEJPTBF.js.map → normalize-MA2FBBIV.js.map} +0 -0
  779. /package/dist/{options-OJX77MYT.js.map → options-NMWWF2HN.js.map} +0 -0
  780. /package/dist/{organization-URQGKFEC.js.map → organization-GRAA6ZXU.js.map} +0 -0
  781. /package/dist/{page-photos-N4S7U7FR.js.map → page-photos-ABK4CJME.js.map} +0 -0
  782. /package/dist/{performance-SIWBDORI.js.map → performance-MQLRSH44.js.map} +0 -0
  783. /package/dist/{performance-P5T4LJRG.js.map → performance-RUBIGEAQ.js.map} +0 -0
  784. /package/dist/{promoted-tweet-writes-S2HP5DEI.js.map → promoted-tweet-writes-3P6QFGLN.js.map} +0 -0
  785. /package/dist/{promoted-tweets-WZT4N5IR.js.map → promoted-tweets-TGFPH7UI.js.map} +0 -0
  786. /package/dist/{publish-EDYBQHGJ.js.map → publish-OUVO65Z5.js.map} +0 -0
  787. /package/dist/{reddit-DEGGHR4M.js.map → reddit-HWQCUSEM.js.map} +0 -0
  788. /package/dist/{refresh-HPNJGI2U.js.map → refresh-ENQDQGTK.js.map} +0 -0
  789. /package/dist/{release-H7M37CEO.js.map → release-ZTVXLUQS.js.map} +0 -0
  790. /package/dist/{remove-MV4YS72N.js.map → remove-XAFRT7O7.js.map} +0 -0
  791. /package/dist/{reopen-EFW2SKOY.js.map → reopen-SWSZHXJZ.js.map} +0 -0
  792. /package/dist/{rerun-OM4N74YK.js.map → rerun-MA2GB6WL.js.map} +0 -0
  793. /package/dist/{research-7YDQOKA6.js.map → research-TDH4OBX6.js.map} +0 -0
  794. /package/dist/{research-MHXKAQW4.js.map → research-WWJUNYSJ.js.map} +0 -0
  795. /package/dist/{reset-HT4AGJPR.js.map → reset-34HTKUBQ.js.map} +0 -0
  796. /package/dist/{reset-XPZQ5F4D.js.map → reset-KMMGLM7W.js.map} +0 -0
  797. /package/dist/{resolve-RTTXEN2B.js.map → resolve-2CIIKADD.js.map} +0 -0
  798. /package/dist/{retry-DVLVWHEK.js.map → retry-V7KZIZKR.js.map} +0 -0
  799. /package/dist/{retry-SBGWOUQO.js.map → retry-YXM23NSB.js.map} +0 -0
  800. /package/dist/{revenue-KJLJ53XY.js.map → revenue-D4L6U2CW.js.map} +0 -0
  801. /package/dist/{rule-writes-DNXELESR.js.map → rule-writes-HUBHHYEO.js.map} +0 -0
  802. /package/dist/{rules-KCSET46P.js.map → rules-47LFGCPW.js.map} +0 -0
  803. /package/dist/{rules-NVKU732Z.js.map → rules-F6RNUOXP.js.map} +0 -0
  804. /package/dist/{rules-add-KY42EHJE.js.map → rules-add-SAQRESVK.js.map} +0 -0
  805. /package/dist/{run-2LQ7XJEO.js.map → run-FRPO2WNQ.js.map} +0 -0
  806. /package/dist/{run-M7YU6KCV.js.map → run-HENSSAQW.js.map} +0 -0
  807. /package/dist/{scaffold-ad-6YPZ75YJ.js.map → scaffold-ad-QQBCUYUO.js.map} +0 -0
  808. /package/dist/{scaffold-static-ad-UJEWTDU5.js.map → scaffold-static-ad-WUOAQEXS.js.map} +0 -0
  809. /package/dist/{scaffold-video-M4VWSVJ6.js.map → scaffold-video-KFQAKQUO.js.map} +0 -0
  810. /package/dist/{schedule-J7HZQ2EL.js.map → schedule-S4XAVVEI.js.map} +0 -0
  811. /package/dist/{scheduled-agents-IVUQUKF4.js.map → scheduled-agents-ZWAP6QLC.js.map} +0 -0
  812. /package/dist/{schema-LHBKBUV7.js.map → schema-EJ2XPUN6.js.map} +0 -0
  813. /package/dist/{search-3AW52FO6.js.map → search-2BAY3KKX.js.map} +0 -0
  814. /package/dist/{select-STIWQ36I.js.map → select-K2SXPDDJ.js.map} +0 -0
  815. /package/dist/{set-prompt-TODWV2F4.js.map → set-prompt-BZFOV3EB.js.map} +0 -0
  816. /package/dist/{setup-links-MNBD3UMH.js.map → setup-links-QT63UZBR.js.map} +0 -0
  817. /package/dist/{site-ZZUKS6MQ.js.map → site-S6QVMP7W.js.map} +0 -0
  818. /package/dist/{sources-36MJ6T4V.js.map → sources-DTQ4NQAM.js.map} +0 -0
  819. /package/dist/{sources-GNLQHTSJ.js.map → sources-ORG5KQSW.js.map} +0 -0
  820. /package/dist/{stale-GJN7UO3D.js.map → stale-5O7BQVTN.js.map} +0 -0
  821. /package/dist/{status-6EGB6ORB.js.map → status-4G2YUCZR.js.map} +0 -0
  822. /package/dist/{studies-4XXCEAHH.js.map → studies-QLSKON6M.js.map} +0 -0
  823. /package/dist/{studio-OARORMDJ.js.map → studio-IDXFTGHP.js.map} +0 -0
  824. /package/dist/{study-writes-J56UIIE3.js.map → study-writes-GBUUKX4O.js.map} +0 -0
  825. /package/dist/{sync-QHM3LMAX.js.map → sync-7LJZPHM3.js.map} +0 -0
  826. /package/dist/{sync-definition-YXGN6PIQ.js.map → sync-definition-Q3XUSEZJ.js.map} +0 -0
  827. /package/dist/{tag-manager-XAX5AI42.js.map → tag-manager-5WZPX2FJ.js.map} +0 -0
  828. /package/dist/{tags-MQYF2JHQ.js.map → tags-2ARVNEYS.js.map} +0 -0
  829. /package/dist/{tags-ZGXJHATH.js.map → tags-F4IT7RQR.js.map} +0 -0
  830. /package/dist/{tags-MBBRBZJH.js.map → tags-F7ZO52EM.js.map} +0 -0
  831. /package/dist/{tags-IDWUV2FY.js.map → tags-NBGGBHXR.js.map} +0 -0
  832. /package/dist/{tags-GHV5R7NI.js.map → tags-TCSGQYDR.js.map} +0 -0
  833. /package/dist/{targeting-KJ4DI56R.js.map → targeting-DAUTJDUB.js.map} +0 -0
  834. /package/dist/{targeting-criteria-GDCXOAUD.js.map → targeting-criteria-H42LRULY.js.map} +0 -0
  835. /package/dist/{targets-MYHOPAYY.js.map → targets-WB4E5XL2.js.map} +0 -0
  836. /package/dist/{testimonials-R6RFGAKP.js.map → testimonials-KLF3Y4QO.js.map} +0 -0
  837. /package/dist/{themes-LHVXXVTX.js.map → themes-BGBDYQQK.js.map} +0 -0
  838. /package/dist/{top-companies-POTV3Y2A.js.map → top-companies-C2W5TJ7G.js.map} +0 -0
  839. /package/dist/{transcript-4RVYKDVZ.js.map → transcript-S7VR2GJE.js.map} +0 -0
  840. /package/dist/{translate-UCASCVMN.js.map → translate-CBITGC7C.js.map} +0 -0
  841. /package/dist/{triggers-XHMMOZJK.js.map → triggers-EOKMR74O.js.map} +0 -0
  842. /package/dist/{unlink-3IW3EORE.js.map → unlink-PC3TMWUT.js.map} +0 -0
  843. /package/dist/{unstage-APVF6KHB.js.map → unstage-SU2ATDSZ.js.map} +0 -0
  844. /package/dist/{update-V7SRDGHN.js.map → update-DKX3EEES.js.map} +0 -0
  845. /package/dist/{update-2VSJH4LQ.js.map → update-JYZ45YJG.js.map} +0 -0
  846. /package/dist/{update-ESK6PSME.js.map → update-TAZSUOAS.js.map} +0 -0
  847. /package/dist/{update-42QYBUE3.js.map → update-WRJUH2NM.js.map} +0 -0
  848. /package/dist/{upload-42IR5RIL.js.map → upload-BLXTMK5Q.js.map} +0 -0
  849. /package/dist/{url-params-GEESXN57.js.map → url-params-YVOFU6MK.js.map} +0 -0
  850. /package/dist/{validate-Z5SSEUES.js.map → validate-SAQEORZY.js.map} +0 -0
  851. /package/dist/{videos-PJAPZPOT.js.map → videos-GOIDZVVD.js.map} +0 -0
  852. /package/dist/{viewer-check-6M34VY7K.js.map → viewer-check-KTRRUVZN.js.map} +0 -0
  853. /package/dist/{web-PUVVFMV3.js.map → web-6KUM7Q7S.js.map} +0 -0
  854. /package/dist/{winning-ads-ZCP4MIEQ.js.map → winning-ads-LOMI72Q2.js.map} +0 -0
  855. /package/dist/{write-commands-ZS4O4DSV.js.map → write-commands-3U5ZMIHH.js.map} +0 -0
  856. /package/dist/{write-commands-5LEEPKA7.js.map → write-commands-F5XPPLOO.js.map} +0 -0
  857. /package/dist/{x-2IZMW46M.js.map → x-APVY4YHX.js.map} +0 -0
@@ -0,0 +1,69 @@
1
+ import {
2
+ failApi,
3
+ failValidation,
4
+ writeOk
5
+ } from "./chunk-BS2MC62Y.js";
6
+ import "./chunk-MKLAZD23.js";
7
+ import "./chunk-QV6AST5T.js";
8
+ import "./chunk-WCU362Z6.js";
9
+ import "./chunk-GIWHHCD6.js";
10
+ import "./chunk-SOPVIIUW.js";
11
+ import "./chunk-G4FG5EQO.js";
12
+ import "./chunk-R7XDGNZD.js";
13
+ import "./chunk-MSMTG6OC.js";
14
+ import {
15
+ apiPost,
16
+ validateConvexId
17
+ } from "./chunk-GFWWHCBF.js";
18
+ import "./chunk-JXTNP3B5.js";
19
+ import {
20
+ requireChatId
21
+ } from "./chunk-45D6WRCJ.js";
22
+ import {
23
+ registerSchema
24
+ } from "./chunk-CCYZJMZ7.js";
25
+ import "./chunk-YQSBHWOI.js";
26
+
27
+ // src/commands/actions/discard.ts
28
+ import { defineCommand } from "citty";
29
+ registerSchema({
30
+ command: "actions.discard",
31
+ description: "Stage discard of an action \u2014 no claim needed; retire any action you're not working on. Applies on chat publish. Blocked only if another chat currently has it claimed.",
32
+ args: {
33
+ id: { type: "string", description: "Action ID", required: true },
34
+ reason: { type: "string", description: "Optional reason", required: false }
35
+ }
36
+ });
37
+ var discardCommand = defineCommand({
38
+ meta: {
39
+ name: "discard",
40
+ description: 'Stage discard of an action (no claim needed). Example: baker actions discard <id> --reason "obsolete"'
41
+ },
42
+ args: {
43
+ id: { type: "positional", description: "Action ID", required: false },
44
+ "action-id": { type: "string", description: "Action ID", required: false },
45
+ reason: { type: "string", description: "Reason for discarding", required: false }
46
+ },
47
+ run: async ({ args }) => {
48
+ try {
49
+ const id = args.id || args["action-id"];
50
+ if (!id) {
51
+ failValidation("Action ID is required.");
52
+ }
53
+ validateConvexId(id);
54
+ const chatId = requireChatId();
55
+ await apiPost("/api/actions/discard", {
56
+ chatId,
57
+ actionId: id,
58
+ reason: args.reason
59
+ });
60
+ writeOk();
61
+ } catch (err) {
62
+ failApi(err);
63
+ }
64
+ }
65
+ });
66
+ export {
67
+ discardCommand
68
+ };
69
+ //# sourceMappingURL=discard-FEJ6YL22.js.map
@@ -0,0 +1,101 @@
1
+ import {
2
+ failSite
3
+ } from "./chunk-C6PWVZQE.js";
4
+ import "./chunk-MKLAZD23.js";
5
+ import "./chunk-QV6AST5T.js";
6
+ import "./chunk-WCU362Z6.js";
7
+ import "./chunk-GIWHHCD6.js";
8
+ import "./chunk-SOPVIIUW.js";
9
+ import "./chunk-G4FG5EQO.js";
10
+ import "./chunk-R7XDGNZD.js";
11
+ import "./chunk-MSMTG6OC.js";
12
+ import {
13
+ apiGet,
14
+ apiPost
15
+ } from "./chunk-GFWWHCBF.js";
16
+ import "./chunk-JXTNP3B5.js";
17
+ import {
18
+ optionalChatId,
19
+ requireChatId
20
+ } from "./chunk-45D6WRCJ.js";
21
+ import {
22
+ registerSchema,
23
+ writeJson
24
+ } from "./chunk-CCYZJMZ7.js";
25
+ import "./chunk-YQSBHWOI.js";
26
+
27
+ // src/commands/site/domain.ts
28
+ import { defineCommand } from "citty";
29
+ registerSchema({
30
+ command: "site.domain.add",
31
+ description: "Stage connecting a custom domain (a subdomain such as shop.acme.com \u2014 not the bare acme.com) to the company's landings. Applies when the chat is published; then Baker starts verifying it. The client must add a CNAME record pointing the hostname at customers.withbaker.com \u2014 the response's hints give the exact record to ask for. Refused at once when another company already registered it or the company is at its domain limit.",
32
+ args: { hostname: { type: "string", description: "The subdomain to connect, e.g. shop.acme.com", required: true } }
33
+ });
34
+ registerSchema({
35
+ command: "site.domain.list",
36
+ description: "Every custom domain of the company and its status: pending_verification (waiting for the DNS record \u2014 `message` says what is missing), active (live), error, or staged (this chat adds it at publish). Read-only.",
37
+ args: {}
38
+ });
39
+ registerSchema({
40
+ command: "site.domain.verify",
41
+ description: "Re-check a domain that is waiting for verification now instead of waiting for the background check (every few minutes). Use after the client says they added the DNS record. Returns its state and, if it is not live yet, what is still missing. A staged domain cannot be checked until the chat is published.",
42
+ args: { hostname: { type: "string", description: "A domain from `baker site domain list`", required: true } }
43
+ });
44
+ var addCommand = defineCommand({
45
+ meta: {
46
+ name: "add",
47
+ description: "Stage connecting a custom domain; applies at publish. The client adds a CNAME to customers.withbaker.com.\n\nExample: baker site domain add shop.acme.com"
48
+ },
49
+ args: { hostname: { type: "positional", description: "Subdomain, e.g. shop.acme.com", required: true } },
50
+ run: async ({ args }) => {
51
+ try {
52
+ const body = {
53
+ chatId: requireChatId(),
54
+ inputs: [{ setting: "customDomain", hostname: String(args.hostname) }]
55
+ };
56
+ writeJson(await apiPost("/api/site/stage", body));
57
+ } catch (err) {
58
+ failSite(err);
59
+ }
60
+ }
61
+ });
62
+ var listCommand = defineCommand({
63
+ meta: {
64
+ name: "list",
65
+ description: "List the company's custom domains and what each is waiting for.\n\nExample: baker site domain list"
66
+ },
67
+ run: async () => {
68
+ try {
69
+ const chatId = optionalChatId();
70
+ writeJson(await apiGet("/api/site/domains", chatId ? { chatId } : void 0));
71
+ } catch (err) {
72
+ failSite(err);
73
+ }
74
+ }
75
+ });
76
+ var verifyCommand = defineCommand({
77
+ meta: {
78
+ name: "verify",
79
+ description: "Re-check a pending domain now, e.g. right after the client added the DNS record.\n\nExample: baker site domain verify shop.acme.com"
80
+ },
81
+ args: { hostname: { type: "positional", description: "A domain from `baker site domain list`", required: true } },
82
+ run: async ({ args }) => {
83
+ try {
84
+ const body = { hostname: String(args.hostname) };
85
+ writeJson(await apiPost("/api/site/domains/verify", body));
86
+ } catch (err) {
87
+ failSite(err);
88
+ }
89
+ }
90
+ });
91
+ var domainCommand = defineCommand({
92
+ meta: {
93
+ name: "domain",
94
+ description: "Custom domains for the company's landings. Subcommands: add (staged until publish), list, verify.\n\nExamples:\n baker site domain add shop.acme.com\n baker site domain list\n baker site domain verify shop.acme.com"
95
+ },
96
+ subCommands: { add: addCommand, list: listCommand, verify: verifyCommand }
97
+ });
98
+ export {
99
+ domainCommand
100
+ };
101
+ //# sourceMappingURL=domain-JYWNXBKS.js.map
@@ -0,0 +1,337 @@
1
+ import {
2
+ atomicWrite,
3
+ isDirectory,
4
+ isRemoteUrl
5
+ } from "./chunk-LC6PVPJX.js";
6
+ import {
7
+ ExternalFetchError,
8
+ MAX_REMOTE_IMAGE_BYTES,
9
+ NO_ANSWER_MESSAGE,
10
+ OversizeFetchError,
11
+ fetchExternalBytes
12
+ } from "./chunk-X6U3B6YK.js";
13
+ import {
14
+ ApiError,
15
+ apiGet,
16
+ validateConvexId
17
+ } from "./chunk-GFWWHCBF.js";
18
+ import "./chunk-JXTNP3B5.js";
19
+ import "./chunk-45D6WRCJ.js";
20
+ import {
21
+ registerSchema,
22
+ writeJson
23
+ } from "./chunk-CCYZJMZ7.js";
24
+ import "./chunk-YQSBHWOI.js";
25
+
26
+ // src/commands/images/download.ts
27
+ import { mkdir } from "fs/promises";
28
+ import { dirname } from "path";
29
+ import { defineCommand } from "citty";
30
+
31
+ // src/commands/images/downloadPaths.ts
32
+ import { basename, extname, join } from "path";
33
+ var CONTENT_TYPE_EXTENSIONS = {
34
+ "image/webp": ".webp",
35
+ "image/png": ".png",
36
+ "image/jpeg": ".jpg",
37
+ "image/jpg": ".jpg",
38
+ "image/gif": ".gif",
39
+ "image/svg+xml": ".svg",
40
+ "image/avif": ".avif",
41
+ "image/bmp": ".bmp",
42
+ "image/tiff": ".tiff",
43
+ "image/x-icon": ".ico",
44
+ "image/vnd.microsoft.icon": ".ico"
45
+ };
46
+ var KNOWN_EXTENSIONS = /* @__PURE__ */ new Set([".webp", ".png", ".jpg", ".jpeg", ".gif", ".svg", ".avif", ".bmp", ".tiff", ".ico"]);
47
+ function urlPath(sourceUrl) {
48
+ try {
49
+ return new URL(sourceUrl).pathname;
50
+ } catch {
51
+ return sourceUrl.split(/[?#]/)[0] ?? "";
52
+ }
53
+ }
54
+ function extensionFromUrl(sourceUrl) {
55
+ const ext = extname(urlPath(sourceUrl)).toLowerCase();
56
+ return KNOWN_EXTENSIONS.has(ext) ? ext : null;
57
+ }
58
+ function deriveExtension(contentType, sourceUrl) {
59
+ const normalized = (contentType ?? "").split(";")[0]?.trim().toLowerCase() ?? "";
60
+ const fromType = CONTENT_TYPE_EXTENSIONS[normalized];
61
+ if (fromType) {
62
+ return fromType;
63
+ }
64
+ return extensionFromUrl(sourceUrl) ?? ".bin";
65
+ }
66
+ function looksLikeCdnHash(stem) {
67
+ return stem.length >= 32 && !/[-_.]/.test(stem);
68
+ }
69
+ function hostLabel(sourceUrl) {
70
+ try {
71
+ const host = new URL(sourceUrl).hostname.replace(/^www\./, "");
72
+ const label = host.split(".").filter((part) => part !== "cdn" && part !== "images")[0];
73
+ return label && /^[a-z0-9-]+$/.test(label) ? label : null;
74
+ } catch {
75
+ return null;
76
+ }
77
+ }
78
+ function sanitizeBaseName(raw) {
79
+ const stem = raw.trim().toLowerCase().replace(/\.[a-z0-9]{1,5}$/i, "").replace(/[^a-z0-9._-]+/g, "-").replace(/^[-.]+|[-.]+$/g, "").slice(0, 80);
80
+ return stem.length > 0 ? stem : "image";
81
+ }
82
+ function baseNameFromUrl(sourceUrl) {
83
+ const stem = sanitizeBaseName(basename(urlPath(sourceUrl)));
84
+ if (looksLikeCdnHash(stem)) {
85
+ const label = hostLabel(sourceUrl);
86
+ if (label) return `${label}-${stem.slice(0, 8)}`;
87
+ }
88
+ return stem;
89
+ }
90
+ function resolveDownloadPath({ baseName, extension, out, outIsDirectory: outIsDirectory2 }) {
91
+ const filename = `${baseName}${extension}`;
92
+ if (!out) {
93
+ return filename;
94
+ }
95
+ if (outIsDirectory2) {
96
+ return join(out, filename);
97
+ }
98
+ return out;
99
+ }
100
+ function disambiguate(paths) {
101
+ const taken = /* @__PURE__ */ new Set();
102
+ return paths.map((path) => {
103
+ if (!taken.has(path)) {
104
+ taken.add(path);
105
+ return path;
106
+ }
107
+ const ext = extname(path);
108
+ const stem = path.slice(0, path.length - ext.length);
109
+ let n = 2;
110
+ while (taken.has(`${stem}-${n}${ext}`)) n += 1;
111
+ const unique = `${stem}-${n}${ext}`;
112
+ taken.add(unique);
113
+ return unique;
114
+ });
115
+ }
116
+
117
+ // src/commands/images/download.ts
118
+ registerSchema({
119
+ command: "images.download",
120
+ description: "Download remote images or library images to local files, so the local transforms (normalize, crop, dimensions) can read them.",
121
+ args: {
122
+ targets: {
123
+ type: "string",
124
+ description: "One or more image URLs and/or library image ids, space- or comma-separated (e.g. 'https://\u2026/logo.webp j57abc123').",
125
+ required: true
126
+ },
127
+ out: {
128
+ type: "string",
129
+ description: "Output directory (created if missing; end it with `/`) or, with a single target, an exact file path. Default: the working directory.",
130
+ required: false
131
+ }
132
+ }
133
+ });
134
+ var ValidationError = class extends Error {
135
+ };
136
+ var UnusableTargetError = class extends Error {
137
+ constructor(target) {
138
+ super(`"${target}" is neither an image URL nor a library image id.`);
139
+ this.target = target;
140
+ }
141
+ };
142
+ function readTargets(args) {
143
+ const positionals = Array.isArray(args._) ? args._ : [];
144
+ const named = typeof args.targets === "string" ? [args.targets] : [];
145
+ const all = positionals.length > 0 ? positionals : named;
146
+ const seen = /* @__PURE__ */ new Set();
147
+ const out = [];
148
+ for (const value of all) {
149
+ if (typeof value !== "string") continue;
150
+ for (const part of value.split(",").map((p) => p.trim())) {
151
+ if (part.length > 0 && !seen.has(part)) {
152
+ seen.add(part);
153
+ out.push(part);
154
+ }
155
+ }
156
+ }
157
+ return out;
158
+ }
159
+ function classify(raw) {
160
+ if (isRemoteUrl(raw)) {
161
+ return { raw, kind: "url" };
162
+ }
163
+ try {
164
+ validateConvexId(raw);
165
+ } catch {
166
+ throw new UnusableTargetError(raw);
167
+ }
168
+ return { raw, kind: "imageId" };
169
+ }
170
+ async function resolveTarget(target) {
171
+ if (target.kind === "url") {
172
+ return { input: target.raw, url: target.raw, baseName: baseNameFromUrl(target.raw) };
173
+ }
174
+ const doc = await apiGet("/api/images/get", { id: target.raw });
175
+ const stem = sanitizeBaseName(doc.name.length > 0 ? doc.name : target.raw);
176
+ return { input: target.raw, url: doc.imageUrl, baseName: stem };
177
+ }
178
+ async function fetchBytes(url) {
179
+ return await fetchExternalBytes(url, { maxBytes: MAX_REMOTE_IMAGE_BYTES });
180
+ }
181
+ var NEXT_STEP_HINT = "Downloaded files are local paths \u2014 the local transforms take them directly: `baker images normalize <file> --color '#FFFFFF' --height 40`, `baker images crop <file> --x \u2026 --y \u2026 --width \u2026 --height \u2026`, `baker images dimensions <file>`. For a landing, page-scoped images belong in `src/pages/{landing}/_images/`.";
182
+ var PARTIAL_FAILURE_HINT = "Some targets did not download. Carry on with the ones that did \u2014 a missing asset never blocks the rest of the job. Retry a failed URL only if it was a transient 5xx; a 403 means the host will not serve these bytes to anyone but a browser, so re-source it (`baker images extract <page>`) instead.";
183
+ var CAUSE_ADVICE = {
184
+ write: () => "Writing the file failed on this machine (the error names the path) \u2014 point `--out` at a writable folder and re-run; the host is not the problem.",
185
+ too_large: (failed) => `${failed.find((f) => f.cause === "too_large")?.error ?? "A file is over the download limit."} Pick a smaller version of that asset (another hit, a smaller size) rather than retrying it.`,
186
+ library: () => "For a library image, check the id and that the row is `ready` with `baker images get <id>`.",
187
+ refused: () => "A 403/404 (or another refusal: a security check, an address not on the public web) means these bytes will not be served \u2014 re-source the asset (`baker images extract <page-url>`, `baker images stock <query>`).",
188
+ unavailable: () => "The host failed on its side or did not answer (a 5xx or a timeout) \u2014 retry that URL once; if it fails again, re-source the asset (`baker images extract <page-url>`, `baker images stock <query>`)."
189
+ };
190
+ function fetchFailureCause(err, target) {
191
+ if (err instanceof OversizeFetchError) return "too_large";
192
+ if (err instanceof ApiError || target.kind === "imageId") return "library";
193
+ return err instanceof ExternalFetchError && isTransient(err) ? "unavailable" : "refused";
194
+ }
195
+ function isTransient(err) {
196
+ if (err.status !== null) return err.status >= 500;
197
+ return err.ourFault || err.message === NO_ANSWER_MESSAGE;
198
+ }
199
+ function allFailedAction(causes) {
200
+ if (causes.every((cause) => cause === "write")) return "retry_with_changes";
201
+ if (causes.every((cause) => cause === "unavailable")) return "retry_once";
202
+ return "use_different_resource";
203
+ }
204
+ function allFailedFix(failed) {
205
+ const causes = [...new Set(failed.map((f) => f.cause))];
206
+ const advice = causes.map((cause) => CAUSE_ADVICE[cause](failed)).join(" ");
207
+ return {
208
+ action: allFailedAction(causes),
209
+ explanation: `None of the targets could be downloaded. ${advice} Do not retry the same URLs in a loop, and do not fall back to \`curl\` \u2014 continue the job with a placeholder if nothing can be fetched.`
210
+ };
211
+ }
212
+ async function outIsDirectory(out) {
213
+ if (!out) return false;
214
+ return out.endsWith("/") || await isDirectory(out);
215
+ }
216
+ async function buildPlan(args) {
217
+ const raw = readTargets(args);
218
+ if (raw.length === 0) {
219
+ throw new ValidationError("At least one image URL or library image id is required.");
220
+ }
221
+ const targets = raw.map(classify);
222
+ const out = typeof args.out === "string" && args.out.length > 0 ? args.out : void 0;
223
+ const outIsDir = await outIsDirectory(out);
224
+ if (out && !outIsDir && targets.length > 1) {
225
+ throw new ValidationError(
226
+ `--out must be a directory when downloading more than one image (got "${out}"); end it with \`/\` to have it created.`
227
+ );
228
+ }
229
+ return { targets, out, outIsDir };
230
+ }
231
+ function failureMessage(err, fallback) {
232
+ return err instanceof Error ? err.message : fallback;
233
+ }
234
+ async function runDownloads(plan) {
235
+ const failed = [];
236
+ const fetched = [];
237
+ for (const target of plan.targets) {
238
+ try {
239
+ const resolved = await resolveTarget(target);
240
+ const { buffer, contentType } = await fetchBytes(resolved.url);
241
+ fetched.push({
242
+ input: resolved.input,
243
+ buffer,
244
+ contentType,
245
+ path: resolveDownloadPath({
246
+ baseName: resolved.baseName,
247
+ extension: deriveExtension(contentType, resolved.url),
248
+ out: plan.out,
249
+ outIsDirectory: plan.outIsDir
250
+ })
251
+ });
252
+ } catch (err) {
253
+ failed.push({
254
+ input: target.raw,
255
+ error: failureMessage(err, "Download failed"),
256
+ cause: fetchFailureCause(err, target)
257
+ });
258
+ }
259
+ }
260
+ const paths = disambiguate(fetched.map((item) => item.path));
261
+ const downloaded = [];
262
+ for (const [index, item] of fetched.entries()) {
263
+ const path = paths[index] ?? item.path;
264
+ try {
265
+ await mkdir(dirname(path), { recursive: true });
266
+ await atomicWrite(path, item.buffer);
267
+ downloaded.push({ input: item.input, output: path, bytes: item.buffer.length, contentType: item.contentType });
268
+ } catch (err) {
269
+ failed.push({ input: item.input, error: failureMessage(err, "Write failed"), cause: "write" });
270
+ }
271
+ }
272
+ return { downloaded, failed };
273
+ }
274
+ function emitError(err) {
275
+ if (err instanceof UnusableTargetError) {
276
+ writeJson({
277
+ ok: false,
278
+ error: {
279
+ code: "VALIDATION_ERROR",
280
+ message: err.message,
281
+ fix: {
282
+ action: "retry_with_changes",
283
+ explanation: "`download` takes remote image URLs (https://\u2026) and library image ids. A path that is already on disk needs no download \u2014 pass it straight to `baker images normalize` / `crop` / `dimensions`. To get a library id, run `baker images library <query>` and read `_id`."
284
+ }
285
+ }
286
+ });
287
+ process.exit(1);
288
+ }
289
+ if (err instanceof ValidationError) {
290
+ writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message: err.message } });
291
+ process.exit(1);
292
+ }
293
+ if (err instanceof ApiError) {
294
+ writeJson({ ok: false, error: { code: err.code, message: err.message } });
295
+ process.exit(1);
296
+ }
297
+ writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: "Unexpected error" } });
298
+ process.exit(1);
299
+ }
300
+ var downloadCommand = defineCommand({
301
+ meta: {
302
+ name: "download",
303
+ description: "Download image URLs and/or library images to local files \u2014 the missing first half of `source \u2192 download \u2192 normalize \u2192 place`. Never use `curl` for this.\n\nExamples:\n baker images download https://media.withbaker.com/\u2026/logo.webp\n baker images download j57abc123 j57def456 --out src/pages/pricing/_images/\n baker images download https://\u2026/hero.png --out ./hero.png"
304
+ },
305
+ args: {
306
+ targets: { type: "positional", description: "Image URLs and/or library image ids", required: false },
307
+ out: {
308
+ type: "string",
309
+ description: "Output directory (created if missing; end it with /), or exact file path for a single target"
310
+ }
311
+ },
312
+ run: async ({ args }) => {
313
+ try {
314
+ const plan = await buildPlan(args);
315
+ const { downloaded, failed } = await runDownloads(plan);
316
+ if (downloaded.length === 0) {
317
+ writeJson({
318
+ ok: false,
319
+ error: {
320
+ code: "DOWNLOAD_FAILED",
321
+ message: `None of the ${plan.targets.length} target(s) could be downloaded: ${failed.map((f) => `${f.input} (${f.error})`).join("; ")}`,
322
+ fix: allFailedFix(failed)
323
+ }
324
+ });
325
+ process.exit(1);
326
+ }
327
+ const hints = [NEXT_STEP_HINT, ...failed.length > 0 ? [PARTIAL_FAILURE_HINT] : []];
328
+ writeJson({ ok: true, data: { downloaded, failed }, hints });
329
+ } catch (err) {
330
+ emitError(err);
331
+ }
332
+ }
333
+ });
334
+ export {
335
+ downloadCommand
336
+ };
337
+ //# sourceMappingURL=download-H3ZDQTFG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/images/download.ts","../src/commands/images/downloadPaths.ts"],"sourcesContent":["import { mkdir } from \"node:fs/promises\";\nimport { dirname } from \"node:path\";\nimport type { ImagesGetResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiGet, validateConvexId } from \"../../client.ts\";\nimport {\n ExternalFetchError,\n fetchExternalBytes,\n MAX_REMOTE_IMAGE_BYTES,\n NO_ANSWER_MESSAGE,\n OversizeFetchError,\n} from \"../../lib/externalFetch.ts\";\nimport { atomicWrite, isDirectory, isRemoteUrl } from \"../../lib/image/io.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport {\n baseNameFromUrl,\n deriveExtension,\n disambiguate,\n resolveDownloadPath,\n sanitizeBaseName,\n} from \"./downloadPaths.ts\";\n\n/**\n * Remote asset → local file.\n *\n * The docs have always described the pipeline as `source → download → normalize\n * → place` and told the agent \"local files only — download remote assets\n * first\", while no download command existed: `normalize` refuses URLs and takes\n * no library ids, and the only URL→disk writer was `crop`, which demands\n * rectangle coordinates. Agents filled the hole with `curl`, hand-assembling\n * media URLs out of JSON responses.\n *\n * Local-only by design, like `normalize` / `crop` / `dimensions` — the bytes go\n * to the sandbox, not through the backend. Library ids resolve through the\n * existing `GET /api/images/get` route, so no new backend surface is needed.\n */\n\nregisterSchema({\n command: \"images.download\",\n description:\n \"Download remote images or library images to local files, so the local transforms (normalize, crop, dimensions) can read them.\",\n args: {\n targets: {\n type: \"string\",\n description:\n \"One or more image URLs and/or library image ids, space- or comma-separated (e.g. 'https://…/logo.webp j57abc123').\",\n required: true,\n },\n out: {\n type: \"string\",\n description:\n \"Output directory (created if missing; end it with `/`) or, with a single target, an exact file path. Default: the working directory.\",\n required: false,\n },\n },\n});\n\ninterface Target {\n raw: string;\n kind: \"url\" | \"imageId\";\n}\n\ninterface Downloaded {\n input: string;\n output: string;\n bytes: number;\n contentType: string | null;\n}\n\n/**\n * Why a target failed, which decides what the agent should do about it:\n * `refused` is anything that will answer the same way again (a 403/404 or other\n * refusing status, a security check, an address off the public web),\n * `unavailable` a host that failed on its side or never answered (a 5xx, a\n * timeout, a dead route).\n */\ntype FailureCause = \"write\" | \"too_large\" | \"library\" | \"refused\" | \"unavailable\";\n\ninterface FailedDownload {\n input: string;\n error: string;\n cause: FailureCause;\n}\n\nclass ValidationError extends Error {}\n\n/** A target that is neither a URL nor a library id — usually a local path,\n * which needs no download at all. */\nclass UnusableTargetError extends Error {\n constructor(readonly target: string) {\n super(`\"${target}\" is neither an image URL nor a library image id.`);\n }\n}\n\n/** Every positional, each of which may itself be a comma-separated list. */\nfunction readTargets(args: Record<string, unknown>): string[] {\n const positionals = Array.isArray(args._) ? args._ : [];\n const named = typeof args.targets === \"string\" ? [args.targets] : [];\n const all = positionals.length > 0 ? positionals : named;\n const seen = new Set<string>();\n const out: string[] = [];\n for (const value of all) {\n if (typeof value !== \"string\") continue;\n for (const part of value.split(\",\").map((p) => p.trim())) {\n if (part.length > 0 && !seen.has(part)) {\n seen.add(part);\n out.push(part);\n }\n }\n }\n return out;\n}\n\n/** A target is a URL or a library id — nothing else resolves to bytes. */\nfunction classify(raw: string): Target {\n if (isRemoteUrl(raw)) {\n return { raw, kind: \"url\" };\n }\n try {\n validateConvexId(raw);\n } catch {\n throw new UnusableTargetError(raw);\n }\n return { raw, kind: \"imageId\" };\n}\n\ninterface Resolved {\n input: string;\n url: string;\n baseName: string;\n}\n\n/** Turn a target into a fetchable URL plus the stem to name its file after. */\nasync function resolveTarget(target: Target): Promise<Resolved> {\n if (target.kind === \"url\") {\n return { input: target.raw, url: target.raw, baseName: baseNameFromUrl(target.raw) };\n }\n const doc = await apiGet<ImagesGetResponse>(\"/api/images/get\", { id: target.raw });\n // The library row's own name is what the agent searched for; fall back to the\n // id so a nameless row still writes a file it can find again.\n const stem = sanitizeBaseName(doc.name.length > 0 ? doc.name : target.raw);\n return { input: target.raw, url: doc.imageUrl, baseName: stem };\n}\n\nasync function fetchBytes(url: string): Promise<{ buffer: Buffer; contentType: string | null }> {\n // These URLs come straight from agent argv, so the ceiling is not a formality:\n // nothing upstream has looked at where they point or how big they are.\n return await fetchExternalBytes(url, { maxBytes: MAX_REMOTE_IMAGE_BYTES });\n}\n\nconst NEXT_STEP_HINT =\n \"Downloaded files are local paths — the local transforms take them directly: `baker images normalize <file> --color '#FFFFFF' --height 40`, `baker images crop <file> --x … --y … --width … --height …`, `baker images dimensions <file>`. For a landing, page-scoped images belong in `src/pages/{landing}/_images/`.\";\n\n// These two used to explain a 403 as \"the host refuses datacenter IPs, so\n// re-source it\". That was an accurate diagnosis and is now a stale instruction:\n// a refusal is retried from a different exit before this command ever reports\n// one, so a 403 that survives to here has already been answered from more than\n// one address and will not yield to another attempt. The advice is unchanged —\n// move on — but the reason is now \"this host will not serve us\", not \"try\n// somewhere our address is welcome\". Neither string may mention how that was\n// established; the agent has no proxy to reason about and no decision to make\n// about one.\nconst PARTIAL_FAILURE_HINT =\n \"Some targets did not download. Carry on with the ones that did — a missing asset never blocks the rest of the job. Retry a failed URL only if it was a transient 5xx; a 403 means the host will not serve these bytes to anyone but a browser, so re-source it (`baker images extract <page>`) instead.\";\n\n/** One sentence per cause: a local write error or a size cap is not a host refusing. */\nconst CAUSE_ADVICE: Record<FailureCause, (failed: FailedDownload[]) => string> = {\n write: () =>\n \"Writing the file failed on this machine (the error names the path) — point `--out` at a writable folder and re-run; the host is not the problem.\",\n too_large: (failed) =>\n `${failed.find((f) => f.cause === \"too_large\")?.error ?? \"A file is over the download limit.\"} Pick a smaller version of that asset (another hit, a smaller size) rather than retrying it.`,\n library: () => \"For a library image, check the id and that the row is `ready` with `baker images get <id>`.\",\n refused: () =>\n \"A 403/404 (or another refusal: a security check, an address not on the public web) means these bytes will not be served — re-source the asset (`baker images extract <page-url>`, `baker images stock <query>`).\",\n unavailable: () =>\n \"The host failed on its side or did not answer (a 5xx or a timeout) — retry that URL once; if it fails again, re-source the asset (`baker images extract <page-url>`, `baker images stock <query>`).\",\n};\n\n/** A library id is the row's problem whatever its file fetch said; a URL is the host's. */\nfunction fetchFailureCause(err: unknown, target: Target): FailureCause {\n if (err instanceof OversizeFetchError) return \"too_large\";\n if (err instanceof ApiError || target.kind === \"imageId\") return \"library\";\n return err instanceof ExternalFetchError && isTransient(err) ? \"unavailable\" : \"refused\";\n}\n\n/**\n * Only a 5xx, a host that did not answer, or a route we could not open is worth\n * a retry. Everything else — a 403/404/401/410/429, a security check, an address\n * that is not on the public web — answers the same way next time.\n */\nfunction isTransient(err: ExternalFetchError): boolean {\n if (err.status !== null) return err.status >= 500;\n return err.ourFault || err.message === NO_ANSWER_MESSAGE;\n}\n\nfunction allFailedAction(causes: FailureCause[]): string {\n if (causes.every((cause) => cause === \"write\")) return \"retry_with_changes\";\n if (causes.every((cause) => cause === \"unavailable\")) return \"retry_once\";\n return \"use_different_resource\";\n}\n\n/** The fix for a download where nothing landed, built from why each target failed. */\nfunction allFailedFix(failed: FailedDownload[]): { action: string; explanation: string } {\n const causes = [...new Set(failed.map((f) => f.cause))];\n const advice = causes.map((cause) => CAUSE_ADVICE[cause](failed)).join(\" \");\n return {\n action: allFailedAction(causes),\n explanation: `None of the targets could be downloaded. ${advice} Do not retry the same URLs in a loop, and do not fall back to \\`curl\\` — continue the job with a placeholder if nothing can be fetched.`,\n };\n}\n\n/** Resolve `--out` once: an existing directory, or a trailing slash meaning one. */\nasync function outIsDirectory(out: string | undefined): Promise<boolean> {\n if (!out) return false;\n return out.endsWith(\"/\") || (await isDirectory(out));\n}\n\ninterface DownloadPlan {\n targets: Target[];\n out: string | undefined;\n outIsDir: boolean;\n}\n\nasync function buildPlan(args: Record<string, unknown>): Promise<DownloadPlan> {\n const raw = readTargets(args);\n if (raw.length === 0) {\n throw new ValidationError(\"At least one image URL or library image id is required.\");\n }\n const targets = raw.map(classify);\n const out = typeof args.out === \"string\" && args.out.length > 0 ? args.out : undefined;\n const outIsDir = await outIsDirectory(out);\n if (out && !outIsDir && targets.length > 1) {\n throw new ValidationError(\n `--out must be a directory when downloading more than one image (got \"${out}\"); end it with \\`/\\` to have it created.`,\n );\n }\n return { targets, out, outIsDir };\n}\n\ninterface FetchedTarget {\n input: string;\n buffer: Buffer;\n contentType: string | null;\n path: string;\n}\n\nfunction failureMessage(err: unknown, fallback: string): string {\n return err instanceof Error ? err.message : fallback;\n}\n\n/**\n * Fetch every target, keeping going past a failure: one unreachable host must\n * not cost the agent the other five assets. Paths are resolved for the whole\n * batch before any write, so collisions can be renamed rather than overwritten.\n */\nasync function runDownloads(plan: DownloadPlan): Promise<{ downloaded: Downloaded[]; failed: FailedDownload[] }> {\n const failed: FailedDownload[] = [];\n const fetched: FetchedTarget[] = [];\n\n for (const target of plan.targets) {\n try {\n const resolved = await resolveTarget(target);\n const { buffer, contentType } = await fetchBytes(resolved.url);\n fetched.push({\n input: resolved.input,\n buffer,\n contentType,\n path: resolveDownloadPath({\n baseName: resolved.baseName,\n extension: deriveExtension(contentType, resolved.url),\n out: plan.out,\n outIsDirectory: plan.outIsDir,\n }),\n });\n } catch (err) {\n failed.push({\n input: target.raw,\n error: failureMessage(err, \"Download failed\"),\n cause: fetchFailureCause(err, target),\n });\n }\n }\n\n const paths = disambiguate(fetched.map((item) => item.path));\n const downloaded: Downloaded[] = [];\n for (const [index, item] of fetched.entries()) {\n const path = paths[index] ?? item.path;\n try {\n await mkdir(dirname(path), { recursive: true });\n await atomicWrite(path, item.buffer);\n downloaded.push({ input: item.input, output: path, bytes: item.buffer.length, contentType: item.contentType });\n } catch (err) {\n failed.push({ input: item.input, error: failureMessage(err, \"Write failed\"), cause: \"write\" });\n }\n }\n return { downloaded, failed };\n}\n\nfunction emitError(err: unknown): never {\n if (err instanceof UnusableTargetError) {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: err.message,\n fix: {\n action: \"retry_with_changes\",\n explanation:\n \"`download` takes remote image URLs (https://…) and library image ids. A path that is already on disk needs no download — pass it straight to `baker images normalize` / `crop` / `dimensions`. To get a library id, run `baker images library <query>` and read `_id`.\",\n },\n },\n });\n process.exit(1);\n }\n if (err instanceof ValidationError) {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: err.message } });\n process.exit(1);\n }\n if (err instanceof ApiError) {\n writeJson({ ok: false, error: { code: err.code, message: err.message } });\n process.exit(1);\n }\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n}\n\nexport const downloadCommand = defineCommand({\n meta: {\n name: \"download\",\n description:\n \"Download image URLs and/or library images to local files — the missing first half of `source → download → normalize → place`. Never use `curl` for this.\\n\\nExamples:\\n baker images download https://media.withbaker.com/…/logo.webp\\n baker images download j57abc123 j57def456 --out src/pages/pricing/_images/\\n baker images download https://…/hero.png --out ./hero.png\",\n },\n args: {\n targets: { type: \"positional\", description: \"Image URLs and/or library image ids\", required: false },\n out: {\n type: \"string\",\n description: \"Output directory (created if missing; end it with /), or exact file path for a single target\",\n },\n },\n run: async ({ args }) => {\n try {\n const plan = await buildPlan(args as Record<string, unknown>);\n const { downloaded, failed } = await runDownloads(plan);\n\n if (downloaded.length === 0) {\n writeJson({\n ok: false,\n error: {\n code: \"DOWNLOAD_FAILED\",\n message: `None of the ${plan.targets.length} target(s) could be downloaded: ${failed\n .map((f) => `${f.input} (${f.error})`)\n .join(\"; \")}`,\n fix: allFailedFix(failed),\n },\n });\n process.exit(1);\n }\n\n const hints = [NEXT_STEP_HINT, ...(failed.length > 0 ? [PARTIAL_FAILURE_HINT] : [])];\n writeJson({ ok: true, data: { downloaded, failed }, hints });\n } catch (err) {\n emitError(err);\n }\n },\n});\n","/**\n * Where a downloaded asset lands, and what it is called.\n *\n * Split out from the command so the naming rules are testable without a\n * network or a filesystem — the part that decides whether `normalize` can read\n * the file back is the extension, and deriving it from the URL alone is how\n * a `.png` URL serving webp bytes ends up misnamed.\n */\n\nimport { basename, extname, join } from \"node:path\";\n\nconst CONTENT_TYPE_EXTENSIONS: Record<string, string> = {\n \"image/webp\": \".webp\",\n \"image/png\": \".png\",\n \"image/jpeg\": \".jpg\",\n \"image/jpg\": \".jpg\",\n \"image/gif\": \".gif\",\n \"image/svg+xml\": \".svg\",\n \"image/avif\": \".avif\",\n \"image/bmp\": \".bmp\",\n \"image/tiff\": \".tiff\",\n \"image/x-icon\": \".ico\",\n \"image/vnd.microsoft.icon\": \".ico\",\n};\n\nconst KNOWN_EXTENSIONS = new Set([\".webp\", \".png\", \".jpg\", \".jpeg\", \".gif\", \".svg\", \".avif\", \".bmp\", \".tiff\", \".ico\"]);\n\n/** The path portion of a URL, with the host and query removed. A bare host must\n * not leak into a filename — `https://media.withbaker.com/` names no file. */\nfunction urlPath(sourceUrl: string): string {\n try {\n return new URL(sourceUrl).pathname;\n } catch {\n return sourceUrl.split(/[?#]/)[0] ?? \"\";\n }\n}\n\n/** The URL's own path extension, when it names an image format we recognise. */\nfunction extensionFromUrl(sourceUrl: string): string | null {\n const ext = extname(urlPath(sourceUrl)).toLowerCase();\n return KNOWN_EXTENSIONS.has(ext) ? ext : null;\n}\n\n/**\n * The extension to write under. The served `Content-Type` wins: Baker's media\n * host routinely serves webp from a `.png` URL, and a file named for the URL\n * would then lie to every local tool that reads it back.\n */\nexport function deriveExtension(contentType: string | null | undefined, sourceUrl: string): string {\n const normalized = (contentType ?? \"\").split(\";\")[0]?.trim().toLowerCase() ?? \"\";\n const fromType = CONTENT_TYPE_EXTENSIONS[normalized];\n if (fromType) {\n return fromType;\n }\n return extensionFromUrl(sourceUrl) ?? \".bin\";\n}\n\n/**\n * A stem long enough and featureless enough to be a CDN hash rather than a name.\n *\n * Pixabay serves every file under one — an 80-character token with no word\n * breaks — so a downloaded illustration landed in a client's `_images/` as\n * `g030ff139944c078854d52b34eb635c9f5...png`, and that name then goes in the\n * page's `src` and into their repo. Pexels' `pexels-photo-11982694` has word\n * breaks and is left alone.\n */\nfunction looksLikeCdnHash(stem: string): boolean {\n return stem.length >= 32 && !/[-_.]/.test(stem);\n}\n\n/** The site a URL belongs to, as a short word usable in a filename. */\nfunction hostLabel(sourceUrl: string): string | null {\n try {\n const host = new URL(sourceUrl).hostname.replace(/^www\\./, \"\");\n const label = host.split(\".\").filter((part) => part !== \"cdn\" && part !== \"images\")[0];\n return label && /^[a-z0-9-]+$/.test(label) ? label : null;\n } catch {\n return null;\n }\n}\n\n/** A filesystem-safe stem, with no extension. */\nexport function sanitizeBaseName(raw: string): string {\n const stem = raw\n .trim()\n .toLowerCase()\n .replace(/\\.[a-z0-9]{1,5}$/i, \"\")\n .replace(/[^a-z0-9._-]+/g, \"-\")\n .replace(/^[-.]+|[-.]+$/g, \"\")\n .slice(0, 80);\n return stem.length > 0 ? stem : \"image\";\n}\n\n/**\n * The stem for a remote URL: its last path segment, or `image`. A segment that\n * is only a CDN hash is replaced by the site it came from plus a short prefix of\n * the hash, which stays unique between two files from the same site while being\n * readable in a page's markup.\n */\nexport function baseNameFromUrl(sourceUrl: string): string {\n const stem = sanitizeBaseName(basename(urlPath(sourceUrl)));\n if (looksLikeCdnHash(stem)) {\n const label = hostLabel(sourceUrl);\n if (label) return `${label}-${stem.slice(0, 8)}`;\n }\n return stem;\n}\n\ninterface DownloadPathInput {\n baseName: string;\n extension: string;\n /** `--out`, as given. */\n out?: string;\n /** Whether `--out` resolved to an existing directory (or is written as one). */\n outIsDirectory: boolean;\n}\n\n/**\n * `--out` naming a directory keeps the derived filename; `--out` naming a file\n * is taken literally, extension included — the caller asked for that path.\n */\nexport function resolveDownloadPath({ baseName, extension, out, outIsDirectory }: DownloadPathInput): string {\n const filename = `${baseName}${extension}`;\n if (!out) {\n return filename;\n }\n if (outIsDirectory) {\n return join(out, filename);\n }\n return out;\n}\n\n/**\n * Make a batch of resolved paths collision-free.\n *\n * Two hits from different hosts routinely end in the same segment (`/a/logo.png`\n * and `/b/logo.png`), and writing both would leave one file where the agent\n * asked for two — silently, since each write succeeds.\n *\n * The names this mints are claimed too, which is the whole difference between\n * this and a per-name counter. `[\"logo.png\", \"logo.png\", \"logo-2.png\"]` used to\n * produce `logo-2.png` twice: the third entry was its own first sighting, so it\n * passed through untouched and collided with the name invented for the second.\n * That reproduced the exact failure the function exists to prevent, one step\n * further along.\n */\nexport function disambiguate(paths: string[]): string[] {\n const taken = new Set<string>();\n return paths.map((path) => {\n if (!taken.has(path)) {\n taken.add(path);\n return path;\n }\n const ext = extname(path);\n const stem = path.slice(0, path.length - ext.length);\n // Step until free rather than trusting a count: the candidate can collide\n // with a name that arrived on its own, not only with an earlier duplicate.\n let n = 2;\n while (taken.has(`${stem}-${n}${ext}`)) n += 1;\n const unique = `${stem}-${n}${ext}`;\n taken.add(unique);\n return unique;\n });\n}\n"],"mappings":"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","names":["outIsDirectory"]}