@koda-sl/baker-cli 0.386.0 → 0.387.0-dev.3bafd569e

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 (967) hide show
  1. package/README.md +1090 -211
  2. package/canvas/tiktok-captions-composition/index.html +5 -6
  3. package/canvas/tiktok-captions-composition/meta.json +5 -0
  4. package/dist/account-CLOKMTTC.js +49 -0
  5. package/dist/account-CLOKMTTC.js.map +1 -0
  6. package/dist/account-V5Y2QHAK.js +79 -0
  7. package/dist/account-V5Y2QHAK.js.map +1 -0
  8. package/dist/account-XFK6VX2R.js +80 -0
  9. package/dist/account-XFK6VX2R.js.map +1 -0
  10. package/dist/account-reads-S5VXX2QU.js +218 -0
  11. package/dist/account-reads-S5VXX2QU.js.map +1 -0
  12. package/dist/account-writes-Y7EQXDXF.js +66 -0
  13. package/dist/account-writes-Y7EQXDXF.js.map +1 -0
  14. package/dist/accounts-7YD457YN.js +114 -0
  15. package/dist/accounts-7YD457YN.js.map +1 -0
  16. package/dist/accounts-BJ3X5JQT.js +115 -0
  17. package/dist/accounts-BJ3X5JQT.js.map +1 -0
  18. package/dist/accounts-LOJ4WLIX.js +77 -0
  19. package/dist/accounts-LOJ4WLIX.js.map +1 -0
  20. package/dist/accounts-RYBDLQ6H.js +75 -0
  21. package/dist/accounts-RYBDLQ6H.js.map +1 -0
  22. package/dist/accounts-UO4XBWM2.js +611 -0
  23. package/dist/accounts-UO4XBWM2.js.map +1 -0
  24. package/dist/actions-3AW3R63U.js +55 -0
  25. package/dist/actions-3AW3R63U.js.map +1 -0
  26. package/dist/active-entities-R6GZIO6Z.js +103 -0
  27. package/dist/active-entities-R6GZIO6Z.js.map +1 -0
  28. package/dist/activities-ESBF3GFS.js +74 -0
  29. package/dist/activities-ESBF3GFS.js.map +1 -0
  30. package/dist/ad-group-writes-I225OYDZ.js +170 -0
  31. package/dist/ad-group-writes-I225OYDZ.js.map +1 -0
  32. package/dist/ad-groups-O35MWNF6.js +68 -0
  33. package/dist/ad-groups-O35MWNF6.js.map +1 -0
  34. package/dist/ad-writes-SS5YZO5W.js +174 -0
  35. package/dist/ad-writes-SS5YZO5W.js.map +1 -0
  36. package/dist/add-43DUOVNR.js +104 -0
  37. package/dist/add-43DUOVNR.js.map +1 -0
  38. package/dist/add-IE5WDELB.js +302 -0
  39. package/dist/add-IE5WDELB.js.map +1 -0
  40. package/dist/add-QZHAWUBA.js +97 -0
  41. package/dist/add-QZHAWUBA.js.map +1 -0
  42. package/dist/add-TGQIVVXH.js +105 -0
  43. package/dist/add-TGQIVVXH.js.map +1 -0
  44. package/dist/add-accounts-6QYPOPR2.js +91 -0
  45. package/dist/add-accounts-6QYPOPR2.js.map +1 -0
  46. package/dist/ads-AUSRB4GU.js +128 -0
  47. package/dist/ads-AUSRB4GU.js.map +1 -0
  48. package/dist/ads-COYOTEKE.js +77 -0
  49. package/dist/ads-COYOTEKE.js.map +1 -0
  50. package/dist/ads-DZ4N5INZ.js +40 -0
  51. package/dist/ads-DZ4N5INZ.js.map +1 -0
  52. package/dist/ads-XZCMSPM5.js +113 -0
  53. package/dist/ads-XZCMSPM5.js.map +1 -0
  54. package/dist/adsets-AKR75THA.js +176 -0
  55. package/dist/adsets-AKR75THA.js.map +1 -0
  56. package/dist/advertisers-52FMMBTQ.js +120 -0
  57. package/dist/advertisers-52FMMBTQ.js.map +1 -0
  58. package/dist/advertisers-BCGKUMEH.js +125 -0
  59. package/dist/advertisers-BCGKUMEH.js.map +1 -0
  60. package/dist/analytics-JPDBKETM.js +1980 -0
  61. package/dist/analytics-JPDBKETM.js.map +1 -0
  62. package/dist/analytics-YVQ6H4BG.js +433 -0
  63. package/dist/analytics-YVQ6H4BG.js.map +1 -0
  64. package/dist/animate-JXIT77Y5.js +480 -0
  65. package/dist/animate-JXIT77Y5.js.map +1 -0
  66. package/dist/assign-66NTWTR2.js +77 -0
  67. package/dist/assign-66NTWTR2.js.map +1 -0
  68. package/dist/audience-size-LVQJWQAS.js +94 -0
  69. package/dist/audience-size-LVQJWQAS.js.map +1 -0
  70. package/dist/audiences-DC3IOG34.js +85 -0
  71. package/dist/audiences-DC3IOG34.js.map +1 -0
  72. package/dist/audiences-NEW3LLQR.js +268 -0
  73. package/dist/audiences-NEW3LLQR.js.map +1 -0
  74. package/dist/audiences-NYGMBGQ3.js +79 -0
  75. package/dist/audiences-NYGMBGQ3.js.map +1 -0
  76. package/dist/audit-UIPMTI5C.js +88 -0
  77. package/dist/audit-UIPMTI5C.js.map +1 -0
  78. package/dist/audit-XGN2OFLN.js +151 -0
  79. package/dist/audit-XGN2OFLN.js.map +1 -0
  80. package/dist/autocomplete-LVPDV3JE.js +111 -0
  81. package/dist/autocomplete-LVPDV3JE.js.map +1 -0
  82. package/dist/avatars-S6NSLMJK.js +38 -0
  83. package/dist/avatars-S6NSLMJK.js.map +1 -0
  84. package/dist/bid-pricing-2LYULXU2.js +99 -0
  85. package/dist/bid-pricing-2LYULXU2.js.map +1 -0
  86. package/dist/brand-WWHUZ72R.js +22 -0
  87. package/dist/brand-WWHUZ72R.js.map +1 -0
  88. package/dist/brief-K3FILESK.js +492 -0
  89. package/dist/brief-K3FILESK.js.map +1 -0
  90. package/dist/businesses-J7OP7MSK.js +53 -0
  91. package/dist/businesses-J7OP7MSK.js.map +1 -0
  92. package/dist/campaign-groups-N4TZ2F3L.js +95 -0
  93. package/dist/campaign-groups-N4TZ2F3L.js.map +1 -0
  94. package/dist/campaign-writes-5XA727KI.js +170 -0
  95. package/dist/campaign-writes-5XA727KI.js.map +1 -0
  96. package/dist/campaign-writes-7YFRQIQT.js +165 -0
  97. package/dist/campaign-writes-7YFRQIQT.js.map +1 -0
  98. package/dist/campaigns-JPYNVFQI.js +76 -0
  99. package/dist/campaigns-JPYNVFQI.js.map +1 -0
  100. package/dist/campaigns-L43ZUKAI.js +107 -0
  101. package/dist/campaigns-L43ZUKAI.js.map +1 -0
  102. package/dist/campaigns-OD7Z332M.js +109 -0
  103. package/dist/campaigns-OD7Z332M.js.map +1 -0
  104. package/dist/campaigns-R4DXIR2Q.js +110 -0
  105. package/dist/campaigns-R4DXIR2Q.js.map +1 -0
  106. package/dist/canvas-57K7AGAP.js +46 -0
  107. package/dist/canvas-57K7AGAP.js.map +1 -0
  108. package/dist/capabilities-FVTZAFPV.js +144 -0
  109. package/dist/capabilities-FVTZAFPV.js.map +1 -0
  110. package/dist/cards-7H32TNMO.js +85 -0
  111. package/dist/cards-7H32TNMO.js.map +1 -0
  112. package/dist/catalog-OTICZPJA.js +64 -0
  113. package/dist/catalog-OTICZPJA.js.map +1 -0
  114. package/dist/catalogs-ABCQLCDU.js +128 -0
  115. package/dist/catalogs-ABCQLCDU.js.map +1 -0
  116. package/dist/changes-7ZIGNUW6.js +135 -0
  117. package/dist/changes-7ZIGNUW6.js.map +1 -0
  118. package/dist/chatgpt-B3NHRJUE.js +47 -0
  119. package/dist/chatgpt-B3NHRJUE.js.map +1 -0
  120. package/dist/chats-E7DBRHBF.js +262 -0
  121. package/dist/chats-E7DBRHBF.js.map +1 -0
  122. package/dist/chunk-2CV7LX23.js +474 -0
  123. package/dist/chunk-2CV7LX23.js.map +1 -0
  124. package/dist/chunk-2HCI5BXB.js +479 -0
  125. package/dist/chunk-2HCI5BXB.js.map +1 -0
  126. package/dist/chunk-2SQJL7ZN.js +56 -0
  127. package/dist/chunk-2SQJL7ZN.js.map +1 -0
  128. package/dist/chunk-2Y5V23PU.js +29 -0
  129. package/dist/chunk-2Y5V23PU.js.map +1 -0
  130. package/dist/chunk-32CPGJPL.js +149 -0
  131. package/dist/chunk-32CPGJPL.js.map +1 -0
  132. package/dist/chunk-3ACMDRSE.js +39 -0
  133. package/dist/chunk-3ACMDRSE.js.map +1 -0
  134. package/dist/chunk-3N4PZIIV.js +304 -0
  135. package/dist/chunk-3N4PZIIV.js.map +1 -0
  136. package/dist/chunk-3U7TDBIB.js +275 -0
  137. package/dist/chunk-3U7TDBIB.js.map +1 -0
  138. package/dist/chunk-3UDSYYND.js +42 -0
  139. package/dist/chunk-3UDSYYND.js.map +1 -0
  140. package/dist/chunk-3ZWWXAQZ.js +150 -0
  141. package/dist/chunk-3ZWWXAQZ.js.map +1 -0
  142. package/dist/chunk-4MH6LONO.js +274 -0
  143. package/dist/chunk-4MH6LONO.js.map +1 -0
  144. package/dist/chunk-4NZ47VXO.js +137 -0
  145. package/dist/chunk-4NZ47VXO.js.map +1 -0
  146. package/dist/chunk-564AEU2Q.js +541 -0
  147. package/dist/chunk-564AEU2Q.js.map +1 -0
  148. package/dist/chunk-5HYSKH77.js +315 -0
  149. package/dist/chunk-5HYSKH77.js.map +1 -0
  150. package/dist/chunk-5MBPIONY.js +29 -0
  151. package/dist/chunk-5MBPIONY.js.map +1 -0
  152. package/dist/chunk-5OVOLYY3.js +74 -0
  153. package/dist/chunk-5OVOLYY3.js.map +1 -0
  154. package/dist/chunk-5SJ3JNNY.js +6683 -0
  155. package/dist/chunk-5SJ3JNNY.js.map +1 -0
  156. package/dist/chunk-66USKCVY.js +4410 -0
  157. package/dist/chunk-66USKCVY.js.map +1 -0
  158. package/dist/chunk-6I7SYEYN.js +166 -0
  159. package/dist/chunk-6I7SYEYN.js.map +1 -0
  160. package/dist/chunk-6O7ISBC7.js +65 -0
  161. package/dist/chunk-6O7ISBC7.js.map +1 -0
  162. package/dist/chunk-752S7JF6.js +35 -0
  163. package/dist/chunk-752S7JF6.js.map +1 -0
  164. package/dist/chunk-77DN7R35.js +228 -0
  165. package/dist/chunk-77DN7R35.js.map +1 -0
  166. package/dist/chunk-7F7MFMLI.js +175 -0
  167. package/dist/chunk-7F7MFMLI.js.map +1 -0
  168. package/dist/chunk-7THBBTJJ.js +183 -0
  169. package/dist/chunk-7THBBTJJ.js.map +1 -0
  170. package/dist/chunk-7XU3HKMX.js +1599 -0
  171. package/dist/chunk-7XU3HKMX.js.map +1 -0
  172. package/dist/chunk-AEA5JV2X.js +92 -0
  173. package/dist/chunk-AEA5JV2X.js.map +1 -0
  174. package/dist/chunk-AFJGYJ7Z.js +45 -0
  175. package/dist/chunk-AFJGYJ7Z.js.map +1 -0
  176. package/dist/chunk-AR7PU7BB.js +76 -0
  177. package/dist/chunk-AR7PU7BB.js.map +1 -0
  178. package/dist/chunk-ASL7JFBD.js +96 -0
  179. package/dist/chunk-ASL7JFBD.js.map +1 -0
  180. package/dist/chunk-AUSKKFVH.js +84 -0
  181. package/dist/chunk-AUSKKFVH.js.map +1 -0
  182. package/dist/chunk-B52DCYL2.js +159 -0
  183. package/dist/chunk-B52DCYL2.js.map +1 -0
  184. package/dist/{chunk-XHC4LMK4.js → chunk-BVM5IRZW.js} +16 -8
  185. package/dist/chunk-BVM5IRZW.js.map +1 -0
  186. package/dist/chunk-CAMX6OHF.js +3182 -0
  187. package/dist/chunk-CAMX6OHF.js.map +1 -0
  188. package/dist/chunk-CYBLKMXQ.js +310 -0
  189. package/dist/chunk-CYBLKMXQ.js.map +1 -0
  190. package/dist/chunk-CZENWCBS.js +333 -0
  191. package/dist/chunk-CZENWCBS.js.map +1 -0
  192. package/dist/chunk-D5FY4FAK.js +24 -0
  193. package/dist/chunk-D5FY4FAK.js.map +1 -0
  194. package/dist/chunk-DGCUPJZD.js +39 -0
  195. package/dist/chunk-DGCUPJZD.js.map +1 -0
  196. package/dist/chunk-DNCLWSHO.js +41 -0
  197. package/dist/chunk-DNCLWSHO.js.map +1 -0
  198. package/dist/chunk-DX4GIDO7.js +296 -0
  199. package/dist/chunk-DX4GIDO7.js.map +1 -0
  200. package/dist/chunk-EDLZGTGN.js +216 -0
  201. package/dist/chunk-EDLZGTGN.js.map +1 -0
  202. package/dist/chunk-EDNX3AOS.js +76 -0
  203. package/dist/chunk-EDNX3AOS.js.map +1 -0
  204. package/dist/chunk-EF5DP6EB.js +52 -0
  205. package/dist/chunk-EF5DP6EB.js.map +1 -0
  206. package/dist/chunk-ERSX3MKH.js +34 -0
  207. package/dist/chunk-ERSX3MKH.js.map +1 -0
  208. package/dist/chunk-F3IJSR7O.js +346 -0
  209. package/dist/chunk-F3IJSR7O.js.map +1 -0
  210. package/dist/chunk-FKOECEVC.js +126 -0
  211. package/dist/chunk-FKOECEVC.js.map +1 -0
  212. package/dist/chunk-FYWWTMXP.js +2902 -0
  213. package/dist/chunk-FYWWTMXP.js.map +1 -0
  214. package/dist/chunk-G7AFVTUS.js +106 -0
  215. package/dist/chunk-G7AFVTUS.js.map +1 -0
  216. package/dist/chunk-GIW7ABMM.js +74 -0
  217. package/dist/chunk-GIW7ABMM.js.map +1 -0
  218. package/dist/chunk-GIWHHCD6.js +145 -0
  219. package/dist/chunk-GIWHHCD6.js.map +1 -0
  220. package/dist/chunk-GPZH5ASB.js +3151 -0
  221. package/dist/chunk-GPZH5ASB.js.map +1 -0
  222. package/dist/chunk-GRQ2AXDX.js +9 -0
  223. package/dist/chunk-GRQ2AXDX.js.map +1 -0
  224. package/dist/chunk-GXDLWBOY.js +73 -0
  225. package/dist/chunk-GXDLWBOY.js.map +1 -0
  226. package/dist/chunk-GYABNLWW.js +629 -0
  227. package/dist/chunk-GYABNLWW.js.map +1 -0
  228. package/dist/chunk-H7MLHG2I.js +94 -0
  229. package/dist/chunk-H7MLHG2I.js.map +1 -0
  230. package/dist/chunk-H7XVKLIY.js +206 -0
  231. package/dist/chunk-H7XVKLIY.js.map +1 -0
  232. package/dist/chunk-HAE4WWFQ.js +455 -0
  233. package/dist/chunk-HAE4WWFQ.js.map +1 -0
  234. package/dist/chunk-HDHWIEJJ.js +136 -0
  235. package/dist/chunk-HDHWIEJJ.js.map +1 -0
  236. package/dist/chunk-HJTIBTF7.js +98 -0
  237. package/dist/chunk-HJTIBTF7.js.map +1 -0
  238. package/dist/{chunk-VZEDAFAR.js → chunk-HLXWKMTK.js} +47 -8
  239. package/dist/chunk-HLXWKMTK.js.map +1 -0
  240. package/dist/{chunk-MF7YA62W.js → chunk-HREWXNTO.js} +10 -5
  241. package/dist/chunk-HREWXNTO.js.map +1 -0
  242. package/dist/chunk-HYXKRNRV.js +176 -0
  243. package/dist/chunk-HYXKRNRV.js.map +1 -0
  244. package/dist/chunk-I3DIZWN5.js +97 -0
  245. package/dist/chunk-I3DIZWN5.js.map +1 -0
  246. package/dist/chunk-IJMWEO4P.js +57 -0
  247. package/dist/chunk-IJMWEO4P.js.map +1 -0
  248. package/dist/chunk-IOCSDFF2.js +23992 -0
  249. package/dist/chunk-IOCSDFF2.js.map +1 -0
  250. package/dist/chunk-IVIJJXXT.js +62 -0
  251. package/dist/chunk-IVIJJXXT.js.map +1 -0
  252. package/dist/chunk-J57GWTPK.js +106 -0
  253. package/dist/chunk-J57GWTPK.js.map +1 -0
  254. package/dist/chunk-JPK34QPS.js +134 -0
  255. package/dist/chunk-JPK34QPS.js.map +1 -0
  256. package/dist/chunk-JRCFCIE3.js +188 -0
  257. package/dist/chunk-JRCFCIE3.js.map +1 -0
  258. package/dist/chunk-JUAIGJ2A.js +76 -0
  259. package/dist/chunk-JUAIGJ2A.js.map +1 -0
  260. package/dist/chunk-K5OQES4V.js +58 -0
  261. package/dist/chunk-K5OQES4V.js.map +1 -0
  262. package/dist/chunk-KBS5GH4T.js +1626 -0
  263. package/dist/chunk-KBS5GH4T.js.map +1 -0
  264. package/dist/chunk-KIGGMKAE.js +66 -0
  265. package/dist/chunk-KIGGMKAE.js.map +1 -0
  266. package/dist/chunk-KKJ4KJCW.js +29 -0
  267. package/dist/chunk-KKJ4KJCW.js.map +1 -0
  268. package/dist/chunk-KLK6KQLQ.js +55 -0
  269. package/dist/chunk-KLK6KQLQ.js.map +1 -0
  270. package/dist/chunk-KUZFWMJN.js +207 -0
  271. package/dist/chunk-KUZFWMJN.js.map +1 -0
  272. package/dist/chunk-KXGG6EQM.js +382 -0
  273. package/dist/chunk-KXGG6EQM.js.map +1 -0
  274. package/dist/chunk-KXRKPZZY.js +169 -0
  275. package/dist/chunk-KXRKPZZY.js.map +1 -0
  276. package/dist/chunk-KZUHRZ2C.js +5187 -0
  277. package/dist/chunk-KZUHRZ2C.js.map +1 -0
  278. package/dist/chunk-L45A3IYV.js +1079 -0
  279. package/dist/chunk-L45A3IYV.js.map +1 -0
  280. package/dist/chunk-LA6PPSNA.js +65 -0
  281. package/dist/chunk-LA6PPSNA.js.map +1 -0
  282. package/dist/chunk-LEIQAHWF.js +25 -0
  283. package/dist/chunk-LEIQAHWF.js.map +1 -0
  284. package/dist/chunk-LERWCRY5.js +297 -0
  285. package/dist/chunk-LERWCRY5.js.map +1 -0
  286. package/dist/chunk-M6UNISGO.js +66 -0
  287. package/dist/chunk-M6UNISGO.js.map +1 -0
  288. package/dist/chunk-MGKHFGLV.js +75 -0
  289. package/dist/chunk-MGKHFGLV.js.map +1 -0
  290. package/dist/chunk-MZWC6HHA.js +455 -0
  291. package/dist/chunk-MZWC6HHA.js.map +1 -0
  292. package/dist/chunk-N3XJ434P.js +197 -0
  293. package/dist/chunk-N3XJ434P.js.map +1 -0
  294. package/dist/chunk-NFSLRRIE.js +77 -0
  295. package/dist/chunk-NFSLRRIE.js.map +1 -0
  296. package/dist/chunk-NHU33T2S.js +60 -0
  297. package/dist/chunk-NHU33T2S.js.map +1 -0
  298. package/dist/chunk-NJEZM4OB.js +51 -0
  299. package/dist/chunk-NJEZM4OB.js.map +1 -0
  300. package/dist/chunk-O6QKCJE4.js +455 -0
  301. package/dist/chunk-O6QKCJE4.js.map +1 -0
  302. package/dist/chunk-OFFAMC5H.js +225 -0
  303. package/dist/chunk-OFFAMC5H.js.map +1 -0
  304. package/dist/chunk-OHGTCFFE.js +57 -0
  305. package/dist/chunk-OHGTCFFE.js.map +1 -0
  306. package/dist/chunk-P4NSJS54.js +20 -0
  307. package/dist/chunk-P4NSJS54.js.map +1 -0
  308. package/dist/chunk-P5T7OZKV.js +26 -0
  309. package/dist/chunk-P5T7OZKV.js.map +1 -0
  310. package/dist/chunk-PFBQERWX.js +10 -0
  311. package/dist/chunk-PFBQERWX.js.map +1 -0
  312. package/dist/chunk-PKTLHYH4.js +509 -0
  313. package/dist/chunk-PKTLHYH4.js.map +1 -0
  314. package/dist/chunk-PUPEGICD.js +103 -0
  315. package/dist/chunk-PUPEGICD.js.map +1 -0
  316. package/dist/chunk-Q6ULQMWG.js +41 -0
  317. package/dist/chunk-Q6ULQMWG.js.map +1 -0
  318. package/dist/chunk-QO23YHLK.js +84 -0
  319. package/dist/chunk-QO23YHLK.js.map +1 -0
  320. package/dist/chunk-QSGIWV4P.js +337 -0
  321. package/dist/chunk-QSGIWV4P.js.map +1 -0
  322. package/dist/chunk-R5OQM7FF.js +179 -0
  323. package/dist/chunk-R5OQM7FF.js.map +1 -0
  324. package/dist/chunk-RFB6RYKA.js +111 -0
  325. package/dist/chunk-RFB6RYKA.js.map +1 -0
  326. package/dist/chunk-RGIXQEGJ.js +502 -0
  327. package/dist/chunk-RGIXQEGJ.js.map +1 -0
  328. package/dist/chunk-RODLBWIR.js +592 -0
  329. package/dist/chunk-RODLBWIR.js.map +1 -0
  330. package/dist/chunk-S4LZ7KTG.js +160 -0
  331. package/dist/chunk-S4LZ7KTG.js.map +1 -0
  332. package/dist/chunk-SHTESUB6.js +1442 -0
  333. package/dist/chunk-SHTESUB6.js.map +1 -0
  334. package/dist/chunk-SJH4EOZH.js +23 -0
  335. package/dist/chunk-SJH4EOZH.js.map +1 -0
  336. package/dist/chunk-SLB46MSS.js +64 -0
  337. package/dist/chunk-SLB46MSS.js.map +1 -0
  338. package/dist/chunk-SMIENBNX.js +6212 -0
  339. package/dist/chunk-SMIENBNX.js.map +1 -0
  340. package/dist/chunk-T7GT22KA.js +494 -0
  341. package/dist/chunk-T7GT22KA.js.map +1 -0
  342. package/dist/chunk-T7M4WFNV.js +172 -0
  343. package/dist/chunk-T7M4WFNV.js.map +1 -0
  344. package/dist/chunk-TLQ23DDW.js +19 -0
  345. package/dist/chunk-TLQ23DDW.js.map +1 -0
  346. package/dist/chunk-TMIDUSOR.js +665 -0
  347. package/dist/chunk-TMIDUSOR.js.map +1 -0
  348. package/dist/{chunk-WLDM2TRF.js → chunk-TPXI2GCW.js} +4 -4
  349. package/dist/chunk-U6VRBDNQ.js +1830 -0
  350. package/dist/chunk-U6VRBDNQ.js.map +1 -0
  351. package/dist/chunk-U7BBXM67.js +1743 -0
  352. package/dist/chunk-U7BBXM67.js.map +1 -0
  353. package/dist/chunk-UI6BKYQD.js +225 -0
  354. package/dist/chunk-UI6BKYQD.js.map +1 -0
  355. package/dist/chunk-UOI5S62H.js +846 -0
  356. package/dist/chunk-UOI5S62H.js.map +1 -0
  357. package/dist/chunk-USL5ARRE.js +26 -0
  358. package/dist/chunk-USL5ARRE.js.map +1 -0
  359. package/dist/chunk-UYC45JNS.js +139 -0
  360. package/dist/chunk-UYC45JNS.js.map +1 -0
  361. package/dist/chunk-VNKVBY54.js +363 -0
  362. package/dist/chunk-VNKVBY54.js.map +1 -0
  363. package/dist/chunk-VS4C7VAR.js +533 -0
  364. package/dist/chunk-VS4C7VAR.js.map +1 -0
  365. package/dist/chunk-W4W4ZRBP.js +191 -0
  366. package/dist/chunk-W4W4ZRBP.js.map +1 -0
  367. package/dist/chunk-WN4KX7GE.js +25 -0
  368. package/dist/chunk-WN4KX7GE.js.map +1 -0
  369. package/dist/chunk-WNFTXSGR.js +111 -0
  370. package/dist/chunk-WNFTXSGR.js.map +1 -0
  371. package/dist/chunk-WOTDHRNF.js +2109 -0
  372. package/dist/chunk-WOTDHRNF.js.map +1 -0
  373. package/dist/chunk-XGWKTYXQ.js +67 -0
  374. package/dist/chunk-XGWKTYXQ.js.map +1 -0
  375. package/dist/chunk-XIGIJJSF.js +66 -0
  376. package/dist/chunk-XIGIJJSF.js.map +1 -0
  377. package/dist/chunk-XNUXB63I.js +817 -0
  378. package/dist/chunk-XNUXB63I.js.map +1 -0
  379. package/dist/chunk-XQ3CCNJD.js +610 -0
  380. package/dist/chunk-XQ3CCNJD.js.map +1 -0
  381. package/dist/chunk-XX6ZMCY5.js +4227 -0
  382. package/dist/chunk-XX6ZMCY5.js.map +1 -0
  383. package/dist/chunk-Y362QH54.js +98 -0
  384. package/dist/chunk-Y362QH54.js.map +1 -0
  385. package/dist/chunk-Y4T6ATDQ.js +74 -0
  386. package/dist/chunk-Y4T6ATDQ.js.map +1 -0
  387. package/dist/chunk-YQSBHWOI.js +41 -0
  388. package/dist/chunk-YU26SDNT.js +46 -0
  389. package/dist/chunk-YU26SDNT.js.map +1 -0
  390. package/dist/chunk-YULENNA7.js +501 -0
  391. package/dist/chunk-YULENNA7.js.map +1 -0
  392. package/dist/chunk-YYSZYSAG.js +150 -0
  393. package/dist/chunk-YYSZYSAG.js.map +1 -0
  394. package/dist/chunk-Z3ENMCFE.js +94 -0
  395. package/dist/chunk-Z3ENMCFE.js.map +1 -0
  396. package/dist/chunk-ZH7ZM3ZM.js +125 -0
  397. package/dist/chunk-ZH7ZM3ZM.js.map +1 -0
  398. package/dist/chunk-ZIXHS6AM.js +42 -0
  399. package/dist/chunk-ZIXHS6AM.js.map +1 -0
  400. package/dist/chunk-ZLLJKSNS.js +96 -0
  401. package/dist/chunk-ZLLJKSNS.js.map +1 -0
  402. package/dist/claim-LF6VQ7OR.js +197 -0
  403. package/dist/claim-LF6VQ7OR.js.map +1 -0
  404. package/dist/cli.js +104 -70026
  405. package/dist/cli.js.map +1 -1
  406. package/dist/client-26SAJ46D.js +19 -0
  407. package/dist/code-MOWYJMDH.js +76 -0
  408. package/dist/code-MOWYJMDH.js.map +1 -0
  409. package/dist/companies-6HSK5BLK.js +195 -0
  410. package/dist/companies-6HSK5BLK.js.map +1 -0
  411. package/dist/complete-2PUAFQEC.js +81 -0
  412. package/dist/complete-2PUAFQEC.js.map +1 -0
  413. package/dist/config-X6GKOVQ6.js +88 -0
  414. package/dist/config-X6GKOVQ6.js.map +1 -0
  415. package/dist/connect-RXPMAJQI.js +42 -0
  416. package/dist/content-UYZC4AKN.js +85 -0
  417. package/dist/content-UYZC4AKN.js.map +1 -0
  418. package/dist/conversation-Y3NB2VDI.js +93 -0
  419. package/dist/conversation-Y3NB2VDI.js.map +1 -0
  420. package/dist/conversion-report-R4GJWWTK.js +125 -0
  421. package/dist/conversion-report-R4GJWWTK.js.map +1 -0
  422. package/dist/conversion-upload-command-YP4DGTPP.js +438 -0
  423. package/dist/conversion-upload-command-YP4DGTPP.js.map +1 -0
  424. package/dist/conversion-writes-WHFFUWWL.js +120 -0
  425. package/dist/conversion-writes-WHFFUWWL.js.map +1 -0
  426. package/dist/conversions-K7C32DPW.js +135 -0
  427. package/dist/conversions-K7C32DPW.js.map +1 -0
  428. package/dist/conversions-OXJAX5GB.js +76 -0
  429. package/dist/conversions-OXJAX5GB.js.map +1 -0
  430. package/dist/countries-PBXNB3BR.js +82 -0
  431. package/dist/countries-PBXNB3BR.js.map +1 -0
  432. package/dist/create-AJ4KPSJ4.js +59 -0
  433. package/dist/create-AJ4KPSJ4.js.map +1 -0
  434. package/dist/create-ALKOAD5J.js +138 -0
  435. package/dist/create-ALKOAD5J.js.map +1 -0
  436. package/dist/create-HTKZMXKB.js +207 -0
  437. package/dist/create-HTKZMXKB.js.map +1 -0
  438. package/dist/create-TZMAOFBR.js +236 -0
  439. package/dist/create-TZMAOFBR.js.map +1 -0
  440. package/dist/creatives-BJYJFVXJ.js +51 -0
  441. package/dist/creatives-BJYJFVXJ.js.map +1 -0
  442. package/dist/creatives-OZHVU4WB.js +182 -0
  443. package/dist/creatives-OZHVU4WB.js.map +1 -0
  444. package/dist/creatives-VMGY5SU4.js +87 -0
  445. package/dist/creatives-VMGY5SU4.js.map +1 -0
  446. package/dist/credentials-FY4UH6TF.js +287 -0
  447. package/dist/credentials-FY4UH6TF.js.map +1 -0
  448. package/dist/critique-B3H7QFM2.js +1449 -0
  449. package/dist/critique-B3H7QFM2.js.map +1 -0
  450. package/dist/critique-YZBOA27H.js +216 -0
  451. package/dist/critique-YZBOA27H.js.map +1 -0
  452. package/dist/crm-2IBLUHDB.js +318 -0
  453. package/dist/crm-2IBLUHDB.js.map +1 -0
  454. package/dist/crm-YMYO4U53.js +224 -0
  455. package/dist/crm-YMYO4U53.js.map +1 -0
  456. package/dist/crop-U3AD4DDR.js +113 -0
  457. package/dist/crop-U3AD4DDR.js.map +1 -0
  458. package/dist/currency-S6KWZSZ6.js +88 -0
  459. package/dist/currency-S6KWZSZ6.js.map +1 -0
  460. package/dist/custom-conversions-FABS6YVT.js +125 -0
  461. package/dist/custom-conversions-FABS6YVT.js.map +1 -0
  462. package/dist/customers-P6LLLJHK.js +56 -0
  463. package/dist/decide-YTHCBKM6.js +199 -0
  464. package/dist/decide-YTHCBKM6.js.map +1 -0
  465. package/dist/delete-B2TDEW7H.js +63 -0
  466. package/dist/delete-B2TDEW7H.js.map +1 -0
  467. package/dist/delete-DZUDLYPC.js +69 -0
  468. package/dist/delete-DZUDLYPC.js.map +1 -0
  469. package/dist/delete-NZGZP4YP.js +71 -0
  470. package/dist/delete-NZGZP4YP.js.map +1 -0
  471. package/dist/delete-SDOZNDWQ.js +54 -0
  472. package/dist/delete-SDOZNDWQ.js.map +1 -0
  473. package/dist/delete-VQMU56OH.js +71 -0
  474. package/dist/delete-VQMU56OH.js.map +1 -0
  475. package/dist/delete-WKQPMVAM.js +66 -0
  476. package/dist/delete-WKQPMVAM.js.map +1 -0
  477. package/dist/demographics-Q3DCXULY.js +138 -0
  478. package/dist/demographics-Q3DCXULY.js.map +1 -0
  479. package/dist/describe-JNTCQZNL.js +97 -0
  480. package/dist/describe-JNTCQZNL.js.map +1 -0
  481. package/dist/describe-MT4334NG.js +97 -0
  482. package/dist/describe-MT4334NG.js.map +1 -0
  483. package/dist/dimensions-FEZUJRAG.js +101 -0
  484. package/dist/dimensions-FEZUJRAG.js.map +1 -0
  485. package/dist/discard-NEZM5CHF.js +66 -0
  486. package/dist/discard-NEZM5CHF.js.map +1 -0
  487. package/dist/discover-4GD7QSF5.js +93 -0
  488. package/dist/discover-4GD7QSF5.js.map +1 -0
  489. package/dist/discover-6K3IOYXR.js +172 -0
  490. package/dist/discover-6K3IOYXR.js.map +1 -0
  491. package/dist/domain-7Y256IDR.js +98 -0
  492. package/dist/domain-7Y256IDR.js.map +1 -0
  493. package/dist/download-L27HWEOE.js +299 -0
  494. package/dist/download-L27HWEOE.js.map +1 -0
  495. package/dist/draft-25G2P2TE.js +281 -0
  496. package/dist/draft-25G2P2TE.js.map +1 -0
  497. package/dist/draft-F6TUGXAY.js +307 -0
  498. package/dist/draft-F6TUGXAY.js.map +1 -0
  499. package/dist/draft-KLULNBWP.js +233 -0
  500. package/dist/draft-KLULNBWP.js.map +1 -0
  501. package/dist/draft-LY5ZPF73.js +217 -0
  502. package/dist/draft-LY5ZPF73.js.map +1 -0
  503. package/dist/draft-M4ZHDQ46.js +306 -0
  504. package/dist/draft-M4ZHDQ46.js.map +1 -0
  505. package/dist/draft-MI7RWY2K.js +100 -0
  506. package/dist/draft-MI7RWY2K.js.map +1 -0
  507. package/dist/draft-P4IVYTY3.js +103 -0
  508. package/dist/draft-P4IVYTY3.js.map +1 -0
  509. package/dist/draft-QQMCVDDS.js +328 -0
  510. package/dist/draft-QQMCVDDS.js.map +1 -0
  511. package/dist/engine/index.d.ts +213 -127
  512. package/dist/engine/index.js +18 -4
  513. package/dist/{env-4P5HOGNA.js → env-FBTHZKGN.js} +12 -2
  514. package/dist/env-FBTHZKGN.js.map +1 -0
  515. package/dist/experiment-HDYTJPUY.js +1397 -0
  516. package/dist/experiment-HDYTJPUY.js.map +1 -0
  517. package/dist/export-TS5GYEMA.js +168 -0
  518. package/dist/export-TS5GYEMA.js.map +1 -0
  519. package/dist/extract-QVQFUOIK.js +113 -0
  520. package/dist/extract-QVQFUOIK.js.map +1 -0
  521. package/dist/facets-7MBSM7BP.js +114 -0
  522. package/dist/facets-7MBSM7BP.js.map +1 -0
  523. package/dist/favorites-7QP7BY5K.js +178 -0
  524. package/dist/favorites-7QP7BY5K.js.map +1 -0
  525. package/dist/feed-EETRO2FG.js +177 -0
  526. package/dist/feed-EETRO2FG.js.map +1 -0
  527. package/dist/feedback-ZOUL22TP.js +66 -0
  528. package/dist/feedback-ZOUL22TP.js.map +1 -0
  529. package/dist/feedback-record-XFFJRKS6.js +177 -0
  530. package/dist/feedback-record-XFFJRKS6.js.map +1 -0
  531. package/dist/fetch-QE3EB756.js +176 -0
  532. package/dist/fetch-QE3EB756.js.map +1 -0
  533. package/dist/fetch-Z7O3ZL4D.js +139 -0
  534. package/dist/fetch-Z7O3ZL4D.js.map +1 -0
  535. package/dist/find-KAQ6JDMO.js +134 -0
  536. package/dist/find-KAQ6JDMO.js.map +1 -0
  537. package/dist/fit-MY5GVZZZ.js +45 -0
  538. package/dist/fit-MY5GVZZZ.js.map +1 -0
  539. package/dist/flows-C67KEMDU.js +247 -0
  540. package/dist/flows-C67KEMDU.js.map +1 -0
  541. package/dist/follow-IX4XVK5Y.js +94 -0
  542. package/dist/follow-IX4XVK5Y.js.map +1 -0
  543. package/dist/follow-competitors-UZBUOYTH.js +112 -0
  544. package/dist/follow-competitors-UZBUOYTH.js.map +1 -0
  545. package/dist/following-VGOIUCIZ.js +113 -0
  546. package/dist/following-VGOIUCIZ.js.map +1 -0
  547. package/dist/fonts-UR7XZ5XZ.js +34 -0
  548. package/dist/fonts-UR7XZ5XZ.js.map +1 -0
  549. package/dist/forecast-3F4SZNAK.js +104 -0
  550. package/dist/forecast-3F4SZNAK.js.map +1 -0
  551. package/dist/forecast-K5E7CTKX.js +168 -0
  552. package/dist/forecast-K5E7CTKX.js.map +1 -0
  553. package/dist/funding-H5YO37OW.js +85 -0
  554. package/dist/funding-H5YO37OW.js.map +1 -0
  555. package/dist/funnel-2PPEPAMY.js +394 -0
  556. package/dist/funnel-2PPEPAMY.js.map +1 -0
  557. package/dist/ga4-YHJ2XMLC.js +55 -0
  558. package/dist/ga4-YHJ2XMLC.js.map +1 -0
  559. package/dist/generate-M2ZX5DMI.js +262 -0
  560. package/dist/generate-M2ZX5DMI.js.map +1 -0
  561. package/dist/get-4EYKCZ6F.js +59 -0
  562. package/dist/get-4EYKCZ6F.js.map +1 -0
  563. package/dist/get-637GALM2.js +63 -0
  564. package/dist/get-637GALM2.js.map +1 -0
  565. package/dist/get-AZARFR6O.js +61 -0
  566. package/dist/get-AZARFR6O.js.map +1 -0
  567. package/dist/get-BPMEHRUG.js +56 -0
  568. package/dist/get-BPMEHRUG.js.map +1 -0
  569. package/dist/get-MQ6MMIZ7.js +78 -0
  570. package/dist/get-MQ6MMIZ7.js.map +1 -0
  571. package/dist/get-N4BPOQCB.js +63 -0
  572. package/dist/get-N4BPOQCB.js.map +1 -0
  573. package/dist/get-RPZHLQ56.js +92 -0
  574. package/dist/get-RPZHLQ56.js.map +1 -0
  575. package/dist/gif-6PRTB2VR.js +94 -0
  576. package/dist/gif-6PRTB2VR.js.map +1 -0
  577. package/dist/google-4XAYE4OI.js +3190 -0
  578. package/dist/google-4XAYE4OI.js.map +1 -0
  579. package/dist/google-52JRH7X3.js +136 -0
  580. package/dist/google-52JRH7X3.js.map +1 -0
  581. package/dist/google-ads-PWX7OF5Z.js +195 -0
  582. package/dist/google-ads-PWX7OF5Z.js.map +1 -0
  583. package/dist/group-AAZ5QKC3.js +43 -0
  584. package/dist/group-AAZ5QKC3.js.map +1 -0
  585. package/dist/group-GSYCZORC.js +43 -0
  586. package/dist/group-GSYCZORC.js.map +1 -0
  587. package/dist/gsc-TS5T7ML2.js +30 -0
  588. package/dist/gsc-TS5T7ML2.js.map +1 -0
  589. package/dist/history-EW6LFFCX.js +67 -0
  590. package/dist/history-EW6LFFCX.js.map +1 -0
  591. package/dist/history-XI5ABCFO.js +133 -0
  592. package/dist/history-XI5ABCFO.js.map +1 -0
  593. package/dist/hubspot-AVUOILRE.js +779 -0
  594. package/dist/hubspot-AVUOILRE.js.map +1 -0
  595. package/dist/icon-K75KI6BV.js +137 -0
  596. package/dist/icon-K75KI6BV.js.map +1 -0
  597. package/dist/ideas-UCPV3KTM.js +35 -0
  598. package/dist/ideas-UCPV3KTM.js.map +1 -0
  599. package/dist/images-CD53I2W5.js +90 -0
  600. package/dist/images-CD53I2W5.js.map +1 -0
  601. package/dist/improve-L3BW4EQG.js +86 -0
  602. package/dist/improve-L3BW4EQG.js.map +1 -0
  603. package/dist/ingest-KRJOYTCQ.js +107 -0
  604. package/dist/ingest-KRJOYTCQ.js.map +1 -0
  605. package/dist/ingest-WE3SPPND.js +23 -0
  606. package/dist/ingest-WE3SPPND.js.map +1 -0
  607. package/dist/insights-PELVD4RY.js +122 -0
  608. package/dist/insights-PELVD4RY.js.map +1 -0
  609. package/dist/insights-XCA4BUJW.js +423 -0
  610. package/dist/insights-XCA4BUJW.js.map +1 -0
  611. package/dist/inspect-QKETG5UJ.js +189 -0
  612. package/dist/inspect-QKETG5UJ.js.map +1 -0
  613. package/dist/inspiration-Y2J2PUPC.js +53 -0
  614. package/dist/inspiration-Y2J2PUPC.js.map +1 -0
  615. package/dist/intent-YJOJGNVJ.js +95 -0
  616. package/dist/intent-YJOJGNVJ.js.map +1 -0
  617. package/dist/job-E2U4FS5P.js +202 -0
  618. package/dist/job-E2U4FS5P.js.map +1 -0
  619. package/dist/job-create-DFYCHVQ7.js +109 -0
  620. package/dist/job-create-DFYCHVQ7.js.map +1 -0
  621. package/dist/job-status-FFPMTSHB.js +74 -0
  622. package/dist/job-status-FFPMTSHB.js.map +1 -0
  623. package/dist/keep-GYZS2UTL.js +78 -0
  624. package/dist/keep-GYZS2UTL.js.map +1 -0
  625. package/dist/keyword-gap-QU7O7UKC.js +130 -0
  626. package/dist/keyword-gap-QU7O7UKC.js.map +1 -0
  627. package/dist/keyword-metrics-HLCM3QU7.js +197 -0
  628. package/dist/keyword-metrics-HLCM3QU7.js.map +1 -0
  629. package/dist/keywords-for-site-BDKPQKWB.js +128 -0
  630. package/dist/keywords-for-site-BDKPQKWB.js.map +1 -0
  631. package/dist/landing-4K6XYNFM.js +28 -0
  632. package/dist/landing-4K6XYNFM.js.map +1 -0
  633. package/dist/landings-F7LOAEJE.js +151 -0
  634. package/dist/landings-F7LOAEJE.js.map +1 -0
  635. package/dist/languages-P3ZM6R2A.js +40 -0
  636. package/dist/languages-P3ZM6R2A.js.map +1 -0
  637. package/dist/languages-XEJKTIFP.js +55 -0
  638. package/dist/languages-XEJKTIFP.js.map +1 -0
  639. package/dist/launches-TCFAYUA5.js +19 -0
  640. package/dist/launches-TCFAYUA5.js.map +1 -0
  641. package/dist/layerize-ZSKFIPZA.js +190 -0
  642. package/dist/layerize-ZSKFIPZA.js.map +1 -0
  643. package/dist/leads-GDF4S2AM.js +90 -0
  644. package/dist/leads-GDF4S2AM.js.map +1 -0
  645. package/dist/leads-TPB5OFSQ.js +293 -0
  646. package/dist/leads-TPB5OFSQ.js.map +1 -0
  647. package/dist/learn-NMFEA5H5.js +203 -0
  648. package/dist/learn-NMFEA5H5.js.map +1 -0
  649. package/dist/library-IP2UKNRU.js +109 -0
  650. package/dist/library-IP2UKNRU.js.map +1 -0
  651. package/dist/lighthouse-57XBJRCO.js +75 -0
  652. package/dist/lighthouse-57XBJRCO.js.map +1 -0
  653. package/dist/line-item-writes-O6SSS5NQ.js +208 -0
  654. package/dist/line-item-writes-O6SSS5NQ.js.map +1 -0
  655. package/dist/line-items-ZZAKH3YZ.js +103 -0
  656. package/dist/line-items-ZZAKH3YZ.js.map +1 -0
  657. package/dist/link-CRY57R3E.js +64 -0
  658. package/dist/link-CRY57R3E.js.map +1 -0
  659. package/dist/linkedin-WC7LGYPP.js +1008 -0
  660. package/dist/linkedin-WC7LGYPP.js.map +1 -0
  661. package/dist/list-6IKPWQGG.js +57 -0
  662. package/dist/list-6IKPWQGG.js.map +1 -0
  663. package/dist/list-CAUH3BMG.js +65 -0
  664. package/dist/list-CAUH3BMG.js.map +1 -0
  665. package/dist/list-CWAKX5TH.js +63 -0
  666. package/dist/list-CWAKX5TH.js.map +1 -0
  667. package/dist/list-FJ5FSVL6.js +151 -0
  668. package/dist/list-FJ5FSVL6.js.map +1 -0
  669. package/dist/list-GTOSN7DP.js +50 -0
  670. package/dist/list-GTOSN7DP.js.map +1 -0
  671. package/dist/list-HLJP4NVE.js +51 -0
  672. package/dist/list-HLJP4NVE.js.map +1 -0
  673. package/dist/list-LCUPF7EF.js +76 -0
  674. package/dist/list-LCUPF7EF.js.map +1 -0
  675. package/dist/list-NH4ZRZTL.js +303 -0
  676. package/dist/list-NH4ZRZTL.js.map +1 -0
  677. package/dist/locations-2BYWKIYA.js +67 -0
  678. package/dist/locations-2BYWKIYA.js.map +1 -0
  679. package/dist/locations-LVVDOSXO.js +40 -0
  680. package/dist/locations-LVVDOSXO.js.map +1 -0
  681. package/dist/log-6JOWOY5G.js +92 -0
  682. package/dist/log-6JOWOY5G.js.map +1 -0
  683. package/dist/logo-AJK2TDQU.js +18 -0
  684. package/dist/logo-AJK2TDQU.js.map +1 -0
  685. package/dist/lookup-H5GEM77H.js +22 -0
  686. package/dist/lookup-H5GEM77H.js.map +1 -0
  687. package/dist/make-Q2AMLCWE.js +640 -0
  688. package/dist/make-Q2AMLCWE.js.map +1 -0
  689. package/dist/map-4KOYFHAN.js +404 -0
  690. package/dist/map-4KOYFHAN.js.map +1 -0
  691. package/dist/mcp-LSS2DHYL.js +463 -0
  692. package/dist/mcp-LSS2DHYL.js.map +1 -0
  693. package/dist/media-JBCN6V4X.js +15 -0
  694. package/dist/media-JBCN6V4X.js.map +1 -0
  695. package/dist/media-RAGEJTZX.js +89 -0
  696. package/dist/media-RAGEJTZX.js.map +1 -0
  697. package/dist/media-sources-GSPAV7HT.js +32 -0
  698. package/dist/media-sources-GSPAV7HT.js.map +1 -0
  699. package/dist/members-GUUVEK2Y.js +44 -0
  700. package/dist/members-GUUVEK2Y.js.map +1 -0
  701. package/dist/meta-Z37ZR3PJ.js +69 -0
  702. package/dist/meta-Z37ZR3PJ.js.map +1 -0
  703. package/dist/metrics-KW6SDULI.js +152 -0
  704. package/dist/metrics-KW6SDULI.js.map +1 -0
  705. package/dist/models-5J4WFUD3.js +155 -0
  706. package/dist/models-5J4WFUD3.js.map +1 -0
  707. package/dist/normalize-DSFVTRXN.js +806 -0
  708. package/dist/normalize-DSFVTRXN.js.map +1 -0
  709. package/dist/normalize-EUDI5HEM.js +141 -0
  710. package/dist/normalize-EUDI5HEM.js.map +1 -0
  711. package/dist/options-P4PPJQH4.js +121 -0
  712. package/dist/options-P4PPJQH4.js.map +1 -0
  713. package/dist/output-DTCLVPUF.js +24 -0
  714. package/dist/output-DTCLVPUF.js.map +1 -0
  715. package/dist/page-N2ZO3O7F.js +105 -0
  716. package/dist/page-N2ZO3O7F.js.map +1 -0
  717. package/dist/pages-FQ4CBAJ2.js +66 -0
  718. package/dist/pages-FQ4CBAJ2.js.map +1 -0
  719. package/dist/performance-A66LYIZX.js +24 -0
  720. package/dist/performance-A66LYIZX.js.map +1 -0
  721. package/dist/pinterest-NV5XTNJE.js +96 -0
  722. package/dist/pinterest-NV5XTNJE.js.map +1 -0
  723. package/dist/pixels-CTJ43FZ4.js +108 -0
  724. package/dist/pixels-CTJ43FZ4.js.map +1 -0
  725. package/dist/pixels-HKINGZCH.js +60 -0
  726. package/dist/pixels-HKINGZCH.js.map +1 -0
  727. package/dist/plan-ZYTWLGWK.js +207 -0
  728. package/dist/plan-ZYTWLGWK.js.map +1 -0
  729. package/dist/preview-5ROBOQG7.js +169 -0
  730. package/dist/preview-5ROBOQG7.js.map +1 -0
  731. package/dist/profile-Q3PHR6FU.js +159 -0
  732. package/dist/profile-Q3PHR6FU.js.map +1 -0
  733. package/dist/promoted-tweet-writes-AEOUK2LK.js +180 -0
  734. package/dist/promoted-tweet-writes-AEOUK2LK.js.map +1 -0
  735. package/dist/promoted-tweets-L2CEC2BJ.js +119 -0
  736. package/dist/promoted-tweets-L2CEC2BJ.js.map +1 -0
  737. package/dist/properties-WLL6M2P6.js +101 -0
  738. package/dist/properties-WLL6M2P6.js.map +1 -0
  739. package/dist/publish-KHNR5ARF.js +322 -0
  740. package/dist/publish-KHNR5ARF.js.map +1 -0
  741. package/dist/query-A34J7BGX.js +61 -0
  742. package/dist/query-A34J7BGX.js.map +1 -0
  743. package/dist/query-IYZN5KHO.js +236 -0
  744. package/dist/query-IYZN5KHO.js.map +1 -0
  745. package/dist/query-UN2P6DBA.js +247 -0
  746. package/dist/query-UN2P6DBA.js.map +1 -0
  747. package/dist/questionnaire-Z2ZIKNBV.js +93 -0
  748. package/dist/questionnaire-Z2ZIKNBV.js.map +1 -0
  749. package/dist/read-GM7PQYJA.js +141 -0
  750. package/dist/read-GM7PQYJA.js.map +1 -0
  751. package/dist/reddit-5NPFULGD.js +26 -0
  752. package/dist/reddit-5NPFULGD.js.map +1 -0
  753. package/dist/refresh-FGXW4Y4X.js +94 -0
  754. package/dist/refresh-FGXW4Y4X.js.map +1 -0
  755. package/dist/release-OKZMC73N.js +60 -0
  756. package/dist/release-OKZMC73N.js.map +1 -0
  757. package/dist/relevant-pages-J76ZKNKF.js +99 -0
  758. package/dist/relevant-pages-J76ZKNKF.js.map +1 -0
  759. package/dist/remove-CA2J6ACH.js +50 -0
  760. package/dist/remove-CA2J6ACH.js.map +1 -0
  761. package/dist/remove-GOYW2G4R.js +48 -0
  762. package/dist/remove-GOYW2G4R.js.map +1 -0
  763. package/dist/reopen-XPKSOE6O.js +63 -0
  764. package/dist/reopen-XPKSOE6O.js.map +1 -0
  765. package/dist/rerun-2ERJV4WC.js +86 -0
  766. package/dist/rerun-2ERJV4WC.js.map +1 -0
  767. package/dist/research-FZ63UZTE.js +62 -0
  768. package/dist/research-FZ63UZTE.js.map +1 -0
  769. package/dist/research-YGQQ6CNG.js +262 -0
  770. package/dist/research-YGQQ6CNG.js.map +1 -0
  771. package/dist/reset-BGPZ4HMA.js +54 -0
  772. package/dist/reset-BGPZ4HMA.js.map +1 -0
  773. package/dist/reset-HTD6LCIT.js +54 -0
  774. package/dist/reset-HTD6LCIT.js.map +1 -0
  775. package/dist/resolve-NRDZ6N2B.js +121 -0
  776. package/dist/resolve-NRDZ6N2B.js.map +1 -0
  777. package/dist/retry-PF4BGKJV.js +60 -0
  778. package/dist/retry-PF4BGKJV.js.map +1 -0
  779. package/dist/retry-XL26JDAV.js +62 -0
  780. package/dist/retry-XL26JDAV.js.map +1 -0
  781. package/dist/retry-failed-BEFWRV4Z.js +45 -0
  782. package/dist/retry-failed-BEFWRV4Z.js.map +1 -0
  783. package/dist/run-EMJLI7LR.js +65 -0
  784. package/dist/run-EMJLI7LR.js.map +1 -0
  785. package/dist/run-L5K44UEA.js +61 -0
  786. package/dist/run-L5K44UEA.js.map +1 -0
  787. package/dist/scaffold-ad-AY2OL7RI.js +1550 -0
  788. package/dist/scaffold-ad-AY2OL7RI.js.map +1 -0
  789. package/dist/scaffold-static-ad-FXYE46MT.js +973 -0
  790. package/dist/scaffold-static-ad-FXYE46MT.js.map +1 -0
  791. package/dist/scaffold-video-533BT6RX.js +874 -0
  792. package/dist/scaffold-video-533BT6RX.js.map +1 -0
  793. package/dist/schedule-KQ7UIR3N.js +66 -0
  794. package/dist/schedule-KQ7UIR3N.js.map +1 -0
  795. package/dist/schedule-PKPNSISL.js +61 -0
  796. package/dist/schedule-PKPNSISL.js.map +1 -0
  797. package/dist/scheduled-agents-LP5LITA3.js +49 -0
  798. package/dist/scheduled-agents-LP5LITA3.js.map +1 -0
  799. package/dist/schema-B6J6VPTO.js +132 -0
  800. package/dist/schema-B6J6VPTO.js.map +1 -0
  801. package/dist/schema-QXTDLZVC.js +63 -0
  802. package/dist/schema-QXTDLZVC.js.map +1 -0
  803. package/dist/scrape-7YKJWFZE.js +2241 -0
  804. package/dist/scrape-7YKJWFZE.js.map +1 -0
  805. package/dist/screenshot-ZHBSG3SI.js +102 -0
  806. package/dist/screenshot-ZHBSG3SI.js.map +1 -0
  807. package/dist/search-332KFYZ6.js +224 -0
  808. package/dist/search-332KFYZ6.js.map +1 -0
  809. package/dist/search-4PBMXXUY.js +91 -0
  810. package/dist/search-4PBMXXUY.js.map +1 -0
  811. package/dist/search-6WNUKCMP.js +174 -0
  812. package/dist/search-6WNUKCMP.js.map +1 -0
  813. package/dist/search-AVNUU6TJ.js +26 -0
  814. package/dist/search-AVNUU6TJ.js.map +1 -0
  815. package/dist/search-F5INRFFK.js +92 -0
  816. package/dist/search-F5INRFFK.js.map +1 -0
  817. package/dist/search-copy-DZVBYG2B.js +168 -0
  818. package/dist/search-copy-DZVBYG2B.js.map +1 -0
  819. package/dist/seeds-5JTQN5WI.js +101 -0
  820. package/dist/seeds-5JTQN5WI.js.map +1 -0
  821. package/dist/select-RSGLDQ5Z.js +96 -0
  822. package/dist/select-RSGLDQ5Z.js.map +1 -0
  823. package/dist/sends-3L6QBS46.js +309 -0
  824. package/dist/sends-3L6QBS46.js.map +1 -0
  825. package/dist/sequences-YKFV7BDH.js +146 -0
  826. package/dist/sequences-YKFV7BDH.js.map +1 -0
  827. package/dist/set-prompt-7WWJI6XW.js +188 -0
  828. package/dist/set-prompt-7WWJI6XW.js.map +1 -0
  829. package/dist/setup-links-6H5ONDCQ.js +141 -0
  830. package/dist/setup-links-6H5ONDCQ.js.map +1 -0
  831. package/dist/{shared-6762QE6R.js → shared-QAMP7FZV.js} +8 -6
  832. package/dist/shared-QAMP7FZV.js.map +1 -0
  833. package/dist/shopify-2OY3J3OY.js +3692 -0
  834. package/dist/shopify-2OY3J3OY.js.map +1 -0
  835. package/dist/site-TBPERLY3.js +177 -0
  836. package/dist/site-TBPERLY3.js.map +1 -0
  837. package/dist/sitemaps-XPGLW24S.js +87 -0
  838. package/dist/sitemaps-XPGLW24S.js.map +1 -0
  839. package/dist/sites-WMBY2HJV.js +101 -0
  840. package/dist/sites-WMBY2HJV.js.map +1 -0
  841. package/dist/skills-3HEILQCU.js +47 -0
  842. package/dist/skills-3HEILQCU.js.map +1 -0
  843. package/dist/sources-JFQKTK2L.js +421 -0
  844. package/dist/sources-JFQKTK2L.js.map +1 -0
  845. package/dist/sources-Q3I6DDV7.js +30 -0
  846. package/dist/sources-Q3I6DDV7.js.map +1 -0
  847. package/dist/stale-CAXBLZKJ.js +66 -0
  848. package/dist/stale-CAXBLZKJ.js.map +1 -0
  849. package/dist/stats-GNILHSKK.js +34 -0
  850. package/dist/stats-GNILHSKK.js.map +1 -0
  851. package/dist/status-LIZWJYS4.js +62 -0
  852. package/dist/status-LIZWJYS4.js.map +1 -0
  853. package/dist/sticker-KCV3VZHY.js +94 -0
  854. package/dist/sticker-KCV3VZHY.js.map +1 -0
  855. package/dist/stock-VTORKR4C.js +179 -0
  856. package/dist/stock-VTORKR4C.js.map +1 -0
  857. package/dist/studio-QCRA6BY5.js +49 -0
  858. package/dist/studio-QCRA6BY5.js.map +1 -0
  859. package/dist/sync-455DB46Y.js +54 -0
  860. package/dist/sync-455DB46Y.js.map +1 -0
  861. package/dist/sync-A4KKQ3B6.js +265 -0
  862. package/dist/sync-A4KKQ3B6.js.map +1 -0
  863. package/dist/sync-ULKWDFXM.js +54 -0
  864. package/dist/sync-ULKWDFXM.js.map +1 -0
  865. package/dist/sync-definition-P6QTHJJ6.js +55 -0
  866. package/dist/sync-definition-P6QTHJJ6.js.map +1 -0
  867. package/dist/tag-manager-E7QTXBWQ.js +43 -0
  868. package/dist/tag-manager-E7QTXBWQ.js.map +1 -0
  869. package/dist/tags-4Q4I5GQJ.js +20 -0
  870. package/dist/tags-4Q4I5GQJ.js.map +1 -0
  871. package/dist/tags-AMEVAQZ4.js +26 -0
  872. package/dist/tags-AMEVAQZ4.js.map +1 -0
  873. package/dist/tags-DPLOLH3E.js +20 -0
  874. package/dist/tags-DPLOLH3E.js.map +1 -0
  875. package/dist/tags-LDHXONR3.js +224 -0
  876. package/dist/tags-LDHXONR3.js.map +1 -0
  877. package/dist/tags-UW3WJTAQ.js +20 -0
  878. package/dist/tags-UW3WJTAQ.js.map +1 -0
  879. package/dist/targeting-constants-D64YO3E7.js +118 -0
  880. package/dist/targeting-constants-D64YO3E7.js.map +1 -0
  881. package/dist/targeting-criteria-BP6VJA7X.js +113 -0
  882. package/dist/targeting-criteria-BP6VJA7X.js.map +1 -0
  883. package/dist/targets-CQWO2UXD.js +102 -0
  884. package/dist/targets-CQWO2UXD.js.map +1 -0
  885. package/dist/templates-WZSTNRNZ.js +178 -0
  886. package/dist/templates-WZSTNRNZ.js.map +1 -0
  887. package/dist/testimonials-ETHSNWUH.js +32 -0
  888. package/dist/testimonials-ETHSNWUH.js.map +1 -0
  889. package/dist/themes-YU663LQH.js +94 -0
  890. package/dist/themes-YU663LQH.js.map +1 -0
  891. package/dist/top-companies-KTXHS472.js +108 -0
  892. package/dist/top-companies-KTXHS472.js.map +1 -0
  893. package/dist/translate-A7LYHUW3.js +600 -0
  894. package/dist/translate-A7LYHUW3.js.map +1 -0
  895. package/dist/triggers-4EDFLNGH.js +141 -0
  896. package/dist/triggers-4EDFLNGH.js.map +1 -0
  897. package/dist/tweets-ZUKQAAUQ.js +123 -0
  898. package/dist/tweets-ZUKQAAUQ.js.map +1 -0
  899. package/dist/unfollow-A4JVCJBF.js +46 -0
  900. package/dist/unfollow-A4JVCJBF.js.map +1 -0
  901. package/dist/unlink-KY2OEKMD.js +67 -0
  902. package/dist/unlink-KY2OEKMD.js.map +1 -0
  903. package/dist/unstage-FHUG67RI.js +84 -0
  904. package/dist/unstage-FHUG67RI.js.map +1 -0
  905. package/dist/unstage-ZRLLCSQF.js +95 -0
  906. package/dist/unstage-ZRLLCSQF.js.map +1 -0
  907. package/dist/update-27LGM65V.js +63 -0
  908. package/dist/update-27LGM65V.js.map +1 -0
  909. package/dist/update-AIY46I2Q.js +155 -0
  910. package/dist/update-AIY46I2Q.js.map +1 -0
  911. package/dist/update-QYD2XZFM.js +142 -0
  912. package/dist/update-QYD2XZFM.js.map +1 -0
  913. package/dist/update-W2OSRNFO.js +98 -0
  914. package/dist/update-W2OSRNFO.js.map +1 -0
  915. package/dist/upload-JGBTSKGH.js +126 -0
  916. package/dist/upload-JGBTSKGH.js.map +1 -0
  917. package/dist/upload-XEHWYMJG.js +150 -0
  918. package/dist/upload-XEHWYMJG.js.map +1 -0
  919. package/dist/upscale-I5P2OHTN.js +109 -0
  920. package/dist/upscale-I5P2OHTN.js.map +1 -0
  921. package/dist/url-options-QHGA42RP.js +130 -0
  922. package/dist/url-options-QHGA42RP.js.map +1 -0
  923. package/dist/url-params-NWSUHWRE.js +98 -0
  924. package/dist/url-params-NWSUHWRE.js.map +1 -0
  925. package/dist/use-U4HG2NF3.js +95 -0
  926. package/dist/use-U4HG2NF3.js.map +1 -0
  927. package/dist/validate-VKL3XKQ2.js +91 -0
  928. package/dist/validate-VKL3XKQ2.js.map +1 -0
  929. package/dist/variant-FOVE6URJ.js +338 -0
  930. package/dist/variant-FOVE6URJ.js.map +1 -0
  931. package/dist/videos-DP3VCSYG.js +39 -0
  932. package/dist/videos-DP3VCSYG.js.map +1 -0
  933. package/dist/view-HRI3FHCH.js +121 -0
  934. package/dist/view-HRI3FHCH.js.map +1 -0
  935. package/dist/viewer-check-JYUE24M6.js +68 -0
  936. package/dist/viewer-check-JYUE24M6.js.map +1 -0
  937. package/dist/web-AFUIWPFU.js +140 -0
  938. package/dist/web-AFUIWPFU.js.map +1 -0
  939. package/dist/winners-SMMDN6LW.js +113 -0
  940. package/dist/winners-SMMDN6LW.js.map +1 -0
  941. package/dist/winning-ads-PCIJUYVA.js +84 -0
  942. package/dist/winning-ads-PCIJUYVA.js.map +1 -0
  943. package/dist/write-commands-7Z34WG2J.js +206 -0
  944. package/dist/write-commands-7Z34WG2J.js.map +1 -0
  945. package/dist/write-commands-BLT2SEC4.js +713 -0
  946. package/dist/write-commands-BLT2SEC4.js.map +1 -0
  947. package/dist/write-commands-N4FSGRVQ.js +743 -0
  948. package/dist/write-commands-N4FSGRVQ.js.map +1 -0
  949. package/dist/write-commands-Q4MQ3BGM.js +1015 -0
  950. package/dist/write-commands-Q4MQ3BGM.js.map +1 -0
  951. package/dist/x-AUOZJNWE.js +47 -0
  952. package/dist/x-AUOZJNWE.js.map +1 -0
  953. package/package.json +9 -2
  954. package/dist/chunk-FGHMWBUD.js +0 -9989
  955. package/dist/chunk-FGHMWBUD.js.map +0 -1
  956. package/dist/chunk-HJEMOSPH.js +0 -1292
  957. package/dist/chunk-HJEMOSPH.js.map +0 -1
  958. package/dist/chunk-MF7YA62W.js.map +0 -1
  959. package/dist/chunk-VZEDAFAR.js.map +0 -1
  960. package/dist/chunk-XHC4LMK4.js.map +0 -1
  961. package/dist/client-GR6YL3YX.js +0 -17
  962. package/dist/output-NMQXZF3Z.js +0 -18
  963. /package/dist/{chunk-WLDM2TRF.js.map → chunk-TPXI2GCW.js.map} +0 -0
  964. /package/dist/{client-GR6YL3YX.js.map → chunk-YQSBHWOI.js.map} +0 -0
  965. /package/dist/{env-4P5HOGNA.js.map → client-26SAJ46D.js.map} +0 -0
  966. /package/dist/{output-NMQXZF3Z.js.map → connect-RXPMAJQI.js.map} +0 -0
  967. /package/dist/{shared-6762QE6R.js.map → customers-P6LLLJHK.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/x/media.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { ApiError, apiGet } from \"../../../client.ts\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport { cacheGet, cacheSet } from \"../cache.ts\";\nimport { writeAdsJson, writeAdsOutput } from \"../output.ts\";\nimport { parseXApiError } from \"./error-parser.ts\";\nimport { resolveXAccountId } from \"./output.ts\";\n\nregisterSchema({\n command: \"ads.x.media\",\n description:\n \"List media assets in the X Ads media library (images, GIFs, videos). Filter by media-type (IMAGE, GIF, VIDEO).\",\n args: {\n \"account-id\": { type: \"string\", description: \"X Ads account ID\", required: false },\n \"media-type\": { type: \"string\", description: \"IMAGE | GIF | VIDEO\", required: false },\n \"no-cache\": { type: \"boolean\", description: \"Skip cache\", required: false },\n output: { type: \"string\", description: \"Format: json|csv|md\", required: false, default: \"json\" },\n },\n});\n\nexport const mediaCommand = defineCommand({\n meta: {\n name: \"media\",\n description: `List media assets in the X Ads media library.\n\nExamples:\n baker ads x media --account-id 18ce53xyz\n baker ads x media --account-id 18ce53xyz --media-type VIDEO`,\n },\n args: {\n \"account-id\": { type: \"string\", description: \"X Ads account ID\", required: false },\n \"media-type\": { type: \"string\", description: \"IMAGE | GIF | VIDEO\", required: false },\n \"no-cache\": { type: \"boolean\", description: \"Skip cache\", required: false },\n output: { type: \"string\", description: \"Format: json|csv|md\", required: false, default: \"json\" },\n },\n run: async ({ args }) => {\n const accountId = await resolveXAccountId(args);\n const useCache = !args[\"no-cache\"];\n const cacheKey = `media:${accountId}:${args[\"media-type\"] ?? \"ALL\"}`;\n\n if (useCache) {\n const cached = cacheGet<unknown[]>(\"x-account-data\", cacheKey);\n if (cached) {\n writeAdsJson({ ok: true, data: cached.data, cached: true });\n return;\n }\n }\n try {\n const params: Record<string, string> = { \"account-id\": accountId };\n if (args[\"media-type\"]) params[\"media-type\"] = args[\"media-type\"] as string;\n if (!useCache) params[\"skip-cache\"] = \"true\";\n const data = await apiGet<unknown[]>(\"/api/ads/x/media-library\", params);\n if (useCache) {\n cacheSet(\"x-account-data\", cacheKey, data, 6 * 60 * 60 * 1000);\n }\n const format = (args.output as string) || \"json\";\n if (format !== \"json\") {\n writeAdsOutput(data as Array<Record<string, unknown>>, format);\n return;\n }\n writeAdsJson({ ok: true, data });\n } catch (err) {\n if (err instanceof ApiError) {\n writeAdsJson(parseXApiError(err.message, accountId));\n process.exit(1);\n }\n writeAdsJson({ ok: false, error: { code: \"NETWORK_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAQ9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,cAAc,EAAE,MAAM,UAAU,aAAa,oBAAoB,UAAU,MAAM;AAAA,IACjF,cAAc,EAAE,MAAM,UAAU,aAAa,uBAAuB,UAAU,MAAM;AAAA,IACpF,YAAY,EAAE,MAAM,WAAW,aAAa,cAAc,UAAU,MAAM;AAAA,IAC1E,QAAQ,EAAE,MAAM,UAAU,aAAa,uBAAuB,UAAU,OAAO,SAAS,OAAO;AAAA,EACjG;AACF,CAAC;AAEM,IAAM,eAAe,cAAc;AAAA,EACxC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKf;AAAA,EACA,MAAM;AAAA,IACJ,cAAc,EAAE,MAAM,UAAU,aAAa,oBAAoB,UAAU,MAAM;AAAA,IACjF,cAAc,EAAE,MAAM,UAAU,aAAa,uBAAuB,UAAU,MAAM;AAAA,IACpF,YAAY,EAAE,MAAM,WAAW,aAAa,cAAc,UAAU,MAAM;AAAA,IAC1E,QAAQ,EAAE,MAAM,UAAU,aAAa,uBAAuB,UAAU,OAAO,SAAS,OAAO;AAAA,EACjG;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,YAAY,MAAM,kBAAkB,IAAI;AAC9C,UAAM,WAAW,CAAC,KAAK,UAAU;AACjC,UAAM,WAAW,SAAS,SAAS,IAAI,KAAK,YAAY,KAAK,KAAK;AAElE,QAAI,UAAU;AACZ,YAAM,SAAS,SAAoB,kBAAkB,QAAQ;AAC7D,UAAI,QAAQ;AACV,qBAAa,EAAE,IAAI,MAAM,MAAM,OAAO,MAAM,QAAQ,KAAK,CAAC;AAC1D;AAAA,MACF;AAAA,IACF;AACA,QAAI;AACF,YAAM,SAAiC,EAAE,cAAc,UAAU;AACjE,UAAI,KAAK,YAAY,EAAG,QAAO,YAAY,IAAI,KAAK,YAAY;AAChE,UAAI,CAAC,SAAU,QAAO,YAAY,IAAI;AACtC,YAAM,OAAO,MAAM,OAAkB,4BAA4B,MAAM;AACvE,UAAI,UAAU;AACZ,iBAAS,kBAAkB,UAAU,MAAM,IAAI,KAAK,KAAK,GAAI;AAAA,MAC/D;AACA,YAAM,SAAU,KAAK,UAAqB;AAC1C,UAAI,WAAW,QAAQ;AACrB,uBAAe,MAAwC,MAAM;AAC7D;AAAA,MACF;AACA,mBAAa,EAAE,IAAI,MAAM,KAAK,CAAC;AAAA,IACjC,SAAS,KAAK;AACZ,UAAI,eAAe,UAAU;AAC3B,qBAAa,eAAe,IAAI,SAAS,SAAS,CAAC;AACnD,gBAAQ,KAAK,CAAC;AAAA,MAChB;AACA,mBAAa,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,iBAAiB,SAAS,mBAAmB,EAAE,CAAC;AACzF,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -0,0 +1,32 @@
1
+ import "./chunk-YQSBHWOI.js";
2
+
3
+ // src/commands/media-sources/index.ts
4
+ import { defineCommand } from "citty";
5
+ var mediaSourcesCommand = defineCommand({
6
+ meta: {
7
+ name: "media-sources",
8
+ description: `Connect social accounts whose images and videos fill the libraries: Instagram, TikTok, YouTube (videos), LinkedIn company pages, Facebook pages. A Google Drive folder is picked by the user in the chat (request_connection, platform google-drive, choose media-folder), never added here; once connected, list, sync, schedule and remove manage it like any source. Subcommands: add, list, sync, schedule, reset, remove.
9
+
10
+ Examples:
11
+ baker media-sources add https://www.tiktok.com/@acme
12
+ baker media-sources add @acme --platform instagram --every daily
13
+ baker media-sources list
14
+ baker media-sources sync youtube:acme
15
+ baker media-sources schedule linkedin:acme --every monthly
16
+ baker media-sources reset instagram:acme # unstick an import that never finished
17
+ baker media-sources remove facebook:acme
18
+ Full guide: __tooling__/docs/tools/baker/media-sources.md`
19
+ },
20
+ subCommands: {
21
+ add: () => import("./add-TGQIVVXH.js").then((m) => m.addCommand),
22
+ list: () => import("./list-GTOSN7DP.js").then((m) => m.listCommand),
23
+ sync: () => import("./sync-455DB46Y.js").then((m) => m.syncCommand),
24
+ schedule: () => import("./schedule-KQ7UIR3N.js").then((m) => m.scheduleCommand),
25
+ reset: () => import("./reset-HTD6LCIT.js").then((m) => m.resetCommand),
26
+ remove: () => import("./remove-GOYW2G4R.js").then((m) => m.removeCommand)
27
+ }
28
+ });
29
+ export {
30
+ mediaSourcesCommand
31
+ };
32
+ //# sourceMappingURL=media-sources-GSPAV7HT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/media-sources/index.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\n\nexport const mediaSourcesCommand = defineCommand({\n meta: {\n name: \"media-sources\",\n description: `Connect social accounts whose images and videos fill the libraries: Instagram, TikTok, YouTube (videos), LinkedIn company pages, Facebook pages. A Google Drive folder is picked by the user in the chat (request_connection, platform google-drive, choose media-folder), never added here; once connected, list, sync, schedule and remove manage it like any source. Subcommands: add, list, sync, schedule, reset, remove.\n\nExamples:\n baker media-sources add https://www.tiktok.com/@acme\n baker media-sources add @acme --platform instagram --every daily\n baker media-sources list\n baker media-sources sync youtube:acme\n baker media-sources schedule linkedin:acme --every monthly\n baker media-sources reset instagram:acme # unstick an import that never finished\n baker media-sources remove facebook:acme\nFull guide: __tooling__/docs/tools/baker/media-sources.md`,\n },\n subCommands: {\n add: () => import(\"./add.ts\").then((m) => m.addCommand),\n list: () => import(\"./list.ts\").then((m) => m.listCommand),\n sync: () => import(\"./sync.ts\").then((m) => m.syncCommand),\n schedule: () => import(\"./schedule.ts\").then((m) => m.scheduleCommand),\n reset: () => import(\"./reset.ts\").then((m) => m.resetCommand),\n remove: () => import(\"./remove.ts\").then((m) => m.removeCommand),\n },\n});\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAEvB,IAAM,sBAAsB,cAAc;AAAA,EAC/C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWf;AAAA,EACA,aAAa;AAAA,IACX,KAAK,MAAM,OAAO,mBAAU,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU;AAAA,IACtD,MAAM,MAAM,OAAO,oBAAW,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW;AAAA,IACzD,MAAM,MAAM,OAAO,oBAAW,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW;AAAA,IACzD,UAAU,MAAM,OAAO,wBAAe,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe;AAAA,IACrE,OAAO,MAAM,OAAO,qBAAY,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY;AAAA,IAC5D,QAAQ,MAAM,OAAO,sBAAa,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa;AAAA,EACjE;AACF,CAAC;","names":[]}
@@ -0,0 +1,44 @@
1
+ import {
2
+ failApi
3
+ } from "./chunk-7THBBTJJ.js";
4
+ import "./chunk-SMIENBNX.js";
5
+ import "./chunk-GXDLWBOY.js";
6
+ import "./chunk-GIWHHCD6.js";
7
+ import "./chunk-UI6BKYQD.js";
8
+ import "./chunk-XX6ZMCY5.js";
9
+ import {
10
+ apiPost
11
+ } from "./chunk-HREWXNTO.js";
12
+ import "./chunk-HLXWKMTK.js";
13
+ import "./chunk-O6QKCJE4.js";
14
+ import {
15
+ registerSchema,
16
+ writeJson
17
+ } from "./chunk-WOTDHRNF.js";
18
+ import "./chunk-YQSBHWOI.js";
19
+
20
+ // src/commands/actions/members.ts
21
+ import { defineCommand } from "citty";
22
+ registerSchema({
23
+ command: "actions.members",
24
+ description: "The teammates a Task can be assigned to \u2014 everyone with access to this company that the person behind this chat can see, as { userId, name, email, role }. Pass a userId or email from here to `baker actions assign --to`. Read-only.",
25
+ args: {}
26
+ });
27
+ var membersCommand = defineCommand({
28
+ meta: {
29
+ name: "members",
30
+ description: "Teammates a Task can be assigned to. Example: baker actions members"
31
+ },
32
+ run: async () => {
33
+ try {
34
+ const response = await apiPost("/api/actions/members", {});
35
+ writeJson(response);
36
+ } catch (err) {
37
+ failApi(err);
38
+ }
39
+ }
40
+ });
41
+ export {
42
+ membersCommand
43
+ };
44
+ //# sourceMappingURL=members-GUUVEK2Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/actions/members.ts"],"sourcesContent":["import type { ActionsMembersResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi } from \"./shared.ts\";\n\nregisterSchema({\n command: \"actions.members\",\n description:\n \"The teammates a Task can be assigned to — everyone with access to this company that the person behind this chat can see, as { userId, name, email, role }. Pass a userId or email from here to `baker actions assign --to`. Read-only.\",\n args: {},\n});\n\nexport const membersCommand = defineCommand({\n meta: {\n name: \"members\",\n description: \"Teammates a Task can be assigned to. Example: baker actions members\",\n },\n run: async () => {\n try {\n const response = await apiPost<ActionsMembersResponse>(\"/api/actions/members\", {});\n writeJson(response);\n } catch (err) {\n failApi(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAM9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM,CAAC;AACT,CAAC;AAEM,IAAM,iBAAiB,cAAc;AAAA,EAC1C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,KAAK,YAAY;AACf,QAAI;AACF,YAAM,WAAW,MAAM,QAAgC,wBAAwB,CAAC,CAAC;AACjF,gBAAU,QAAQ;AAAA,IACpB,SAAS,KAAK;AACZ,cAAQ,GAAG;AAAA,IACb;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -0,0 +1,69 @@
1
+ import "./chunk-YQSBHWOI.js";
2
+
3
+ // src/commands/ads/meta/index.ts
4
+ import { defineCommand } from "citty";
5
+ var metaCommand = defineCommand({
6
+ meta: {
7
+ name: "meta",
8
+ description: `Meta Marketing API \u2014 AI-first command surface (Facebook + Instagram ads).
9
+
10
+ Discovery:
11
+ baker ads meta accounts \u2014 accounts in this company's connected scope
12
+ baker ads meta businesses \u2014 Business Manager IDs
13
+ baker ads meta pages \u2014 Facebook Pages the selected ad accounts can promote (an ad's identity)
14
+ baker ads meta lead-forms --page-id 100635183117758 \u2014 instant (lead) forms on a Page, with lead counts
15
+ baker ads meta lead-forms create --account-id act_123 --page-id 555 --file form.json \u2014 stage a new form
16
+ baker ads meta leads --form-id 987654321 \u2014 the leads one form collected (contact details masked)
17
+
18
+ Snapshot a running account (default = ACTIVE only):
19
+ baker ads meta campaigns --account-id act_123
20
+ baker ads meta adsets --campaign-id 6123
21
+ baker ads meta ads --adset-id 6123
22
+ baker ads meta campaigns --account-id act_123 --all-statuses \u2014 include paused, archived
23
+
24
+ Drill in:
25
+ baker ads meta account --account-id act_123 \u2014 currency, balance, business
26
+ baker ads meta creatives --creative-id 9988 \u2014 single creative detail
27
+ baker ads meta audiences --account-id act_123
28
+ baker ads meta custom-conversions --account-id act_123 \u2014 the marketer's own conversions ("my conversions")
29
+ baker ads meta pixels --account-id act_123 \u2014 pixel list
30
+ baker ads meta pixels --pixel-id 9988 --stats --days 7 \u2014 firing health
31
+
32
+ Performance (the workhorse):
33
+ baker ads meta insights --object act_123 \u2014 defaults: level=account, intent=baseline, last_7d
34
+ baker ads meta insights --object act_123 --intent revenue --date-preset last_28d
35
+ baker ads meta insights --object act_123 --level ad --intent ranking \u2014 flag creatives to refresh
36
+ baker ads meta insights --object act_123 --level adset --breakdowns publisher_platform,age \u2014 placement \xD7 age
37
+ baker ads meta insights --object act_123 --level ad --since 2026-01-01 --until 2026-03-31 \u2014 auto-async
38
+ baker ads meta insights --list-intents
39
+
40
+ Audit & review:
41
+ baker ads meta activities --account-id act_123 --days 14
42
+ baker ads meta preview --creative-id 9988 --ad-format MOBILE_FEED_STANDARD --out-file /tmp/p.html
43
+ Full guide: __tooling__/docs/tools/baker/ads-meta.md`
44
+ },
45
+ subCommands: {
46
+ accounts: () => import("./accounts-RYBDLQ6H.js").then((m) => m.accountsCommand),
47
+ account: () => import("./account-CLOKMTTC.js").then((m) => m.accountCommand),
48
+ businesses: () => import("./businesses-J7OP7MSK.js").then((m) => m.businessesCommand),
49
+ pages: () => import("./pages-FQ4CBAJ2.js").then((m) => m.pagesCommand),
50
+ "lead-forms": () => import("./leads-TPB5OFSQ.js").then((m) => m.leadFormsCommand),
51
+ leads: () => import("./leads-TPB5OFSQ.js").then((m) => m.leadsCommand),
52
+ campaigns: () => import("./campaigns-R4DXIR2Q.js").then((m) => m.campaignsCommand),
53
+ adsets: () => import("./adsets-AKR75THA.js").then((m) => m.adsetsCommand),
54
+ ads: () => import("./ads-XZCMSPM5.js").then((m) => m.adsListCommand),
55
+ creatives: () => import("./creatives-VMGY5SU4.js").then((m) => m.creativesCommand),
56
+ audiences: () => import("./audiences-NYGMBGQ3.js").then((m) => m.audiencesCommand),
57
+ "custom-conversions": () => import("./custom-conversions-FABS6YVT.js").then((m) => m.customConversionsCommand),
58
+ pixels: () => import("./pixels-CTJ43FZ4.js").then((m) => m.pixelsCommand),
59
+ activities: () => import("./activities-ESBF3GFS.js").then((m) => m.activitiesCommand),
60
+ insights: () => import("./insights-XCA4BUJW.js").then((m) => m.insightsCommand),
61
+ preview: () => import("./preview-5ROBOQG7.js").then((m) => m.previewCommand),
62
+ media: () => import("./media-JBCN6V4X.js").then((m) => m.metaMediaCommand),
63
+ draft: () => import("./draft-KLULNBWP.js").then((m) => m.metaDraftCommand)
64
+ }
65
+ });
66
+ export {
67
+ metaCommand
68
+ };
69
+ //# sourceMappingURL=meta-Z37ZR3PJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/meta/index.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\n\n/**\n * Meta Ads command surface — curated for AI agents, not 1:1 with the Marketing API.\n *\n * The HTTP backend exposes more endpoints (catalogs, studies, ad-images, labels,\n * high-demand-periods, currency lookup). They're intentionally not surfaced as\n * CLI commands because AI agents rarely need them in isolation. Hit them via\n * curl against the API if you need them.\n *\n * Default behaviors that matter:\n * - Listings (campaigns/adsets/ads) filter to ACTIVE — pass --all-statuses to widen.\n * - Insights filter out non-delivered rows (impressions=0) and sort by spend desc.\n * - Insights pick a smart field bundle via --intent (baseline|revenue|funnel|ranking|video|identity).\n * - Heavy insights queries auto-fall to async (poll loop hidden).\n * - Attribution defaults to 7d_click,1d_view — the only windows still working as of Jan 2026.\n */\nexport const metaCommand = defineCommand({\n meta: {\n name: \"meta\",\n description: `Meta Marketing API — AI-first command surface (Facebook + Instagram ads).\n\nDiscovery:\n baker ads meta accounts — accounts in this company's connected scope\n baker ads meta businesses — Business Manager IDs\n baker ads meta pages — Facebook Pages the selected ad accounts can promote (an ad's identity)\n baker ads meta lead-forms --page-id 100635183117758 — instant (lead) forms on a Page, with lead counts\n baker ads meta lead-forms create --account-id act_123 --page-id 555 --file form.json — stage a new form\n baker ads meta leads --form-id 987654321 — the leads one form collected (contact details masked)\n\nSnapshot a running account (default = ACTIVE only):\n baker ads meta campaigns --account-id act_123\n baker ads meta adsets --campaign-id 6123\n baker ads meta ads --adset-id 6123\n baker ads meta campaigns --account-id act_123 --all-statuses — include paused, archived\n\nDrill in:\n baker ads meta account --account-id act_123 — currency, balance, business\n baker ads meta creatives --creative-id 9988 — single creative detail\n baker ads meta audiences --account-id act_123\n baker ads meta custom-conversions --account-id act_123 — the marketer's own conversions (\"my conversions\")\n baker ads meta pixels --account-id act_123 — pixel list\n baker ads meta pixels --pixel-id 9988 --stats --days 7 — firing health\n\nPerformance (the workhorse):\n baker ads meta insights --object act_123 — defaults: level=account, intent=baseline, last_7d\n baker ads meta insights --object act_123 --intent revenue --date-preset last_28d\n baker ads meta insights --object act_123 --level ad --intent ranking — flag creatives to refresh\n baker ads meta insights --object act_123 --level adset --breakdowns publisher_platform,age — placement × age\n baker ads meta insights --object act_123 --level ad --since 2026-01-01 --until 2026-03-31 — auto-async\n baker ads meta insights --list-intents\n\nAudit & review:\n baker ads meta activities --account-id act_123 --days 14\n baker ads meta preview --creative-id 9988 --ad-format MOBILE_FEED_STANDARD --out-file /tmp/p.html\nFull guide: __tooling__/docs/tools/baker/ads-meta.md`,\n },\n subCommands: {\n accounts: () => import(\"./accounts.ts\").then((m) => m.accountsCommand),\n account: () => import(\"./account.ts\").then((m) => m.accountCommand),\n businesses: () => import(\"./businesses.ts\").then((m) => m.businessesCommand),\n pages: () => import(\"./pages.ts\").then((m) => m.pagesCommand),\n \"lead-forms\": () => import(\"./leads.ts\").then((m) => m.leadFormsCommand),\n leads: () => import(\"./leads.ts\").then((m) => m.leadsCommand),\n campaigns: () => import(\"./campaigns.ts\").then((m) => m.campaignsCommand),\n adsets: () => import(\"./adsets.ts\").then((m) => m.adsetsCommand),\n ads: () => import(\"./ads.ts\").then((m) => m.adsListCommand),\n creatives: () => import(\"./creatives.ts\").then((m) => m.creativesCommand),\n audiences: () => import(\"./audiences.ts\").then((m) => m.audiencesCommand),\n \"custom-conversions\": () => import(\"./custom-conversions.ts\").then((m) => m.customConversionsCommand),\n pixels: () => import(\"./pixels.ts\").then((m) => m.pixelsCommand),\n activities: () => import(\"./activities.ts\").then((m) => m.activitiesCommand),\n insights: () => import(\"./insights.ts\").then((m) => m.insightsCommand),\n preview: () => import(\"./preview.ts\").then((m) => m.previewCommand),\n media: () => import(\"./media.ts\").then((m) => m.metaMediaCommand),\n draft: () => import(\"./draft.ts\").then((m) => m.metaDraftCommand),\n },\n});\n"],"mappings":";;;AAAA,SAAS,qBAAqB;AAiBvB,IAAM,cAAc,cAAc;AAAA,EACvC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoCf;AAAA,EACA,aAAa;AAAA,IACX,UAAU,MAAM,OAAO,wBAAe,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe;AAAA,IACrE,SAAS,MAAM,OAAO,uBAAc,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc;AAAA,IAClE,YAAY,MAAM,OAAO,0BAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,iBAAiB;AAAA,IAC3E,OAAO,MAAM,OAAO,qBAAY,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY;AAAA,IAC5D,cAAc,MAAM,OAAO,qBAAY,EAAE,KAAK,CAAC,MAAM,EAAE,gBAAgB;AAAA,IACvE,OAAO,MAAM,OAAO,qBAAY,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY;AAAA,IAC5D,WAAW,MAAM,OAAO,yBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,gBAAgB;AAAA,IACxE,QAAQ,MAAM,OAAO,sBAAa,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa;AAAA,IAC/D,KAAK,MAAM,OAAO,mBAAU,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc;AAAA,IAC1D,WAAW,MAAM,OAAO,yBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,gBAAgB;AAAA,IACxE,WAAW,MAAM,OAAO,yBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,gBAAgB;AAAA,IACxE,sBAAsB,MAAM,OAAO,kCAAyB,EAAE,KAAK,CAAC,MAAM,EAAE,wBAAwB;AAAA,IACpG,QAAQ,MAAM,OAAO,sBAAa,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa;AAAA,IAC/D,YAAY,MAAM,OAAO,0BAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,iBAAiB;AAAA,IAC3E,UAAU,MAAM,OAAO,wBAAe,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe;AAAA,IACrE,SAAS,MAAM,OAAO,uBAAc,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc;AAAA,IAClE,OAAO,MAAM,OAAO,qBAAY,EAAE,KAAK,CAAC,MAAM,EAAE,gBAAgB;AAAA,IAChE,OAAO,MAAM,OAAO,qBAAY,EAAE,KAAK,CAAC,MAAM,EAAE,gBAAgB;AAAA,EAClE;AACF,CAAC;","names":[]}
@@ -0,0 +1,152 @@
1
+ import {
2
+ PLANNER_FIELD_DESCRIPTIONS,
3
+ PLANNER_SOURCE,
4
+ stampPlannerRows
5
+ } from "./chunk-2Y5V23PU.js";
6
+ import {
7
+ buildAdsQueryContext,
8
+ warnDefaults
9
+ } from "./chunk-3ZWWXAQZ.js";
10
+ import "./chunk-77DN7R35.js";
11
+ import {
12
+ buildQueryCacheKey,
13
+ cacheGet,
14
+ cacheSet,
15
+ getManagerIdForCustomer,
16
+ handleConnectionError,
17
+ isNotConnectedError,
18
+ resolveCustomerId,
19
+ writeAdsJson,
20
+ writeAdsOutput
21
+ } from "./chunk-BVM5IRZW.js";
22
+ import "./chunk-XX6ZMCY5.js";
23
+ import {
24
+ ApiError,
25
+ apiPost
26
+ } from "./chunk-HREWXNTO.js";
27
+ import "./chunk-HLXWKMTK.js";
28
+ import "./chunk-O6QKCJE4.js";
29
+ import {
30
+ registerSchema
31
+ } from "./chunk-WOTDHRNF.js";
32
+ import "./chunk-YQSBHWOI.js";
33
+
34
+ // src/commands/ads/google/keywords/metrics.ts
35
+ import { defineCommand } from "citty";
36
+ registerSchema({
37
+ command: "ads.google.keywords.metrics",
38
+ description: 'Get historical market metrics for specific keywords. Returns { source: "keyword_planner_estimate", historical_metrics: [...] }. These are Keyword Planner estimates of total market search volume, not this account\'s data: every row carries a source column and every metric is prefixed planner_ (planner_avg_monthly_searches, planner_competition, ...). Never report a planner_ number as impressions, clicks or any account metric \u2014 read those with `baker ads google query` against the account. If --location and --language are omitted, they default to United States (2840) and English (1000); `query_context` shows which were used.',
39
+ args: {
40
+ "customer-id": {
41
+ type: "string",
42
+ description: "Google Ads customer ID (10 digits, no dashes). Falls back to BAKER_GOOGLE_ADS_CUSTOMER_ID env var.",
43
+ required: false
44
+ },
45
+ keywords: { type: "string", description: "Comma-separated keywords to analyze (max 200)", required: true },
46
+ location: {
47
+ type: "string",
48
+ description: "Geo target ID. Defaults to 2840 (United States) if omitted \u2014 always set this for non-US markets",
49
+ required: false
50
+ },
51
+ language: {
52
+ type: "string",
53
+ description: "Language ID. Defaults to 1000 (English) if omitted \u2014 always set this for non-English markets",
54
+ required: false
55
+ },
56
+ output: { type: "string", description: "Format: json|csv|jsonl|md", required: false, default: "json" },
57
+ "no-cache": { type: "boolean", description: "Skip cache", required: false }
58
+ }
59
+ });
60
+ function stampMetricsResponse(data) {
61
+ return { ...data, source: PLANNER_SOURCE, historical_metrics: stampPlannerRows(data.historical_metrics ?? []) };
62
+ }
63
+ function handleMetricsError(err) {
64
+ if (err instanceof ApiError) {
65
+ if (isNotConnectedError(err.code, err.message)) {
66
+ handleConnectionError("google_ads", err.message);
67
+ }
68
+ const envelope = {
69
+ ok: false,
70
+ error: {
71
+ code: err.code,
72
+ message: err.message,
73
+ fix: { action: "reject", explanation: err.message },
74
+ retryable: err.code === "RATE_LIMITED"
75
+ }
76
+ };
77
+ writeAdsJson(envelope);
78
+ process.exit(1);
79
+ }
80
+ writeAdsJson({ ok: false, error: { code: "NETWORK_ERROR", message: "Unexpected error" } });
81
+ process.exit(1);
82
+ }
83
+ var metricsCommand = defineCommand({
84
+ meta: {
85
+ name: "metrics",
86
+ description: `Get historical search metrics for specific keywords.
87
+
88
+ Returns Keyword Planner ESTIMATES of market search volume, not this account's numbers. Every row carries source=keyword_planner_estimate and planner_-prefixed metrics; keep those names when you quote a figure, and never present one as an impression or click count.
89
+
90
+ Examples:
91
+ baker ads google keywords metrics --customer-id 1234567890 --keywords "running shoes,nike shoes,adidas shoes"
92
+ baker ads google keywords metrics --customer-id 1234567890 --keywords "seo tools" --location 2826`
93
+ },
94
+ args: {
95
+ "customer-id": { type: "string", description: "Google Ads customer ID", required: false },
96
+ keywords: { type: "string", description: "Comma-separated keywords", required: true },
97
+ location: { type: "string", description: "Geo target ID (default 2840)", required: false },
98
+ language: { type: "string", description: "Language ID (default 1000)", required: false },
99
+ "no-cache": { type: "boolean", description: "Skip cache", required: false },
100
+ output: { type: "string", description: "Format: json|csv|jsonl|md", required: false, default: "json" }
101
+ },
102
+ run: async ({ args }) => {
103
+ const customerId = await resolveCustomerId(args);
104
+ const queryContext = buildAdsQueryContext(args.location, args.language);
105
+ const keywords = args.keywords.split(",").map((k) => k.trim()).filter(Boolean);
106
+ if (keywords.length === 0) {
107
+ writeAdsJson({ ok: false, error: { code: "VALIDATION_ERROR", message: "At least one keyword is required" } });
108
+ process.exit(1);
109
+ }
110
+ if (keywords.length > 200) {
111
+ writeAdsJson({ ok: false, error: { code: "VALIDATION_ERROR", message: "Maximum 200 keywords per request" } });
112
+ process.exit(1);
113
+ }
114
+ const body = { customerId, keywords };
115
+ const managerId = getManagerIdForCustomer(customerId);
116
+ if (managerId) body.managerId = managerId;
117
+ if (args.location) body.locationIds = [args.location];
118
+ if (args.language) body.languageId = args.language;
119
+ const useCache = !args["no-cache"];
120
+ if (!useCache) body.skipCache = true;
121
+ const cacheKey = buildQueryCacheKey(customerId, JSON.stringify(body));
122
+ if (useCache) {
123
+ const cached = cacheGet("keywords", cacheKey);
124
+ if (cached) {
125
+ warnDefaults(queryContext);
126
+ writeAdsJson({ ok: true, data: stampMetricsResponse(cached.data), cached: true, query_context: queryContext });
127
+ return;
128
+ }
129
+ }
130
+ try {
131
+ const data = await apiPost("/api/ads/google/keywords/metrics", body);
132
+ if (useCache) {
133
+ cacheSet("keywords", cacheKey, data, 24 * 60 * 60 * 1e3);
134
+ }
135
+ warnDefaults(queryContext);
136
+ const stamped = stampMetricsResponse(data);
137
+ const format = args.output || "json";
138
+ if (format !== "json") {
139
+ writeAdsOutput(stamped.historical_metrics, format);
140
+ return;
141
+ }
142
+ writeAdsJson({ ok: true, data: stamped, fields: PLANNER_FIELD_DESCRIPTIONS, query_context: queryContext });
143
+ } catch (err) {
144
+ handleMetricsError(err);
145
+ }
146
+ }
147
+ });
148
+ export {
149
+ metricsCommand,
150
+ stampMetricsResponse
151
+ };
152
+ //# sourceMappingURL=metrics-KW6SDULI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/google/keywords/metrics.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../../../client.ts\";\nimport { handleConnectionError, isNotConnectedError } from \"../../../../error-handler.ts\";\nimport { buildAdsQueryContext, warnDefaults } from \"../../../../geo-context.ts\";\nimport { registerSchema } from \"../../../../schemas.ts\";\nimport { buildQueryCacheKey, cacheGet, cacheSet, getManagerIdForCustomer } from \"../../cache.ts\";\nimport { resolveCustomerId, writeAdsJson, writeAdsOutput } from \"../../output.ts\";\nimport type { AdsErrorEnvelope } from \"../../types.ts\";\nimport { PLANNER_FIELD_DESCRIPTIONS, PLANNER_SOURCE, type PlannerRow, stampPlannerRows } from \"./provenance.ts\";\n\nregisterSchema({\n command: \"ads.google.keywords.metrics\",\n description:\n 'Get historical market metrics for specific keywords. Returns { source: \"keyword_planner_estimate\", historical_metrics: [...] }. These are Keyword Planner estimates of total market search volume, not this account\\'s data: every row carries a source column and every metric is prefixed planner_ (planner_avg_monthly_searches, planner_competition, ...). Never report a planner_ number as impressions, clicks or any account metric — read those with `baker ads google query` against the account. If --location and --language are omitted, they default to United States (2840) and English (1000); `query_context` shows which were used.',\n args: {\n \"customer-id\": {\n type: \"string\",\n description: \"Google Ads customer ID (10 digits, no dashes). Falls back to BAKER_GOOGLE_ADS_CUSTOMER_ID env var.\",\n required: false,\n },\n keywords: { type: \"string\", description: \"Comma-separated keywords to analyze (max 200)\", required: true },\n location: {\n type: \"string\",\n description: \"Geo target ID. Defaults to 2840 (United States) if omitted — always set this for non-US markets\",\n required: false,\n },\n language: {\n type: \"string\",\n description: \"Language ID. Defaults to 1000 (English) if omitted — always set this for non-English markets\",\n required: false,\n },\n output: { type: \"string\", description: \"Format: json|csv|jsonl|md\", required: false, default: \"json\" },\n \"no-cache\": { type: \"boolean\", description: \"Skip cache\", required: false },\n },\n});\n\ntype KeywordMetric = {\n keyword: string;\n avg_monthly_searches: string;\n competition: string;\n competition_index: string;\n low_top_of_page_bid_micros: number;\n high_top_of_page_bid_micros: number;\n monthly_search_volumes: Array<{ year: string; month: string; monthly_searches: string }>;\n};\n\ntype MetricsResponse = {\n historical_metrics: KeywordMetric[];\n};\n\n/**\n * Same stamp as `keywords discover`: these are market estimates, not this account's numbers, and\n * the row has to say so in its own column names once it lands in a file.\n */\nexport function stampMetricsResponse(data: {\n historical_metrics?: readonly PlannerRow[];\n [key: string]: unknown;\n}): Record<string, unknown> & { historical_metrics: PlannerRow[] } {\n return { ...data, source: PLANNER_SOURCE, historical_metrics: stampPlannerRows(data.historical_metrics ?? []) };\n}\n\nfunction handleMetricsError(err: unknown): never {\n if (err instanceof ApiError) {\n if (isNotConnectedError(err.code, err.message)) {\n handleConnectionError(\"google_ads\", err.message);\n }\n const envelope: AdsErrorEnvelope = {\n ok: false,\n error: {\n code: err.code,\n message: err.message,\n fix: { action: \"reject\", explanation: err.message },\n retryable: err.code === \"RATE_LIMITED\",\n },\n };\n writeAdsJson(envelope);\n process.exit(1);\n }\n writeAdsJson({ ok: false, error: { code: \"NETWORK_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n}\n\nexport const metricsCommand = defineCommand({\n meta: {\n name: \"metrics\",\n description: `Get historical search metrics for specific keywords.\n\nReturns Keyword Planner ESTIMATES of market search volume, not this account's numbers. Every row carries source=keyword_planner_estimate and planner_-prefixed metrics; keep those names when you quote a figure, and never present one as an impression or click count.\n\nExamples:\n baker ads google keywords metrics --customer-id 1234567890 --keywords \"running shoes,nike shoes,adidas shoes\"\n baker ads google keywords metrics --customer-id 1234567890 --keywords \"seo tools\" --location 2826`,\n },\n args: {\n \"customer-id\": { type: \"string\", description: \"Google Ads customer ID\", required: false },\n keywords: { type: \"string\", description: \"Comma-separated keywords\", required: true },\n location: { type: \"string\", description: \"Geo target ID (default 2840)\", required: false },\n language: { type: \"string\", description: \"Language ID (default 1000)\", required: false },\n \"no-cache\": { type: \"boolean\", description: \"Skip cache\", required: false },\n output: { type: \"string\", description: \"Format: json|csv|jsonl|md\", required: false, default: \"json\" },\n },\n run: async ({ args }) => {\n const customerId = await resolveCustomerId(args);\n const queryContext = buildAdsQueryContext(args.location as string | undefined, args.language as string | undefined);\n\n const keywords = (args.keywords as string)\n .split(\",\")\n .map((k) => k.trim())\n .filter(Boolean);\n if (keywords.length === 0) {\n writeAdsJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: \"At least one keyword is required\" } });\n process.exit(1);\n }\n if (keywords.length > 200) {\n writeAdsJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: \"Maximum 200 keywords per request\" } });\n process.exit(1);\n }\n\n const body: Record<string, unknown> = { customerId, keywords };\n const managerId = getManagerIdForCustomer(customerId);\n if (managerId) body.managerId = managerId;\n if (args.location) body.locationIds = [args.location as string];\n if (args.language) body.languageId = args.language;\n\n const useCache = !args[\"no-cache\"];\n if (!useCache) body.skipCache = true;\n const cacheKey = buildQueryCacheKey(customerId, JSON.stringify(body));\n\n if (useCache) {\n const cached = cacheGet<MetricsResponse>(\"keywords\", cacheKey);\n if (cached) {\n warnDefaults(queryContext);\n writeAdsJson({ ok: true, data: stampMetricsResponse(cached.data), cached: true, query_context: queryContext });\n return;\n }\n }\n\n try {\n const data = await apiPost<MetricsResponse>(\"/api/ads/google/keywords/metrics\", body);\n\n if (useCache) {\n cacheSet(\"keywords\", cacheKey, data, 24 * 60 * 60 * 1000);\n }\n\n warnDefaults(queryContext);\n const stamped = stampMetricsResponse(data);\n const format = (args.output as string) || \"json\";\n if (format !== \"json\") {\n writeAdsOutput(stamped.historical_metrics, format);\n return;\n }\n\n writeAdsJson({ ok: true, data: stamped, fields: PLANNER_FIELD_DESCRIPTIONS, query_context: queryContext });\n } catch (err) {\n handleMetricsError(err);\n }\n },\n});\n"],"mappings":"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","names":[]}
@@ -0,0 +1,155 @@
1
+ import {
2
+ DEFAULT_IMAGE_GENERATE_MODEL,
3
+ DEFAULT_VIDEO_GENERATE_MODEL,
4
+ IMAGE_GENERATE_MODELS,
5
+ MODEL_REGISTRY,
6
+ VIDEO_GENERATE_MODELS,
7
+ maxInputReferences,
8
+ maxInputSlot,
9
+ promptMaxLength,
10
+ supportsReferenceToVideo
11
+ } from "./chunk-CAMX6OHF.js";
12
+ import {
13
+ registerSchema,
14
+ writeJson
15
+ } from "./chunk-WOTDHRNF.js";
16
+ import "./chunk-YQSBHWOI.js";
17
+
18
+ // src/commands/studio/models.ts
19
+ import { defineCommand } from "citty";
20
+ var DESCRIPTION = "What each Studio model actually accepts: its shapes, resolutions, clip lengths, prompt character cap, how many reference images it takes, and which knobs it has. Read this before a batch you care about \u2014 the models disagree far more than they look like they do, and a setting the chosen model does not have is REFUSED, not ignored.";
21
+ registerSchema({
22
+ command: "studio.models",
23
+ description: DESCRIPTION,
24
+ args: {
25
+ kind: {
26
+ type: "string",
27
+ description: "image (default) or video",
28
+ required: false,
29
+ enum: ["image", "video"]
30
+ },
31
+ model: { type: "string", description: "Just this one model, with every knob it takes", required: false }
32
+ }
33
+ });
34
+ function describeKnob(schema) {
35
+ if (schema.kind === "string") {
36
+ return {
37
+ type: "string",
38
+ ...schema.enum ? { values: [...schema.enum] } : {},
39
+ ...schema.maxLength !== void 0 ? { maxChars: schema.maxLength } : {}
40
+ };
41
+ }
42
+ if (schema.kind === "number") {
43
+ return {
44
+ type: schema.integer ? "integer" : "number",
45
+ ...schema.enum ? { values: [...schema.enum] } : {},
46
+ ...schema.min !== void 0 ? { min: schema.min } : {},
47
+ ...schema.max !== void 0 ? { max: schema.max } : {}
48
+ };
49
+ }
50
+ return { type: schema.kind };
51
+ }
52
+ function knobsFor(node, model) {
53
+ const params = MODEL_REGISTRY[node][model]?.params ?? {};
54
+ const knobs = {};
55
+ for (const [name, schema] of Object.entries(params)) {
56
+ if (name === "prompt") continue;
57
+ knobs[name] = describeKnob(schema);
58
+ }
59
+ return knobs;
60
+ }
61
+ function enumOf(node, model, param) {
62
+ const schema = MODEL_REGISTRY[node][model]?.params[param];
63
+ if (schema?.kind === "string") return schema.enum ? [...schema.enum] : void 0;
64
+ if (schema?.kind === "number") return schema.enum ? [...schema.enum] : void 0;
65
+ return void 0;
66
+ }
67
+ function imageCard(model) {
68
+ return {
69
+ id: model,
70
+ label: MODEL_REGISTRY.image_generate[model]?.label,
71
+ default: model === DEFAULT_IMAGE_GENERATE_MODEL,
72
+ shapes: enumOf("image_generate", model, "aspect_ratio"),
73
+ resolutions: enumOf("image_generate", model, "image_size") ?? "fixed by the model",
74
+ promptMaxChars: promptMaxLength("image_generate", model) ?? "no published limit",
75
+ maxReferenceImages: maxInputReferences("image_generate", model) ?? "no published limit",
76
+ knobs: knobsFor("image_generate", model)
77
+ };
78
+ }
79
+ function videoCard(model) {
80
+ const sourceClips = maxInputSlot("video_generate", model, "video");
81
+ return {
82
+ id: model,
83
+ label: MODEL_REGISTRY.video_generate[model]?.label,
84
+ default: model === DEFAULT_VIDEO_GENERATE_MODEL,
85
+ shapes: enumOf("video_generate", model, "aspect_ratio"),
86
+ resolutions: enumOf("video_generate", model, "resolution") ?? "fixed by the model",
87
+ seconds: enumOf("video_generate", model, "duration"),
88
+ promptMaxChars: promptMaxLength("video_generate", model) ?? "no published limit",
89
+ // Only meaningful in reference mode; a first-frame clip always takes exactly
90
+ // one image, whatever the model's reference slot allows.
91
+ referenceMode: supportsReferenceToVideo(model) ? `up to ${maxInputReferences("video_generate", model) ?? "several"} reference images` : "first frame only \u2014 this model cannot take reference images",
92
+ // Stated on EVERY card, not just the one model that has it: "can this build
93
+ // on a clip I already made" is the question that decides whether extend and
94
+ // edit are possible at all, and a field that appears only when the answer is
95
+ // yes reads as "unknown" everywhere else.
96
+ buildsOnClips: sourceClips ? `up to ${sourceClips} source clips \u2014 extend, edit, or carry their motion (pass with --from-clip)` : "no \u2014 this model cannot build on an existing clip",
97
+ knobs: knobsFor("video_generate", model)
98
+ };
99
+ }
100
+ function buildModelCards(kind, model) {
101
+ const ids = kind === "image" ? IMAGE_GENERATE_MODELS : VIDEO_GENERATE_MODELS;
102
+ const build = kind === "image" ? imageCard : videoCard;
103
+ const selected = model ? ids.filter((id) => id === model) : ids;
104
+ return selected.map((id) => build(id));
105
+ }
106
+ var modelsCommand = defineCommand({
107
+ meta: {
108
+ name: "models",
109
+ description: `${DESCRIPTION}
110
+
111
+ Everything here is read from the same table the backend validates against, so it cannot drift from what a request will actually be allowed to do.
112
+
113
+ Two rules that explain most refusals:
114
+ - A knob the chosen model does not have is REFUSED, not dropped \u2014 asking gpt-image-2 for a resolution fails rather than quietly rendering at its own size, because a setting that silently did nothing is worse than one that told you.
115
+ - A SHAPE is the exception: an unsupported one snaps to the nearest that model renders (4:5 on gpt-image-2 becomes 3:4), so you can ask for the ad format you want.
116
+
117
+ Examples:
118
+ baker studio models
119
+ baker studio models --kind video
120
+ baker studio models --model recraft/recraft-v4.1-pro-vector`
121
+ },
122
+ args: {
123
+ kind: { type: "string", description: "image (default) | video", required: false },
124
+ model: { type: "string", description: "Just this one model", required: false }
125
+ },
126
+ run: ({ args }) => {
127
+ const kind = args.kind === "video" ? "video" : "image";
128
+ const model = args.model;
129
+ const cards = buildModelCards(kind, model);
130
+ if (model && cards.length === 0) {
131
+ writeJson({
132
+ ok: false,
133
+ error: {
134
+ code: "NOT_FOUND",
135
+ message: `"${model}" is not a Studio ${kind} model.`,
136
+ fix: `Run \`baker studio models --kind ${kind}\` for the roster.`
137
+ }
138
+ });
139
+ process.exit(1);
140
+ }
141
+ writeJson({
142
+ ok: true,
143
+ data: cards,
144
+ meta: { count: cards.length },
145
+ hints: [
146
+ kind === "image" ? "Shapes snap to the nearest the model renders; every other setting is refused if the model does not have it." : "A clip starting from one exact frame uses ONE image. Only Seedance and Gemini Omni take several as references, and only Seedance 2.5 goes past 15s or builds on an existing clip."
147
+ ]
148
+ });
149
+ }
150
+ });
151
+ export {
152
+ buildModelCards,
153
+ modelsCommand
154
+ };
155
+ //# sourceMappingURL=models-5J4WFUD3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/studio/models.ts"],"sourcesContent":["import {\n DEFAULT_IMAGE_GENERATE_MODEL,\n DEFAULT_VIDEO_GENERATE_MODEL,\n IMAGE_GENERATE_MODELS,\n MODEL_REGISTRY,\n maxInputReferences,\n maxInputSlot,\n type NodeKind,\n type ParamSchema,\n promptMaxLength,\n supportsReferenceToVideo,\n VIDEO_GENERATE_MODELS,\n} from \"@baker/canvas-contract\";\nimport { defineCommand } from \"citty\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\n\nconst DESCRIPTION =\n \"What each Studio model actually accepts: its shapes, resolutions, clip lengths, prompt character cap, how many reference images it takes, and which knobs it has. Read this before a batch you care about — the models disagree far more than they look like they do, and a setting the chosen model does not have is REFUSED, not ignored.\";\n\nregisterSchema({\n command: \"studio.models\",\n description: DESCRIPTION,\n args: {\n kind: {\n type: \"string\",\n description: \"image (default) or video\",\n required: false,\n enum: [\"image\", \"video\"],\n },\n model: { type: \"string\", description: \"Just this one model, with every knob it takes\", required: false },\n },\n});\n\n/** One knob, as the agent needs to see it: what it takes, not how it is typed. */\ntype Knob = { values?: (string | number)[]; min?: number; max?: number; maxChars?: number; type: string };\n\nfunction describeKnob(schema: ParamSchema): Knob {\n if (schema.kind === \"string\") {\n return {\n type: \"string\",\n ...(schema.enum ? { values: [...schema.enum] } : {}),\n ...(schema.maxLength !== undefined ? { maxChars: schema.maxLength } : {}),\n };\n }\n if (schema.kind === \"number\") {\n return {\n type: schema.integer ? \"integer\" : \"number\",\n ...(schema.enum ? { values: [...schema.enum] } : {}),\n ...(schema.min !== undefined ? { min: schema.min } : {}),\n ...(schema.max !== undefined ? { max: schema.max } : {}),\n };\n }\n return { type: schema.kind };\n}\n\n/**\n * `prompt` is described by its own top-level `promptMaxChars` field and every\n * model requires it, so repeating it inside the knob list is noise.\n */\nfunction knobsFor(node: NodeKind, model: string): Record<string, Knob> {\n const params = MODEL_REGISTRY[node][model]?.params ?? {};\n const knobs: Record<string, Knob> = {};\n for (const [name, schema] of Object.entries(params)) {\n if (name === \"prompt\") continue;\n knobs[name] = describeKnob(schema);\n }\n return knobs;\n}\n\nfunction enumOf(node: NodeKind, model: string, param: string): (string | number)[] | undefined {\n const schema = MODEL_REGISTRY[node][model]?.params[param];\n if (schema?.kind === \"string\") return schema.enum ? [...schema.enum] : undefined;\n if (schema?.kind === \"number\") return schema.enum ? [...schema.enum] : undefined;\n return undefined;\n}\n\ntype ModelCard = Record<string, unknown>;\n\nfunction imageCard(model: string): ModelCard {\n return {\n id: model,\n label: MODEL_REGISTRY.image_generate[model]?.label,\n default: model === DEFAULT_IMAGE_GENERATE_MODEL,\n shapes: enumOf(\"image_generate\", model, \"aspect_ratio\"),\n resolutions: enumOf(\"image_generate\", model, \"image_size\") ?? \"fixed by the model\",\n promptMaxChars: promptMaxLength(\"image_generate\", model) ?? \"no published limit\",\n maxReferenceImages: maxInputReferences(\"image_generate\", model) ?? \"no published limit\",\n knobs: knobsFor(\"image_generate\", model),\n };\n}\n\nfunction videoCard(model: string): ModelCard {\n const sourceClips = maxInputSlot(\"video_generate\", model, \"video\");\n return {\n id: model,\n label: MODEL_REGISTRY.video_generate[model]?.label,\n default: model === DEFAULT_VIDEO_GENERATE_MODEL,\n shapes: enumOf(\"video_generate\", model, \"aspect_ratio\"),\n resolutions: enumOf(\"video_generate\", model, \"resolution\") ?? \"fixed by the model\",\n seconds: enumOf(\"video_generate\", model, \"duration\"),\n promptMaxChars: promptMaxLength(\"video_generate\", model) ?? \"no published limit\",\n // Only meaningful in reference mode; a first-frame clip always takes exactly\n // one image, whatever the model's reference slot allows.\n referenceMode: supportsReferenceToVideo(model)\n ? `up to ${maxInputReferences(\"video_generate\", model) ?? \"several\"} reference images`\n : \"first frame only — this model cannot take reference images\",\n // Stated on EVERY card, not just the one model that has it: \"can this build\n // on a clip I already made\" is the question that decides whether extend and\n // edit are possible at all, and a field that appears only when the answer is\n // yes reads as \"unknown\" everywhere else.\n buildsOnClips: sourceClips\n ? `up to ${sourceClips} source clips — extend, edit, or carry their motion (pass with --from-clip)`\n : \"no — this model cannot build on an existing clip\",\n knobs: knobsFor(\"video_generate\", model),\n };\n}\n\nexport function buildModelCards(kind: \"image\" | \"video\", model?: string): ModelCard[] {\n const ids = kind === \"image\" ? IMAGE_GENERATE_MODELS : VIDEO_GENERATE_MODELS;\n const build = kind === \"image\" ? imageCard : videoCard;\n const selected = model ? ids.filter((id) => id === model) : ids;\n return selected.map((id) => build(id));\n}\n\nexport const modelsCommand = defineCommand({\n meta: {\n name: \"models\",\n description: `${DESCRIPTION}\n\nEverything here is read from the same table the backend validates against, so it cannot drift from what a request will actually be allowed to do.\n\nTwo rules that explain most refusals:\n - A knob the chosen model does not have is REFUSED, not dropped — asking gpt-image-2 for a resolution fails rather than quietly rendering at its own size, because a setting that silently did nothing is worse than one that told you.\n - A SHAPE is the exception: an unsupported one snaps to the nearest that model renders (4:5 on gpt-image-2 becomes 3:4), so you can ask for the ad format you want.\n\nExamples:\n baker studio models\n baker studio models --kind video\n baker studio models --model recraft/recraft-v4.1-pro-vector`,\n },\n args: {\n kind: { type: \"string\", description: \"image (default) | video\", required: false },\n model: { type: \"string\", description: \"Just this one model\", required: false },\n },\n run: ({ args }) => {\n const kind = args.kind === \"video\" ? \"video\" : \"image\";\n const model = args.model as string | undefined;\n const cards = buildModelCards(kind, model);\n\n if (model && cards.length === 0) {\n writeJson({\n ok: false,\n error: {\n code: \"NOT_FOUND\",\n message: `\"${model}\" is not a Studio ${kind} model.`,\n fix: `Run \\`baker studio models --kind ${kind}\\` for the roster.`,\n },\n });\n process.exit(1);\n }\n\n writeJson({\n ok: true,\n data: cards,\n meta: { count: cards.length },\n hints: [\n kind === \"image\"\n ? \"Shapes snap to the nearest the model renders; every other setting is refused if the model does not have it.\"\n : \"A clip starting from one exact frame uses ONE image. Only Seedance and Gemini Omni take several as references, and only Seedance 2.5 goes past 15s or builds on an existing clip.\",\n ],\n });\n },\n});\n"],"mappings":"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","names":[]}