@koda-sl/baker-cli 0.496.0 → 0.497.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (841) hide show
  1. package/README.md +25 -4
  2. package/dist/account-ZKJFX2GK.js +80 -0
  3. package/dist/account-ZKJFX2GK.js.map +1 -0
  4. package/dist/account-users-SZCYHVBM.js +62 -0
  5. package/dist/account-users-SZCYHVBM.js.map +1 -0
  6. package/dist/accounts-5DFYKYSM.js +78 -0
  7. package/dist/accounts-5DFYKYSM.js.map +1 -0
  8. package/dist/accounts-OGAIQNE6.js +612 -0
  9. package/dist/accounts-OGAIQNE6.js.map +1 -0
  10. package/dist/actions-FMNJSOBA.js +55 -0
  11. package/dist/activecampaign-LYYYH6XD.js +936 -0
  12. package/dist/activecampaign-LYYYH6XD.js.map +1 -0
  13. package/dist/add-AOQLZRPC.js +80 -0
  14. package/dist/add-AOQLZRPC.js.map +1 -0
  15. package/dist/add-HWXEPSZF.js +105 -0
  16. package/dist/add-HWXEPSZF.js.map +1 -0
  17. package/dist/add-VDZPGZF5.js +148 -0
  18. package/dist/add-VDZPGZF5.js.map +1 -0
  19. package/dist/add-YYP3O536.js +303 -0
  20. package/dist/add-YYP3O536.js.map +1 -0
  21. package/dist/ads-OLXSDPD6.js +40 -0
  22. package/dist/advertisers-STYAIX72.js +121 -0
  23. package/dist/advertisers-STYAIX72.js.map +1 -0
  24. package/dist/analytics-6WBK4VFO.js +1977 -0
  25. package/dist/analytics-6WBK4VFO.js.map +1 -0
  26. package/dist/analytics-DHB325DM.js +434 -0
  27. package/dist/analytics-DHB325DM.js.map +1 -0
  28. package/dist/assign-BFXHYTMF.js +78 -0
  29. package/dist/assign-BFXHYTMF.js.map +1 -0
  30. package/dist/audience-size-XWHZV2GH.js +74 -0
  31. package/dist/audience-size-XWHZV2GH.js.map +1 -0
  32. package/dist/audit-IYGRU7LD.js +152 -0
  33. package/dist/audit-IYGRU7LD.js.map +1 -0
  34. package/dist/autocomplete-SDDSJTAF.js +112 -0
  35. package/dist/autocomplete-SDDSJTAF.js.map +1 -0
  36. package/dist/avatars-I4H3NMEJ.js +38 -0
  37. package/dist/bid-pricing-OVYBDRMV.js +101 -0
  38. package/dist/bid-pricing-OVYBDRMV.js.map +1 -0
  39. package/dist/brand-3V7ECY7D.js +22 -0
  40. package/dist/brief-U2W7KMFC.js +539 -0
  41. package/dist/brief-U2W7KMFC.js.map +1 -0
  42. package/dist/campaign-groups-FJHBVUA3.js +97 -0
  43. package/dist/campaign-groups-FJHBVUA3.js.map +1 -0
  44. package/dist/campaign-writes-XKYYMZML.js +166 -0
  45. package/dist/campaign-writes-XKYYMZML.js.map +1 -0
  46. package/dist/campaigns-E5UW4I3X.js +111 -0
  47. package/dist/campaigns-E5UW4I3X.js.map +1 -0
  48. package/dist/campaigns-MCB76NPQ.js +107 -0
  49. package/dist/canvas-JCNKMGCG.js +46 -0
  50. package/dist/capabilities-CLTZCXCZ.js +145 -0
  51. package/dist/capabilities-CLTZCXCZ.js.map +1 -0
  52. package/dist/chatgpt-XFZ42NXC.js +47 -0
  53. package/dist/chats-DTJSBDWO.js +277 -0
  54. package/dist/chats-DTJSBDWO.js.map +1 -0
  55. package/dist/check-CZTS64AW.js +105 -0
  56. package/dist/check-CZTS64AW.js.map +1 -0
  57. package/dist/chunk-2YTBPRRG.js +207 -0
  58. package/dist/chunk-3SNCMEJB.js +97 -0
  59. package/dist/chunk-7QGFO35A.js +23 -0
  60. package/dist/chunk-AV7ALENU.js +191 -0
  61. package/dist/chunk-BRLFQ4VX.js +604 -0
  62. package/dist/chunk-CAZGM2NX.js +92 -0
  63. package/dist/chunk-CAZGM2NX.js.map +1 -0
  64. package/dist/chunk-DJE7UXYT.js +831 -0
  65. package/dist/chunk-EFWXYUSK.js +139 -0
  66. package/dist/chunk-EONSZAZB.js +3868 -0
  67. package/dist/chunk-FALJQCWL.js +661 -0
  68. package/dist/chunk-FALJQCWL.js.map +1 -0
  69. package/dist/chunk-FG3MV2XM.js +89 -0
  70. package/dist/chunk-FKG476GH.js +392 -0
  71. package/dist/chunk-FUGQSIYG.js +297 -0
  72. package/dist/chunk-GZ4A2VYW.js +39 -0
  73. package/dist/chunk-GZ4A2VYW.js.map +1 -0
  74. package/dist/chunk-HPLHAHG5.js +275 -0
  75. package/dist/chunk-I24YT2KG.js +122 -0
  76. package/dist/chunk-IFDZZOUC.js +903 -0
  77. package/dist/chunk-JVVUI55M.js +455 -0
  78. package/dist/chunk-KKSHEPBY.js +363 -0
  79. package/dist/chunk-KQ7RCLGC.js +547 -0
  80. package/dist/chunk-L7WMS5PW.js +172 -0
  81. package/dist/chunk-LBRO4MTL.js +19 -0
  82. package/dist/chunk-LNRPOULW.js +224 -0
  83. package/dist/chunk-LX6WC2XZ.js +942 -0
  84. package/dist/chunk-MMGTJBM6.js +142 -0
  85. package/dist/chunk-NZS3KEQ2.js +97 -0
  86. package/dist/chunk-NZS3KEQ2.js.map +1 -0
  87. package/dist/chunk-O37VU7FG.js +6799 -0
  88. package/dist/chunk-O37VU7FG.js.map +1 -0
  89. package/dist/chunk-OEZYSL3U.js +51 -0
  90. package/dist/chunk-OOVHBMQB.js +103 -0
  91. package/dist/chunk-PTH7VWKK.js +159 -0
  92. package/dist/chunk-PYD6IGW6.js +401 -0
  93. package/dist/chunk-PYD6IGW6.js.map +1 -0
  94. package/dist/chunk-QE2E4EYJ.js +349 -0
  95. package/dist/chunk-QE2E4EYJ.js.map +1 -0
  96. package/dist/chunk-QZF4BVKL.js +66 -0
  97. package/dist/chunk-RITUSBYO.js +61 -0
  98. package/dist/chunk-SSTL3A7Z.js +206 -0
  99. package/dist/chunk-SZNGQ2GF.js +64 -0
  100. package/dist/chunk-SZNGQ2GF.js.map +1 -0
  101. package/dist/chunk-TD4SO6TR.js +169 -0
  102. package/dist/chunk-UZ4RTOFG.js +91 -0
  103. package/dist/chunk-VAX7PFQV.js +592 -0
  104. package/dist/chunk-VDRSZK4P.js +494 -0
  105. package/dist/chunk-VNU2EYD4.js +344 -0
  106. package/dist/chunk-WT4WDIXA.js +156 -0
  107. package/dist/chunk-XEX23CIB.js +160 -0
  108. package/dist/chunk-XXDF25BW.js +8939 -0
  109. package/dist/chunk-YJ3LSFMX.js +249 -0
  110. package/dist/chunk-YVK5RT3B.js +197 -0
  111. package/dist/chunk-YWWRLZUR.js +433 -0
  112. package/dist/chunk-Z4S5BCVZ.js +57 -0
  113. package/dist/chunk-ZYGK7GAK.js +1079 -0
  114. package/dist/claim-TSFPWTQY.js +198 -0
  115. package/dist/claim-TSFPWTQY.js.map +1 -0
  116. package/dist/cli.js +38 -37
  117. package/dist/cli.js.map +1 -1
  118. package/dist/companies-P7FZNJQV.js +196 -0
  119. package/dist/companies-P7FZNJQV.js.map +1 -0
  120. package/dist/complete-SYDIHMD5.js +82 -0
  121. package/dist/complete-SYDIHMD5.js.map +1 -0
  122. package/dist/connect-COS6G45S.js +43 -0
  123. package/dist/conversation-UJOWMJRH.js +94 -0
  124. package/dist/conversation-UJOWMJRH.js.map +1 -0
  125. package/dist/conversions-ONOIEILU.js +138 -0
  126. package/dist/conversions-ONOIEILU.js.map +1 -0
  127. package/dist/create-DPQRYQXK.js +208 -0
  128. package/dist/create-DPQRYQXK.js.map +1 -0
  129. package/dist/create-JD76Z4A4.js +60 -0
  130. package/dist/create-JD76Z4A4.js.map +1 -0
  131. package/dist/create-NOT3HGP2.js +133 -0
  132. package/dist/create-NOT3HGP2.js.map +1 -0
  133. package/dist/create-ZYEB7SHF.js +236 -0
  134. package/dist/create-ZYEB7SHF.js.map +1 -0
  135. package/dist/creatives-LRSELC7Y.js +221 -0
  136. package/dist/creatives-LRSELC7Y.js.map +1 -0
  137. package/dist/creatives-SEQHJD2M.js +58 -0
  138. package/dist/credentials-LHPTUVVA.js +288 -0
  139. package/dist/credentials-LHPTUVVA.js.map +1 -0
  140. package/dist/critique-Q7GSZ5RP.js +1459 -0
  141. package/dist/critique-Q7GSZ5RP.js.map +1 -0
  142. package/dist/critique-RR2XOQCE.js +228 -0
  143. package/dist/critique-RR2XOQCE.js.map +1 -0
  144. package/dist/crm-J7EU32PL.js +319 -0
  145. package/dist/crm-J7EU32PL.js.map +1 -0
  146. package/dist/crm-MC444ZVU.js +225 -0
  147. package/dist/crm-MC444ZVU.js.map +1 -0
  148. package/dist/customers-LMSX33FO.js +57 -0
  149. package/dist/delete-BQBVATMF.js +55 -0
  150. package/dist/delete-BQBVATMF.js.map +1 -0
  151. package/dist/delete-K7A3AUPH.js +65 -0
  152. package/dist/delete-K7A3AUPH.js.map +1 -0
  153. package/dist/delete-VV2ICIHF.js +67 -0
  154. package/dist/delete-VV2ICIHF.js.map +1 -0
  155. package/dist/demographics-7GWUXXS6.js +139 -0
  156. package/dist/demographics-7GWUXXS6.js.map +1 -0
  157. package/dist/discard-3CLZ4DPD.js +67 -0
  158. package/dist/discard-3CLZ4DPD.js.map +1 -0
  159. package/dist/domain-ZS74BSE6.js +99 -0
  160. package/dist/domain-ZS74BSE6.js.map +1 -0
  161. package/dist/draft-J3B33RAZ.js +308 -0
  162. package/dist/draft-J3B33RAZ.js.map +1 -0
  163. package/dist/draft-MZLWVX3D.js +218 -0
  164. package/dist/draft-MZLWVX3D.js.map +1 -0
  165. package/dist/draft-R56PIXCV.js +333 -0
  166. package/dist/draft-R56PIXCV.js.map +1 -0
  167. package/dist/experiment-7RJ5X2LL.js +1397 -0
  168. package/dist/experiments-NOSJJMYI.js +234 -0
  169. package/dist/experiments-NOSJJMYI.js.map +1 -0
  170. package/dist/facets-E6SHYUAI.js +115 -0
  171. package/dist/facets-E6SHYUAI.js.map +1 -0
  172. package/dist/feedback-HXCQBV7S.js +107 -0
  173. package/dist/feedback-HXCQBV7S.js.map +1 -0
  174. package/dist/feedback-record-GXPYXNT6.js +261 -0
  175. package/dist/feedback-record-GXPYXNT6.js.map +1 -0
  176. package/dist/fetch-HMUGSRE4.js +177 -0
  177. package/dist/fetch-HMUGSRE4.js.map +1 -0
  178. package/dist/find-2EPXK5RF.js +134 -0
  179. package/dist/fit-W7UNFZT5.js +63 -0
  180. package/dist/flows-SO5J3M3X.js +248 -0
  181. package/dist/flows-SO5J3M3X.js.map +1 -0
  182. package/dist/fonts-N42UYWTX.js +37 -0
  183. package/dist/forecast-24LGJVLC.js +119 -0
  184. package/dist/forecast-24LGJVLC.js.map +1 -0
  185. package/dist/funnel-NYT36B3C.js +395 -0
  186. package/dist/funnel-NYT36B3C.js.map +1 -0
  187. package/dist/ga4-6EIQC2TG.js +55 -0
  188. package/dist/get-KAGO4EC5.js +80 -0
  189. package/dist/get-KAGO4EC5.js.map +1 -0
  190. package/dist/get-PZX27LQY.js +38 -0
  191. package/dist/get-PZX27LQY.js.map +1 -0
  192. package/dist/get-R5JAFHTH.js +57 -0
  193. package/dist/get-R5JAFHTH.js.map +1 -0
  194. package/dist/google-O5OI6QFU.js +136 -0
  195. package/dist/google-ads-6X4BHGUR.js +196 -0
  196. package/dist/google-ads-6X4BHGUR.js.map +1 -0
  197. package/dist/gsc-BM3T2GDL.js +30 -0
  198. package/dist/history-LGOWYLBE.js +134 -0
  199. package/dist/history-LGOWYLBE.js.map +1 -0
  200. package/dist/hubspot-LJB3ETUT.js +780 -0
  201. package/dist/hubspot-LJB3ETUT.js.map +1 -0
  202. package/dist/icon-B7DG53S5.js +137 -0
  203. package/dist/ideas-DYN2DMFN.js +41 -0
  204. package/dist/images-EQCUXEHF.js +92 -0
  205. package/dist/ingest-B46AY3QU.js +24 -0
  206. package/dist/ingest-T7ZS2R4U.js +108 -0
  207. package/dist/ingest-T7ZS2R4U.js.map +1 -0
  208. package/dist/inspect-BSNGAT2S.js +190 -0
  209. package/dist/inspect-BSNGAT2S.js.map +1 -0
  210. package/dist/inspiration-TCCKM4R7.js +53 -0
  211. package/dist/keyword-metrics-KNTIN4ZK.js +198 -0
  212. package/dist/keyword-metrics-KNTIN4ZK.js.map +1 -0
  213. package/dist/keywords-for-site-S4MXGXWR.js +129 -0
  214. package/dist/keywords-for-site-S4MXGXWR.js.map +1 -0
  215. package/dist/landing-WVPA7NBR.js +28 -0
  216. package/dist/leads-EINV5FK3.js +113 -0
  217. package/dist/leads-EINV5FK3.js.map +1 -0
  218. package/dist/learn-7Z2VR6MS.js +205 -0
  219. package/dist/learn-7Z2VR6MS.js.map +1 -0
  220. package/dist/line-item-writes-Z3TIB5KZ.js +209 -0
  221. package/dist/line-item-writes-Z3TIB5KZ.js.map +1 -0
  222. package/dist/line-items-OEWYOPFP.js +103 -0
  223. package/dist/link-KYHUIPJE.js +65 -0
  224. package/dist/link-KYHUIPJE.js.map +1 -0
  225. package/dist/linkedin-JVB4HXJC.js +1314 -0
  226. package/dist/linkedin-JVB4HXJC.js.map +1 -0
  227. package/dist/list-EORTO73V.js +93 -0
  228. package/dist/list-EORTO73V.js.map +1 -0
  229. package/dist/list-QQVLURKH.js +152 -0
  230. package/dist/list-QQVLURKH.js.map +1 -0
  231. package/dist/list-QWGKRUSM.js +65 -0
  232. package/dist/list-QWGKRUSM.js.map +1 -0
  233. package/dist/list-WRBWQASJ.js +50 -0
  234. package/dist/list-Z6NMNK3T.js +304 -0
  235. package/dist/list-Z6NMNK3T.js.map +1 -0
  236. package/dist/log-RUMKYPYK.js +93 -0
  237. package/dist/log-RUMKYPYK.js.map +1 -0
  238. package/dist/logo-QTSBKP2J.js +18 -0
  239. package/dist/make-IJGCQA7C.js +1354 -0
  240. package/dist/make-IJGCQA7C.js.map +1 -0
  241. package/dist/map-QZHIJFQT.js +434 -0
  242. package/dist/map-QZHIJFQT.js.map +1 -0
  243. package/dist/mcp-ZH2XDV5P.js +715 -0
  244. package/dist/mcp-ZH2XDV5P.js.map +1 -0
  245. package/dist/media-sources-SQ2RPDBO.js +35 -0
  246. package/dist/media-sources-SQ2RPDBO.js.map +1 -0
  247. package/dist/members-4YX7JEZM.js +45 -0
  248. package/dist/members-4YX7JEZM.js.map +1 -0
  249. package/dist/normalize-ABIWLRIT.js +142 -0
  250. package/dist/normalize-ABIWLRIT.js.map +1 -0
  251. package/dist/options-SVCQVTNE.js +123 -0
  252. package/dist/options-SVCQVTNE.js.map +1 -0
  253. package/dist/organization-FNKDC742.js +947 -0
  254. package/dist/organization-FNKDC742.js.map +1 -0
  255. package/dist/performance-HTU5FR2K.js +25 -0
  256. package/dist/posts-3DAPTBH2.js +34 -0
  257. package/dist/posts-3DAPTBH2.js.map +1 -0
  258. package/dist/promoted-tweet-writes-DD3CJNWW.js +181 -0
  259. package/dist/promoted-tweet-writes-DD3CJNWW.js.map +1 -0
  260. package/dist/promoted-tweets-TTWN5OMW.js +119 -0
  261. package/dist/publish-Z62KGDJ2.js +342 -0
  262. package/dist/publish-Z62KGDJ2.js.map +1 -0
  263. package/dist/reddit-6C3PT5CT.js +27 -0
  264. package/dist/refresh-HCQXVFVR.js +95 -0
  265. package/dist/refresh-HCQXVFVR.js.map +1 -0
  266. package/dist/refresh-ZCGH64OZ.js +42 -0
  267. package/dist/refresh-ZCGH64OZ.js.map +1 -0
  268. package/dist/release-FIHW2HCH.js +61 -0
  269. package/dist/release-FIHW2HCH.js.map +1 -0
  270. package/dist/remove-CBR7NVMI.js +51 -0
  271. package/dist/remove-CBR7NVMI.js.map +1 -0
  272. package/dist/remove-PUZP5GWN.js +49 -0
  273. package/dist/remove-PUZP5GWN.js.map +1 -0
  274. package/dist/reopen-EJGLRQWR.js +64 -0
  275. package/dist/reopen-EJGLRQWR.js.map +1 -0
  276. package/dist/rerun-TVBZXASH.js +91 -0
  277. package/dist/rerun-TVBZXASH.js.map +1 -0
  278. package/dist/research-L25D4WHQ.js +263 -0
  279. package/dist/research-L25D4WHQ.js.map +1 -0
  280. package/dist/research-YCMMQVK6.js +62 -0
  281. package/dist/reset-HKKCWKZ7.js +55 -0
  282. package/dist/reset-HKKCWKZ7.js.map +1 -0
  283. package/dist/reset-SRL6I6GP.js +55 -0
  284. package/dist/reset-SRL6I6GP.js.map +1 -0
  285. package/dist/resolve-POMTTAFR.js +122 -0
  286. package/dist/resolve-POMTTAFR.js.map +1 -0
  287. package/dist/retry-MEPTOAV2.js +61 -0
  288. package/dist/retry-MEPTOAV2.js.map +1 -0
  289. package/dist/retry-RNGM3KKA.js +63 -0
  290. package/dist/retry-RNGM3KKA.js.map +1 -0
  291. package/dist/revenue-X4KPTSAM.js +89 -0
  292. package/dist/revenue-X4KPTSAM.js.map +1 -0
  293. package/dist/rules-VK7YA23Q.js +97 -0
  294. package/dist/rules-VK7YA23Q.js.map +1 -0
  295. package/dist/rules-add-VG7AT6EG.js +463 -0
  296. package/dist/rules-add-VG7AT6EG.js.map +1 -0
  297. package/dist/run-DIDQSZU7.js +67 -0
  298. package/dist/run-DIDQSZU7.js.map +1 -0
  299. package/dist/run-SR7DJ7M5.js +66 -0
  300. package/dist/scaffold-ad-46GTFUMP.js +1512 -0
  301. package/dist/scaffold-ad-46GTFUMP.js.map +1 -0
  302. package/dist/scaffold-static-ad-U63V4UHR.js +1006 -0
  303. package/dist/scaffold-static-ad-U63V4UHR.js.map +1 -0
  304. package/dist/scaffold-video-4DNTURH6.js +884 -0
  305. package/dist/scaffold-video-4DNTURH6.js.map +1 -0
  306. package/dist/schedule-JO66N7XO.js +62 -0
  307. package/dist/schedule-JO66N7XO.js.map +1 -0
  308. package/dist/schedule-JZBIX6LH.js +67 -0
  309. package/dist/schedule-JZBIX6LH.js.map +1 -0
  310. package/dist/scheduled-agents-N63EZNY6.js +50 -0
  311. package/dist/schema-B2XANMEY.js +133 -0
  312. package/dist/schema-B2XANMEY.js.map +1 -0
  313. package/dist/schema-C6SGBNA6.js +69 -0
  314. package/dist/search-7GHS3OUZ.js +51 -0
  315. package/dist/search-7GHS3OUZ.js.map +1 -0
  316. package/dist/search-W5HZUJA2.js +175 -0
  317. package/dist/search-W5HZUJA2.js.map +1 -0
  318. package/dist/select-LMGLNFWB.js +102 -0
  319. package/dist/select-LMGLNFWB.js.map +1 -0
  320. package/dist/set-prompt-M5E3UZDM.js +194 -0
  321. package/dist/set-prompt-M5E3UZDM.js.map +1 -0
  322. package/dist/setup-links-ERBQSKAB.js +142 -0
  323. package/dist/setup-links-ERBQSKAB.js.map +1 -0
  324. package/dist/site-PNVFJRYK.js +178 -0
  325. package/dist/site-PNVFJRYK.js.map +1 -0
  326. package/dist/sources-DMZJPLKC.js +455 -0
  327. package/dist/sources-DMZJPLKC.js.map +1 -0
  328. package/dist/sources-HN3GCEDX.js +30 -0
  329. package/dist/stale-VWN25WTL.js +72 -0
  330. package/dist/stale-VWN25WTL.js.map +1 -0
  331. package/dist/stats-CVF6AC7R.js +34 -0
  332. package/dist/status-SF7DTPCJ.js +63 -0
  333. package/dist/status-SF7DTPCJ.js.map +1 -0
  334. package/dist/stock-4LPQ6SM7.js +179 -0
  335. package/dist/studio-NZ6WQ7OE.js +49 -0
  336. package/dist/suggest-WMMEQCUH.js +66 -0
  337. package/dist/suggest-WMMEQCUH.js.map +1 -0
  338. package/dist/sync-F7VNZLWY.js +55 -0
  339. package/dist/sync-F7VNZLWY.js.map +1 -0
  340. package/dist/sync-HVNDPBOD.js +55 -0
  341. package/dist/sync-HVNDPBOD.js.map +1 -0
  342. package/dist/sync-definition-CKEUYKWN.js +65 -0
  343. package/dist/tag-KTQ2FV5C.js +57 -0
  344. package/dist/tag-KTQ2FV5C.js.map +1 -0
  345. package/dist/tag-manager-FLXXLNKP.js +43 -0
  346. package/dist/tags-EUOOSAKN.js +26 -0
  347. package/dist/tags-KOMAP2G5.js +21 -0
  348. package/dist/tags-KOMAP2G5.js.map +1 -0
  349. package/dist/tags-TKXJGTR3.js +21 -0
  350. package/dist/tags-TKXJGTR3.js.map +1 -0
  351. package/dist/tags-VWIPDCUA.js +225 -0
  352. package/dist/tags-VWIPDCUA.js.map +1 -0
  353. package/dist/tags-XAB4HWGW.js +21 -0
  354. package/dist/tags-XAB4HWGW.js.map +1 -0
  355. package/dist/targeting-criteria-HE7K52WN.js +113 -0
  356. package/dist/targets-NA4XPDBF.js +104 -0
  357. package/dist/targets-NA4XPDBF.js.map +1 -0
  358. package/dist/testimonials-3Q5XM7JD.js +32 -0
  359. package/dist/top-companies-TKO4QGPJ.js +109 -0
  360. package/dist/top-companies-TKO4QGPJ.js.map +1 -0
  361. package/dist/translate-YVIZ5T44.js +605 -0
  362. package/dist/translate-YVIZ5T44.js.map +1 -0
  363. package/dist/triggers-QX7VW7UO.js +143 -0
  364. package/dist/triggers-QX7VW7UO.js.map +1 -0
  365. package/dist/unlink-64SRPUNG.js +68 -0
  366. package/dist/unlink-64SRPUNG.js.map +1 -0
  367. package/dist/unstage-5X2MOUMF.js +86 -0
  368. package/dist/unstage-5X2MOUMF.js.map +1 -0
  369. package/dist/update-22ZBHURE.js +81 -0
  370. package/dist/update-22ZBHURE.js.map +1 -0
  371. package/dist/update-2LTPSGWT.js +99 -0
  372. package/dist/update-2LTPSGWT.js.map +1 -0
  373. package/dist/update-DOKS7ATM.js +189 -0
  374. package/dist/update-DOKS7ATM.js.map +1 -0
  375. package/dist/update-FB6X463M.js +64 -0
  376. package/dist/update-FB6X463M.js.map +1 -0
  377. package/dist/update-QIZ7XFAM.js +153 -0
  378. package/dist/update-QIZ7XFAM.js.map +1 -0
  379. package/dist/upload-XJ7TUVIK.js +127 -0
  380. package/dist/upload-XJ7TUVIK.js.map +1 -0
  381. package/dist/url-params-KLQOLNPS.js +99 -0
  382. package/dist/url-params-KLQOLNPS.js.map +1 -0
  383. package/dist/validate-YTBJBG44.js +118 -0
  384. package/dist/validate-YTBJBG44.js.map +1 -0
  385. package/dist/videos-WAPUPJVT.js +39 -0
  386. package/dist/viewer-check-GHQA3UY2.js +81 -0
  387. package/dist/web-6JMWERTT.js +141 -0
  388. package/dist/web-6JMWERTT.js.map +1 -0
  389. package/dist/winning-ads-XCVUAIOU.js +86 -0
  390. package/dist/write-commands-N74CDMQM.js +1493 -0
  391. package/dist/write-commands-N74CDMQM.js.map +1 -0
  392. package/dist/x-SI4KYDEY.js +47 -0
  393. package/package.json +1 -1
  394. package/dist/account-UHNR5KTE.js +0 -79
  395. package/dist/account-UHNR5KTE.js.map +0 -1
  396. package/dist/accounts-KMLXHADA.js +0 -77
  397. package/dist/accounts-KMLXHADA.js.map +0 -1
  398. package/dist/accounts-QDGNTSTV.js +0 -611
  399. package/dist/accounts-QDGNTSTV.js.map +0 -1
  400. package/dist/actions-QL5UD2W4.js +0 -55
  401. package/dist/activecampaign-5OD45ROS.js +0 -935
  402. package/dist/activecampaign-5OD45ROS.js.map +0 -1
  403. package/dist/add-2F7BEVYD.js +0 -105
  404. package/dist/add-2F7BEVYD.js.map +0 -1
  405. package/dist/add-6K6LO7CM.js +0 -104
  406. package/dist/add-6K6LO7CM.js.map +0 -1
  407. package/dist/add-LYDJZDGO.js +0 -302
  408. package/dist/add-LYDJZDGO.js.map +0 -1
  409. package/dist/ads-DHPJFU52.js +0 -40
  410. package/dist/advertisers-23LU7GTV.js +0 -120
  411. package/dist/advertisers-23LU7GTV.js.map +0 -1
  412. package/dist/analytics-HO2SLL4W.js +0 -433
  413. package/dist/analytics-HO2SLL4W.js.map +0 -1
  414. package/dist/analytics-LD3D7ISK.js +0 -1976
  415. package/dist/analytics-LD3D7ISK.js.map +0 -1
  416. package/dist/assign-CLKJKH2B.js +0 -77
  417. package/dist/assign-CLKJKH2B.js.map +0 -1
  418. package/dist/audience-size-NNYYXODL.js +0 -73
  419. package/dist/audience-size-NNYYXODL.js.map +0 -1
  420. package/dist/audit-KB4P2XGS.js +0 -151
  421. package/dist/audit-KB4P2XGS.js.map +0 -1
  422. package/dist/autocomplete-VZD2SMTE.js +0 -111
  423. package/dist/autocomplete-VZD2SMTE.js.map +0 -1
  424. package/dist/avatars-FKOO6VZ2.js +0 -38
  425. package/dist/bid-pricing-6LLXOLLI.js +0 -100
  426. package/dist/bid-pricing-6LLXOLLI.js.map +0 -1
  427. package/dist/brand-NNWHBIAX.js +0 -22
  428. package/dist/brief-CPJQWT6W.js +0 -538
  429. package/dist/brief-CPJQWT6W.js.map +0 -1
  430. package/dist/campaign-groups-YPYNXOWU.js +0 -95
  431. package/dist/campaign-groups-YPYNXOWU.js.map +0 -1
  432. package/dist/campaign-writes-UJ4L2O6G.js +0 -165
  433. package/dist/campaign-writes-UJ4L2O6G.js.map +0 -1
  434. package/dist/campaigns-HLBZRH5A.js +0 -107
  435. package/dist/campaigns-N44ZDGB5.js +0 -109
  436. package/dist/campaigns-N44ZDGB5.js.map +0 -1
  437. package/dist/canvas-D64GLWUO.js +0 -46
  438. package/dist/capabilities-LWXCWMIY.js +0 -144
  439. package/dist/capabilities-LWXCWMIY.js.map +0 -1
  440. package/dist/chatgpt-YI6YNACI.js +0 -47
  441. package/dist/chats-7WGC2CVW.js +0 -276
  442. package/dist/chats-7WGC2CVW.js.map +0 -1
  443. package/dist/check-EH6BXWWL.js +0 -104
  444. package/dist/check-EH6BXWWL.js.map +0 -1
  445. package/dist/chunk-2B772ZEA.js +0 -169
  446. package/dist/chunk-2KRK667G.js +0 -51
  447. package/dist/chunk-2TVXJPGR.js +0 -103
  448. package/dist/chunk-3AMLOCXY.js +0 -392
  449. package/dist/chunk-3B5LPK6D.js +0 -658
  450. package/dist/chunk-3B5LPK6D.js.map +0 -1
  451. package/dist/chunk-3N5A44NQ.js +0 -122
  452. package/dist/chunk-3WAYZQNV.js +0 -61
  453. package/dist/chunk-5A257KJA.js +0 -160
  454. package/dist/chunk-6QGS3RQP.js +0 -363
  455. package/dist/chunk-AFD32O4A.js +0 -494
  456. package/dist/chunk-AW2GKIGS.js +0 -433
  457. package/dist/chunk-CYSBNCPX.js +0 -55
  458. package/dist/chunk-CYSBNCPX.js.map +0 -1
  459. package/dist/chunk-DAO63OOP.js +0 -6352
  460. package/dist/chunk-DAO63OOP.js.map +0 -1
  461. package/dist/chunk-EMQUW6JB.js +0 -942
  462. package/dist/chunk-EW3JEKIV.js +0 -139
  463. package/dist/chunk-FBFWMTOP.js +0 -19
  464. package/dist/chunk-GXDLWBOY.js +0 -73
  465. package/dist/chunk-GXDLWBOY.js.map +0 -1
  466. package/dist/chunk-GXGYTFZA.js +0 -8939
  467. package/dist/chunk-I7J7YQXZ.js +0 -142
  468. package/dist/chunk-IBY44U2M.js +0 -1079
  469. package/dist/chunk-IFXGCI33.js +0 -297
  470. package/dist/chunk-IKLHXGMF.js +0 -91
  471. package/dist/chunk-IYTPWAN3.js +0 -604
  472. package/dist/chunk-J3CWAERS.js +0 -3868
  473. package/dist/chunk-JH2L5CQD.js +0 -206
  474. package/dist/chunk-JUVVCA7B.js +0 -97
  475. package/dist/chunk-MK6XJUCQ.js +0 -197
  476. package/dist/chunk-N3I6ZXR7.js +0 -66
  477. package/dist/chunk-NBO2NSAW.js +0 -592
  478. package/dist/chunk-NEU5QD2C.js +0 -249
  479. package/dist/chunk-NKIBXOHT.js +0 -344
  480. package/dist/chunk-OE3MIV4F.js +0 -547
  481. package/dist/chunk-P2MFWJR3.js +0 -903
  482. package/dist/chunk-PHCIFBP3.js +0 -89
  483. package/dist/chunk-PTUXBO5O.js +0 -224
  484. package/dist/chunk-Q3LXLWZY.js +0 -275
  485. package/dist/chunk-Q5WBTVA7.js +0 -455
  486. package/dist/chunk-RDEAVCMF.js +0 -399
  487. package/dist/chunk-RDEAVCMF.js.map +0 -1
  488. package/dist/chunk-RGMKXNQP.js +0 -23
  489. package/dist/chunk-RZTKCCUL.js +0 -831
  490. package/dist/chunk-TTKBNBQF.js +0 -156
  491. package/dist/chunk-VB3XUR6A.js +0 -207
  492. package/dist/chunk-XCKINS7K.js +0 -57
  493. package/dist/chunk-Y6GKV7CU.js +0 -346
  494. package/dist/chunk-Y6GKV7CU.js.map +0 -1
  495. package/dist/chunk-Z2GQREJY.js +0 -159
  496. package/dist/chunk-ZDAVSTEE.js +0 -172
  497. package/dist/chunk-ZXCSOVS5.js +0 -191
  498. package/dist/claim-SVDCQ2AI.js +0 -197
  499. package/dist/claim-SVDCQ2AI.js.map +0 -1
  500. package/dist/companies-BYMYQK6A.js +0 -195
  501. package/dist/companies-BYMYQK6A.js.map +0 -1
  502. package/dist/complete-NEH3MWRI.js +0 -81
  503. package/dist/complete-NEH3MWRI.js.map +0 -1
  504. package/dist/connect-5PGL7ZOM.js +0 -42
  505. package/dist/conversation-CSOKJXDW.js +0 -93
  506. package/dist/conversation-CSOKJXDW.js.map +0 -1
  507. package/dist/conversions-4JOTTFEH.js +0 -135
  508. package/dist/conversions-4JOTTFEH.js.map +0 -1
  509. package/dist/create-2XYMBULY.js +0 -207
  510. package/dist/create-2XYMBULY.js.map +0 -1
  511. package/dist/create-56PTZABQ.js +0 -235
  512. package/dist/create-56PTZABQ.js.map +0 -1
  513. package/dist/create-D6S6TGWY.js +0 -59
  514. package/dist/create-D6S6TGWY.js.map +0 -1
  515. package/dist/create-SMW4O5PC.js +0 -132
  516. package/dist/create-SMW4O5PC.js.map +0 -1
  517. package/dist/creatives-OO76DAFS.js +0 -58
  518. package/dist/creatives-VJUYWJL6.js +0 -182
  519. package/dist/creatives-VJUYWJL6.js.map +0 -1
  520. package/dist/credentials-2ONYUJW6.js +0 -287
  521. package/dist/credentials-2ONYUJW6.js.map +0 -1
  522. package/dist/critique-NDDFSGPE.js +0 -1458
  523. package/dist/critique-NDDFSGPE.js.map +0 -1
  524. package/dist/critique-YXZVMLZ4.js +0 -227
  525. package/dist/critique-YXZVMLZ4.js.map +0 -1
  526. package/dist/crm-Q6CEP5XV.js +0 -224
  527. package/dist/crm-Q6CEP5XV.js.map +0 -1
  528. package/dist/crm-WRONZYDH.js +0 -318
  529. package/dist/crm-WRONZYDH.js.map +0 -1
  530. package/dist/customers-2EFYSCU2.js +0 -56
  531. package/dist/delete-7WEVC3FS.js +0 -66
  532. package/dist/delete-7WEVC3FS.js.map +0 -1
  533. package/dist/delete-RBWK255M.js +0 -54
  534. package/dist/delete-RBWK255M.js.map +0 -1
  535. package/dist/delete-VN4WWMQF.js +0 -64
  536. package/dist/delete-VN4WWMQF.js.map +0 -1
  537. package/dist/demographics-I5XZ435C.js +0 -138
  538. package/dist/demographics-I5XZ435C.js.map +0 -1
  539. package/dist/discard-XJLIXTNM.js +0 -66
  540. package/dist/discard-XJLIXTNM.js.map +0 -1
  541. package/dist/domain-M7AEGAYI.js +0 -98
  542. package/dist/domain-M7AEGAYI.js.map +0 -1
  543. package/dist/draft-5DQI4W5F.js +0 -306
  544. package/dist/draft-5DQI4W5F.js.map +0 -1
  545. package/dist/draft-7IIYHSY2.js +0 -332
  546. package/dist/draft-7IIYHSY2.js.map +0 -1
  547. package/dist/draft-CN6GKVBF.js +0 -217
  548. package/dist/draft-CN6GKVBF.js.map +0 -1
  549. package/dist/experiment-IDDWRCJ7.js +0 -1397
  550. package/dist/facets-ZLZ6LIHN.js +0 -114
  551. package/dist/facets-ZLZ6LIHN.js.map +0 -1
  552. package/dist/feedback-7LEX2P5Q.js +0 -106
  553. package/dist/feedback-7LEX2P5Q.js.map +0 -1
  554. package/dist/feedback-record-P4JJ63KA.js +0 -260
  555. package/dist/feedback-record-P4JJ63KA.js.map +0 -1
  556. package/dist/fetch-MIVCEHXZ.js +0 -176
  557. package/dist/fetch-MIVCEHXZ.js.map +0 -1
  558. package/dist/find-VHN34MWL.js +0 -134
  559. package/dist/fit-SS6HSZPU.js +0 -62
  560. package/dist/flows-UTIIHDNE.js +0 -247
  561. package/dist/flows-UTIIHDNE.js.map +0 -1
  562. package/dist/fonts-YPNN7ZJP.js +0 -36
  563. package/dist/forecast-OBSHG2GJ.js +0 -118
  564. package/dist/forecast-OBSHG2GJ.js.map +0 -1
  565. package/dist/funnel-A4MXQYBA.js +0 -394
  566. package/dist/funnel-A4MXQYBA.js.map +0 -1
  567. package/dist/ga4-ZPAEF2G2.js +0 -55
  568. package/dist/get-MDAO6I7T.js +0 -56
  569. package/dist/get-MDAO6I7T.js.map +0 -1
  570. package/dist/get-ZB553BSH.js +0 -79
  571. package/dist/get-ZB553BSH.js.map +0 -1
  572. package/dist/google-C3X7O2UO.js +0 -136
  573. package/dist/google-ads-FTWL772L.js +0 -195
  574. package/dist/google-ads-FTWL772L.js.map +0 -1
  575. package/dist/gsc-SDDHGTZK.js +0 -30
  576. package/dist/history-WKJYKDMG.js +0 -133
  577. package/dist/history-WKJYKDMG.js.map +0 -1
  578. package/dist/hubspot-EPHVEPOO.js +0 -779
  579. package/dist/hubspot-EPHVEPOO.js.map +0 -1
  580. package/dist/icon-MYPDC6FM.js +0 -137
  581. package/dist/ideas-3PBH7VEX.js +0 -40
  582. package/dist/images-J35C3WG4.js +0 -92
  583. package/dist/ingest-5QOPUKFE.js +0 -107
  584. package/dist/ingest-5QOPUKFE.js.map +0 -1
  585. package/dist/ingest-OKUYP632.js +0 -23
  586. package/dist/inspect-PMNCP6MV.js +0 -189
  587. package/dist/inspect-PMNCP6MV.js.map +0 -1
  588. package/dist/inspiration-QAL7NS7G.js +0 -53
  589. package/dist/keyword-metrics-R752SJIT.js +0 -197
  590. package/dist/keyword-metrics-R752SJIT.js.map +0 -1
  591. package/dist/keywords-for-site-7UWPJYQF.js +0 -128
  592. package/dist/keywords-for-site-7UWPJYQF.js.map +0 -1
  593. package/dist/landing-CBVIOGJ5.js +0 -28
  594. package/dist/leads-LIJS6Y5W.js +0 -90
  595. package/dist/leads-LIJS6Y5W.js.map +0 -1
  596. package/dist/learn-N6QV7GXA.js +0 -204
  597. package/dist/learn-N6QV7GXA.js.map +0 -1
  598. package/dist/line-item-writes-3WPJXKIL.js +0 -208
  599. package/dist/line-item-writes-3WPJXKIL.js.map +0 -1
  600. package/dist/line-items-ZOFKOGAA.js +0 -103
  601. package/dist/link-DDRQKOUL.js +0 -64
  602. package/dist/link-DDRQKOUL.js.map +0 -1
  603. package/dist/linkedin-UWZCF66X.js +0 -1057
  604. package/dist/linkedin-UWZCF66X.js.map +0 -1
  605. package/dist/list-5PLXVPLB.js +0 -151
  606. package/dist/list-5PLXVPLB.js.map +0 -1
  607. package/dist/list-RC2NX6AX.js +0 -50
  608. package/dist/list-VSJISE7U.js +0 -303
  609. package/dist/list-VSJISE7U.js.map +0 -1
  610. package/dist/list-WTVOBQYX.js +0 -64
  611. package/dist/list-WTVOBQYX.js.map +0 -1
  612. package/dist/log-YKKPROLZ.js +0 -92
  613. package/dist/log-YKKPROLZ.js.map +0 -1
  614. package/dist/logo-WE2UELX6.js +0 -18
  615. package/dist/make-RNOWBLZQ.js +0 -1353
  616. package/dist/make-RNOWBLZQ.js.map +0 -1
  617. package/dist/map-WTDPQLVO.js +0 -433
  618. package/dist/map-WTDPQLVO.js.map +0 -1
  619. package/dist/mcp-XJNSCPP3.js +0 -714
  620. package/dist/mcp-XJNSCPP3.js.map +0 -1
  621. package/dist/media-sources-JGBDDXZ5.js +0 -32
  622. package/dist/media-sources-JGBDDXZ5.js.map +0 -1
  623. package/dist/members-O3BTMRXX.js +0 -44
  624. package/dist/members-O3BTMRXX.js.map +0 -1
  625. package/dist/normalize-R5AYLA2J.js +0 -141
  626. package/dist/normalize-R5AYLA2J.js.map +0 -1
  627. package/dist/options-AILRY7JY.js +0 -122
  628. package/dist/options-AILRY7JY.js.map +0 -1
  629. package/dist/organization-KJJXZLVK.js +0 -946
  630. package/dist/organization-KJJXZLVK.js.map +0 -1
  631. package/dist/performance-7YU4HOGH.js +0 -24
  632. package/dist/promoted-tweet-writes-TNELWPVG.js +0 -180
  633. package/dist/promoted-tweet-writes-TNELWPVG.js.map +0 -1
  634. package/dist/promoted-tweets-76WKUFJQ.js +0 -119
  635. package/dist/publish-BKLHCKHB.js +0 -341
  636. package/dist/publish-BKLHCKHB.js.map +0 -1
  637. package/dist/reddit-YK3YUZEI.js +0 -26
  638. package/dist/refresh-WIII7KXB.js +0 -94
  639. package/dist/refresh-WIII7KXB.js.map +0 -1
  640. package/dist/release-ZHXYQI7G.js +0 -60
  641. package/dist/release-ZHXYQI7G.js.map +0 -1
  642. package/dist/remove-NOX4BXWK.js +0 -50
  643. package/dist/remove-NOX4BXWK.js.map +0 -1
  644. package/dist/remove-VLWRCOEZ.js +0 -48
  645. package/dist/remove-VLWRCOEZ.js.map +0 -1
  646. package/dist/reopen-NLWKK5HB.js +0 -63
  647. package/dist/reopen-NLWKK5HB.js.map +0 -1
  648. package/dist/rerun-DZWQNMZQ.js +0 -90
  649. package/dist/rerun-DZWQNMZQ.js.map +0 -1
  650. package/dist/research-Q3P76RHN.js +0 -62
  651. package/dist/research-UDZBCDNX.js +0 -262
  652. package/dist/research-UDZBCDNX.js.map +0 -1
  653. package/dist/reset-5UHFX7QY.js +0 -54
  654. package/dist/reset-5UHFX7QY.js.map +0 -1
  655. package/dist/reset-MTRJQUP7.js +0 -54
  656. package/dist/reset-MTRJQUP7.js.map +0 -1
  657. package/dist/resolve-DA72VT7Q.js +0 -121
  658. package/dist/resolve-DA72VT7Q.js.map +0 -1
  659. package/dist/retry-LQUBX5TK.js +0 -62
  660. package/dist/retry-LQUBX5TK.js.map +0 -1
  661. package/dist/retry-U6F4CS6O.js +0 -60
  662. package/dist/retry-U6F4CS6O.js.map +0 -1
  663. package/dist/rules-VS5PZ7VO.js +0 -96
  664. package/dist/rules-VS5PZ7VO.js.map +0 -1
  665. package/dist/rules-add-LMVZYDXE.js +0 -462
  666. package/dist/rules-add-LMVZYDXE.js.map +0 -1
  667. package/dist/run-6PRA2YSD.js +0 -65
  668. package/dist/run-R6COFNOR.js +0 -66
  669. package/dist/run-R6COFNOR.js.map +0 -1
  670. package/dist/scaffold-ad-3OVJ7VZQ.js +0 -1511
  671. package/dist/scaffold-ad-3OVJ7VZQ.js.map +0 -1
  672. package/dist/scaffold-static-ad-DDRA3Q5I.js +0 -1005
  673. package/dist/scaffold-static-ad-DDRA3Q5I.js.map +0 -1
  674. package/dist/scaffold-video-3JZYFYFU.js +0 -883
  675. package/dist/scaffold-video-3JZYFYFU.js.map +0 -1
  676. package/dist/schedule-BRSYHMKR.js +0 -66
  677. package/dist/schedule-BRSYHMKR.js.map +0 -1
  678. package/dist/schedule-ED2YDUPY.js +0 -61
  679. package/dist/schedule-ED2YDUPY.js.map +0 -1
  680. package/dist/scheduled-agents-5P67MVGX.js +0 -50
  681. package/dist/schema-4XVKERSA.js +0 -132
  682. package/dist/schema-4XVKERSA.js.map +0 -1
  683. package/dist/schema-RRAQW3OS.js +0 -69
  684. package/dist/search-Y2UMIQ57.js +0 -174
  685. package/dist/search-Y2UMIQ57.js.map +0 -1
  686. package/dist/select-OZ4E6VLF.js +0 -101
  687. package/dist/select-OZ4E6VLF.js.map +0 -1
  688. package/dist/set-prompt-O4YAE4CE.js +0 -193
  689. package/dist/set-prompt-O4YAE4CE.js.map +0 -1
  690. package/dist/setup-links-2GJYCV2A.js +0 -141
  691. package/dist/setup-links-2GJYCV2A.js.map +0 -1
  692. package/dist/site-47B6V2UX.js +0 -177
  693. package/dist/site-47B6V2UX.js.map +0 -1
  694. package/dist/sources-DXPZAPQ7.js +0 -454
  695. package/dist/sources-DXPZAPQ7.js.map +0 -1
  696. package/dist/sources-NDXYTASG.js +0 -30
  697. package/dist/stale-VLVBO2L6.js +0 -71
  698. package/dist/stale-VLVBO2L6.js.map +0 -1
  699. package/dist/stats-37OFAMPW.js +0 -34
  700. package/dist/status-4ODD46XY.js +0 -62
  701. package/dist/status-4ODD46XY.js.map +0 -1
  702. package/dist/stock-6R5E7MJX.js +0 -179
  703. package/dist/studio-LEIGL3Q7.js +0 -49
  704. package/dist/sync-EKGEWE53.js +0 -54
  705. package/dist/sync-EKGEWE53.js.map +0 -1
  706. package/dist/sync-TKNVBUDM.js +0 -54
  707. package/dist/sync-TKNVBUDM.js.map +0 -1
  708. package/dist/sync-definition-M5R3H3TP.js +0 -64
  709. package/dist/tag-manager-3Q55PBEW.js +0 -43
  710. package/dist/tags-4N5UUUN6.js +0 -26
  711. package/dist/tags-5NHIAD5A.js +0 -20
  712. package/dist/tags-5NHIAD5A.js.map +0 -1
  713. package/dist/tags-UUKWSWCN.js +0 -20
  714. package/dist/tags-UUKWSWCN.js.map +0 -1
  715. package/dist/tags-VK7B5DJF.js +0 -20
  716. package/dist/tags-VK7B5DJF.js.map +0 -1
  717. package/dist/tags-XAHIB3WA.js +0 -224
  718. package/dist/tags-XAHIB3WA.js.map +0 -1
  719. package/dist/targeting-criteria-AVARWV2G.js +0 -113
  720. package/dist/targets-6RYLQRID.js +0 -103
  721. package/dist/targets-6RYLQRID.js.map +0 -1
  722. package/dist/testimonials-6TF6BOFN.js +0 -32
  723. package/dist/top-companies-45EHRCJD.js +0 -108
  724. package/dist/top-companies-45EHRCJD.js.map +0 -1
  725. package/dist/translate-VHLBACCE.js +0 -604
  726. package/dist/translate-VHLBACCE.js.map +0 -1
  727. package/dist/triggers-ERQONJNO.js +0 -142
  728. package/dist/triggers-ERQONJNO.js.map +0 -1
  729. package/dist/unlink-TPDO6JNF.js +0 -67
  730. package/dist/unlink-TPDO6JNF.js.map +0 -1
  731. package/dist/unstage-YKKQQ7LW.js +0 -85
  732. package/dist/unstage-YKKQQ7LW.js.map +0 -1
  733. package/dist/update-43WU6X7R.js +0 -63
  734. package/dist/update-43WU6X7R.js.map +0 -1
  735. package/dist/update-CAHLAXWO.js +0 -98
  736. package/dist/update-CAHLAXWO.js.map +0 -1
  737. package/dist/update-NGH6YADN.js +0 -152
  738. package/dist/update-NGH6YADN.js.map +0 -1
  739. package/dist/update-SPJIHHLE.js +0 -188
  740. package/dist/update-SPJIHHLE.js.map +0 -1
  741. package/dist/upload-ACESIZIZ.js +0 -126
  742. package/dist/upload-ACESIZIZ.js.map +0 -1
  743. package/dist/url-params-MIXEDBF7.js +0 -98
  744. package/dist/url-params-MIXEDBF7.js.map +0 -1
  745. package/dist/validate-XJJA7ULE.js +0 -117
  746. package/dist/validate-XJJA7ULE.js.map +0 -1
  747. package/dist/videos-LBXPG7WC.js +0 -39
  748. package/dist/viewer-check-7VJ3GUZX.js +0 -80
  749. package/dist/web-EWQJC2SD.js +0 -140
  750. package/dist/web-EWQJC2SD.js.map +0 -1
  751. package/dist/winning-ads-SAOJAKEQ.js +0 -86
  752. package/dist/write-commands-QPDE4GWW.js +0 -1024
  753. package/dist/write-commands-QPDE4GWW.js.map +0 -1
  754. package/dist/x-LXOJPCRF.js +0 -47
  755. /package/dist/{actions-QL5UD2W4.js.map → actions-FMNJSOBA.js.map} +0 -0
  756. /package/dist/{ads-DHPJFU52.js.map → ads-OLXSDPD6.js.map} +0 -0
  757. /package/dist/{avatars-FKOO6VZ2.js.map → avatars-I4H3NMEJ.js.map} +0 -0
  758. /package/dist/{brand-NNWHBIAX.js.map → brand-3V7ECY7D.js.map} +0 -0
  759. /package/dist/{campaigns-HLBZRH5A.js.map → campaigns-MCB76NPQ.js.map} +0 -0
  760. /package/dist/{canvas-D64GLWUO.js.map → canvas-JCNKMGCG.js.map} +0 -0
  761. /package/dist/{chatgpt-YI6YNACI.js.map → chatgpt-XFZ42NXC.js.map} +0 -0
  762. /package/dist/{chunk-VB3XUR6A.js.map → chunk-2YTBPRRG.js.map} +0 -0
  763. /package/dist/{chunk-JUVVCA7B.js.map → chunk-3SNCMEJB.js.map} +0 -0
  764. /package/dist/{chunk-RGMKXNQP.js.map → chunk-7QGFO35A.js.map} +0 -0
  765. /package/dist/{chunk-ZXCSOVS5.js.map → chunk-AV7ALENU.js.map} +0 -0
  766. /package/dist/{chunk-IYTPWAN3.js.map → chunk-BRLFQ4VX.js.map} +0 -0
  767. /package/dist/{chunk-RZTKCCUL.js.map → chunk-DJE7UXYT.js.map} +0 -0
  768. /package/dist/{chunk-EW3JEKIV.js.map → chunk-EFWXYUSK.js.map} +0 -0
  769. /package/dist/{chunk-J3CWAERS.js.map → chunk-EONSZAZB.js.map} +0 -0
  770. /package/dist/{chunk-PHCIFBP3.js.map → chunk-FG3MV2XM.js.map} +0 -0
  771. /package/dist/{chunk-3AMLOCXY.js.map → chunk-FKG476GH.js.map} +0 -0
  772. /package/dist/{chunk-IFXGCI33.js.map → chunk-FUGQSIYG.js.map} +0 -0
  773. /package/dist/{chunk-Q3LXLWZY.js.map → chunk-HPLHAHG5.js.map} +0 -0
  774. /package/dist/{chunk-3N5A44NQ.js.map → chunk-I24YT2KG.js.map} +0 -0
  775. /package/dist/{chunk-P2MFWJR3.js.map → chunk-IFDZZOUC.js.map} +0 -0
  776. /package/dist/{chunk-Q5WBTVA7.js.map → chunk-JVVUI55M.js.map} +0 -0
  777. /package/dist/{chunk-6QGS3RQP.js.map → chunk-KKSHEPBY.js.map} +0 -0
  778. /package/dist/{chunk-OE3MIV4F.js.map → chunk-KQ7RCLGC.js.map} +0 -0
  779. /package/dist/{chunk-ZDAVSTEE.js.map → chunk-L7WMS5PW.js.map} +0 -0
  780. /package/dist/{chunk-FBFWMTOP.js.map → chunk-LBRO4MTL.js.map} +0 -0
  781. /package/dist/{chunk-PTUXBO5O.js.map → chunk-LNRPOULW.js.map} +0 -0
  782. /package/dist/{chunk-EMQUW6JB.js.map → chunk-LX6WC2XZ.js.map} +0 -0
  783. /package/dist/{chunk-I7J7YQXZ.js.map → chunk-MMGTJBM6.js.map} +0 -0
  784. /package/dist/{chunk-2KRK667G.js.map → chunk-OEZYSL3U.js.map} +0 -0
  785. /package/dist/{chunk-2TVXJPGR.js.map → chunk-OOVHBMQB.js.map} +0 -0
  786. /package/dist/{chunk-Z2GQREJY.js.map → chunk-PTH7VWKK.js.map} +0 -0
  787. /package/dist/{chunk-N3I6ZXR7.js.map → chunk-QZF4BVKL.js.map} +0 -0
  788. /package/dist/{chunk-3WAYZQNV.js.map → chunk-RITUSBYO.js.map} +0 -0
  789. /package/dist/{chunk-JH2L5CQD.js.map → chunk-SSTL3A7Z.js.map} +0 -0
  790. /package/dist/{chunk-2B772ZEA.js.map → chunk-TD4SO6TR.js.map} +0 -0
  791. /package/dist/{chunk-IKLHXGMF.js.map → chunk-UZ4RTOFG.js.map} +0 -0
  792. /package/dist/{chunk-NBO2NSAW.js.map → chunk-VAX7PFQV.js.map} +0 -0
  793. /package/dist/{chunk-AFD32O4A.js.map → chunk-VDRSZK4P.js.map} +0 -0
  794. /package/dist/{chunk-NKIBXOHT.js.map → chunk-VNU2EYD4.js.map} +0 -0
  795. /package/dist/{chunk-TTKBNBQF.js.map → chunk-WT4WDIXA.js.map} +0 -0
  796. /package/dist/{chunk-5A257KJA.js.map → chunk-XEX23CIB.js.map} +0 -0
  797. /package/dist/{chunk-GXGYTFZA.js.map → chunk-XXDF25BW.js.map} +0 -0
  798. /package/dist/{chunk-NEU5QD2C.js.map → chunk-YJ3LSFMX.js.map} +0 -0
  799. /package/dist/{chunk-MK6XJUCQ.js.map → chunk-YVK5RT3B.js.map} +0 -0
  800. /package/dist/{chunk-AW2GKIGS.js.map → chunk-YWWRLZUR.js.map} +0 -0
  801. /package/dist/{chunk-XCKINS7K.js.map → chunk-Z4S5BCVZ.js.map} +0 -0
  802. /package/dist/{chunk-IBY44U2M.js.map → chunk-ZYGK7GAK.js.map} +0 -0
  803. /package/dist/{connect-5PGL7ZOM.js.map → connect-COS6G45S.js.map} +0 -0
  804. /package/dist/{creatives-OO76DAFS.js.map → creatives-SEQHJD2M.js.map} +0 -0
  805. /package/dist/{customers-2EFYSCU2.js.map → customers-LMSX33FO.js.map} +0 -0
  806. /package/dist/{experiment-IDDWRCJ7.js.map → experiment-7RJ5X2LL.js.map} +0 -0
  807. /package/dist/{find-VHN34MWL.js.map → find-2EPXK5RF.js.map} +0 -0
  808. /package/dist/{fit-SS6HSZPU.js.map → fit-W7UNFZT5.js.map} +0 -0
  809. /package/dist/{fonts-YPNN7ZJP.js.map → fonts-N42UYWTX.js.map} +0 -0
  810. /package/dist/{ga4-ZPAEF2G2.js.map → ga4-6EIQC2TG.js.map} +0 -0
  811. /package/dist/{google-C3X7O2UO.js.map → google-O5OI6QFU.js.map} +0 -0
  812. /package/dist/{gsc-SDDHGTZK.js.map → gsc-BM3T2GDL.js.map} +0 -0
  813. /package/dist/{icon-MYPDC6FM.js.map → icon-B7DG53S5.js.map} +0 -0
  814. /package/dist/{ideas-3PBH7VEX.js.map → ideas-DYN2DMFN.js.map} +0 -0
  815. /package/dist/{images-J35C3WG4.js.map → images-EQCUXEHF.js.map} +0 -0
  816. /package/dist/{ingest-OKUYP632.js.map → ingest-B46AY3QU.js.map} +0 -0
  817. /package/dist/{inspiration-QAL7NS7G.js.map → inspiration-TCCKM4R7.js.map} +0 -0
  818. /package/dist/{landing-CBVIOGJ5.js.map → landing-WVPA7NBR.js.map} +0 -0
  819. /package/dist/{line-items-ZOFKOGAA.js.map → line-items-OEWYOPFP.js.map} +0 -0
  820. /package/dist/{list-RC2NX6AX.js.map → list-WRBWQASJ.js.map} +0 -0
  821. /package/dist/{logo-WE2UELX6.js.map → logo-QTSBKP2J.js.map} +0 -0
  822. /package/dist/{performance-7YU4HOGH.js.map → performance-HTU5FR2K.js.map} +0 -0
  823. /package/dist/{promoted-tweets-76WKUFJQ.js.map → promoted-tweets-TTWN5OMW.js.map} +0 -0
  824. /package/dist/{reddit-YK3YUZEI.js.map → reddit-6C3PT5CT.js.map} +0 -0
  825. /package/dist/{research-Q3P76RHN.js.map → research-YCMMQVK6.js.map} +0 -0
  826. /package/dist/{run-6PRA2YSD.js.map → run-SR7DJ7M5.js.map} +0 -0
  827. /package/dist/{scheduled-agents-5P67MVGX.js.map → scheduled-agents-N63EZNY6.js.map} +0 -0
  828. /package/dist/{schema-RRAQW3OS.js.map → schema-C6SGBNA6.js.map} +0 -0
  829. /package/dist/{sources-NDXYTASG.js.map → sources-HN3GCEDX.js.map} +0 -0
  830. /package/dist/{stats-37OFAMPW.js.map → stats-CVF6AC7R.js.map} +0 -0
  831. /package/dist/{stock-6R5E7MJX.js.map → stock-4LPQ6SM7.js.map} +0 -0
  832. /package/dist/{studio-LEIGL3Q7.js.map → studio-NZ6WQ7OE.js.map} +0 -0
  833. /package/dist/{sync-definition-M5R3H3TP.js.map → sync-definition-CKEUYKWN.js.map} +0 -0
  834. /package/dist/{tag-manager-3Q55PBEW.js.map → tag-manager-FLXXLNKP.js.map} +0 -0
  835. /package/dist/{tags-4N5UUUN6.js.map → tags-EUOOSAKN.js.map} +0 -0
  836. /package/dist/{targeting-criteria-AVARWV2G.js.map → targeting-criteria-HE7K52WN.js.map} +0 -0
  837. /package/dist/{testimonials-6TF6BOFN.js.map → testimonials-3Q5XM7JD.js.map} +0 -0
  838. /package/dist/{videos-LBXPG7WC.js.map → videos-WAPUPJVT.js.map} +0 -0
  839. /package/dist/{viewer-check-7VJ3GUZX.js.map → viewer-check-GHQA3UY2.js.map} +0 -0
  840. /package/dist/{winning-ads-SAOJAKEQ.js.map → winning-ads-XCVUAIOU.js.map} +0 -0
  841. /package/dist/{x-LXOJPCRF.js.map → x-SI4KYDEY.js.map} +0 -0
@@ -1,114 +0,0 @@
1
- import {
2
- csvOrJson,
3
- handleLinkedinError
4
- } from "./chunk-VB3XUR6A.js";
5
- import {
6
- writeAdsJson,
7
- writeAdsOutput
8
- } from "./chunk-2VIZ4UUZ.js";
9
- import {
10
- NO_CACHE_ARG
11
- } from "./chunk-U6RONIJC.js";
12
- import "./chunk-DAO63OOP.js";
13
- import "./chunk-GXDLWBOY.js";
14
- import "./chunk-GIWHHCD6.js";
15
- import "./chunk-XQIOCIDO.js";
16
- import "./chunk-WTJSMYY2.js";
17
- import {
18
- apiGet
19
- } from "./chunk-6YLNY6CK.js";
20
- import "./chunk-D5NEIESR.js";
21
- import "./chunk-57KKVDDR.js";
22
- import "./chunk-QANGHND7.js";
23
- import "./chunk-YQSBHWOI.js";
24
-
25
- // src/commands/ads/linkedin/facets.ts
26
- import { defineCommand } from "citty";
27
- var listCmd = defineCommand({
28
- meta: {
29
- name: "list",
30
- description: `List every targeting facet LinkedIn supports.
31
-
32
- Cached 7 days. Use this to discover what dimensions you can target on (industries,
33
- seniorities, titles, employers, growthRate, companyCategory, skills, etc.).`
34
- },
35
- args: {
36
- "no-cache": NO_CACHE_ARG,
37
- output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
38
- },
39
- run: async ({ args }) => {
40
- try {
41
- const params = {};
42
- if (args["no-cache"]) params["skip-cache"] = "true";
43
- const data = await apiGet("/api/ads/linkedin/facets", params);
44
- const fmt = csvOrJson(args);
45
- if (fmt !== "json") {
46
- writeAdsOutput(data, fmt);
47
- return;
48
- }
49
- writeAdsJson({ ok: true, data });
50
- } catch (err) {
51
- handleLinkedinError(err);
52
- }
53
- }
54
- });
55
- var valuesCmd = defineCommand({
56
- meta: {
57
- name: "values",
58
- description: `Look up entity values for a single facet \u2014 full list or typeahead search.
59
-
60
- Examples:
61
- baker ads linkedin facets values --facet seniorities \u2014 all seniority URNs
62
- baker ads linkedin facets values --facet titles --query "marketing director" \u2014 typeahead
63
- baker ads linkedin facets values --facet industries --output csv
64
-
65
- The --facet flag accepts the bare name (industries, seniorities, titles, etc.)
66
- or the full URN (urn:li:adTargetingFacet:industries).`
67
- },
68
- args: {
69
- facet: { type: "string", description: "Facet name (e.g. industries) or URN", required: true },
70
- query: { type: "string", description: "Typeahead query (auto-switches finder to typeahead)" },
71
- finder: { type: "string", description: "adTargetingFacet | typeahead | similarEntities (default: auto)" },
72
- locale: { type: "string", description: "Locale (default: en_US)" },
73
- "no-cache": NO_CACHE_ARG,
74
- output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
75
- },
76
- run: async ({ args }) => {
77
- try {
78
- const params = { facet: String(args.facet) };
79
- const finder = args.finder ?? (args.query ? "typeahead" : "adTargetingFacet");
80
- params.finder = finder;
81
- if (args.query) params.query = String(args.query);
82
- if (args.locale) params.locale = String(args.locale);
83
- if (args["no-cache"]) params["skip-cache"] = "true";
84
- const data = await apiGet("/api/ads/linkedin/facets/entities", params);
85
- const fmt = csvOrJson(args);
86
- if (fmt !== "json") {
87
- writeAdsOutput(data, fmt);
88
- return;
89
- }
90
- writeAdsJson({ ok: true, data });
91
- } catch (err) {
92
- handleLinkedinError(err);
93
- }
94
- }
95
- });
96
- var facetsCommand = defineCommand({
97
- meta: {
98
- name: "facets",
99
- description: `LinkedIn targeting facets and entity lookup.
100
-
101
- Subcommands:
102
- list \u2014 every facet (industries, seniorities, titles, employers, \u2026)
103
- values --facet titles \u2014 entity URNs for one facet
104
- values --facet titles --query "marketing director" \u2014 typeahead`
105
- },
106
- subCommands: {
107
- list: listCmd,
108
- values: valuesCmd
109
- }
110
- });
111
- export {
112
- facetsCommand
113
- };
114
- //# sourceMappingURL=facets-ZLZ6LIHN.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/ads/linkedin/facets.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiGet } from \"../../../client.ts\";\nimport { writeAdsJson, writeAdsOutput } from \"../output.ts\";\nimport { csvOrJson, handleLinkedinError } from \"./shared.ts\";\n\ninterface LinkedinFacet {\n facet: string;\n facetUrn: string;\n name: string;\n entityTypes?: string[];\n availableEntityFinders?: string[];\n}\n\ninterface LinkedinFacetEntity {\n urn: string;\n facet?: string;\n name?: string;\n parents?: string[];\n}\n\nconst listCmd = defineCommand({\n meta: {\n name: \"list\",\n description: `List every targeting facet LinkedIn supports.\n\nCached 7 days. Use this to discover what dimensions you can target on (industries,\nseniorities, titles, employers, growthRate, companyCategory, skills, etc.).`,\n },\n args: {\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n try {\n const params: Record<string, string> = {};\n if (args[\"no-cache\"]) params[\"skip-cache\"] = \"true\";\n const data = await apiGet<LinkedinFacet[]>(\"/api/ads/linkedin/facets\", params);\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(data as unknown as Array<Record<string, unknown>>, fmt);\n return;\n }\n writeAdsJson({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nconst valuesCmd = defineCommand({\n meta: {\n name: \"values\",\n description: `Look up entity values for a single facet — full list or typeahead search.\n\nExamples:\n baker ads linkedin facets values --facet seniorities — all seniority URNs\n baker ads linkedin facets values --facet titles --query \"marketing director\" — typeahead\n baker ads linkedin facets values --facet industries --output csv\n\nThe --facet flag accepts the bare name (industries, seniorities, titles, etc.)\nor the full URN (urn:li:adTargetingFacet:industries).`,\n },\n args: {\n facet: { type: \"string\", description: \"Facet name (e.g. industries) or URN\", required: true },\n query: { type: \"string\", description: \"Typeahead query (auto-switches finder to typeahead)\" },\n finder: { type: \"string\", description: \"adTargetingFacet | typeahead | similarEntities (default: auto)\" },\n locale: { type: \"string\", description: \"Locale (default: en_US)\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n try {\n const params: Record<string, string> = { facet: String(args.facet) };\n const finder = (args.finder as string | undefined) ?? (args.query ? \"typeahead\" : \"adTargetingFacet\");\n params.finder = finder;\n if (args.query) params.query = String(args.query);\n if (args.locale) params.locale = String(args.locale);\n if (args[\"no-cache\"]) params[\"skip-cache\"] = \"true\";\n\n const data = await apiGet<LinkedinFacetEntity[]>(\"/api/ads/linkedin/facets/entities\", params);\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(data as unknown as Array<Record<string, unknown>>, fmt);\n return;\n }\n writeAdsJson({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nexport const facetsCommand = defineCommand({\n meta: {\n name: \"facets\",\n description: `LinkedIn targeting facets and entity lookup.\n\nSubcommands:\n list — every facet (industries, seniorities, titles, employers, …)\n values --facet titles — entity URNs for one facet\n values --facet titles --query \"marketing director\" — typeahead`,\n },\n subCommands: {\n list: listCmd,\n values: valuesCmd,\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAqB9B,IAAM,UAAU,cAAc;AAAA,EAC5B,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA,EAIf;AAAA,EACA,MAAM;AAAA,IACJ,YAAY;AAAA,IACZ,QAAQ,EAAE,MAAM,UAAU,aAAa,qBAAqB,SAAS,OAAO;AAAA,EAC9E;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,SAAiC,CAAC;AACxC,UAAI,KAAK,UAAU,EAAG,QAAO,YAAY,IAAI;AAC7C,YAAM,OAAO,MAAM,OAAwB,4BAA4B,MAAM;AAC7E,YAAM,MAAM,UAAU,IAAI;AAC1B,UAAI,QAAQ,QAAQ;AAClB,uBAAe,MAAmD,GAAG;AACrE;AAAA,MACF;AACA,mBAAa,EAAE,IAAI,MAAM,KAAK,CAAC;AAAA,IACjC,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAED,IAAM,YAAY,cAAc;AAAA,EAC9B,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASf;AAAA,EACA,MAAM;AAAA,IACJ,OAAO,EAAE,MAAM,UAAU,aAAa,uCAAuC,UAAU,KAAK;AAAA,IAC5F,OAAO,EAAE,MAAM,UAAU,aAAa,sDAAsD;AAAA,IAC5F,QAAQ,EAAE,MAAM,UAAU,aAAa,iEAAiE;AAAA,IACxG,QAAQ,EAAE,MAAM,UAAU,aAAa,0BAA0B;AAAA,IACjE,YAAY;AAAA,IACZ,QAAQ,EAAE,MAAM,UAAU,aAAa,qBAAqB,SAAS,OAAO;AAAA,EAC9E;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,SAAiC,EAAE,OAAO,OAAO,KAAK,KAAK,EAAE;AACnE,YAAM,SAAU,KAAK,WAAkC,KAAK,QAAQ,cAAc;AAClF,aAAO,SAAS;AAChB,UAAI,KAAK,MAAO,QAAO,QAAQ,OAAO,KAAK,KAAK;AAChD,UAAI,KAAK,OAAQ,QAAO,SAAS,OAAO,KAAK,MAAM;AACnD,UAAI,KAAK,UAAU,EAAG,QAAO,YAAY,IAAI;AAE7C,YAAM,OAAO,MAAM,OAA8B,qCAAqC,MAAM;AAC5F,YAAM,MAAM,UAAU,IAAI;AAC1B,UAAI,QAAQ,QAAQ;AAClB,uBAAe,MAAmD,GAAG;AACrE;AAAA,MACF;AACA,mBAAa,EAAE,IAAI,MAAM,KAAK,CAAC;AAAA,IACjC,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAEM,IAAM,gBAAgB,cAAc;AAAA,EACzC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMf;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AACF,CAAC;","names":[]}
@@ -1,106 +0,0 @@
1
- import {
2
- readCreativeIdea,
3
- withAnchor
4
- } from "./chunk-N3I6ZXR7.js";
5
- import "./chunk-3N5A44NQ.js";
6
- import "./chunk-GXGYTFZA.js";
7
- import "./chunk-I7J7YQXZ.js";
8
- import "./chunk-PHCIFBP3.js";
9
- import "./chunk-QG4MW2V4.js";
10
- import "./chunk-MOFMOYUA.js";
11
- import "./chunk-NKIBXOHT.js";
12
- import "./chunk-Y46FE75E.js";
13
- import "./chunk-Q5WBTVA7.js";
14
- import "./chunk-NEU5QD2C.js";
15
- import "./chunk-3S274625.js";
16
- import "./chunk-6UNOK7WV.js";
17
- import "./chunk-UFKO626N.js";
18
- import "./chunk-XRIM7NYV.js";
19
- import "./chunk-OL7JS4NG.js";
20
- import "./chunk-7KHTJQGV.js";
21
- import "./chunk-DGCUPJZD.js";
22
- import "./chunk-QMOYQJIN.js";
23
- import "./chunk-FKYPAGKK.js";
24
- import "./chunk-S4VLLGTW.js";
25
- import "./chunk-MCJ5I5LR.js";
26
- import "./chunk-2WZI36D3.js";
27
- import "./chunk-65Y3RCWP.js";
28
- import "./chunk-A6WKCV3V.js";
29
- import "./chunk-U7YR5CZL.js";
30
- import "./chunk-VI5YQQ63.js";
31
- import "./chunk-JX7BX2NB.js";
32
- import "./chunk-DAO63OOP.js";
33
- import "./chunk-GXDLWBOY.js";
34
- import "./chunk-GIWHHCD6.js";
35
- import "./chunk-XQIOCIDO.js";
36
- import "./chunk-WTJSMYY2.js";
37
- import {
38
- ApiError,
39
- apiPost
40
- } from "./chunk-6YLNY6CK.js";
41
- import "./chunk-D5NEIESR.js";
42
- import "./chunk-57KKVDDR.js";
43
- import {
44
- registerSchema,
45
- writeJson
46
- } from "./chunk-QANGHND7.js";
47
- import "./chunk-YQSBHWOI.js";
48
-
49
- // src/commands/creatives/feedback.ts
50
- import { defineCommand } from "citty";
51
- var DESCRIPTION = "Read what this company's reviewers said about creative versions: recent approved / rejected verdicts with reasons and notes, the top rejection reasons, what approved versions share (format, platform, option), and hints[] saying what to do differently. Start here before making or changing a creative: baker creatives feedback; then baker creatives feedback --slug <slug> for one creative's history and its idea (data.anchor: the message, the reference and what we take from it, the language; what an edit keeps). When the user reacts to a version in the chat, record it with baker creatives feedback record.";
52
- var SLUG_DESCRIPTION = "One creative's feedback (src/creatives/<slug>/), with its idea as data.anchor. Left out, the whole company's.";
53
- var FULL_DESCRIPTION = "Every verdict as stored (up to 200), notes whole. Default is a summary plus the 8 latest.";
54
- registerSchema({
55
- command: "creatives.feedback",
56
- description: DESCRIPTION,
57
- args: {
58
- slug: { type: "string", description: SLUG_DESCRIPTION, required: false },
59
- full: { type: "boolean", description: FULL_DESCRIPTION, required: false }
60
- }
61
- });
62
- var readArgs = {
63
- slug: { type: "string", description: SLUG_DESCRIPTION, required: false },
64
- full: { type: "boolean", description: FULL_DESCRIPTION, required: false, default: false }
65
- };
66
- var feedbackReadCommand = defineCommand({
67
- meta: { name: "read", description: `${DESCRIPTION} Runs by default when no subcommand is given.` },
68
- args: readArgs,
69
- run: async ({ args }) => {
70
- try {
71
- const body = {
72
- ...typeof args.slug === "string" && args.slug.length > 0 ? { slug: args.slug } : {},
73
- ...args.full === true ? { full: true } : {}
74
- };
75
- const [response, idea] = await Promise.all([
76
- apiPost("/api/creatives/feedback", body),
77
- body.slug ? readCreativeIdea(body.slug) : Promise.resolve(null)
78
- ]);
79
- writeJson(idea ? withAnchor(response, idea, { full: body.full === true }) : response);
80
- } catch (err) {
81
- if (err instanceof ApiError) {
82
- writeJson({ ok: false, error: { code: err.code, message: err.message } });
83
- process.exit(1);
84
- }
85
- writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: "Unexpected error" } });
86
- process.exit(1);
87
- }
88
- }
89
- });
90
- var feedbackCommand = defineCommand({
91
- meta: { name: "feedback", description: DESCRIPTION },
92
- subCommands: {
93
- read: feedbackReadCommand,
94
- record: () => import("./feedback-record-P4JJ63KA.js").then((m) => m.feedbackRecordCommand)
95
- },
96
- // `args` stays although the parent has no `run`: citty finds the subcommand
97
- // name with THIS command's arg defs, so without them `--slug spring-offer`
98
- // would read `spring-offer` as a subcommand. `default` (not `run`) serves the
99
- // bare invocation, since citty runs a parent's `run` after its subcommand too.
100
- args: readArgs,
101
- default: "read"
102
- });
103
- export {
104
- feedbackCommand
105
- };
106
- //# sourceMappingURL=feedback-7LEX2P5Q.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/creatives/feedback.ts"],"sourcesContent":["import type { CreativesFeedbackRequest, CreativesFeedbackResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { readCreativeIdea, withAnchor } from \"./idea-hint.ts\";\n\nconst DESCRIPTION =\n \"Read what this company's reviewers said about creative versions: recent approved / rejected verdicts with reasons and notes, the top rejection reasons, what approved versions share (format, platform, option), and hints[] saying what to do differently. Start here before making or changing a creative: baker creatives feedback; then baker creatives feedback --slug <slug> for one creative's history and its idea (data.anchor: the message, the reference and what we take from it, the language; what an edit keeps). When the user reacts to a version in the chat, record it with baker creatives feedback record.\";\n\nconst SLUG_DESCRIPTION =\n \"One creative's feedback (src/creatives/<slug>/), with its idea as data.anchor. Left out, the whole company's.\";\nconst FULL_DESCRIPTION = \"Every verdict as stored (up to 200), notes whole. Default is a summary plus the 8 latest.\";\n\nregisterSchema({\n command: \"creatives.feedback\",\n description: DESCRIPTION,\n args: {\n slug: { type: \"string\", description: SLUG_DESCRIPTION, required: false },\n full: { type: \"boolean\", description: FULL_DESCRIPTION, required: false },\n },\n});\n\nconst readArgs = {\n slug: { type: \"string\", description: SLUG_DESCRIPTION, required: false },\n full: { type: \"boolean\", description: FULL_DESCRIPTION, required: false, default: false },\n} as const;\n\nconst feedbackReadCommand = defineCommand({\n meta: { name: \"read\", description: `${DESCRIPTION} Runs by default when no subcommand is given.` },\n args: readArgs,\n run: async ({ args }) => {\n try {\n const body: CreativesFeedbackRequest = {\n ...(typeof args.slug === \"string\" && args.slug.length > 0 ? { slug: args.slug } : {}),\n ...(args.full === true ? { full: true } : {}),\n };\n const [response, idea] = await Promise.all([\n apiPost<CreativesFeedbackResponse>(\"/api/creatives/feedback\", body),\n body.slug ? readCreativeIdea(body.slug) : Promise.resolve(null),\n ]);\n writeJson(idea ? withAnchor(response, idea, { full: body.full === true }) : response);\n } catch (err) {\n if (err instanceof ApiError) {\n writeJson({ ok: false, error: { code: err.code, message: err.message } });\n process.exit(1);\n }\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n }\n },\n});\n\nexport const feedbackCommand = defineCommand({\n meta: { name: \"feedback\", description: DESCRIPTION },\n subCommands: {\n read: feedbackReadCommand,\n record: () => import(\"./feedback-record.ts\").then((m) => m.feedbackRecordCommand),\n },\n // `args` stays although the parent has no `run`: citty finds the subcommand\n // name with THIS command's arg defs, so without them `--slug spring-offer`\n // would read `spring-offer` as a subcommand. `default` (not `run`) serves the\n // bare invocation, since citty runs a parent's `run` after its subcommand too.\n args: readArgs,\n default: \"read\",\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAM9B,IAAM,cACJ;AAEF,IAAM,mBACJ;AACF,IAAM,mBAAmB;AAEzB,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aAAa;AAAA,EACb,MAAM;AAAA,IACJ,MAAM,EAAE,MAAM,UAAU,aAAa,kBAAkB,UAAU,MAAM;AAAA,IACvE,MAAM,EAAE,MAAM,WAAW,aAAa,kBAAkB,UAAU,MAAM;AAAA,EAC1E;AACF,CAAC;AAED,IAAM,WAAW;AAAA,EACf,MAAM,EAAE,MAAM,UAAU,aAAa,kBAAkB,UAAU,MAAM;AAAA,EACvE,MAAM,EAAE,MAAM,WAAW,aAAa,kBAAkB,UAAU,OAAO,SAAS,MAAM;AAC1F;AAEA,IAAM,sBAAsB,cAAc;AAAA,EACxC,MAAM,EAAE,MAAM,QAAQ,aAAa,GAAG,WAAW,gDAAgD;AAAA,EACjG,MAAM;AAAA,EACN,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,OAAiC;AAAA,QACrC,GAAI,OAAO,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,IAAI,EAAE,MAAM,KAAK,KAAK,IAAI,CAAC;AAAA,QACnF,GAAI,KAAK,SAAS,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAAA,MAC7C;AACA,YAAM,CAAC,UAAU,IAAI,IAAI,MAAM,QAAQ,IAAI;AAAA,QACzC,QAAmC,2BAA2B,IAAI;AAAA,QAClE,KAAK,OAAO,iBAAiB,KAAK,IAAI,IAAI,QAAQ,QAAQ,IAAI;AAAA,MAChE,CAAC;AACD,gBAAU,OAAO,WAAW,UAAU,MAAM,EAAE,MAAM,KAAK,SAAS,KAAK,CAAC,IAAI,QAAQ;AAAA,IACtF,SAAS,KAAK;AACZ,UAAI,eAAe,UAAU;AAC3B,kBAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,IAAI,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;AACxE,gBAAQ,KAAK,CAAC;AAAA,MAChB;AACA,gBAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,SAAS,mBAAmB,EAAE,CAAC;AACvF,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF,CAAC;AAEM,IAAM,kBAAkB,cAAc;AAAA,EAC3C,MAAM,EAAE,MAAM,YAAY,aAAa,YAAY;AAAA,EACnD,aAAa;AAAA,IACX,MAAM;AAAA,IACN,QAAQ,MAAM,OAAO,+BAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,qBAAqB;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM;AAAA,EACN,SAAS;AACX,CAAC;","names":[]}
@@ -1,260 +0,0 @@
1
- import {
2
- versionOf
3
- } from "./chunk-FBFWMTOP.js";
4
- import {
5
- readCreativeIdea,
6
- withAnchor
7
- } from "./chunk-N3I6ZXR7.js";
8
- import "./chunk-3N5A44NQ.js";
9
- import "./chunk-GXGYTFZA.js";
10
- import {
11
- modelRuleDrafter,
12
- repeatedReasons,
13
- ruleCandidateHints,
14
- ruleCandidates,
15
- saveCandidates
16
- } from "./chunk-TTKBNBQF.js";
17
- import "./chunk-I7J7YQXZ.js";
18
- import "./chunk-PHCIFBP3.js";
19
- import "./chunk-QG4MW2V4.js";
20
- import "./chunk-MOFMOYUA.js";
21
- import "./chunk-NKIBXOHT.js";
22
- import {
23
- frontmatterOf
24
- } from "./chunk-Y46FE75E.js";
25
- import "./chunk-Q5WBTVA7.js";
26
- import "./chunk-NEU5QD2C.js";
27
- import "./chunk-3S274625.js";
28
- import "./chunk-6UNOK7WV.js";
29
- import {
30
- holdWorkspaceSpend
31
- } from "./chunk-UFKO626N.js";
32
- import {
33
- findWorkspaceRoot
34
- } from "./chunk-XRIM7NYV.js";
35
- import "./chunk-OL7JS4NG.js";
36
- import "./chunk-7KHTJQGV.js";
37
- import "./chunk-DGCUPJZD.js";
38
- import "./chunk-QMOYQJIN.js";
39
- import "./chunk-FKYPAGKK.js";
40
- import "./chunk-S4VLLGTW.js";
41
- import "./chunk-MCJ5I5LR.js";
42
- import "./chunk-2WZI36D3.js";
43
- import "./chunk-65Y3RCWP.js";
44
- import {
45
- askJev
46
- } from "./chunk-A6WKCV3V.js";
47
- import "./chunk-U7YR5CZL.js";
48
- import "./chunk-VI5YQQ63.js";
49
- import "./chunk-JX7BX2NB.js";
50
- import {
51
- CREATIVE_FEEDBACK_REASONS,
52
- creativesFeedbackRecordRequestSchema
53
- } from "./chunk-DAO63OOP.js";
54
- import "./chunk-GXDLWBOY.js";
55
- import "./chunk-GIWHHCD6.js";
56
- import "./chunk-XQIOCIDO.js";
57
- import "./chunk-WTJSMYY2.js";
58
- import {
59
- ApiError,
60
- apiPost
61
- } from "./chunk-6YLNY6CK.js";
62
- import "./chunk-D5NEIESR.js";
63
- import "./chunk-57KKVDDR.js";
64
- import {
65
- registerSchema,
66
- writeJson
67
- } from "./chunk-QANGHND7.js";
68
- import "./chunk-YQSBHWOI.js";
69
-
70
- // src/commands/creatives/feedback-record.ts
71
- import { readFile } from "fs/promises";
72
- import path from "path";
73
- import { defineCommand } from "citty";
74
-
75
- // src/commands/creatives/agent-option-note.ts
76
- var NOTE_BANDS = { tagged: 0.5, bareFix: 0.45, namesProblem: 0.5 };
77
- var TAGGED = "Does `note` end with a tag marking it as the recommended option, like (Recommended), in any language?";
78
- var BARE_FIX = 'Is `note` a bare yes to an offer to fix things, like "fix everything" or "fix what is pending", naming no particular problem? A note that names what is wrong or what to change (the typos, the price, cut-off text, redo the pieces) is not.';
79
- var NAMES_PROBLEM = "Does `note` name a particular problem, element or part of an ad (a typo, the price, the logo, the audio, the text, the colours, a person), apart from a whole format or size?";
80
- var jevNoteJudge = async (note) => {
81
- const spent = [];
82
- const answers = await askJev(
83
- [TAGGED, BARE_FIX, NAMES_PROBLEM].map((question) => ({ instructions: { note, question } })),
84
- (usage) => spent.push(usage)
85
- );
86
- await holdWorkspaceSpend(spent);
87
- if (answers === null) return null;
88
- const [tagged = 0, bareFix = 0, namesProblem = 1] = answers;
89
- return { tagged, bareFix, namesProblem };
90
- };
91
- function readsAsAgentOption(reading) {
92
- if (reading.tagged >= NOTE_BANDS.tagged) return true;
93
- return reading.bareFix >= NOTE_BANDS.bareFix && reading.namesProblem < NOTE_BANDS.namesProblem;
94
- }
95
- async function readNoteAuthor(note, judge) {
96
- const text = note.trim();
97
- if (!text) return "person";
98
- const reading = await judge(text).catch(() => null);
99
- if (reading === null) return "unconfirmed";
100
- return readsAsAgentOption(reading) ? "agent_option" : "person";
101
- }
102
-
103
- // src/commands/creatives/feedback-record.ts
104
- var DESCRIPTION = `Record what the user said about one version of a creative in this chat: an approval, or a rejection with reasons. Saved as their verdict (the person who wrote the latest message here) and read back by baker creatives feedback. One verdict per person per version or option: a later one replaces it.
105
- Start here: baker creatives feedback record --slug spring-offer --verdict rejected --reasons text_mistakes --note "<their words>"
106
- Only record what the user said, never your own judgment. Picking one of several concepts is not a rejection of the others.
107
- When their words state a rule for every ad, the answer carries ruleCandidates: ask them once, and only on yes run baker creatives rules add --candidate <id>.
108
- A rejection's answer carries the creative's idea as data.anchor (its message, reference and language), restated first in hints: the edit keeps it, changing only what they named.`;
109
- var ARGS = {
110
- slug: { type: "string", description: "The creative: its folder name under src/creatives/.", required: true },
111
- run: {
112
- type: "string",
113
- description: "The version: its canvas run id (r_\u2026) Left out, the version the creative shows now (its last render).",
114
- required: false
115
- },
116
- option: {
117
- type: "string",
118
- description: 'One option of a version that made several: its label ("ugc"), its number ("2") or its slot. Left out, the whole version.',
119
- required: false
120
- },
121
- verdict: { type: "string", description: "approved | rejected", required: true },
122
- reasons: {
123
- type: "string",
124
- description: `Why it was rejected, comma-separated: ${CREATIVE_FEEDBACK_REASONS.join(", ")}. Map the user's words to these; "other" when none fits. On a video, voice_or_sound covers the voiceover, music and mix ("the voice sounds robotic", "music too loud") and pacing covers the timing ("too slow", "the hook comes too late").`,
125
- required: false
126
- },
127
- note: {
128
- type: "string",
129
- description: "The user's own words, verbatim (not your summary). Up to 1000 characters.",
130
- required: false
131
- }
132
- };
133
- registerSchema({ command: "creatives.feedback.record", description: DESCRIPTION, args: ARGS });
134
- function splitList(value) {
135
- if (typeof value !== "string" || value.trim() === "") return void 0;
136
- return value.split(",").map((item) => item.trim()).filter((item) => item.length > 0);
137
- }
138
- function fail(code, message) {
139
- writeJson({ ok: false, error: { code, message } });
140
- process.exit(1);
141
- }
142
- async function refuseNotFeedback(body) {
143
- if (body.verdict === "rejected" && !body.reasons?.length && !body.note) {
144
- fail(
145
- "VALIDATION_ERROR",
146
- "A rejection needs --reasons or --note (the user's words), so the next version knows what to change."
147
- );
148
- }
149
- if (body.verdict !== "rejected" || !body.note) return false;
150
- const author = await readNoteAuthor(body.note, jevNoteJudge);
151
- if (author === "agent_option") {
152
- fail(
153
- "AGENT_OPTION_NOT_FEEDBACK",
154
- `"${body.note}" is the answer to your own question, not the person's taste: a defect the checks found is yours to fix inside this version (\`baker canvas run --fix\`), never feedback to record. Record only what the person says about the ad in their own words.`
155
- );
156
- }
157
- return author === "unconfirmed";
158
- }
159
- async function writeBack(body) {
160
- const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();
161
- const cacheDir = path.join(root, "canvas", ".cache");
162
- const definition = frontmatterOf(
163
- await readFile(path.join(root, "src", "creatives", body.slug, "_definition.md"), "utf8").catch(() => "")
164
- );
165
- const kind = definition?.kind === "video" || definition?.kind === "static" ? definition.kind : void 0;
166
- const platform = typeof definition?.platform === "string" ? definition.platform : void 0;
167
- const [drafts, company] = await Promise.all([
168
- ruleCandidates(
169
- body.note,
170
- { ...kind ? { kind } : {}, ...platform ? { platform } : {} },
171
- modelRuleDrafter(cacheDir)
172
- ),
173
- // Every recent verdict, notes whole: the distinct-notes summary counts a note given on five ads once.
174
- apiPost("/api/creatives/feedback", { full: true }).catch(() => null)
175
- ]);
176
- const saved = drafts.map((d) => ({
177
- ...d,
178
- source: { slug: body.slug, runId: body.runId, ...body.note ? { quote: body.note } : {} }
179
- }));
180
- const ids = await saveCandidates(cacheDir, saved).catch(() => []);
181
- const offered = drafts.flatMap((d, i) => ids[i] ? [{ id: ids[i], draft: d }] : []);
182
- const rejections = (company?.data.recent ?? []).flatMap(
183
- (e) => e.verdict === "rejected" && e.note ? [{ creative: e.creative, reasons: e.reasons, note: e.note }] : []
184
- );
185
- const repeated = repeatedReasons(rejections, body.reasons ?? [], body.slug);
186
- return {
187
- candidates: offered.map(({ id, draft }) => ({
188
- candidate: id,
189
- rule: draft.text,
190
- strength: draft.strength,
191
- applies: draft.applies,
192
- ...draft.forbid ? { forbid: draft.forbid } : {},
193
- ...draft.platforms ? { platforms: draft.platforms } : {}
194
- })),
195
- hints: ruleCandidateHints(
196
- offered.map(({ id, draft }) => ({ id, text: draft.text })),
197
- repeated
198
- )
199
- };
200
- }
201
- async function withRules(response, body, noteUnconfirmed) {
202
- if (body.verdict !== "rejected" || !body.note || noteUnconfirmed) return response;
203
- const rule = await writeBack(body);
204
- return {
205
- ...response,
206
- data: { ...response.data, ...rule.candidates.length > 0 ? { ruleCandidates: rule.candidates } : {} },
207
- hints: [...response.hints ?? [], ...rule.hints]
208
- };
209
- }
210
- function ideaToKeep(body) {
211
- return body.verdict === "rejected" ? readCreativeIdea(body.slug).catch(() => null) : Promise.resolve(null);
212
- }
213
- async function withIdea(recorded, idea) {
214
- const view = await idea;
215
- return view ? withAnchor(recorded, view, { full: false }) : recorded;
216
- }
217
- var feedbackRecordCommand = defineCommand({
218
- meta: { name: "record", description: DESCRIPTION },
219
- args: ARGS,
220
- run: async ({ args }) => {
221
- const reasons = splitList(args.reasons);
222
- const unknown = (reasons ?? []).filter(
223
- (reason) => !CREATIVE_FEEDBACK_REASONS.includes(reason)
224
- );
225
- if (unknown.length > 0) {
226
- fail("VALIDATION_ERROR", `Unknown reason ${unknown.join(", ")}. Use: ${CREATIVE_FEEDBACK_REASONS.join(", ")}.`);
227
- }
228
- const parsed = creativesFeedbackRecordRequestSchema.safeParse({
229
- slug: args.slug,
230
- runId: await versionOf(String(args.slug), args.run).then(
231
- (run) => run ?? fail("VALIDATION_ERROR", "--run: this creative has no rendered version here; name one (r_\u2026).")
232
- ),
233
- ...typeof args.option === "string" && args.option.trim() ? { option: args.option.trim() } : {},
234
- verdict: args.verdict,
235
- ...reasons ? { reasons } : {},
236
- ...typeof args.note === "string" && args.note.trim() ? { note: args.note } : {}
237
- });
238
- if (!parsed.success) {
239
- const issue = parsed.error.issues[0];
240
- fail("VALIDATION_ERROR", `--${String(issue?.path[0] ?? "args")}: ${issue?.message ?? "invalid"}`);
241
- }
242
- const body = parsed.data;
243
- const noteUnconfirmed = await refuseNotFeedback(body);
244
- const idea = ideaToKeep(body);
245
- try {
246
- const response = await apiPost(
247
- "/api/creatives/feedback/record",
248
- noteUnconfirmed ? { ...body, noteUnconfirmed } : body
249
- );
250
- writeJson(await withIdea(await withRules(response, body, noteUnconfirmed), idea));
251
- } catch (err) {
252
- if (err instanceof ApiError) fail(err.code, err.message);
253
- fail("INTERNAL_ERROR", "Unexpected error");
254
- }
255
- }
256
- });
257
- export {
258
- feedbackRecordCommand
259
- };
260
- //# sourceMappingURL=feedback-record-P4JJ63KA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/creatives/feedback-record.ts","../src/commands/creatives/agent-option-note.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport {\n CREATIVE_FEEDBACK_REASONS,\n type CreativeFeedbackReason,\n type CreativesFeedbackRecordResponse,\n type CreativesFeedbackResponse,\n creativesFeedbackRecordRequestSchema,\n} from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport type { IdeaView } from \"../../engine/creative-context/anchor.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { findWorkspaceRoot } from \"../canvas/normalize-paths.ts\";\nimport { jevNoteJudge, readNoteAuthor } from \"./agent-option-note.ts\";\nimport { readCreativeIdea, withAnchor } from \"./idea-hint.ts\";\nimport { frontmatterOf } from \"./ideas-model.ts\";\nimport {\n modelRuleDrafter,\n repeatedReasons,\n ruleCandidateHints,\n ruleCandidates,\n type SavedCandidate,\n saveCandidates,\n} from \"./rule-candidate.ts\";\nimport { versionOf } from \"./version-of.ts\";\n\nconst DESCRIPTION = `Record what the user said about one version of a creative in this chat: an approval, or a rejection with reasons. Saved as their verdict (the person who wrote the latest message here) and read back by baker creatives feedback. One verdict per person per version or option: a later one replaces it.\nStart here: baker creatives feedback record --slug spring-offer --verdict rejected --reasons text_mistakes --note \"<their words>\"\nOnly record what the user said, never your own judgment. Picking one of several concepts is not a rejection of the others.\nWhen their words state a rule for every ad, the answer carries ruleCandidates: ask them once, and only on yes run baker creatives rules add --candidate <id>.\nA rejection's answer carries the creative's idea as data.anchor (its message, reference and language), restated first in hints: the edit keeps it, changing only what they named.`;\n\nconst ARGS = {\n slug: { type: \"string\", description: \"The creative: its folder name under src/creatives/.\", required: true },\n run: {\n type: \"string\",\n description: \"The version: its canvas run id (r_…) Left out, the version the creative shows now (its last render).\",\n required: false,\n },\n option: {\n type: \"string\",\n description:\n 'One option of a version that made several: its label (\"ugc\"), its number (\"2\") or its slot. Left out, the whole version.',\n required: false,\n },\n verdict: { type: \"string\", description: \"approved | rejected\", required: true },\n reasons: {\n type: \"string\",\n description: `Why it was rejected, comma-separated: ${CREATIVE_FEEDBACK_REASONS.join(\", \")}. Map the user's words to these; \"other\" when none fits. On a video, voice_or_sound covers the voiceover, music and mix (\"the voice sounds robotic\", \"music too loud\") and pacing covers the timing (\"too slow\", \"the hook comes too late\").`,\n required: false,\n },\n note: {\n type: \"string\",\n description: \"The user's own words, verbatim (not your summary). Up to 1000 characters.\",\n required: false,\n },\n} as const;\n\nregisterSchema({ command: \"creatives.feedback.record\", description: DESCRIPTION, args: ARGS });\n\nfunction splitList(value: unknown): string[] | undefined {\n if (typeof value !== \"string\" || value.trim() === \"\") return undefined;\n return value\n .split(\",\")\n .map((item) => item.trim())\n .filter((item) => item.length > 0);\n}\n\nfunction fail(code: string, message: string): never {\n writeJson({ ok: false, error: { code, message } });\n process.exit(1);\n}\n\n/**\n * A rejection whose note only answers the agent's own question, or that says nothing, is not the\n * person's feedback. Returns whether the note could not be confirmed as the person's words.\n */\nasync function refuseNotFeedback(body: {\n verdict: string;\n reasons?: readonly string[];\n note?: string;\n}): Promise<boolean> {\n if (body.verdict === \"rejected\" && !body.reasons?.length && !body.note) {\n fail(\n \"VALIDATION_ERROR\",\n \"A rejection needs --reasons or --note (the user's words), so the next version knows what to change.\",\n );\n }\n if (body.verdict !== \"rejected\" || !body.note) return false;\n const author = await readNoteAuthor(body.note, jevNoteJudge);\n if (author === \"agent_option\") {\n fail(\n \"AGENT_OPTION_NOT_FEEDBACK\",\n `\"${body.note}\" is the answer to your own question, not the person's taste: a defect the checks found is yours to fix inside this version (\\`baker canvas run --fix\\`), never feedback to record. Record only what the person says about the ad in their own words.`,\n );\n }\n return author === \"unconfirmed\";\n}\n\n/**\n * The rules a rejection's note states for every ad (`ruleCandidates`), kept for `rules add\n * --candidate`, and the reasons the company already gave on other ads (`repeatedReasons`). Never\n * throws: a draft nobody could make is no candidate, and the verdict is recorded either way.\n */\nasync function writeBack(body: { slug: string; runId: string; note?: string; reasons?: CreativeFeedbackReason[] }) {\n const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();\n const cacheDir = path.join(root, \"canvas\", \".cache\");\n const definition = frontmatterOf(\n await readFile(path.join(root, \"src\", \"creatives\", body.slug, \"_definition.md\"), \"utf8\").catch(() => \"\"),\n );\n const kind = definition?.kind === \"video\" || definition?.kind === \"static\" ? definition.kind : undefined;\n const platform = typeof definition?.platform === \"string\" ? definition.platform : undefined;\n const [drafts, company] = await Promise.all([\n ruleCandidates(\n body.note,\n { ...(kind ? { kind } : {}), ...(platform ? { platform } : {}) },\n modelRuleDrafter(cacheDir),\n ),\n // Every recent verdict, notes whole: the distinct-notes summary counts a note given on five ads once.\n apiPost<CreativesFeedbackResponse>(\"/api/creatives/feedback\", { full: true }).catch(() => null),\n ]);\n const saved: SavedCandidate[] = drafts.map((d) => ({\n ...d,\n source: { slug: body.slug, runId: body.runId, ...(body.note ? { quote: body.note } : {}) },\n }));\n const ids = await saveCandidates(cacheDir, saved).catch(() => [] as string[]);\n const offered = drafts.flatMap((d, i) => (ids[i] ? [{ id: ids[i] as string, draft: d }] : []));\n const rejections = (company?.data.recent ?? []).flatMap((e) =>\n e.verdict === \"rejected\" && e.note ? [{ creative: e.creative, reasons: e.reasons, note: e.note }] : [],\n );\n const repeated = repeatedReasons(rejections, body.reasons ?? [], body.slug);\n return {\n candidates: offered.map(({ id, draft }) => ({\n candidate: id,\n rule: draft.text,\n strength: draft.strength,\n applies: draft.applies,\n ...(draft.forbid ? { forbid: draft.forbid } : {}),\n ...(draft.platforms ? { platforms: draft.platforms } : {}),\n })),\n hints: ruleCandidateHints(\n offered.map(({ id, draft }) => ({ id, text: draft.text })),\n repeated,\n ),\n };\n}\n\n/** The recorded verdict, with the rules a rejection in the person's own words states for every ad. */\nasync function withRules(\n response: CreativesFeedbackRecordResponse,\n body: { verdict: string; slug: string; runId: string; note?: string; reasons?: CreativeFeedbackReason[] },\n noteUnconfirmed: boolean,\n) {\n if (body.verdict !== \"rejected\" || !body.note || noteUnconfirmed) return response;\n const rule = await writeBack(body);\n return {\n ...response,\n data: { ...response.data, ...(rule.candidates.length > 0 ? { ruleCandidates: rule.candidates } : {}) },\n hints: [...(response.hints ?? []), ...rule.hints],\n };\n}\n\n/** A rejection is followed by an edit: the idea it keeps, read while the verdict is recorded. */\nfunction ideaToKeep(body: { verdict: string; slug: string }): Promise<IdeaView | null> {\n return body.verdict === \"rejected\" ? readCreativeIdea(body.slug).catch(() => null) : Promise.resolve(null);\n}\n\n/** The answer with the idea the edit keeps, restated first; as it is without one. */\nasync function withIdea<R extends { data: object; hints?: string[] }>(recorded: R, idea: Promise<IdeaView | null>) {\n const view = await idea;\n return view ? withAnchor(recorded, view, { full: false }) : recorded;\n}\n\nexport const feedbackRecordCommand = defineCommand({\n meta: { name: \"record\", description: DESCRIPTION },\n args: ARGS,\n run: async ({ args }) => {\n const reasons = splitList(args.reasons);\n const unknown = (reasons ?? []).filter(\n (reason) => !(CREATIVE_FEEDBACK_REASONS as readonly string[]).includes(reason),\n );\n if (unknown.length > 0) {\n fail(\"VALIDATION_ERROR\", `Unknown reason ${unknown.join(\", \")}. Use: ${CREATIVE_FEEDBACK_REASONS.join(\", \")}.`);\n }\n const parsed = creativesFeedbackRecordRequestSchema.safeParse({\n slug: args.slug,\n runId: await versionOf(String(args.slug), args.run).then(\n (run) => run ?? fail(\"VALIDATION_ERROR\", \"--run: this creative has no rendered version here; name one (r_…).\"),\n ),\n ...(typeof args.option === \"string\" && args.option.trim() ? { option: args.option.trim() } : {}),\n verdict: args.verdict,\n ...(reasons ? { reasons } : {}),\n ...(typeof args.note === \"string\" && args.note.trim() ? { note: args.note } : {}),\n });\n if (!parsed.success) {\n const issue = parsed.error.issues[0];\n fail(\"VALIDATION_ERROR\", `--${String(issue?.path[0] ?? \"args\")}: ${issue?.message ?? \"invalid\"}`);\n }\n const body = parsed.data;\n const noteUnconfirmed = await refuseNotFeedback(body);\n const idea = ideaToKeep(body);\n try {\n const response = await apiPost<CreativesFeedbackRecordResponse>(\n \"/api/creatives/feedback/record\",\n noteUnconfirmed ? { ...body, noteUnconfirmed } : body,\n );\n writeJson(await withIdea(await withRules(response, body, noteUnconfirmed), idea));\n } catch (err) {\n if (err instanceof ApiError) fail(err.code, err.message);\n fail(\"INTERNAL_ERROR\", \"Unexpected error\");\n }\n },\n});\n","/**\n * Whether a rejection's note is the agent's own words rather than the person's taste: the label\n * of an option the agent offered (\"Sí, corrige todo (Recomendado)\") or the answer to its own\n * \"fix what is pending?\" (\"Fix everything\"). Production Oct 2026: both were recorded as\n * rejections, so every fix became a new version and later chats read the agent's own defects as\n * the company's taste. The agent writes those options in the marketer's language, so the decision\n * model reads the note in whatever language it is in (docs/decision-model.md).\n */\nimport { askJev } from \"../../engine/nodes/local/lib/jev.ts\";\nimport type { ReviewUsage } from \"../../engine/nodes/local/lib/render-review.ts\";\nimport { holdWorkspaceSpend } from \"../canvas/unbilled-spend.ts\";\n\n/**\n * The bands, measured 2026-10-07 on 30 notes in 8 languages (scripts/agent-option-note-evals,\n * three runs). A recommended tag scored 0.92 or more on the agent's labels and 0.03 or less on\n * people's notes. A bare yes to fixing scored 0.59 or more on the agent's untagged answers and\n * 0.31 or less on people's, except \"fix all the typos\" (0.52-0.56), which names its problem\n * (0.86; the agent's answers 0.12 or less).\n */\nexport const NOTE_BANDS = { tagged: 0.5, bareFix: 0.45, namesProblem: 0.5 } as const;\n\nconst TAGGED = \"Does `note` end with a tag marking it as the recommended option, like (Recommended), in any language?\";\nconst BARE_FIX =\n 'Is `note` a bare yes to an offer to fix things, like \"fix everything\" or \"fix what is pending\", naming no particular problem? A note that names what is wrong or what to change (the typos, the price, cut-off text, redo the pieces) is not.';\nconst NAMES_PROBLEM =\n \"Does `note` name a particular problem, element or part of an ad (a typo, the price, the logo, the audio, the text, the colours, a person), apart from a whole format or size?\";\n\n/** Three judgments about one note, each a probability; one judgment per question, combined in code. */\nexport type NoteReading = { tagged: number; bareFix: number; namesProblem: number };\n\n/** The decision model's reading of `note`; null when no judgment came back. */\nexport type NoteJudge = (note: string) => Promise<NoteReading | null>;\n\n/** The decision model as the judge: three Nouls in one request. */\nexport const jevNoteJudge: NoteJudge = async (note) => {\n const spent: ReviewUsage[] = [];\n const answers = await askJev(\n [TAGGED, BARE_FIX, NAMES_PROBLEM].map((question) => ({ instructions: { note, question } })),\n (usage) => spent.push(usage),\n );\n await holdWorkspaceSpend(spent);\n if (answers === null) return null;\n const [tagged = 0, bareFix = 0, namesProblem = 1] = answers;\n return { tagged, bareFix, namesProblem };\n};\n\n/** The agent's option label, or its bare fix answer naming nothing of the ad. Pure. */\nexport function readsAsAgentOption(reading: NoteReading): boolean {\n if (reading.tagged >= NOTE_BANDS.tagged) return true;\n return reading.bareFix >= NOTE_BANDS.bareFix && reading.namesProblem < NOTE_BANDS.namesProblem;\n}\n\n/** Whose words a note is: the agent's own option, the person's, or unconfirmed when no judgment came back. */\nexport type NoteAuthor = \"agent_option\" | \"person\" | \"unconfirmed\";\n\n/**\n * Who wrote `note`, as the decision model reads it. No judgment (no key, a timeout, an outage) is\n * \"unconfirmed\", never the person's: Baker keeps that note but does not read it as taste (B5).\n */\nexport async function readNoteAuthor(note: string, judge: NoteJudge): Promise<NoteAuthor> {\n const text = note.trim();\n if (!text) return \"person\";\n const reading = await judge(text).catch(() => null);\n if (reading === null) return \"unconfirmed\";\n return readsAsAgentOption(reading) ? \"agent_option\" : \"person\";\n}\n"],"mappings":"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","names":[]}