@koda-sl/baker-cli 0.513.0 → 0.514.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 (1077) hide show
  1. package/README.md +2 -2
  2. package/dist/account-D6LEVVWT.js +82 -0
  3. package/dist/account-D6LEVVWT.js.map +1 -0
  4. package/dist/account-SGK3IJ6N.js +82 -0
  5. package/dist/account-SGK3IJ6N.js.map +1 -0
  6. package/dist/account-assets-J5Z4URLQ.js +290 -0
  7. package/dist/account-level-4SBYYHRS.js +611 -0
  8. package/dist/account-level-4SBYYHRS.js.map +1 -0
  9. package/dist/account-reads-2MSUVG46.js +219 -0
  10. package/dist/account-users-MHC7AD6K.js +64 -0
  11. package/dist/account-users-MHC7AD6K.js.map +1 -0
  12. package/dist/account-writes-QQQC54WC.js +68 -0
  13. package/dist/account-writes-QQQC54WC.js.map +1 -0
  14. package/dist/accounts-2O6I7YBN.js +80 -0
  15. package/dist/accounts-2O6I7YBN.js.map +1 -0
  16. package/dist/accounts-QNE5QWBG.js +701 -0
  17. package/dist/accounts-QNE5QWBG.js.map +1 -0
  18. package/dist/actions-D7OWCP36.js +55 -0
  19. package/dist/activecampaign-LBS4M4C4.js +938 -0
  20. package/dist/activecampaign-LBS4M4C4.js.map +1 -0
  21. package/dist/ad-group-writes-CJTTUUIT.js +172 -0
  22. package/dist/ad-group-writes-CJTTUUIT.js.map +1 -0
  23. package/dist/ad-groups-HLGSVH74.js +70 -0
  24. package/dist/ad-groups-HLGSVH74.js.map +1 -0
  25. package/dist/ad-writes-3UE3U7VE.js +176 -0
  26. package/dist/ad-writes-3UE3U7VE.js.map +1 -0
  27. package/dist/add-HFQB2NTU.js +107 -0
  28. package/dist/add-HFQB2NTU.js.map +1 -0
  29. package/dist/add-IUYE5H6A.js +305 -0
  30. package/dist/add-IUYE5H6A.js.map +1 -0
  31. package/dist/ads-HLUJB5SQ.js +48 -0
  32. package/dist/ads-MAOI7S6V.js +115 -0
  33. package/dist/ads-PYNDMHUD.js +79 -0
  34. package/dist/ads-PYNDMHUD.js.map +1 -0
  35. package/dist/adsets-QRKICEFD.js +182 -0
  36. package/dist/advertisers-XXM6POO5.js +123 -0
  37. package/dist/advertisers-XXM6POO5.js.map +1 -0
  38. package/dist/analytics-AULKYNNT.js +447 -0
  39. package/dist/analytics-AULKYNNT.js.map +1 -0
  40. package/dist/analytics-DNDTC643.js +2437 -0
  41. package/dist/analytics-DNDTC643.js.map +1 -0
  42. package/dist/asset-writes-JLVUAVUZ.js +50 -0
  43. package/dist/assign-2GQVQKKO.js +80 -0
  44. package/dist/assign-2GQVQKKO.js.map +1 -0
  45. package/dist/audience-size-C3YHQPZB.js +76 -0
  46. package/dist/audience-size-C3YHQPZB.js.map +1 -0
  47. package/dist/audience-writes-CDKQB3SM.js +327 -0
  48. package/dist/audience-writes-CDKQB3SM.js.map +1 -0
  49. package/dist/audiences-CDDI5HR5.js +86 -0
  50. package/dist/audiences-M3A3QK52.js +280 -0
  51. package/dist/audiences-M3A3QK52.js.map +1 -0
  52. package/dist/audit-FLPJ7GTE.js +154 -0
  53. package/dist/audit-FLPJ7GTE.js.map +1 -0
  54. package/dist/autocomplete-ZYMHHV7E.js +114 -0
  55. package/dist/autocomplete-ZYMHHV7E.js.map +1 -0
  56. package/dist/avatars-WZ2JDMHH.js +38 -0
  57. package/dist/bid-pricing-H3M63PTW.js +103 -0
  58. package/dist/bid-pricing-H3M63PTW.js.map +1 -0
  59. package/dist/brand-IZTTBZII.js +22 -0
  60. package/dist/brief-OPQ7ICOY.js +543 -0
  61. package/dist/brief-OPQ7ICOY.js.map +1 -0
  62. package/dist/campaign-groups-IQSDKOVI.js +99 -0
  63. package/dist/campaign-groups-IQSDKOVI.js.map +1 -0
  64. package/dist/campaign-writes-APAAV4ZU.js +168 -0
  65. package/dist/campaign-writes-APAAV4ZU.js.map +1 -0
  66. package/dist/campaign-writes-BN4PZP4Z.js +176 -0
  67. package/dist/campaign-writes-BN4PZP4Z.js.map +1 -0
  68. package/dist/campaigns-4Y3JQC2U.js +111 -0
  69. package/dist/campaigns-GA34MEN2.js +78 -0
  70. package/dist/campaigns-GA34MEN2.js.map +1 -0
  71. package/dist/campaigns-HES5MDUG.js +130 -0
  72. package/dist/campaigns-K2FVD3XW.js +113 -0
  73. package/dist/campaigns-K2FVD3XW.js.map +1 -0
  74. package/dist/canvas-IQ753Q2O.js +46 -0
  75. package/dist/capabilities-ZITW4RF7.js +147 -0
  76. package/dist/capabilities-ZITW4RF7.js.map +1 -0
  77. package/dist/catalogs-TGLSJEK5.js +781 -0
  78. package/dist/catalogs-TGLSJEK5.js.map +1 -0
  79. package/dist/catalogs-ZR7DECMG.js +130 -0
  80. package/dist/catalogs-ZR7DECMG.js.map +1 -0
  81. package/dist/changes-VWKTM27U.js +135 -0
  82. package/dist/chatgpt-OPOD2WHB.js +47 -0
  83. package/dist/chats-AL2SYBJO.js +279 -0
  84. package/dist/chats-AL2SYBJO.js.map +1 -0
  85. package/dist/check-U2YLRD6H.js +107 -0
  86. package/dist/check-U2YLRD6H.js.map +1 -0
  87. package/dist/chunk-2GYCWRF3.js +170 -0
  88. package/dist/chunk-2L7F7KR4.js +61 -0
  89. package/dist/chunk-44ZRCSR7.js +228 -0
  90. package/dist/chunk-46YLDIQG.js +4254 -0
  91. package/dist/chunk-4EDWXZ3I.js +363 -0
  92. package/dist/chunk-4FFBGR5L.js +66 -0
  93. package/dist/chunk-4UQRXKYJ.js +219 -0
  94. package/dist/chunk-4UZUUSVL.js +592 -0
  95. package/dist/chunk-4XHCEYHI.js +831 -0
  96. package/dist/chunk-4Z6PVR3M.js +479 -0
  97. package/dist/chunk-5Y5FZV2W.js +122 -0
  98. package/dist/chunk-6HJXLGDV.js +392 -0
  99. package/dist/chunk-6S5CWGDA.js +429 -0
  100. package/dist/chunk-6VYROVWO.js +494 -0
  101. package/dist/chunk-7BUIOP36.js +287 -0
  102. package/dist/chunk-AQRXXC6E.js +319 -0
  103. package/dist/chunk-ARBXT73X.js +387 -0
  104. package/dist/chunk-BEZHQIEI.js +97 -0
  105. package/dist/chunk-BFURWHVR.js +547 -0
  106. package/dist/chunk-BX6B25KK.js +358 -0
  107. package/dist/chunk-BX6B25KK.js.map +1 -0
  108. package/dist/chunk-DSCEXBDR.js +676 -0
  109. package/dist/chunk-FLWDFPXE.js +23 -0
  110. package/dist/chunk-FRNBRN2C.js +1646 -0
  111. package/dist/chunk-G4FG5EQO.js +110 -0
  112. package/dist/chunk-G4FG5EQO.js.map +1 -0
  113. package/dist/chunk-GE3VT3CA.js +51 -0
  114. package/dist/chunk-GW2WRZZA.js +24026 -0
  115. package/dist/chunk-GW2WRZZA.js.map +1 -0
  116. package/dist/chunk-HGBJQGO5.js +142 -0
  117. package/dist/chunk-I7AYMJZA.js +783 -0
  118. package/dist/chunk-IRM273C7.js +207 -0
  119. package/dist/chunk-IWKD56AY.js +156 -0
  120. package/dist/chunk-JLAQWMVF.js +3868 -0
  121. package/dist/chunk-JOE42ZW6.js +2984 -0
  122. package/dist/chunk-JOE42ZW6.js.map +1 -0
  123. package/dist/chunk-K6NULQN7.js +57 -0
  124. package/dist/chunk-L2BRAC2J.js +19 -0
  125. package/dist/chunk-LGMI4LSY.js +455 -0
  126. package/dist/chunk-NB2FU6EZ.js +179 -0
  127. package/dist/chunk-NKQWDEB7.js +115 -0
  128. package/dist/chunk-NKQWDEB7.js.map +1 -0
  129. package/dist/chunk-NWF2LRKO.js +188 -0
  130. package/dist/chunk-OG47L5GG.js +275 -0
  131. package/dist/chunk-OR6KVLI5.js +169 -0
  132. package/dist/chunk-PC3FJEZH.js +7211 -0
  133. package/dist/chunk-PC3FJEZH.js.map +1 -0
  134. package/dist/chunk-Q3GSVLE5.js +4274 -0
  135. package/dist/chunk-Q3GSVLE5.js.map +1 -0
  136. package/dist/chunk-QDQZ62FL.js +207 -0
  137. package/dist/chunk-QIOFOD4K.js +344 -0
  138. package/dist/chunk-R2SYF5FC.js +249 -0
  139. package/dist/chunk-RTH2I55B.js +942 -0
  140. package/dist/chunk-S6VFDNSQ.js +63 -0
  141. package/dist/chunk-SG2TDQEE.js +150 -0
  142. package/dist/chunk-SOPVIIUW.js +68 -0
  143. package/dist/chunk-SOPVIIUW.js.map +1 -0
  144. package/dist/chunk-T3P6O2VU.js +89 -0
  145. package/dist/chunk-TXDE2QJ3.js +604 -0
  146. package/dist/chunk-UDIEKCIR.js +203 -0
  147. package/dist/chunk-USCADMM3.js +163 -0
  148. package/dist/chunk-UUGISMNE.js +910 -0
  149. package/dist/chunk-VDPOCAQ2.js +197 -0
  150. package/dist/chunk-VEJ3QX6M.js +103 -0
  151. package/dist/chunk-VFJB7OG6.js +91 -0
  152. package/dist/chunk-VRIPVLE7.js +8954 -0
  153. package/dist/chunk-WFY7KSHB.js +274 -0
  154. package/dist/chunk-WLESMH4J.js +45 -0
  155. package/dist/chunk-XHQYFNNK.js +846 -0
  156. package/dist/chunk-XOQNM7I4.js +396 -0
  157. package/dist/chunk-XOQNM7I4.js.map +1 -0
  158. package/dist/chunk-YILZR3XI.js +224 -0
  159. package/dist/chunk-YJFLXOH4.js +191 -0
  160. package/dist/chunk-YWHZYR6S.js +297 -0
  161. package/dist/claim-GOLUTAJ3.js +200 -0
  162. package/dist/claim-GOLUTAJ3.js.map +1 -0
  163. package/dist/cli.js +30 -30
  164. package/dist/companies-4AJJGTMC.js +198 -0
  165. package/dist/companies-4AJJGTMC.js.map +1 -0
  166. package/dist/company-MOSPLRZJ.js +308 -0
  167. package/dist/company-MOSPLRZJ.js.map +1 -0
  168. package/dist/complete-777BDV45.js +84 -0
  169. package/dist/complete-777BDV45.js.map +1 -0
  170. package/dist/connect-3YY7MF3I.js +45 -0
  171. package/dist/conversation-KROMHDHK.js +96 -0
  172. package/dist/conversation-KROMHDHK.js.map +1 -0
  173. package/dist/conversion-report-JZHI2IHY.js +127 -0
  174. package/dist/conversion-report-JZHI2IHY.js.map +1 -0
  175. package/dist/conversion-upload-command-7RSZ5ZQU.js +439 -0
  176. package/dist/conversion-writes-SNCLQDXQ.js +122 -0
  177. package/dist/conversion-writes-SNCLQDXQ.js.map +1 -0
  178. package/dist/conversions-43EYP2W2.js +140 -0
  179. package/dist/conversions-43EYP2W2.js.map +1 -0
  180. package/dist/conversions-EUOWILCQ.js +78 -0
  181. package/dist/conversions-EUOWILCQ.js.map +1 -0
  182. package/dist/copy-writes-CIHIFLY6.js +170 -0
  183. package/dist/copy-writes-CIHIFLY6.js.map +1 -0
  184. package/dist/create-3WOZO2XT.js +239 -0
  185. package/dist/create-3WOZO2XT.js.map +1 -0
  186. package/dist/create-7IFYLX7P.js +210 -0
  187. package/dist/create-7IFYLX7P.js.map +1 -0
  188. package/dist/create-FOHIQC3E.js +62 -0
  189. package/dist/create-FOHIQC3E.js.map +1 -0
  190. package/dist/create-UWQSQTK6.js +135 -0
  191. package/dist/create-UWQSQTK6.js.map +1 -0
  192. package/dist/creatives-2DR3QHJW.js +58 -0
  193. package/dist/creatives-BB6S2OF6.js +89 -0
  194. package/dist/creatives-KUO67WYA.js +223 -0
  195. package/dist/creatives-KUO67WYA.js.map +1 -0
  196. package/dist/credentials-IP4L37XP.js +290 -0
  197. package/dist/credentials-IP4L37XP.js.map +1 -0
  198. package/dist/critique-LGDNMLBL.js +232 -0
  199. package/dist/critique-LGDNMLBL.js.map +1 -0
  200. package/dist/critique-LJMFAURK.js +1451 -0
  201. package/dist/critique-LJMFAURK.js.map +1 -0
  202. package/dist/crm-BNYW7PF7.js +323 -0
  203. package/dist/crm-BNYW7PF7.js.map +1 -0
  204. package/dist/crm-J53V2QTN.js +227 -0
  205. package/dist/crm-J53V2QTN.js.map +1 -0
  206. package/dist/currency-X7Y6TSLF.js +88 -0
  207. package/dist/custom-conversions-HAGG72LF.js +128 -0
  208. package/dist/customers-663K2OCP.js +59 -0
  209. package/dist/delete-5W3YVA4L.js +67 -0
  210. package/dist/delete-5W3YVA4L.js.map +1 -0
  211. package/dist/delete-6U7E6YUW.js +57 -0
  212. package/dist/delete-6U7E6YUW.js.map +1 -0
  213. package/dist/delete-G4NY6ZG6.js +69 -0
  214. package/dist/delete-G4NY6ZG6.js.map +1 -0
  215. package/dist/demographics-4Y5LTCU4.js +141 -0
  216. package/dist/demographics-4Y5LTCU4.js.map +1 -0
  217. package/dist/discard-RKCZNKMN.js +69 -0
  218. package/dist/discard-RKCZNKMN.js.map +1 -0
  219. package/dist/discover-6DORQWXY.js +172 -0
  220. package/dist/domain-PLA2O4FW.js +101 -0
  221. package/dist/domain-PLA2O4FW.js.map +1 -0
  222. package/dist/download-4EFLVSA4.js +172 -0
  223. package/dist/download-4EFLVSA4.js.map +1 -0
  224. package/dist/draft-4V7W5DV2.js +310 -0
  225. package/dist/draft-4V7W5DV2.js.map +1 -0
  226. package/dist/draft-HY3U2GHU.js +283 -0
  227. package/dist/draft-HY3U2GHU.js.map +1 -0
  228. package/dist/draft-JMNAGW7C.js +220 -0
  229. package/dist/draft-JMNAGW7C.js.map +1 -0
  230. package/dist/draft-R6EKORNS.js +308 -0
  231. package/dist/draft-TRPQCJ4B.js +335 -0
  232. package/dist/draft-TRPQCJ4B.js.map +1 -0
  233. package/dist/experiments-4V242DG2.js +236 -0
  234. package/dist/experiments-4V242DG2.js.map +1 -0
  235. package/dist/facets-WXJ2MCU6.js +117 -0
  236. package/dist/facets-WXJ2MCU6.js.map +1 -0
  237. package/dist/feedback-IRSRPXV6.js +111 -0
  238. package/dist/feedback-IRSRPXV6.js.map +1 -0
  239. package/dist/feedback-record-DT3R4NA3.js +265 -0
  240. package/dist/feedback-record-DT3R4NA3.js.map +1 -0
  241. package/dist/fetch-YLQP5VQL.js +179 -0
  242. package/dist/fetch-YLQP5VQL.js.map +1 -0
  243. package/dist/fit-BEFCY2B4.js +65 -0
  244. package/dist/flows-FDMF3F3P.js +250 -0
  245. package/dist/flows-FDMF3F3P.js.map +1 -0
  246. package/dist/fonts-C6XN5667.js +39 -0
  247. package/dist/forecast-BTPIXEQ5.js +169 -0
  248. package/dist/forecast-ZTXZD3HD.js +121 -0
  249. package/dist/forecast-ZTXZD3HD.js.map +1 -0
  250. package/dist/funnel-7KOEX7YM.js +397 -0
  251. package/dist/funnel-7KOEX7YM.js.map +1 -0
  252. package/dist/get-KBSKPTAV.js +59 -0
  253. package/dist/get-KBSKPTAV.js.map +1 -0
  254. package/dist/get-OSVQVMP6.js +82 -0
  255. package/dist/get-OSVQVMP6.js.map +1 -0
  256. package/dist/google-M6BJ22UL.js +3267 -0
  257. package/dist/google-ads-XCJVAXWF.js +198 -0
  258. package/dist/google-ads-XCJVAXWF.js.map +1 -0
  259. package/dist/history-3NTM5SFN.js +69 -0
  260. package/dist/history-3NTM5SFN.js.map +1 -0
  261. package/dist/history-4TN2A6BL.js +136 -0
  262. package/dist/history-4TN2A6BL.js.map +1 -0
  263. package/dist/history-5IWW2X33.js +102 -0
  264. package/dist/history-5IWW2X33.js.map +1 -0
  265. package/dist/hubspot-HMVSRJQZ.js +782 -0
  266. package/dist/hubspot-HMVSRJQZ.js.map +1 -0
  267. package/dist/ideas-M66FU45H.js +45 -0
  268. package/dist/images-MM5OPUKV.js +92 -0
  269. package/dist/ingest-GU3WEBN3.js +110 -0
  270. package/dist/ingest-GU3WEBN3.js.map +1 -0
  271. package/dist/ingest-KMLYCFF4.js +26 -0
  272. package/dist/insights-CQCWOCIT.js +132 -0
  273. package/dist/insights-CQCWOCIT.js.map +1 -0
  274. package/dist/insights-XZL2EM53.js +439 -0
  275. package/dist/insights-XZL2EM53.js.map +1 -0
  276. package/dist/inspect-4JO2J3D6.js +192 -0
  277. package/dist/inspect-4JO2J3D6.js.map +1 -0
  278. package/dist/instant-experiences-RM4MLJTL.js +260 -0
  279. package/dist/instant-experiences-RM4MLJTL.js.map +1 -0
  280. package/dist/intent-YCQCUCV3.js +95 -0
  281. package/dist/keyword-gap-PUSF7EKY.js +130 -0
  282. package/dist/keyword-metrics-JXBM22ZD.js +200 -0
  283. package/dist/keyword-metrics-JXBM22ZD.js.map +1 -0
  284. package/dist/keywords-for-site-OAYA7KP7.js +131 -0
  285. package/dist/keywords-for-site-OAYA7KP7.js.map +1 -0
  286. package/dist/landing-OZU5RRFV.js +28 -0
  287. package/dist/languages-SLFV73GE.js +40 -0
  288. package/dist/leads-Q7APIJRQ.js +115 -0
  289. package/dist/leads-Q7APIJRQ.js.map +1 -0
  290. package/dist/leads-ULYHTG22.js +540 -0
  291. package/dist/leads-ULYHTG22.js.map +1 -0
  292. package/dist/learn-NBBJRMVZ.js +207 -0
  293. package/dist/learn-NBBJRMVZ.js.map +1 -0
  294. package/dist/line-item-writes-X3L5NQEH.js +211 -0
  295. package/dist/line-item-writes-X3L5NQEH.js.map +1 -0
  296. package/dist/line-items-NJMEPEF5.js +107 -0
  297. package/dist/link-WZSNUQQ2.js +67 -0
  298. package/dist/link-WZSNUQQ2.js.map +1 -0
  299. package/dist/linkedin-55PAID62.js +1316 -0
  300. package/dist/linkedin-55PAID62.js.map +1 -0
  301. package/dist/linkedin-person-MVRI7LLC.js +139 -0
  302. package/dist/linkedin-person-MVRI7LLC.js.map +1 -0
  303. package/dist/list-6S54IAUX.js +67 -0
  304. package/dist/list-6S54IAUX.js.map +1 -0
  305. package/dist/list-QRJ4E3SC.js +154 -0
  306. package/dist/list-QRJ4E3SC.js.map +1 -0
  307. package/dist/list-RZUDFLJN.js +306 -0
  308. package/dist/list-RZUDFLJN.js.map +1 -0
  309. package/dist/locations-T2OMP6QN.js +40 -0
  310. package/dist/locations-W3VOYBWL.js +69 -0
  311. package/dist/locations-W3VOYBWL.js.map +1 -0
  312. package/dist/log-53SAPZZ3.js +95 -0
  313. package/dist/log-53SAPZZ3.js.map +1 -0
  314. package/dist/lookup-S5VG7AWH.js +23 -0
  315. package/dist/make-ZF3YIMKW.js +1370 -0
  316. package/dist/make-ZF3YIMKW.js.map +1 -0
  317. package/dist/map-J37QFJSV.js +436 -0
  318. package/dist/map-J37QFJSV.js.map +1 -0
  319. package/dist/mcp-YRIFPYNU.js +717 -0
  320. package/dist/mcp-YRIFPYNU.js.map +1 -0
  321. package/dist/media-P4T4ZBNS.js +18 -0
  322. package/dist/media-sources-EQI3U4TC.js +35 -0
  323. package/dist/members-GYVMSCKL.js +47 -0
  324. package/dist/members-GYVMSCKL.js.map +1 -0
  325. package/dist/meta-IPLWNYC7.js +122 -0
  326. package/dist/metrics-4YVJHYRI.js +152 -0
  327. package/dist/normalize-MFN3WCH5.js +144 -0
  328. package/dist/normalize-MFN3WCH5.js.map +1 -0
  329. package/dist/options-DLHDHO7H.js +125 -0
  330. package/dist/options-DLHDHO7H.js.map +1 -0
  331. package/dist/organization-C2VOA2SD.js +949 -0
  332. package/dist/organization-C2VOA2SD.js.map +1 -0
  333. package/dist/page-photos-OQ5QATQH.js +118 -0
  334. package/dist/page-photos-OQ5QATQH.js.map +1 -0
  335. package/dist/performance-NIF3CESZ.js +27 -0
  336. package/dist/performance-T6TBVHVU.js +5541 -0
  337. package/dist/performance-T6TBVHVU.js.map +1 -0
  338. package/dist/pixels-LQAJOZIM.js +62 -0
  339. package/dist/pixels-LQAJOZIM.js.map +1 -0
  340. package/dist/plan-7UF76Q6U.js +208 -0
  341. package/dist/plan-7UF76Q6U.js.map +1 -0
  342. package/dist/preview-LRJOQ7LM.js +218 -0
  343. package/dist/preview-LRJOQ7LM.js.map +1 -0
  344. package/dist/promoted-tweet-writes-Y6BBOWDL.js +183 -0
  345. package/dist/promoted-tweet-writes-Y6BBOWDL.js.map +1 -0
  346. package/dist/promoted-tweets-RJT53DRM.js +119 -0
  347. package/dist/publish-IOTMJCCY.js +344 -0
  348. package/dist/publish-IOTMJCCY.js.map +1 -0
  349. package/dist/query-XZMDGRO5.js +62 -0
  350. package/dist/questionnaire-DWEH5II4.js +94 -0
  351. package/dist/questionnaire-DWEH5II4.js.map +1 -0
  352. package/dist/reddit-JIHMAKAQ.js +29 -0
  353. package/dist/refresh-OQZ263CS.js +97 -0
  354. package/dist/refresh-OQZ263CS.js.map +1 -0
  355. package/dist/release-4CHFURO3.js +63 -0
  356. package/dist/release-4CHFURO3.js.map +1 -0
  357. package/dist/relevant-pages-FS7GBVXK.js +99 -0
  358. package/dist/remove-IJQPHPDI.js +53 -0
  359. package/dist/remove-IJQPHPDI.js.map +1 -0
  360. package/dist/reopen-YTLPVKUR.js +66 -0
  361. package/dist/reopen-YTLPVKUR.js.map +1 -0
  362. package/dist/rerun-C7NB7B35.js +95 -0
  363. package/dist/rerun-C7NB7B35.js.map +1 -0
  364. package/dist/research-PNBACCCP.js +72 -0
  365. package/dist/research-TLHNPK3O.js +265 -0
  366. package/dist/research-TLHNPK3O.js.map +1 -0
  367. package/dist/reset-JVLW7HA2.js +57 -0
  368. package/dist/reset-JVLW7HA2.js.map +1 -0
  369. package/dist/reset-Y6FXLAQE.js +57 -0
  370. package/dist/reset-Y6FXLAQE.js.map +1 -0
  371. package/dist/resolve-YLRESES5.js +124 -0
  372. package/dist/resolve-YLRESES5.js.map +1 -0
  373. package/dist/retry-3V3IGDRR.js +65 -0
  374. package/dist/retry-3V3IGDRR.js.map +1 -0
  375. package/dist/retry-AEKQLQMP.js +63 -0
  376. package/dist/retry-AEKQLQMP.js.map +1 -0
  377. package/dist/revenue-E4GQIOUY.js +91 -0
  378. package/dist/revenue-E4GQIOUY.js.map +1 -0
  379. package/dist/rule-writes-UAVWT4XS.js +525 -0
  380. package/dist/rule-writes-UAVWT4XS.js.map +1 -0
  381. package/dist/rules-34BQAWU3.js +99 -0
  382. package/dist/rules-34BQAWU3.js.map +1 -0
  383. package/dist/rules-ZVS2MWED.js +217 -0
  384. package/dist/rules-add-CM5XUYNS.js +465 -0
  385. package/dist/rules-add-CM5XUYNS.js.map +1 -0
  386. package/dist/run-MD64RDHZ.js +69 -0
  387. package/dist/run-MD64RDHZ.js.map +1 -0
  388. package/dist/run-QCNRR3CA.js +70 -0
  389. package/dist/scaffold-ad-NADPY3CB.js +1516 -0
  390. package/dist/scaffold-ad-NADPY3CB.js.map +1 -0
  391. package/dist/scaffold-static-ad-5YEYYVYH.js +1015 -0
  392. package/dist/scaffold-static-ad-5YEYYVYH.js.map +1 -0
  393. package/dist/scaffold-video-W7DF2CBJ.js +888 -0
  394. package/dist/scaffold-video-W7DF2CBJ.js.map +1 -0
  395. package/dist/schedule-CTRRF6TS.js +64 -0
  396. package/dist/schedule-CTRRF6TS.js.map +1 -0
  397. package/dist/scheduled-agents-OXYAVSIE.js +55 -0
  398. package/dist/schema-BEUYOGSW.js +135 -0
  399. package/dist/schema-BEUYOGSW.js.map +1 -0
  400. package/dist/search-GFJKWPKN.js +177 -0
  401. package/dist/search-GFJKWPKN.js.map +1 -0
  402. package/dist/select-S72CCL57.js +106 -0
  403. package/dist/select-S72CCL57.js.map +1 -0
  404. package/dist/sends-LAY5C74B.js +349 -0
  405. package/dist/sends-LAY5C74B.js.map +1 -0
  406. package/dist/set-prompt-YYFDRXRI.js +198 -0
  407. package/dist/set-prompt-YYFDRXRI.js.map +1 -0
  408. package/dist/setup-links-D4JJLESN.js +144 -0
  409. package/dist/setup-links-D4JJLESN.js.map +1 -0
  410. package/dist/shopify-T4UWFIQC.js +3958 -0
  411. package/dist/shopify-T4UWFIQC.js.map +1 -0
  412. package/dist/site-BBZAUZA3.js +180 -0
  413. package/dist/site-BBZAUZA3.js.map +1 -0
  414. package/dist/sources-BUPV7H7F.js +457 -0
  415. package/dist/sources-BUPV7H7F.js.map +1 -0
  416. package/dist/sources-FLUGHSVP.js +30 -0
  417. package/dist/stale-HP54JS5X.js +76 -0
  418. package/dist/stale-HP54JS5X.js.map +1 -0
  419. package/dist/status-CLSWQFCQ.js +65 -0
  420. package/dist/status-CLSWQFCQ.js.map +1 -0
  421. package/dist/studies-EPO2AM4M.js +250 -0
  422. package/dist/study-writes-7FP443QQ.js +470 -0
  423. package/dist/study-writes-7FP443QQ.js.map +1 -0
  424. package/dist/sync-4YTVVEVC.js +57 -0
  425. package/dist/sync-4YTVVEVC.js.map +1 -0
  426. package/dist/sync-definition-OGQ5XTQE.js +69 -0
  427. package/dist/tags-CZTRQNXV.js +26 -0
  428. package/dist/tags-FDQXWTCQ.js +23 -0
  429. package/dist/tags-FDQXWTCQ.js.map +1 -0
  430. package/dist/tags-R67DKRZ6.js +23 -0
  431. package/dist/tags-R67DKRZ6.js.map +1 -0
  432. package/dist/tags-SA2LU6AW.js +227 -0
  433. package/dist/tags-SA2LU6AW.js.map +1 -0
  434. package/dist/tags-ZOXX6VRE.js +23 -0
  435. package/dist/tags-ZOXX6VRE.js.map +1 -0
  436. package/dist/targeting-NKZFEZD7.js +762 -0
  437. package/dist/targeting-NKZFEZD7.js.map +1 -0
  438. package/dist/targeting-criteria-AQYXVSGN.js +113 -0
  439. package/dist/targets-UUVCEG3F.js +106 -0
  440. package/dist/targets-UUVCEG3F.js.map +1 -0
  441. package/dist/testimonials-G3OCNPBY.js +32 -0
  442. package/dist/themes-FEVYZZCW.js +95 -0
  443. package/dist/top-companies-BQGWKYUK.js +111 -0
  444. package/dist/top-companies-BQGWKYUK.js.map +1 -0
  445. package/dist/transcript-U46AEOEI.js +165 -0
  446. package/dist/transcript-U46AEOEI.js.map +1 -0
  447. package/dist/translate-AS7JVKYM.js +609 -0
  448. package/dist/translate-AS7JVKYM.js.map +1 -0
  449. package/dist/triggers-ECRBPYYF.js +144 -0
  450. package/dist/triggers-ECRBPYYF.js.map +1 -0
  451. package/dist/unlink-VDNCSRJV.js +70 -0
  452. package/dist/unlink-VDNCSRJV.js.map +1 -0
  453. package/dist/unstage-ATDXUYP2.js +88 -0
  454. package/dist/unstage-ATDXUYP2.js.map +1 -0
  455. package/dist/unstage-ZA3WQBEA.js +96 -0
  456. package/dist/unstage-ZA3WQBEA.js.map +1 -0
  457. package/dist/update-FJ6TBV3E.js +101 -0
  458. package/dist/update-FJ6TBV3E.js.map +1 -0
  459. package/dist/update-HDBJCSTI.js +66 -0
  460. package/dist/update-HDBJCSTI.js.map +1 -0
  461. package/dist/update-U43DJRGV.js +155 -0
  462. package/dist/update-U43DJRGV.js.map +1 -0
  463. package/dist/update-Z7TIUBMJ.js +192 -0
  464. package/dist/update-Z7TIUBMJ.js.map +1 -0
  465. package/dist/upload-LXCFSRIU.js +129 -0
  466. package/dist/upload-LXCFSRIU.js.map +1 -0
  467. package/dist/url-options-Z4BQBEMI.js +131 -0
  468. package/dist/url-options-Z4BQBEMI.js.map +1 -0
  469. package/dist/url-params-J7RKP5RB.js +101 -0
  470. package/dist/url-params-J7RKP5RB.js.map +1 -0
  471. package/dist/validate-VR3HEOMJ.js +122 -0
  472. package/dist/validate-VR3HEOMJ.js.map +1 -0
  473. package/dist/videos-36AXDUGZ.js +41 -0
  474. package/dist/viewer-check-6HL4OUQY.js +83 -0
  475. package/dist/web-7BRJRQX7.js +143 -0
  476. package/dist/web-7BRJRQX7.js.map +1 -0
  477. package/dist/winning-ads-GMM5W2O4.js +86 -0
  478. package/dist/write-commands-IM5DPG3R.js +1502 -0
  479. package/dist/write-commands-IM5DPG3R.js.map +1 -0
  480. package/dist/write-commands-OGVDWWBV.js +1172 -0
  481. package/dist/write-commands-OGVDWWBV.js.map +1 -0
  482. package/dist/x-HGFAL3NY.js +47 -0
  483. package/package.json +1 -1
  484. package/dist/account-UUAEQWO3.js +0 -80
  485. package/dist/account-UUAEQWO3.js.map +0 -1
  486. package/dist/account-WLQBAQMD.js +0 -80
  487. package/dist/account-WLQBAQMD.js.map +0 -1
  488. package/dist/account-assets-O7IA37RE.js +0 -290
  489. package/dist/account-level-EU7BWCO7.js +0 -609
  490. package/dist/account-level-EU7BWCO7.js.map +0 -1
  491. package/dist/account-reads-SNOWDHHF.js +0 -219
  492. package/dist/account-users-NV37Z2XJ.js +0 -62
  493. package/dist/account-users-NV37Z2XJ.js.map +0 -1
  494. package/dist/account-writes-TU3WJRSI.js +0 -66
  495. package/dist/account-writes-TU3WJRSI.js.map +0 -1
  496. package/dist/accounts-MZ6SETJJ.js +0 -78
  497. package/dist/accounts-MZ6SETJJ.js.map +0 -1
  498. package/dist/accounts-U7ZBEAY6.js +0 -699
  499. package/dist/accounts-U7ZBEAY6.js.map +0 -1
  500. package/dist/actions-4JYHXRFH.js +0 -55
  501. package/dist/activecampaign-IDBV26HH.js +0 -936
  502. package/dist/activecampaign-IDBV26HH.js.map +0 -1
  503. package/dist/ad-group-writes-HLBWN4E4.js +0 -170
  504. package/dist/ad-group-writes-HLBWN4E4.js.map +0 -1
  505. package/dist/ad-groups-33NZD6J3.js +0 -68
  506. package/dist/ad-groups-33NZD6J3.js.map +0 -1
  507. package/dist/ad-writes-7ZDNDZ2E.js +0 -174
  508. package/dist/ad-writes-7ZDNDZ2E.js.map +0 -1
  509. package/dist/add-AF42LQQQ.js +0 -105
  510. package/dist/add-AF42LQQQ.js.map +0 -1
  511. package/dist/add-LJRZYJ7I.js +0 -303
  512. package/dist/add-LJRZYJ7I.js.map +0 -1
  513. package/dist/ads-KBE5JXCH.js +0 -115
  514. package/dist/ads-LXWXOQHX.js +0 -48
  515. package/dist/ads-X3AM6M7L.js +0 -77
  516. package/dist/ads-X3AM6M7L.js.map +0 -1
  517. package/dist/adsets-YWBJFPAZ.js +0 -182
  518. package/dist/advertisers-6FOCN2W3.js +0 -121
  519. package/dist/advertisers-6FOCN2W3.js.map +0 -1
  520. package/dist/analytics-64HBRJJE.js +0 -2435
  521. package/dist/analytics-64HBRJJE.js.map +0 -1
  522. package/dist/analytics-VY5NL2GL.js +0 -445
  523. package/dist/analytics-VY5NL2GL.js.map +0 -1
  524. package/dist/asset-writes-72DEVXGO.js +0 -48
  525. package/dist/assign-N2I2BM67.js +0 -78
  526. package/dist/assign-N2I2BM67.js.map +0 -1
  527. package/dist/audience-size-H5DEZXJN.js +0 -74
  528. package/dist/audience-size-H5DEZXJN.js.map +0 -1
  529. package/dist/audience-writes-KCHLNFSI.js +0 -325
  530. package/dist/audience-writes-KCHLNFSI.js.map +0 -1
  531. package/dist/audiences-QAH42HIM.js +0 -86
  532. package/dist/audiences-WCDWN64L.js +0 -268
  533. package/dist/audiences-WCDWN64L.js.map +0 -1
  534. package/dist/audit-2AAF6AOX.js +0 -152
  535. package/dist/audit-2AAF6AOX.js.map +0 -1
  536. package/dist/autocomplete-3GSKRNCZ.js +0 -112
  537. package/dist/autocomplete-3GSKRNCZ.js.map +0 -1
  538. package/dist/avatars-N6W6HUPP.js +0 -38
  539. package/dist/bid-pricing-IMITXHXN.js +0 -101
  540. package/dist/bid-pricing-IMITXHXN.js.map +0 -1
  541. package/dist/brand-ITWQVZD2.js +0 -22
  542. package/dist/brief-JJNEYPYB.js +0 -541
  543. package/dist/brief-JJNEYPYB.js.map +0 -1
  544. package/dist/campaign-groups-TTQLP32Q.js +0 -97
  545. package/dist/campaign-groups-TTQLP32Q.js.map +0 -1
  546. package/dist/campaign-writes-MAKPHQ3V.js +0 -166
  547. package/dist/campaign-writes-MAKPHQ3V.js.map +0 -1
  548. package/dist/campaign-writes-XO74BALZ.js +0 -174
  549. package/dist/campaign-writes-XO74BALZ.js.map +0 -1
  550. package/dist/campaigns-5BIDXYSR.js +0 -111
  551. package/dist/campaigns-LS65QM6W.js +0 -76
  552. package/dist/campaigns-LS65QM6W.js.map +0 -1
  553. package/dist/campaigns-XZOQ2VTK.js +0 -130
  554. package/dist/campaigns-XZPXCS7I.js +0 -111
  555. package/dist/campaigns-XZPXCS7I.js.map +0 -1
  556. package/dist/canvas-SL3RMOY5.js +0 -46
  557. package/dist/capabilities-LSR5GCE6.js +0 -145
  558. package/dist/capabilities-LSR5GCE6.js.map +0 -1
  559. package/dist/catalogs-JLCSFZYC.js +0 -779
  560. package/dist/catalogs-JLCSFZYC.js.map +0 -1
  561. package/dist/catalogs-T23RKYFC.js +0 -128
  562. package/dist/catalogs-T23RKYFC.js.map +0 -1
  563. package/dist/changes-36C754R4.js +0 -135
  564. package/dist/chatgpt-3WFOPURY.js +0 -47
  565. package/dist/chats-GGYTXNJS.js +0 -277
  566. package/dist/chats-GGYTXNJS.js.map +0 -1
  567. package/dist/check-P7UPBBG7.js +0 -105
  568. package/dist/check-P7UPBBG7.js.map +0 -1
  569. package/dist/chunk-2TOIY2WN.js +0 -4254
  570. package/dist/chunk-4D46PS6J.js +0 -344
  571. package/dist/chunk-4GAEB6NK.js +0 -228
  572. package/dist/chunk-5XTGG4PV.js +0 -274
  573. package/dist/chunk-6JCX3YLM.js +0 -249
  574. package/dist/chunk-7J3NZBPV.js +0 -2982
  575. package/dist/chunk-7J3NZBPV.js.map +0 -1
  576. package/dist/chunk-ALMYGH5U.js +0 -479
  577. package/dist/chunk-AQKRSEBQ.js +0 -103
  578. package/dist/chunk-BL6RTOK3.js +0 -297
  579. package/dist/chunk-C6CBBZBO.js +0 -203
  580. package/dist/chunk-CCEDZTP7.js +0 -391
  581. package/dist/chunk-CCEDZTP7.js.map +0 -1
  582. package/dist/chunk-CKQTJ2LV.js +0 -89
  583. package/dist/chunk-D3KLDIPQ.js +0 -45
  584. package/dist/chunk-DL2UJNJ7.js +0 -8954
  585. package/dist/chunk-DQ54POZN.js +0 -363
  586. package/dist/chunk-EDLZGTGN.js +0 -216
  587. package/dist/chunk-EDLZGTGN.js.map +0 -1
  588. package/dist/chunk-EXSHBYNQ.js +0 -349
  589. package/dist/chunk-EXSHBYNQ.js.map +0 -1
  590. package/dist/chunk-FFFJBNHA.js +0 -63
  591. package/dist/chunk-FKQK22IX.js +0 -51
  592. package/dist/chunk-FLK6QHOY.js +0 -142
  593. package/dist/chunk-GACSA5A6.js +0 -1646
  594. package/dist/chunk-HJKYTNAZ.js +0 -61
  595. package/dist/chunk-INUU3752.js +0 -392
  596. package/dist/chunk-IQHO2ABF.js +0 -197
  597. package/dist/chunk-J3UWMBOP.js +0 -547
  598. package/dist/chunk-JDR3HUEL.js +0 -191
  599. package/dist/chunk-JI77AKT6.js +0 -19
  600. package/dist/chunk-JNURZHZJ.js +0 -942
  601. package/dist/chunk-JSNMKTFM.js +0 -592
  602. package/dist/chunk-K4FLWDEX.js +0 -122
  603. package/dist/chunk-KBRJSPIM.js +0 -676
  604. package/dist/chunk-LAC6YHHX.js +0 -97
  605. package/dist/chunk-M7HD42M6.js +0 -24017
  606. package/dist/chunk-M7HD42M6.js.map +0 -1
  607. package/dist/chunk-MGYC2IRC.js +0 -783
  608. package/dist/chunk-MI4HXE7M.js +0 -23
  609. package/dist/chunk-MJ7RNDD4.js +0 -910
  610. package/dist/chunk-OBJCNGZL.js +0 -207
  611. package/dist/chunk-OJGYYH6K.js +0 -179
  612. package/dist/chunk-OLBLXJNI.js +0 -224
  613. package/dist/chunk-PFTYKINE.js +0 -207
  614. package/dist/chunk-PLBITHV6.js +0 -846
  615. package/dist/chunk-Q6JMMBSQ.js +0 -831
  616. package/dist/chunk-RAQHUMKS.js +0 -169
  617. package/dist/chunk-SA22KXWT.js +0 -163
  618. package/dist/chunk-SIXU5PDF.js +0 -66
  619. package/dist/chunk-SXMK5AEJ.js +0 -494
  620. package/dist/chunk-TTLD66NI.js +0 -319
  621. package/dist/chunk-TVAIOC77.js +0 -287
  622. package/dist/chunk-TVTSA4EN.js +0 -188
  623. package/dist/chunk-V5NHJU3M.js +0 -604
  624. package/dist/chunk-VIPKDXGU.js +0 -4229
  625. package/dist/chunk-VIPKDXGU.js.map +0 -1
  626. package/dist/chunk-W4D7C74B.js +0 -387
  627. package/dist/chunk-WF25CCLD.js +0 -170
  628. package/dist/chunk-WQPUX3BA.js +0 -275
  629. package/dist/chunk-WR3FR3K3.js +0 -156
  630. package/dist/chunk-XDNJC62G.js +0 -91
  631. package/dist/chunk-XE6N4SZI.js +0 -429
  632. package/dist/chunk-XGPU2VDU.js +0 -219
  633. package/dist/chunk-XUJZO7MZ.js +0 -57
  634. package/dist/chunk-Y67LUJBE.js +0 -455
  635. package/dist/chunk-Y7XSDJEA.js +0 -3868
  636. package/dist/chunk-ZNNQK366.js +0 -7198
  637. package/dist/chunk-ZNNQK366.js.map +0 -1
  638. package/dist/chunk-ZNRGH4NS.js +0 -150
  639. package/dist/claim-4KUETSW3.js +0 -198
  640. package/dist/claim-4KUETSW3.js.map +0 -1
  641. package/dist/companies-XFO6WPVT.js +0 -196
  642. package/dist/companies-XFO6WPVT.js.map +0 -1
  643. package/dist/company-OJGISG7K.js +0 -306
  644. package/dist/company-OJGISG7K.js.map +0 -1
  645. package/dist/complete-CXOST5J3.js +0 -82
  646. package/dist/complete-CXOST5J3.js.map +0 -1
  647. package/dist/connect-HPQ32KGV.js +0 -43
  648. package/dist/conversation-D5HKCTDA.js +0 -94
  649. package/dist/conversation-D5HKCTDA.js.map +0 -1
  650. package/dist/conversion-report-DKXFHLLX.js +0 -125
  651. package/dist/conversion-report-DKXFHLLX.js.map +0 -1
  652. package/dist/conversion-upload-command-KTYAY7IG.js +0 -439
  653. package/dist/conversion-writes-7ODJDAUP.js +0 -120
  654. package/dist/conversion-writes-7ODJDAUP.js.map +0 -1
  655. package/dist/conversions-BKVGNNC6.js +0 -76
  656. package/dist/conversions-BKVGNNC6.js.map +0 -1
  657. package/dist/conversions-SYNDEB6D.js +0 -138
  658. package/dist/conversions-SYNDEB6D.js.map +0 -1
  659. package/dist/copy-writes-P4WK6OPM.js +0 -168
  660. package/dist/copy-writes-P4WK6OPM.js.map +0 -1
  661. package/dist/create-7D4VD4TC.js +0 -208
  662. package/dist/create-7D4VD4TC.js.map +0 -1
  663. package/dist/create-7QDEAWZS.js +0 -133
  664. package/dist/create-7QDEAWZS.js.map +0 -1
  665. package/dist/create-IQSYEC4M.js +0 -60
  666. package/dist/create-IQSYEC4M.js.map +0 -1
  667. package/dist/create-TQSCM7MG.js +0 -237
  668. package/dist/create-TQSCM7MG.js.map +0 -1
  669. package/dist/creatives-JPKA2RHU.js +0 -89
  670. package/dist/creatives-RNOL4F4E.js +0 -58
  671. package/dist/creatives-RXI27T2D.js +0 -221
  672. package/dist/creatives-RXI27T2D.js.map +0 -1
  673. package/dist/credentials-PYW55B52.js +0 -288
  674. package/dist/credentials-PYW55B52.js.map +0 -1
  675. package/dist/critique-2SYHNAW5.js +0 -1449
  676. package/dist/critique-2SYHNAW5.js.map +0 -1
  677. package/dist/critique-72GFZSHA.js +0 -230
  678. package/dist/critique-72GFZSHA.js.map +0 -1
  679. package/dist/crm-EATDSXXB.js +0 -225
  680. package/dist/crm-EATDSXXB.js.map +0 -1
  681. package/dist/crm-XXP3VBYD.js +0 -321
  682. package/dist/crm-XXP3VBYD.js.map +0 -1
  683. package/dist/currency-R4ORE2U3.js +0 -88
  684. package/dist/custom-conversions-5HJBB5XL.js +0 -128
  685. package/dist/customers-OFZTEXST.js +0 -57
  686. package/dist/delete-FGVZIK4R.js +0 -55
  687. package/dist/delete-FGVZIK4R.js.map +0 -1
  688. package/dist/delete-HBZZL4UA.js +0 -67
  689. package/dist/delete-HBZZL4UA.js.map +0 -1
  690. package/dist/delete-JOUXMRIX.js +0 -65
  691. package/dist/delete-JOUXMRIX.js.map +0 -1
  692. package/dist/demographics-SB7NBYOI.js +0 -139
  693. package/dist/demographics-SB7NBYOI.js.map +0 -1
  694. package/dist/discard-YYGIRDII.js +0 -67
  695. package/dist/discard-YYGIRDII.js.map +0 -1
  696. package/dist/discover-GSJRZUOC.js +0 -172
  697. package/dist/domain-3KRAJAUH.js +0 -99
  698. package/dist/domain-3KRAJAUH.js.map +0 -1
  699. package/dist/download-QCBKJ6OR.js +0 -170
  700. package/dist/download-QCBKJ6OR.js.map +0 -1
  701. package/dist/draft-7CGFFZTH.js +0 -333
  702. package/dist/draft-7CGFFZTH.js.map +0 -1
  703. package/dist/draft-BI4NW6AU.js +0 -308
  704. package/dist/draft-BI4NW6AU.js.map +0 -1
  705. package/dist/draft-LPVK6YHI.js +0 -281
  706. package/dist/draft-LPVK6YHI.js.map +0 -1
  707. package/dist/draft-QF5JEUTH.js +0 -218
  708. package/dist/draft-QF5JEUTH.js.map +0 -1
  709. package/dist/draft-WYDMLNYA.js +0 -308
  710. package/dist/experiments-ZCEYRP3H.js +0 -234
  711. package/dist/experiments-ZCEYRP3H.js.map +0 -1
  712. package/dist/facets-G7ZDPI5Q.js +0 -115
  713. package/dist/facets-G7ZDPI5Q.js.map +0 -1
  714. package/dist/feedback-3U3CL2VB.js +0 -109
  715. package/dist/feedback-3U3CL2VB.js.map +0 -1
  716. package/dist/feedback-record-4ZHPENIP.js +0 -263
  717. package/dist/feedback-record-4ZHPENIP.js.map +0 -1
  718. package/dist/fetch-PNVNNWTP.js +0 -177
  719. package/dist/fetch-PNVNNWTP.js.map +0 -1
  720. package/dist/fit-53DGYRFD.js +0 -63
  721. package/dist/flows-JXLQBP5Q.js +0 -248
  722. package/dist/flows-JXLQBP5Q.js.map +0 -1
  723. package/dist/fonts-LFMBUT4R.js +0 -37
  724. package/dist/forecast-4AG5F7YC.js +0 -169
  725. package/dist/forecast-VZAXI74O.js +0 -119
  726. package/dist/forecast-VZAXI74O.js.map +0 -1
  727. package/dist/funnel-EACC35UD.js +0 -395
  728. package/dist/funnel-EACC35UD.js.map +0 -1
  729. package/dist/get-AXBVYGAC.js +0 -57
  730. package/dist/get-AXBVYGAC.js.map +0 -1
  731. package/dist/get-D6A27Q4E.js +0 -80
  732. package/dist/get-D6A27Q4E.js.map +0 -1
  733. package/dist/google-NAA4BASO.js +0 -3267
  734. package/dist/google-ads-OIYUNDXQ.js +0 -196
  735. package/dist/google-ads-OIYUNDXQ.js.map +0 -1
  736. package/dist/history-5MRLNTCI.js +0 -67
  737. package/dist/history-5MRLNTCI.js.map +0 -1
  738. package/dist/history-IDYNIB6R.js +0 -134
  739. package/dist/history-IDYNIB6R.js.map +0 -1
  740. package/dist/history-IOUKN3WD.js +0 -100
  741. package/dist/history-IOUKN3WD.js.map +0 -1
  742. package/dist/hubspot-HL6WGC4G.js +0 -780
  743. package/dist/hubspot-HL6WGC4G.js.map +0 -1
  744. package/dist/ideas-NK3KQHAK.js +0 -43
  745. package/dist/images-2XS3JT7E.js +0 -92
  746. package/dist/ingest-DHXWZZX4.js +0 -24
  747. package/dist/ingest-FGTJRCWK.js +0 -108
  748. package/dist/ingest-FGTJRCWK.js.map +0 -1
  749. package/dist/insights-M3CYB22P.js +0 -437
  750. package/dist/insights-M3CYB22P.js.map +0 -1
  751. package/dist/insights-XCT3ONC7.js +0 -130
  752. package/dist/insights-XCT3ONC7.js.map +0 -1
  753. package/dist/inspect-53GGYRC4.js +0 -190
  754. package/dist/inspect-53GGYRC4.js.map +0 -1
  755. package/dist/instant-experiences-HT3HB4QZ.js +0 -258
  756. package/dist/instant-experiences-HT3HB4QZ.js.map +0 -1
  757. package/dist/intent-NSHW7EJT.js +0 -95
  758. package/dist/keyword-gap-ITTWKBWZ.js +0 -130
  759. package/dist/keyword-metrics-LWPE3HHW.js +0 -198
  760. package/dist/keyword-metrics-LWPE3HHW.js.map +0 -1
  761. package/dist/keywords-for-site-5K25VJ35.js +0 -129
  762. package/dist/keywords-for-site-5K25VJ35.js.map +0 -1
  763. package/dist/landing-QONUUP3C.js +0 -28
  764. package/dist/languages-MEFQQBJ2.js +0 -40
  765. package/dist/leads-FSSISJGL.js +0 -113
  766. package/dist/leads-FSSISJGL.js.map +0 -1
  767. package/dist/leads-SZOGCQFK.js +0 -538
  768. package/dist/leads-SZOGCQFK.js.map +0 -1
  769. package/dist/learn-FWWJWBDN.js +0 -205
  770. package/dist/learn-FWWJWBDN.js.map +0 -1
  771. package/dist/line-item-writes-A3UQ44NG.js +0 -209
  772. package/dist/line-item-writes-A3UQ44NG.js.map +0 -1
  773. package/dist/line-items-OH426JGT.js +0 -107
  774. package/dist/link-67E4NVEX.js +0 -65
  775. package/dist/link-67E4NVEX.js.map +0 -1
  776. package/dist/linkedin-CT2OSQ2I.js +0 -1314
  777. package/dist/linkedin-CT2OSQ2I.js.map +0 -1
  778. package/dist/linkedin-person-OSNLPLJJ.js +0 -137
  779. package/dist/linkedin-person-OSNLPLJJ.js.map +0 -1
  780. package/dist/list-J4OUXAKN.js +0 -65
  781. package/dist/list-J4OUXAKN.js.map +0 -1
  782. package/dist/list-L2OQK4W3.js +0 -304
  783. package/dist/list-L2OQK4W3.js.map +0 -1
  784. package/dist/list-LHMDAA2D.js +0 -152
  785. package/dist/list-LHMDAA2D.js.map +0 -1
  786. package/dist/locations-RLWAS6AC.js +0 -40
  787. package/dist/locations-UKBOT6SB.js +0 -67
  788. package/dist/locations-UKBOT6SB.js.map +0 -1
  789. package/dist/log-4EIV54V4.js +0 -93
  790. package/dist/log-4EIV54V4.js.map +0 -1
  791. package/dist/lookup-ZJIP2M4X.js +0 -22
  792. package/dist/make-MFU3CSN7.js +0 -1368
  793. package/dist/make-MFU3CSN7.js.map +0 -1
  794. package/dist/map-VWWWMQLK.js +0 -434
  795. package/dist/map-VWWWMQLK.js.map +0 -1
  796. package/dist/mcp-EKLO2VD7.js +0 -715
  797. package/dist/mcp-EKLO2VD7.js.map +0 -1
  798. package/dist/media-ZWN7E777.js +0 -18
  799. package/dist/media-sources-7L622UTF.js +0 -35
  800. package/dist/members-QK5M5NCJ.js +0 -45
  801. package/dist/members-QK5M5NCJ.js.map +0 -1
  802. package/dist/meta-EHKXH257.js +0 -122
  803. package/dist/metrics-K6FDCMK7.js +0 -152
  804. package/dist/normalize-WI4OGKH5.js +0 -142
  805. package/dist/normalize-WI4OGKH5.js.map +0 -1
  806. package/dist/options-FKJ2QXI6.js +0 -123
  807. package/dist/options-FKJ2QXI6.js.map +0 -1
  808. package/dist/organization-7A7MPUDG.js +0 -947
  809. package/dist/organization-7A7MPUDG.js.map +0 -1
  810. package/dist/page-photos-HWKQOSCU.js +0 -116
  811. package/dist/page-photos-HWKQOSCU.js.map +0 -1
  812. package/dist/performance-K4VB6L6Z.js +0 -25
  813. package/dist/performance-LHAL53YO.js +0 -5539
  814. package/dist/performance-LHAL53YO.js.map +0 -1
  815. package/dist/pixels-Z7ZGXAGB.js +0 -60
  816. package/dist/pixels-Z7ZGXAGB.js.map +0 -1
  817. package/dist/plan-TVQSEKYL.js +0 -207
  818. package/dist/plan-TVQSEKYL.js.map +0 -1
  819. package/dist/preview-CWRGDFCP.js +0 -216
  820. package/dist/preview-CWRGDFCP.js.map +0 -1
  821. package/dist/promoted-tweet-writes-V4ZVJOJU.js +0 -181
  822. package/dist/promoted-tweet-writes-V4ZVJOJU.js.map +0 -1
  823. package/dist/promoted-tweets-KPG4IUVD.js +0 -119
  824. package/dist/publish-Y465CVUD.js +0 -342
  825. package/dist/publish-Y465CVUD.js.map +0 -1
  826. package/dist/query-QM7MBQD7.js +0 -62
  827. package/dist/questionnaire-LEZJLMAV.js +0 -93
  828. package/dist/questionnaire-LEZJLMAV.js.map +0 -1
  829. package/dist/reddit-Z7DOVIGR.js +0 -27
  830. package/dist/refresh-A6TW2Z2F.js +0 -95
  831. package/dist/refresh-A6TW2Z2F.js.map +0 -1
  832. package/dist/release-UFESJ4TM.js +0 -61
  833. package/dist/release-UFESJ4TM.js.map +0 -1
  834. package/dist/relevant-pages-VOICMQ7U.js +0 -99
  835. package/dist/remove-YONNYA4G.js +0 -51
  836. package/dist/remove-YONNYA4G.js.map +0 -1
  837. package/dist/reopen-FYJU2IPO.js +0 -64
  838. package/dist/reopen-FYJU2IPO.js.map +0 -1
  839. package/dist/rerun-B5SBG6ZE.js +0 -93
  840. package/dist/rerun-B5SBG6ZE.js.map +0 -1
  841. package/dist/research-HW4EVOZU.js +0 -72
  842. package/dist/research-OV53DIBX.js +0 -263
  843. package/dist/research-OV53DIBX.js.map +0 -1
  844. package/dist/reset-R4SIQXFH.js +0 -55
  845. package/dist/reset-R4SIQXFH.js.map +0 -1
  846. package/dist/reset-X6ODAKYH.js +0 -55
  847. package/dist/reset-X6ODAKYH.js.map +0 -1
  848. package/dist/resolve-DNRJCLCR.js +0 -122
  849. package/dist/resolve-DNRJCLCR.js.map +0 -1
  850. package/dist/retry-D5MKBHUB.js +0 -63
  851. package/dist/retry-D5MKBHUB.js.map +0 -1
  852. package/dist/retry-DVFLE7JY.js +0 -61
  853. package/dist/retry-DVFLE7JY.js.map +0 -1
  854. package/dist/revenue-QGI6XWSK.js +0 -89
  855. package/dist/revenue-QGI6XWSK.js.map +0 -1
  856. package/dist/rule-writes-S3RN47OG.js +0 -523
  857. package/dist/rule-writes-S3RN47OG.js.map +0 -1
  858. package/dist/rules-KTJ2ZZ62.js +0 -217
  859. package/dist/rules-TR6BAC23.js +0 -97
  860. package/dist/rules-TR6BAC23.js.map +0 -1
  861. package/dist/rules-add-T5ZO5RLR.js +0 -463
  862. package/dist/rules-add-T5ZO5RLR.js.map +0 -1
  863. package/dist/run-WZ5IXWA4.js +0 -67
  864. package/dist/run-WZ5IXWA4.js.map +0 -1
  865. package/dist/run-YRR3KOUU.js +0 -68
  866. package/dist/scaffold-ad-DNUCGCIH.js +0 -1514
  867. package/dist/scaffold-ad-DNUCGCIH.js.map +0 -1
  868. package/dist/scaffold-static-ad-VR65EZAG.js +0 -1013
  869. package/dist/scaffold-static-ad-VR65EZAG.js.map +0 -1
  870. package/dist/scaffold-video-JLMKCCWE.js +0 -886
  871. package/dist/scaffold-video-JLMKCCWE.js.map +0 -1
  872. package/dist/schedule-VRHCVBZA.js +0 -62
  873. package/dist/schedule-VRHCVBZA.js.map +0 -1
  874. package/dist/scheduled-agents-DG7FTCUZ.js +0 -55
  875. package/dist/schema-WZKDWF5N.js +0 -133
  876. package/dist/schema-WZKDWF5N.js.map +0 -1
  877. package/dist/search-MN66QIKJ.js +0 -175
  878. package/dist/search-MN66QIKJ.js.map +0 -1
  879. package/dist/select-IPSM2BF2.js +0 -104
  880. package/dist/select-IPSM2BF2.js.map +0 -1
  881. package/dist/sends-6FI7WELX.js +0 -348
  882. package/dist/sends-6FI7WELX.js.map +0 -1
  883. package/dist/set-prompt-N6BD3DME.js +0 -196
  884. package/dist/set-prompt-N6BD3DME.js.map +0 -1
  885. package/dist/setup-links-GTA2AROS.js +0 -142
  886. package/dist/setup-links-GTA2AROS.js.map +0 -1
  887. package/dist/shopify-S4TG6WJH.js +0 -3956
  888. package/dist/shopify-S4TG6WJH.js.map +0 -1
  889. package/dist/site-NY622E3H.js +0 -178
  890. package/dist/site-NY622E3H.js.map +0 -1
  891. package/dist/sources-4F2XO7Z6.js +0 -455
  892. package/dist/sources-4F2XO7Z6.js.map +0 -1
  893. package/dist/sources-562ITR77.js +0 -30
  894. package/dist/stale-JKM6MXJF.js +0 -74
  895. package/dist/stale-JKM6MXJF.js.map +0 -1
  896. package/dist/status-AUWMUDA4.js +0 -63
  897. package/dist/status-AUWMUDA4.js.map +0 -1
  898. package/dist/studies-ZOEUY6YP.js +0 -250
  899. package/dist/study-writes-DTGMCNFP.js +0 -468
  900. package/dist/study-writes-DTGMCNFP.js.map +0 -1
  901. package/dist/sync-76MCGHX4.js +0 -55
  902. package/dist/sync-76MCGHX4.js.map +0 -1
  903. package/dist/sync-definition-NJPT6ABG.js +0 -67
  904. package/dist/tags-5KBOJJ5R.js +0 -26
  905. package/dist/tags-CSMLTHTU.js +0 -21
  906. package/dist/tags-CSMLTHTU.js.map +0 -1
  907. package/dist/tags-IFRZYM3G.js +0 -21
  908. package/dist/tags-IFRZYM3G.js.map +0 -1
  909. package/dist/tags-S44ADJ75.js +0 -21
  910. package/dist/tags-S44ADJ75.js.map +0 -1
  911. package/dist/tags-WR7IY3OT.js +0 -225
  912. package/dist/tags-WR7IY3OT.js.map +0 -1
  913. package/dist/targeting-VBQY3HUN.js +0 -760
  914. package/dist/targeting-VBQY3HUN.js.map +0 -1
  915. package/dist/targeting-criteria-FJWNK53T.js +0 -113
  916. package/dist/targets-2EHMMXD4.js +0 -104
  917. package/dist/targets-2EHMMXD4.js.map +0 -1
  918. package/dist/testimonials-WAPFIGFJ.js +0 -32
  919. package/dist/themes-B4LCQUXB.js +0 -95
  920. package/dist/top-companies-DJ2XQKMW.js +0 -109
  921. package/dist/top-companies-DJ2XQKMW.js.map +0 -1
  922. package/dist/transcript-J3LGOHCM.js +0 -163
  923. package/dist/transcript-J3LGOHCM.js.map +0 -1
  924. package/dist/translate-6RXO4C6Z.js +0 -607
  925. package/dist/translate-6RXO4C6Z.js.map +0 -1
  926. package/dist/triggers-CYXPNHQB.js +0 -142
  927. package/dist/triggers-CYXPNHQB.js.map +0 -1
  928. package/dist/unlink-5FJI7XZB.js +0 -68
  929. package/dist/unlink-5FJI7XZB.js.map +0 -1
  930. package/dist/unstage-54ZE2SZK.js +0 -86
  931. package/dist/unstage-54ZE2SZK.js.map +0 -1
  932. package/dist/unstage-MDSSPUKV.js +0 -95
  933. package/dist/unstage-MDSSPUKV.js.map +0 -1
  934. package/dist/update-BVBFNFMO.js +0 -99
  935. package/dist/update-BVBFNFMO.js.map +0 -1
  936. package/dist/update-GV3T7ZRC.js +0 -190
  937. package/dist/update-GV3T7ZRC.js.map +0 -1
  938. package/dist/update-PUQWUGPJ.js +0 -64
  939. package/dist/update-PUQWUGPJ.js.map +0 -1
  940. package/dist/update-YQBK6C3L.js +0 -153
  941. package/dist/update-YQBK6C3L.js.map +0 -1
  942. package/dist/upload-PXT5JAEV.js +0 -127
  943. package/dist/upload-PXT5JAEV.js.map +0 -1
  944. package/dist/url-options-IHL4OU4C.js +0 -130
  945. package/dist/url-options-IHL4OU4C.js.map +0 -1
  946. package/dist/url-params-IYUI6SFJ.js +0 -99
  947. package/dist/url-params-IYUI6SFJ.js.map +0 -1
  948. package/dist/validate-AD7F7LQ5.js +0 -120
  949. package/dist/validate-AD7F7LQ5.js.map +0 -1
  950. package/dist/videos-ZJCTODEB.js +0 -41
  951. package/dist/viewer-check-GWZNGWCO.js +0 -81
  952. package/dist/web-76CWAZNW.js +0 -141
  953. package/dist/web-76CWAZNW.js.map +0 -1
  954. package/dist/winning-ads-W7GTXTX7.js +0 -86
  955. package/dist/write-commands-K6M3RTVK.js +0 -1170
  956. package/dist/write-commands-K6M3RTVK.js.map +0 -1
  957. package/dist/write-commands-VPU53DLB.js +0 -1498
  958. package/dist/write-commands-VPU53DLB.js.map +0 -1
  959. package/dist/x-V4NNNWRU.js +0 -47
  960. /package/dist/{account-assets-O7IA37RE.js.map → account-assets-J5Z4URLQ.js.map} +0 -0
  961. /package/dist/{account-reads-SNOWDHHF.js.map → account-reads-2MSUVG46.js.map} +0 -0
  962. /package/dist/{actions-4JYHXRFH.js.map → actions-D7OWCP36.js.map} +0 -0
  963. /package/dist/{ads-LXWXOQHX.js.map → ads-HLUJB5SQ.js.map} +0 -0
  964. /package/dist/{ads-KBE5JXCH.js.map → ads-MAOI7S6V.js.map} +0 -0
  965. /package/dist/{adsets-YWBJFPAZ.js.map → adsets-QRKICEFD.js.map} +0 -0
  966. /package/dist/{asset-writes-72DEVXGO.js.map → asset-writes-JLVUAVUZ.js.map} +0 -0
  967. /package/dist/{audiences-QAH42HIM.js.map → audiences-CDDI5HR5.js.map} +0 -0
  968. /package/dist/{avatars-N6W6HUPP.js.map → avatars-WZ2JDMHH.js.map} +0 -0
  969. /package/dist/{brand-ITWQVZD2.js.map → brand-IZTTBZII.js.map} +0 -0
  970. /package/dist/{campaigns-5BIDXYSR.js.map → campaigns-4Y3JQC2U.js.map} +0 -0
  971. /package/dist/{campaigns-XZOQ2VTK.js.map → campaigns-HES5MDUG.js.map} +0 -0
  972. /package/dist/{canvas-SL3RMOY5.js.map → canvas-IQ753Q2O.js.map} +0 -0
  973. /package/dist/{changes-36C754R4.js.map → changes-VWKTM27U.js.map} +0 -0
  974. /package/dist/{chatgpt-3WFOPURY.js.map → chatgpt-OPOD2WHB.js.map} +0 -0
  975. /package/dist/{chunk-WF25CCLD.js.map → chunk-2GYCWRF3.js.map} +0 -0
  976. /package/dist/{chunk-HJKYTNAZ.js.map → chunk-2L7F7KR4.js.map} +0 -0
  977. /package/dist/{chunk-4GAEB6NK.js.map → chunk-44ZRCSR7.js.map} +0 -0
  978. /package/dist/{chunk-2TOIY2WN.js.map → chunk-46YLDIQG.js.map} +0 -0
  979. /package/dist/{chunk-DQ54POZN.js.map → chunk-4EDWXZ3I.js.map} +0 -0
  980. /package/dist/{chunk-SIXU5PDF.js.map → chunk-4FFBGR5L.js.map} +0 -0
  981. /package/dist/{chunk-XGPU2VDU.js.map → chunk-4UQRXKYJ.js.map} +0 -0
  982. /package/dist/{chunk-JSNMKTFM.js.map → chunk-4UZUUSVL.js.map} +0 -0
  983. /package/dist/{chunk-Q6JMMBSQ.js.map → chunk-4XHCEYHI.js.map} +0 -0
  984. /package/dist/{chunk-ALMYGH5U.js.map → chunk-4Z6PVR3M.js.map} +0 -0
  985. /package/dist/{chunk-K4FLWDEX.js.map → chunk-5Y5FZV2W.js.map} +0 -0
  986. /package/dist/{chunk-INUU3752.js.map → chunk-6HJXLGDV.js.map} +0 -0
  987. /package/dist/{chunk-XE6N4SZI.js.map → chunk-6S5CWGDA.js.map} +0 -0
  988. /package/dist/{chunk-SXMK5AEJ.js.map → chunk-6VYROVWO.js.map} +0 -0
  989. /package/dist/{chunk-TVAIOC77.js.map → chunk-7BUIOP36.js.map} +0 -0
  990. /package/dist/{chunk-TTLD66NI.js.map → chunk-AQRXXC6E.js.map} +0 -0
  991. /package/dist/{chunk-W4D7C74B.js.map → chunk-ARBXT73X.js.map} +0 -0
  992. /package/dist/{chunk-LAC6YHHX.js.map → chunk-BEZHQIEI.js.map} +0 -0
  993. /package/dist/{chunk-J3UWMBOP.js.map → chunk-BFURWHVR.js.map} +0 -0
  994. /package/dist/{chunk-KBRJSPIM.js.map → chunk-DSCEXBDR.js.map} +0 -0
  995. /package/dist/{chunk-MI4HXE7M.js.map → chunk-FLWDFPXE.js.map} +0 -0
  996. /package/dist/{chunk-GACSA5A6.js.map → chunk-FRNBRN2C.js.map} +0 -0
  997. /package/dist/{chunk-FKQK22IX.js.map → chunk-GE3VT3CA.js.map} +0 -0
  998. /package/dist/{chunk-FLK6QHOY.js.map → chunk-HGBJQGO5.js.map} +0 -0
  999. /package/dist/{chunk-MGYC2IRC.js.map → chunk-I7AYMJZA.js.map} +0 -0
  1000. /package/dist/{chunk-PFTYKINE.js.map → chunk-IRM273C7.js.map} +0 -0
  1001. /package/dist/{chunk-WR3FR3K3.js.map → chunk-IWKD56AY.js.map} +0 -0
  1002. /package/dist/{chunk-Y7XSDJEA.js.map → chunk-JLAQWMVF.js.map} +0 -0
  1003. /package/dist/{chunk-XUJZO7MZ.js.map → chunk-K6NULQN7.js.map} +0 -0
  1004. /package/dist/{chunk-JI77AKT6.js.map → chunk-L2BRAC2J.js.map} +0 -0
  1005. /package/dist/{chunk-Y67LUJBE.js.map → chunk-LGMI4LSY.js.map} +0 -0
  1006. /package/dist/{chunk-OJGYYH6K.js.map → chunk-NB2FU6EZ.js.map} +0 -0
  1007. /package/dist/{chunk-TVTSA4EN.js.map → chunk-NWF2LRKO.js.map} +0 -0
  1008. /package/dist/{chunk-WQPUX3BA.js.map → chunk-OG47L5GG.js.map} +0 -0
  1009. /package/dist/{chunk-RAQHUMKS.js.map → chunk-OR6KVLI5.js.map} +0 -0
  1010. /package/dist/{chunk-OBJCNGZL.js.map → chunk-QDQZ62FL.js.map} +0 -0
  1011. /package/dist/{chunk-4D46PS6J.js.map → chunk-QIOFOD4K.js.map} +0 -0
  1012. /package/dist/{chunk-6JCX3YLM.js.map → chunk-R2SYF5FC.js.map} +0 -0
  1013. /package/dist/{chunk-JNURZHZJ.js.map → chunk-RTH2I55B.js.map} +0 -0
  1014. /package/dist/{chunk-FFFJBNHA.js.map → chunk-S6VFDNSQ.js.map} +0 -0
  1015. /package/dist/{chunk-ZNRGH4NS.js.map → chunk-SG2TDQEE.js.map} +0 -0
  1016. /package/dist/{chunk-CKQTJ2LV.js.map → chunk-T3P6O2VU.js.map} +0 -0
  1017. /package/dist/{chunk-V5NHJU3M.js.map → chunk-TXDE2QJ3.js.map} +0 -0
  1018. /package/dist/{chunk-C6CBBZBO.js.map → chunk-UDIEKCIR.js.map} +0 -0
  1019. /package/dist/{chunk-SA22KXWT.js.map → chunk-USCADMM3.js.map} +0 -0
  1020. /package/dist/{chunk-MJ7RNDD4.js.map → chunk-UUGISMNE.js.map} +0 -0
  1021. /package/dist/{chunk-IQHO2ABF.js.map → chunk-VDPOCAQ2.js.map} +0 -0
  1022. /package/dist/{chunk-AQKRSEBQ.js.map → chunk-VEJ3QX6M.js.map} +0 -0
  1023. /package/dist/{chunk-XDNJC62G.js.map → chunk-VFJB7OG6.js.map} +0 -0
  1024. /package/dist/{chunk-DL2UJNJ7.js.map → chunk-VRIPVLE7.js.map} +0 -0
  1025. /package/dist/{chunk-5XTGG4PV.js.map → chunk-WFY7KSHB.js.map} +0 -0
  1026. /package/dist/{chunk-D3KLDIPQ.js.map → chunk-WLESMH4J.js.map} +0 -0
  1027. /package/dist/{chunk-PLBITHV6.js.map → chunk-XHQYFNNK.js.map} +0 -0
  1028. /package/dist/{chunk-OLBLXJNI.js.map → chunk-YILZR3XI.js.map} +0 -0
  1029. /package/dist/{chunk-JDR3HUEL.js.map → chunk-YJFLXOH4.js.map} +0 -0
  1030. /package/dist/{chunk-BL6RTOK3.js.map → chunk-YWHZYR6S.js.map} +0 -0
  1031. /package/dist/{connect-HPQ32KGV.js.map → connect-3YY7MF3I.js.map} +0 -0
  1032. /package/dist/{conversion-upload-command-KTYAY7IG.js.map → conversion-upload-command-7RSZ5ZQU.js.map} +0 -0
  1033. /package/dist/{creatives-RNOL4F4E.js.map → creatives-2DR3QHJW.js.map} +0 -0
  1034. /package/dist/{creatives-JPKA2RHU.js.map → creatives-BB6S2OF6.js.map} +0 -0
  1035. /package/dist/{currency-R4ORE2U3.js.map → currency-X7Y6TSLF.js.map} +0 -0
  1036. /package/dist/{custom-conversions-5HJBB5XL.js.map → custom-conversions-HAGG72LF.js.map} +0 -0
  1037. /package/dist/{customers-OFZTEXST.js.map → customers-663K2OCP.js.map} +0 -0
  1038. /package/dist/{discover-GSJRZUOC.js.map → discover-6DORQWXY.js.map} +0 -0
  1039. /package/dist/{draft-WYDMLNYA.js.map → draft-R6EKORNS.js.map} +0 -0
  1040. /package/dist/{fit-53DGYRFD.js.map → fit-BEFCY2B4.js.map} +0 -0
  1041. /package/dist/{fonts-LFMBUT4R.js.map → fonts-C6XN5667.js.map} +0 -0
  1042. /package/dist/{forecast-4AG5F7YC.js.map → forecast-BTPIXEQ5.js.map} +0 -0
  1043. /package/dist/{google-NAA4BASO.js.map → google-M6BJ22UL.js.map} +0 -0
  1044. /package/dist/{ideas-NK3KQHAK.js.map → ideas-M66FU45H.js.map} +0 -0
  1045. /package/dist/{images-2XS3JT7E.js.map → images-MM5OPUKV.js.map} +0 -0
  1046. /package/dist/{ingest-DHXWZZX4.js.map → ingest-KMLYCFF4.js.map} +0 -0
  1047. /package/dist/{intent-NSHW7EJT.js.map → intent-YCQCUCV3.js.map} +0 -0
  1048. /package/dist/{keyword-gap-ITTWKBWZ.js.map → keyword-gap-PUSF7EKY.js.map} +0 -0
  1049. /package/dist/{landing-QONUUP3C.js.map → landing-OZU5RRFV.js.map} +0 -0
  1050. /package/dist/{languages-MEFQQBJ2.js.map → languages-SLFV73GE.js.map} +0 -0
  1051. /package/dist/{line-items-OH426JGT.js.map → line-items-NJMEPEF5.js.map} +0 -0
  1052. /package/dist/{locations-RLWAS6AC.js.map → locations-T2OMP6QN.js.map} +0 -0
  1053. /package/dist/{lookup-ZJIP2M4X.js.map → lookup-S5VG7AWH.js.map} +0 -0
  1054. /package/dist/{media-ZWN7E777.js.map → media-P4T4ZBNS.js.map} +0 -0
  1055. /package/dist/{media-sources-7L622UTF.js.map → media-sources-EQI3U4TC.js.map} +0 -0
  1056. /package/dist/{meta-EHKXH257.js.map → meta-IPLWNYC7.js.map} +0 -0
  1057. /package/dist/{metrics-K6FDCMK7.js.map → metrics-4YVJHYRI.js.map} +0 -0
  1058. /package/dist/{performance-K4VB6L6Z.js.map → performance-NIF3CESZ.js.map} +0 -0
  1059. /package/dist/{promoted-tweets-KPG4IUVD.js.map → promoted-tweets-RJT53DRM.js.map} +0 -0
  1060. /package/dist/{query-QM7MBQD7.js.map → query-XZMDGRO5.js.map} +0 -0
  1061. /package/dist/{reddit-Z7DOVIGR.js.map → reddit-JIHMAKAQ.js.map} +0 -0
  1062. /package/dist/{relevant-pages-VOICMQ7U.js.map → relevant-pages-FS7GBVXK.js.map} +0 -0
  1063. /package/dist/{research-HW4EVOZU.js.map → research-PNBACCCP.js.map} +0 -0
  1064. /package/dist/{rules-KTJ2ZZ62.js.map → rules-ZVS2MWED.js.map} +0 -0
  1065. /package/dist/{run-YRR3KOUU.js.map → run-QCNRR3CA.js.map} +0 -0
  1066. /package/dist/{scheduled-agents-DG7FTCUZ.js.map → scheduled-agents-OXYAVSIE.js.map} +0 -0
  1067. /package/dist/{sources-562ITR77.js.map → sources-FLUGHSVP.js.map} +0 -0
  1068. /package/dist/{studies-ZOEUY6YP.js.map → studies-EPO2AM4M.js.map} +0 -0
  1069. /package/dist/{sync-definition-NJPT6ABG.js.map → sync-definition-OGQ5XTQE.js.map} +0 -0
  1070. /package/dist/{tags-5KBOJJ5R.js.map → tags-CZTRQNXV.js.map} +0 -0
  1071. /package/dist/{targeting-criteria-FJWNK53T.js.map → targeting-criteria-AQYXVSGN.js.map} +0 -0
  1072. /package/dist/{testimonials-WAPFIGFJ.js.map → testimonials-G3OCNPBY.js.map} +0 -0
  1073. /package/dist/{themes-B4LCQUXB.js.map → themes-FEVYZZCW.js.map} +0 -0
  1074. /package/dist/{videos-ZJCTODEB.js.map → videos-36AXDUGZ.js.map} +0 -0
  1075. /package/dist/{viewer-check-GWZNGWCO.js.map → viewer-check-6HL4OUQY.js.map} +0 -0
  1076. /package/dist/{winning-ads-W7GTXTX7.js.map → winning-ads-GMM5W2O4.js.map} +0 -0
  1077. /package/dist/{x-V4NNNWRU.js.map → x-HGFAL3NY.js.map} +0 -0
@@ -0,0 +1,465 @@
1
+ import {
2
+ rulesView
3
+ } from "./chunk-QVQKCVP7.js";
4
+ import {
5
+ fetchRunRecord
6
+ } from "./chunk-FLWDFPXE.js";
7
+ import {
8
+ loadCandidate
9
+ } from "./chunk-IWKD56AY.js";
10
+ import {
11
+ readAllRules
12
+ } from "./chunk-QIOFOD4K.js";
13
+ import {
14
+ RULES_DIR,
15
+ RULE_APPLIES,
16
+ RULE_KINDS,
17
+ RULE_STRENGTHS,
18
+ parseRuleFile
19
+ } from "./chunk-A3IQAONL.js";
20
+ import "./chunk-3YJNSUNF.js";
21
+ import {
22
+ holdWorkspaceSpend
23
+ } from "./chunk-E44NXCTL.js";
24
+ import {
25
+ findWorkspaceRoot
26
+ } from "./chunk-EJGAJHLB.js";
27
+ import {
28
+ reviewAgainstRules
29
+ } from "./chunk-MVD7QIXI.js";
30
+ import {
31
+ reviewedRules
32
+ } from "./chunk-7HZSORAB.js";
33
+ import "./chunk-MCJ5I5LR.js";
34
+ import {
35
+ askJev
36
+ } from "./chunk-LNNTHEL7.js";
37
+ import "./chunk-FOMFU2RX.js";
38
+ import "./chunk-PSGIHSNC.js";
39
+ import "./chunk-PONLPYD7.js";
40
+ import "./chunk-PC3FJEZH.js";
41
+ import "./chunk-CAZGM2NX.js";
42
+ import "./chunk-NZS3KEQ2.js";
43
+ import "./chunk-GIWHHCD6.js";
44
+ import "./chunk-SOPVIIUW.js";
45
+ import "./chunk-G4FG5EQO.js";
46
+ import "./chunk-NSBNIPIW.js";
47
+ import "./chunk-46YLDIQG.js";
48
+ import {
49
+ apiPost
50
+ } from "./chunk-X7VQFLHI.js";
51
+ import "./chunk-LU4HI4KI.js";
52
+ import "./chunk-LGK7UWBN.js";
53
+ import {
54
+ registerSchema,
55
+ writeJson
56
+ } from "./chunk-Q7US4OOA.js";
57
+ import "./chunk-YQSBHWOI.js";
58
+
59
+ // src/commands/creatives/rules-add.ts
60
+ import { mkdir, readFile, writeFile } from "fs/promises";
61
+ import path from "path";
62
+ import { defineCommand } from "citty";
63
+ import sharp from "sharp";
64
+
65
+ // src/engine/creative-rules/admission.ts
66
+ async function breaks(rule, version, review) {
67
+ const found = await review(version, [rule]).catch(() => null);
68
+ return found === null ? null : found.filter((f) => f.kind?.rule === rule.id && f.severity === "blocking");
69
+ }
70
+ async function admissionTest(rule, origin, approved, review) {
71
+ const untested = { origin: "untested", approved: { checked: 0, blocked: [] } };
72
+ const tested = { ...rule, strength: rule.strength === "prefer" ? "must" : rule.strength };
73
+ if (reviewedRules([tested]).length === 0) return untested;
74
+ const own = origin ? await breaks(tested, origin, review) : null;
75
+ const results = await Promise.all(
76
+ approved.map(async (v) => ({ runId: v.runId, found: await breaks(tested, v, review) }))
77
+ );
78
+ const looked = results.filter((r) => r.found !== null);
79
+ return {
80
+ origin: own === null ? "untested" : own.length > 0 ? "caught" : "missed",
81
+ approved: {
82
+ checked: looked.length,
83
+ blocked: looked.flatMap(
84
+ (r) => r.found?.[0] ? [{ runId: r.runId, what: r.found[0].what.replace(/^.*?\): /, "") }] : []
85
+ )
86
+ }
87
+ };
88
+ }
89
+ function admissionRefusal(rule, admission) {
90
+ if (admission.origin === "missed") {
91
+ return {
92
+ code: "RULE_MISSES_ITS_AD",
93
+ message: `Not saved: "${rule.text}" does not catch the version it came from (${rule.source.runId ?? "the rejected one"}), so it is worded for something else.`,
94
+ fix: "Reword it to name exactly what was wrong on that version, in the person's words, and add it again; or ask the person what the rule is."
95
+ };
96
+ }
97
+ const blocked = admission.approved.blocked;
98
+ if (blocked.length > 0) {
99
+ return {
100
+ code: "RULE_BLOCKS_APPROVED",
101
+ message: `Not saved: "${rule.text}" would block ${blocked.length} version${blocked.length === 1 ? "" : "s"} the person approved: ${blocked.map((b) => `${b.runId} (${b.what})`).join("; ")}.`,
102
+ fix: "Ask the person whether those approved ads break it. If they do not, reword the rule so it names only what they reject, and add it again."
103
+ };
104
+ }
105
+ return null;
106
+ }
107
+
108
+ // src/engine/creative-rules/compare.ts
109
+ var SAME = "Do rules `a` and `b` ask the same thing of an ad, in any words or language, so that an ad keeping one keeps the other?";
110
+ var CONFLICT = "Do rules `a` and `b` contradict each other, so that no ad could keep both: following one breaks the other?";
111
+ var SAME_BAND = 0.6;
112
+ var CONFLICT_BAND = 0.6;
113
+ var BATCH = 40;
114
+ function jevPairs(onSpend) {
115
+ return async (pairs) => {
116
+ const answers = [];
117
+ for (let i = 0; i < pairs.length; i += BATCH) {
118
+ const batch = pairs.slice(i, i + BATCH);
119
+ const got = await askJev(
120
+ batch.map((p) => ({ instructions: { a: p.a, b: p.b, question: p.question === "same" ? SAME : CONFLICT } })),
121
+ onSpend
122
+ );
123
+ if (!got) return null;
124
+ answers.push(...got);
125
+ }
126
+ return answers;
127
+ };
128
+ }
129
+ async function compareRule(candidate, existing, ask) {
130
+ const active = existing.filter((r) => r.status === "active" && r.id !== candidate.id);
131
+ if (active.length === 0) return { same: [], conflicts: [], judged: true };
132
+ const pairs = active.flatMap((r) => [
133
+ { a: candidate.text, b: r.text, question: "same" },
134
+ { a: candidate.text, b: r.text, question: "conflict" }
135
+ ]);
136
+ const answers = await ask(pairs).catch(() => null);
137
+ if (!answers || answers.length !== pairs.length) return { same: [], conflicts: [], judged: false };
138
+ return {
139
+ same: active.filter((_, i) => (answers[2 * i] ?? 0) >= SAME_BAND),
140
+ conflicts: active.filter((_, i) => (answers[2 * i + 1] ?? 0) >= CONFLICT_BAND),
141
+ judged: true
142
+ };
143
+ }
144
+
145
+ // src/engine/creative-rules/write.ts
146
+ import { stringify as stringifyYaml } from "yaml";
147
+ function ruleFileText(rule) {
148
+ const frontmatter = {
149
+ strength: rule.strength,
150
+ applies: rule.applies,
151
+ ...Object.keys(rule.scope).length > 0 ? { scope: rule.scope } : {},
152
+ ...rule.check && Object.keys(rule.check).length > 0 ? { check: rule.check } : {},
153
+ source: rule.source,
154
+ status: rule.status,
155
+ ...rule.retiredBy ? { retiredBy: rule.retiredBy } : {}
156
+ };
157
+ const yaml = stringifyYaml(frontmatter, { defaultStringType: "QUOTE_DOUBLE", defaultKeyType: "PLAIN", lineWidth: 0 });
158
+ return `---
159
+ ${yaml}---
160
+ ${rule.text.trim()}
161
+ ${rule.why ? `
162
+ Why: ${rule.why.trim()}
163
+ ` : ""}`;
164
+ }
165
+ var SLUG_WORDS = 8;
166
+ function ruleSlug(text2, taken) {
167
+ const base = text2.normalize("NFKD").replace(new RegExp("\\p{M}", "gu"), "").toLowerCase().replace(/[^a-z0-9]+/g, " ").trim().split(/\s+/).filter(Boolean).slice(0, SLUG_WORDS).join("-") || "rule";
168
+ if (!taken.includes(base)) return base;
169
+ let n = 2;
170
+ while (taken.includes(`${base}-${n}`)) n++;
171
+ return `${base}-${n}`;
172
+ }
173
+
174
+ // src/commands/creatives/rules-add.ts
175
+ var oneOf = (values, value) => value && values.includes(value) ? value : void 0;
176
+ var defined = (value) => Object.fromEntries(
177
+ Object.entries(value).filter(([, v]) => v !== void 0 && !(Array.isArray(v) && v.length === 0))
178
+ );
179
+ function scopeOf(f, c) {
180
+ return defined({
181
+ kinds: (f.kinds ?? c?.kinds)?.flatMap((k) => oneOf(RULE_KINDS, k) ?? []),
182
+ products: f.products,
183
+ platforms: f.platforms ?? c?.platforms,
184
+ language: f.language ?? c?.language
185
+ });
186
+ }
187
+ function checkOf(f, c) {
188
+ const realPeople = f.people === void 0 ? c?.people === "real" : f.people === "real";
189
+ return defined({
190
+ forbid: f.forbid ?? c?.forbid,
191
+ require: f.require ?? c?.require,
192
+ allow: f.allow ?? c?.allow,
193
+ people: realPeople ? "real" : void 0
194
+ });
195
+ }
196
+ function ruleFromInputs(inputs, at) {
197
+ const c = inputs.candidate;
198
+ const f = inputs.flags ?? {};
199
+ const text2 = (f.text ?? c?.text)?.trim();
200
+ if (!text2) return { error: "--text: the rule, in the person's words (or --candidate <id> from `feedback record`)." };
201
+ const check = checkOf(f, c);
202
+ const source = defined({
203
+ kind: c ? "feedback" : "user",
204
+ slug: f.slug ?? c?.source.slug,
205
+ runId: f.run ?? c?.source.runId,
206
+ quote: f.quote ?? c?.source.quote,
207
+ date: at.today
208
+ });
209
+ return {
210
+ id: ruleSlug(f.id ?? text2, at.taken),
211
+ origin: "learned",
212
+ strength: oneOf(RULE_STRENGTHS, f.strength) ?? c?.strength ?? "must",
213
+ applies: oneOf(RULE_APPLIES, f.applies) ?? c?.applies ?? "any",
214
+ scope: scopeOf(f, c),
215
+ ...Object.keys(check).length > 0 ? { check } : {},
216
+ text: text2,
217
+ ...f.why ? { why: f.why } : {},
218
+ source,
219
+ status: "active"
220
+ };
221
+ }
222
+ async function versionOf(runId) {
223
+ const record = await fetchRunRecord(runId).catch(() => null);
224
+ const images = (record?.finalOutputs ?? []).filter((o) => o.kind === "image" && o.url);
225
+ const stills = await Promise.all(
226
+ images.map(async (o) => {
227
+ const response = await fetch(o.url).catch(() => null);
228
+ if (!response?.ok) return null;
229
+ const bytes = Buffer.from(await response.arrayBuffer());
230
+ return (await sharp(bytes).resize({ width: 1024 }).jpeg({ quality: 85 }).toBuffer()).toString("base64");
231
+ })
232
+ );
233
+ const kept = images.flatMap(
234
+ (o, i) => stills[i] ? [{ still: stills[i], format: o.label ?? "image" }] : []
235
+ );
236
+ return kept.length > 0 ? { runId, stills: kept.map((k) => k.still), formats: kept.map((k) => k.format) } : null;
237
+ }
238
+ var APPROVED_VERSIONS = 3;
239
+ async function approvedVersions(except, slug) {
240
+ const feedback = await apiPost("/api/creatives/feedback", { full: true }).catch(
241
+ () => null
242
+ );
243
+ const approved = (feedback?.data.recent ?? []).filter((e) => e.verdict === "approved" && e.runId !== except);
244
+ const ordered = [...approved.filter((e) => e.creative !== slug), ...approved.filter((e) => e.creative === slug)];
245
+ const runIds = [...new Set(ordered.map((e) => e.runId))];
246
+ const versions = [];
247
+ for (const runId of runIds) {
248
+ if (versions.length === APPROVED_VERSIONS) break;
249
+ const version = await versionOf(runId);
250
+ if (version) versions.push(version);
251
+ }
252
+ return versions;
253
+ }
254
+ async function admit(rule) {
255
+ const spent = [];
256
+ const review = (version, rules) => reviewAgainstRules({ ...version, rules, onSpend: (u) => spent.push(u) });
257
+ const [origin, approved] = await Promise.all([
258
+ rule.source.runId ? versionOf(rule.source.runId) : Promise.resolve(null),
259
+ approvedVersions(rule.source.runId, rule.source.slug)
260
+ ]);
261
+ const admission = await admissionTest(rule, origin, approved, review);
262
+ await holdWorkspaceSpend(spent);
263
+ return admission;
264
+ }
265
+ async function compareHoldingSpend(rule, existing) {
266
+ const spent = [];
267
+ try {
268
+ return await compareRule(
269
+ rule,
270
+ existing,
271
+ jevPairs((u) => spent.push(u))
272
+ );
273
+ } finally {
274
+ await holdWorkspaceSpend(spent);
275
+ }
276
+ }
277
+ async function retireFile(root, id, by) {
278
+ const file = path.join(root, RULES_DIR, `${id}.md`);
279
+ const rule = parseRuleFile(id, await readFile(file, "utf8").catch(() => ""));
280
+ if (!rule) return null;
281
+ const retired = { ...rule, status: "retired", ...by ? { retiredBy: by } : {} };
282
+ await writeFile(file, ruleFileText(retired), "utf8");
283
+ return retired;
284
+ }
285
+ function fail(code, message, fix, extra = {}) {
286
+ writeJson({ ok: false, error: { code, message, ...fix ? { fix } : {}, ...extra } });
287
+ process.exit(1);
288
+ }
289
+ var list = (value) => typeof value === "string" && value.trim() ? value.split(",").map((s) => s.trim()).filter(Boolean) : void 0;
290
+ var text = (value) => typeof value === "string" && value.trim() ? value.trim() : void 0;
291
+ var ADD_DESCRIPTION = `Save a rule the person agreed to, for every ad from now on: one file in src/content/creative-rules/, published with the Session. Only after they said yes to "make this a rule for every ad?".
292
+ Start here: baker creatives rules add --candidate rc-1a2b3c4d # a rule \`feedback record\` drafted from their words
293
+ baker creatives rules add --text "No AI-generated people." --strength never --applies cast --people real --quote "<their words>" --slug <ad> --run <r_\u2026>
294
+ It is refused when the company already has it (DUPLICATE_RULE), when it contradicts one (RULE_CONFLICT: ask which wins, then --replaces <id>), when it does not catch the version it came from (RULE_MISSES_ITS_AD), or would block versions the person approved (RULE_BLOCKS_APPROVED): ask the person, never save it anyway.`;
295
+ var ADD_ARGS = {
296
+ candidate: {
297
+ type: "string",
298
+ description: "A rule `feedback record` drafted (rc-\u2026): the flags below override its parts",
299
+ required: false
300
+ },
301
+ text: {
302
+ type: "string",
303
+ description: "The rule, one sentence, in the person's own language and words",
304
+ required: false
305
+ },
306
+ strength: {
307
+ type: "string",
308
+ description: `${RULE_STRENGTHS.join(" | ")}: never and must are checked and block; prefer is a note`,
309
+ required: false
310
+ },
311
+ applies: { type: "string", description: `What of the ad it is about: ${RULE_APPLIES.join(", ")}`, required: false },
312
+ forbid: {
313
+ type: "string",
314
+ description: 'Words it bans, comma-separated, only when a word decides it ("online")',
315
+ required: false
316
+ },
317
+ allow: { type: "string", description: 'The right phrase that holds a banned word ("100 % online")', required: false },
318
+ require: { type: "string", description: "Words every ad must say, comma-separated (rare)", required: false },
319
+ people: {
320
+ type: "string",
321
+ description: "real: only real people appear (a real person's Avatar, a customer, footage or nobody)",
322
+ required: false
323
+ },
324
+ kinds: { type: "string", description: "static,video: only ads of these kinds", required: false },
325
+ products: { type: "string", description: "Product slugs (a business unit): only ads of these", required: false },
326
+ platforms: { type: "string", description: "meta,linkedin,\u2026: only ads for these", required: false },
327
+ language: {
328
+ type: "string",
329
+ description: "The language its words are in (es): its banned words are checked only in ads in it",
330
+ required: false
331
+ },
332
+ quote: { type: "string", description: "The person's own words it came from, verbatim", required: false },
333
+ slug: { type: "string", description: "The creative they said it about", required: false },
334
+ run: { type: "string", description: "The version they said it about (r_\u2026): the rule must catch it", required: false },
335
+ why: { type: "string", description: "Why, in a sentence, when the person said", required: false },
336
+ id: { type: "string", description: "The rule's id (its file name); default: from its words", required: false },
337
+ replaces: {
338
+ type: "string",
339
+ description: "A rule of the person's it contradicts and wins over: retired, never deleted",
340
+ required: false
341
+ }
342
+ };
343
+ registerSchema({ command: "creatives.rules.add", description: ADD_DESCRIPTION, args: ADD_ARGS });
344
+ function brandMdHint(declared, relation) {
345
+ return relation === "same" ? `BRAND.md states this too ("${declared.text}"): now the person confirmed it, every finished ad is checked against it.` : `BRAND.md says otherwise ("${declared.text}"): tell the person, and change only that line of BRAND.md (/brand-build) so it no longer says otherwise; never write the rule itself into BRAND.md, or retiring it would leave it in force.`;
346
+ }
347
+ var rulesAddCommand = defineCommand({
348
+ meta: { name: "add", description: ADD_DESCRIPTION },
349
+ args: ADD_ARGS,
350
+ async run({ args }) {
351
+ const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();
352
+ const cacheDir = path.join(root, "canvas", ".cache");
353
+ const candidateId = text(args.candidate);
354
+ const candidate = candidateId ? await loadCandidate(cacheDir, candidateId) : void 0;
355
+ if (candidateId && !candidate) {
356
+ fail(
357
+ "VALIDATION_ERROR",
358
+ `No drafted rule ${candidateId} here.`,
359
+ "Use the id `feedback record` printed in this chat, or pass --text."
360
+ );
361
+ }
362
+ const all = await readAllRules(root);
363
+ const rule = ruleFromInputs(
364
+ {
365
+ ...candidate ? { candidate } : {},
366
+ flags: {
367
+ text: text(args.text),
368
+ strength: text(args.strength),
369
+ applies: text(args.applies),
370
+ forbid: list(args.forbid),
371
+ allow: list(args.allow),
372
+ require: list(args.require),
373
+ people: text(args.people),
374
+ kinds: list(args.kinds),
375
+ products: list(args.products),
376
+ platforms: list(args.platforms),
377
+ language: text(args.language),
378
+ quote: text(args.quote),
379
+ slug: text(args.slug),
380
+ run: text(args.run),
381
+ why: text(args.why),
382
+ id: text(args.id)
383
+ }
384
+ },
385
+ { today: (/* @__PURE__ */ new Date()).toISOString().slice(0, 10), taken: all.map((r) => r.id) }
386
+ );
387
+ if ("error" in rule) fail("VALIDATION_ERROR", rule.error);
388
+ const replaces = text(args.replaces);
389
+ const compared = await compareHoldingSpend(rule, all);
390
+ const sameTaught = compared.same.filter((r) => r.origin === "learned");
391
+ if (sameTaught.length > 0) {
392
+ fail(
393
+ "DUPLICATE_RULE",
394
+ `The company already has this rule: ${sameTaught.map((r) => `${r.id} ("${r.text}")`).join("; ")}.`,
395
+ "Nothing to add. If the person wants it worded otherwise, retire that one and add this."
396
+ );
397
+ }
398
+ const conflicts = compared.conflicts.filter((r) => r.origin === "learned" && r.id !== replaces);
399
+ if (conflicts.length > 0) {
400
+ fail(
401
+ "RULE_CONFLICT",
402
+ `It contradicts ${conflicts.map((r) => `${r.id} ("${r.text}")`).join("; ")}.`,
403
+ "Ask the person which one wins. This one: add it again with --replaces <id> (that rule is retired, never deleted). The other: do not add this one."
404
+ );
405
+ }
406
+ const admission = await admit(rule);
407
+ const refusal = admissionRefusal(rule, admission);
408
+ if (refusal) fail(refusal.code, refusal.message, refusal.fix, { admission });
409
+ await mkdir(path.join(root, RULES_DIR), { recursive: true });
410
+ const file = path.join(RULES_DIR, `${rule.id}.md`);
411
+ await writeFile(path.join(root, file), ruleFileText(rule), "utf8");
412
+ const retired = replaces ? await retireFile(root, replaces, rule.id) : null;
413
+ const declared = [...compared.same, ...compared.conflicts].filter((r) => r.origin === "declared");
414
+ writeJson({
415
+ ok: true,
416
+ data: {
417
+ rule: rulesView([rule], { full: true })[0],
418
+ file,
419
+ admission,
420
+ ...retired ? { retired: retired.id } : {}
421
+ },
422
+ hints: [
423
+ `Saved for every ad from now on${admission.origin === "untested" ? " (not tested on a version: nothing a picture shows decides it, or the version had no picture)" : ""}. Tell the person in one line, then run \`baker creatives check\`: which ads already made break it.`,
424
+ ...compared.judged ? [] : [
425
+ "Whether it repeats or contradicts another rule could not be read (the decision model did not answer): look at `baker creatives rules list`."
426
+ ],
427
+ ...declared.map((r) => brandMdHint(r, compared.same.includes(r) ? "same" : "conflict"))
428
+ ]
429
+ });
430
+ }
431
+ });
432
+ var RETIRE_DESCRIPTION = `Retire a rule a person taught, when they say it no longer holds or another replaces it: it stays in its file as retired, never deleted, and no ad is held to it.
433
+ Start here: baker creatives rules retire cien-por-cien-online [--by <rule id>|BRAND.md]
434
+ A rule of BRAND.md is changed in BRAND.md (/brand-build).`;
435
+ var RETIRE_ARGS = {
436
+ id: { type: "positional", description: "The rule's id (`baker creatives rules list`)", required: true },
437
+ by: { type: "string", description: "What replaces it: another rule's id, or BRAND.md", required: false }
438
+ };
439
+ registerSchema({ command: "creatives.rules.retire", description: RETIRE_DESCRIPTION, args: RETIRE_ARGS });
440
+ var rulesRetireCommand = defineCommand({
441
+ meta: { name: "retire", description: RETIRE_DESCRIPTION },
442
+ args: RETIRE_ARGS,
443
+ async run({ args }) {
444
+ const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();
445
+ const id = String(args.id);
446
+ if (/^brand-[0-9a-f]{8}$/.test(id)) {
447
+ fail("VALIDATION_ERROR", `${id} is a rule of BRAND.md.`, "Change it in BRAND.md with /brand-build.");
448
+ }
449
+ const retired = await retireFile(root, id, text(args.by));
450
+ if (!retired) fail("NOT_FOUND", `No rule ${id} in ${RULES_DIR}.`, "See `baker creatives rules list --all`.");
451
+ writeJson({
452
+ ok: true,
453
+ data: { rule: rulesView([retired], { full: true })[0] },
454
+ hints: ["Retired: no ad is held to it from now on."]
455
+ });
456
+ }
457
+ });
458
+ export {
459
+ brandMdHint,
460
+ compareHoldingSpend,
461
+ ruleFromInputs,
462
+ rulesAddCommand,
463
+ rulesRetireCommand
464
+ };
465
+ //# sourceMappingURL=rules-add-CM5XUYNS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/creatives/rules-add.ts","../src/engine/creative-rules/admission.ts","../src/engine/creative-rules/compare.ts","../src/engine/creative-rules/write.ts"],"sourcesContent":["/**\n * `baker creatives rules add` and `retire`: a rule a person agreed to, saved for every ad from now\n * on as one file in src/content/creative-rules/ (staged in the Session and published with it), and\n * a rule retired, never deleted. A rule is saved only when it is not one the company already has,\n * contradicts none without the person picking the winner, catches the version it came from and\n * blocks none the person approved.\n */\nimport { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport type { CreativesFeedbackResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport sharp from \"sharp\";\nimport { apiPost } from \"../../client.ts\";\nimport { readAllRules } from \"../../engine/creative-context/index.ts\";\nimport {\n type Admission,\n admissionRefusal,\n admissionTest,\n type ReviewedVersion,\n} from \"../../engine/creative-rules/admission.ts\";\nimport { type Comparison, compareRule, jevPairs } from \"../../engine/creative-rules/compare.ts\";\nimport { parseRuleFile, RULES_DIR } from \"../../engine/creative-rules/read.ts\";\nimport {\n type CreativeRule,\n RULE_APPLIES,\n RULE_KINDS,\n RULE_STRENGTHS,\n type RuleCheck,\n type RuleScope,\n} from \"../../engine/creative-rules/schema.ts\";\nimport { ruleFileText, ruleSlug } from \"../../engine/creative-rules/write.ts\";\nimport { reviewAgainstRules } from \"../../engine/nodes/local/lib/rules-review.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { findWorkspaceRoot } from \"../canvas/normalize-paths.ts\";\nimport { fetchRunRecord } from \"../canvas/run-history.ts\";\nimport { holdWorkspaceSpend } from \"../canvas/unbilled-spend.ts\";\nimport { loadCandidate, type SavedCandidate } from \"./rule-candidate.ts\";\nimport { rulesView } from \"./rules-view.ts\";\n\n/** What the flags say of the rule; each overrides the candidate's. */\nexport type RuleFlags = {\n text?: string;\n strength?: string;\n applies?: string;\n forbid?: string[];\n require?: string[];\n allow?: string[];\n people?: string;\n kinds?: string[];\n products?: string[];\n platforms?: string[];\n language?: string;\n quote?: string;\n slug?: string;\n run?: string;\n why?: string;\n id?: string;\n};\n\nconst oneOf = <T extends string>(values: readonly T[], value: string | undefined): T | undefined =>\n value && (values as readonly string[]).includes(value) ? (value as T) : undefined;\n\nconst defined = <T extends object>(value: T): T =>\n Object.fromEntries(\n Object.entries(value).filter(([, v]) => v !== undefined && !(Array.isArray(v) && v.length === 0)),\n ) as T;\n\n/** Where the rule holds: the flags over the candidate's. Pure. */\nfunction scopeOf(f: RuleFlags, c: SavedCandidate | undefined): RuleScope {\n return defined<RuleScope>({\n kinds: (f.kinds ?? c?.kinds)?.flatMap((k) => oneOf(RULE_KINDS, k) ?? []),\n products: f.products,\n platforms: f.platforms ?? c?.platforms,\n language: f.language ?? c?.language,\n });\n}\n\n/** What code decides of the rule: the flags over the candidate's. Pure. */\nfunction checkOf(f: RuleFlags, c: SavedCandidate | undefined): RuleCheck {\n const realPeople = f.people === undefined ? c?.people === \"real\" : f.people === \"real\";\n return defined<RuleCheck>({\n forbid: f.forbid ?? c?.forbid,\n require: f.require ?? c?.require,\n allow: f.allow ?? c?.allow,\n people: realPeople ? \"real\" : undefined,\n });\n}\n\n/** The rule to save, from a drafted candidate and the flags over it; what is missing when there is none. Pure. */\nexport function ruleFromInputs(\n inputs: { candidate?: SavedCandidate; flags?: RuleFlags },\n at: { today: string; taken: readonly string[] },\n): CreativeRule | { error: string } {\n const c = inputs.candidate;\n const f = inputs.flags ?? {};\n const text = (f.text ?? c?.text)?.trim();\n if (!text) return { error: \"--text: the rule, in the person's words (or --candidate <id> from `feedback record`).\" };\n const check = checkOf(f, c);\n const source = defined({\n kind: c ? (\"feedback\" as const) : (\"user\" as const),\n slug: f.slug ?? c?.source.slug,\n runId: f.run ?? c?.source.runId,\n quote: f.quote ?? c?.source.quote,\n date: at.today,\n });\n return {\n id: ruleSlug(f.id ?? text, at.taken),\n origin: \"learned\",\n strength: oneOf(RULE_STRENGTHS, f.strength) ?? c?.strength ?? \"must\",\n applies: oneOf(RULE_APPLIES, f.applies) ?? c?.applies ?? \"any\",\n scope: scopeOf(f, c),\n ...(Object.keys(check).length > 0 ? { check } : {}),\n text,\n ...(f.why ? { why: f.why } : {}),\n source,\n status: \"active\",\n };\n}\n\n/** One version's finished sizes as review stills, from the run history; null when it has no picture. */\nasync function versionOf(runId: string): Promise<ReviewedVersion | null> {\n const record = await fetchRunRecord(runId).catch(() => null);\n const images = (record?.finalOutputs ?? []).filter((o) => o.kind === \"image\" && o.url);\n const stills = await Promise.all(\n images.map(async (o) => {\n const response = await fetch(o.url as string).catch(() => null);\n if (!response?.ok) return null;\n const bytes = Buffer.from(await response.arrayBuffer());\n return (await sharp(bytes).resize({ width: 1024 }).jpeg({ quality: 85 }).toBuffer()).toString(\"base64\");\n }),\n );\n const kept = images.flatMap((o, i) =>\n stills[i] ? [{ still: stills[i] as string, format: o.label ?? \"image\" }] : [],\n );\n return kept.length > 0 ? { runId, stills: kept.map((k) => k.still), formats: kept.map((k) => k.format) } : null;\n}\n\n/** How many approved versions a rule is tested against: a few, other creatives' first. */\nconst APPROVED_VERSIONS = 3;\n\n/** The company's approved versions to test a rule against, other creatives' first. */\nasync function approvedVersions(except: string | undefined, slug: string | undefined): Promise<ReviewedVersion[]> {\n const feedback = await apiPost<CreativesFeedbackResponse>(\"/api/creatives/feedback\", { full: true }).catch(\n () => null,\n );\n const approved = (feedback?.data.recent ?? []).filter((e) => e.verdict === \"approved\" && e.runId !== except);\n const ordered = [...approved.filter((e) => e.creative !== slug), ...approved.filter((e) => e.creative === slug)];\n const runIds = [...new Set(ordered.map((e) => e.runId))];\n const versions: ReviewedVersion[] = [];\n for (const runId of runIds) {\n if (versions.length === APPROVED_VERSIONS) break;\n const version = await versionOf(runId);\n if (version) versions.push(version);\n }\n return versions;\n}\n\n/** The rule on the version it came from and on the company's approved ones (`admissionTest`). */\nasync function admit(rule: CreativeRule): Promise<Admission> {\n const spent: Parameters<typeof holdWorkspaceSpend>[0][number][] = [];\n const review = (version: ReviewedVersion, rules: CreativeRule[]) =>\n reviewAgainstRules({ ...version, rules, onSpend: (u) => spent.push(u) });\n const [origin, approved] = await Promise.all([\n rule.source.runId ? versionOf(rule.source.runId) : Promise.resolve(null),\n approvedVersions(rule.source.runId, rule.source.slug),\n ]);\n const admission = await admissionTest(rule, origin, approved, review);\n await holdWorkspaceSpend(spent);\n return admission;\n}\n\n/**\n * `rule` against the existing ones, what the decision model cost held for the workspace's next run\n * record: a duplicate or conflict refusal exits right after this, and the calls were still paid.\n */\nexport async function compareHoldingSpend(rule: CreativeRule, existing: readonly CreativeRule[]): Promise<Comparison> {\n const spent: Parameters<typeof holdWorkspaceSpend>[0][number][] = [];\n try {\n return await compareRule(\n rule,\n existing,\n jevPairs((u) => spent.push(u)),\n );\n } finally {\n await holdWorkspaceSpend(spent);\n }\n}\n\n/** A learned rule's file, retired by `by`; null when there is no such file. */\nasync function retireFile(root: string, id: string, by: string | undefined): Promise<CreativeRule | null> {\n const file = path.join(root, RULES_DIR, `${id}.md`);\n const rule = parseRuleFile(id, await readFile(file, \"utf8\").catch(() => \"\"));\n if (!rule) return null;\n const retired: CreativeRule = { ...rule, status: \"retired\", ...(by ? { retiredBy: by } : {}) };\n await writeFile(file, ruleFileText(retired), \"utf8\");\n return retired;\n}\n\nfunction fail(code: string, message: string, fix?: string, extra: Record<string, unknown> = {}): never {\n writeJson({ ok: false, error: { code, message, ...(fix ? { fix } : {}), ...extra } });\n process.exit(1);\n}\n\nconst list = (value: unknown): string[] | undefined =>\n typeof value === \"string\" && value.trim()\n ? value\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean)\n : undefined;\nconst text = (value: unknown): string | undefined =>\n typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n\nconst ADD_DESCRIPTION = `Save a rule the person agreed to, for every ad from now on: one file in src/content/creative-rules/, published with the Session. Only after they said yes to \"make this a rule for every ad?\".\nStart here: baker creatives rules add --candidate rc-1a2b3c4d # a rule \\`feedback record\\` drafted from their words\n baker creatives rules add --text \"No AI-generated people.\" --strength never --applies cast --people real --quote \"<their words>\" --slug <ad> --run <r_…>\nIt is refused when the company already has it (DUPLICATE_RULE), when it contradicts one (RULE_CONFLICT: ask which wins, then --replaces <id>), when it does not catch the version it came from (RULE_MISSES_ITS_AD), or would block versions the person approved (RULE_BLOCKS_APPROVED): ask the person, never save it anyway.`;\n\nconst ADD_ARGS = {\n candidate: {\n type: \"string\",\n description: \"A rule `feedback record` drafted (rc-…): the flags below override its parts\",\n required: false,\n },\n text: {\n type: \"string\",\n description: \"The rule, one sentence, in the person's own language and words\",\n required: false,\n },\n strength: {\n type: \"string\",\n description: `${RULE_STRENGTHS.join(\" | \")}: never and must are checked and block; prefer is a note`,\n required: false,\n },\n applies: { type: \"string\", description: `What of the ad it is about: ${RULE_APPLIES.join(\", \")}`, required: false },\n forbid: {\n type: \"string\",\n description: 'Words it bans, comma-separated, only when a word decides it (\"online\")',\n required: false,\n },\n allow: { type: \"string\", description: 'The right phrase that holds a banned word (\"100 % online\")', required: false },\n require: { type: \"string\", description: \"Words every ad must say, comma-separated (rare)\", required: false },\n people: {\n type: \"string\",\n description: \"real: only real people appear (a real person's Avatar, a customer, footage or nobody)\",\n required: false,\n },\n kinds: { type: \"string\", description: \"static,video: only ads of these kinds\", required: false },\n products: { type: \"string\", description: \"Product slugs (a business unit): only ads of these\", required: false },\n platforms: { type: \"string\", description: \"meta,linkedin,…: only ads for these\", required: false },\n language: {\n type: \"string\",\n description: \"The language its words are in (es): its banned words are checked only in ads in it\",\n required: false,\n },\n quote: { type: \"string\", description: \"The person's own words it came from, verbatim\", required: false },\n slug: { type: \"string\", description: \"The creative they said it about\", required: false },\n run: { type: \"string\", description: \"The version they said it about (r_…): the rule must catch it\", required: false },\n why: { type: \"string\", description: \"Why, in a sentence, when the person said\", required: false },\n id: { type: \"string\", description: \"The rule's id (its file name); default: from its words\", required: false },\n replaces: {\n type: \"string\",\n description: \"A rule of the person's it contradicts and wins over: retired, never deleted\",\n required: false,\n },\n} as const;\n\nregisterSchema({ command: \"creatives.rules.add\", description: ADD_DESCRIPTION, args: ADD_ARGS });\n\n/**\n * What to do about a BRAND.md rule the new one repeats or contradicts. The rule a person taught lives\n * in its own file only: a copy in BRAND.md would stay in force after it is retired. Pure.\n */\nexport function brandMdHint(declared: Pick<CreativeRule, \"text\">, relation: \"same\" | \"conflict\"): string {\n return relation === \"same\"\n ? `BRAND.md states this too (\"${declared.text}\"): now the person confirmed it, every finished ad is checked against it.`\n : `BRAND.md says otherwise (\"${declared.text}\"): tell the person, and change only that line of BRAND.md (/brand-build) so it no longer says otherwise; never write the rule itself into BRAND.md, or retiring it would leave it in force.`;\n}\n\nexport const rulesAddCommand = defineCommand({\n meta: { name: \"add\", description: ADD_DESCRIPTION },\n args: ADD_ARGS,\n async run({ args }) {\n const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();\n const cacheDir = path.join(root, \"canvas\", \".cache\");\n const candidateId = text(args.candidate);\n const candidate = candidateId ? await loadCandidate(cacheDir, candidateId) : undefined;\n if (candidateId && !candidate) {\n fail(\n \"VALIDATION_ERROR\",\n `No drafted rule ${candidateId} here.`,\n \"Use the id `feedback record` printed in this chat, or pass --text.\",\n );\n }\n const all = await readAllRules(root);\n const rule = ruleFromInputs(\n {\n ...(candidate ? { candidate } : {}),\n flags: {\n text: text(args.text),\n strength: text(args.strength),\n applies: text(args.applies),\n forbid: list(args.forbid),\n allow: list(args.allow),\n require: list(args.require),\n people: text(args.people),\n kinds: list(args.kinds),\n products: list(args.products),\n platforms: list(args.platforms),\n language: text(args.language),\n quote: text(args.quote),\n slug: text(args.slug),\n run: text(args.run),\n why: text(args.why),\n id: text(args.id),\n },\n },\n { today: new Date().toISOString().slice(0, 10), taken: all.map((r) => r.id) },\n );\n if (\"error\" in rule) fail(\"VALIDATION_ERROR\", rule.error);\n const replaces = text(args.replaces);\n const compared = await compareHoldingSpend(rule, all);\n const sameTaught = compared.same.filter((r) => r.origin === \"learned\");\n if (sameTaught.length > 0) {\n fail(\n \"DUPLICATE_RULE\",\n `The company already has this rule: ${sameTaught.map((r) => `${r.id} (\"${r.text}\")`).join(\"; \")}.`,\n \"Nothing to add. If the person wants it worded otherwise, retire that one and add this.\",\n );\n }\n const conflicts = compared.conflicts.filter((r) => r.origin === \"learned\" && r.id !== replaces);\n if (conflicts.length > 0) {\n fail(\n \"RULE_CONFLICT\",\n `It contradicts ${conflicts.map((r) => `${r.id} (\"${r.text}\")`).join(\"; \")}.`,\n \"Ask the person which one wins. This one: add it again with --replaces <id> (that rule is retired, never deleted). The other: do not add this one.\",\n );\n }\n const admission = await admit(rule);\n const refusal = admissionRefusal(rule, admission);\n if (refusal) fail(refusal.code, refusal.message, refusal.fix, { admission });\n await mkdir(path.join(root, RULES_DIR), { recursive: true });\n const file = path.join(RULES_DIR, `${rule.id}.md`);\n await writeFile(path.join(root, file), ruleFileText(rule), \"utf8\");\n const retired = replaces ? await retireFile(root, replaces, rule.id) : null;\n const declared = [...compared.same, ...compared.conflicts].filter((r) => r.origin === \"declared\");\n writeJson({\n ok: true,\n data: {\n rule: rulesView([rule], { full: true })[0],\n file,\n admission,\n ...(retired ? { retired: retired.id } : {}),\n },\n hints: [\n `Saved for every ad from now on${admission.origin === \"untested\" ? \" (not tested on a version: nothing a picture shows decides it, or the version had no picture)\" : \"\"}. Tell the person in one line, then run \\`baker creatives check\\`: which ads already made break it.`,\n ...(compared.judged\n ? []\n : [\n \"Whether it repeats or contradicts another rule could not be read (the decision model did not answer): look at `baker creatives rules list`.\",\n ]),\n ...declared.map((r) => brandMdHint(r, compared.same.includes(r) ? \"same\" : \"conflict\")),\n ],\n });\n },\n});\n\nconst RETIRE_DESCRIPTION = `Retire a rule a person taught, when they say it no longer holds or another replaces it: it stays in its file as retired, never deleted, and no ad is held to it.\nStart here: baker creatives rules retire cien-por-cien-online [--by <rule id>|BRAND.md]\nA rule of BRAND.md is changed in BRAND.md (/brand-build).`;\n\nconst RETIRE_ARGS = {\n id: { type: \"positional\", description: \"The rule's id (`baker creatives rules list`)\", required: true },\n by: { type: \"string\", description: \"What replaces it: another rule's id, or BRAND.md\", required: false },\n} as const;\n\nregisterSchema({ command: \"creatives.rules.retire\", description: RETIRE_DESCRIPTION, args: RETIRE_ARGS });\n\nexport const rulesRetireCommand = defineCommand({\n meta: { name: \"retire\", description: RETIRE_DESCRIPTION },\n args: RETIRE_ARGS,\n async run({ args }) {\n const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();\n const id = String(args.id);\n if (/^brand-[0-9a-f]{8}$/.test(id)) {\n fail(\"VALIDATION_ERROR\", `${id} is a rule of BRAND.md.`, \"Change it in BRAND.md with /brand-build.\");\n }\n const retired = await retireFile(root, id, text(args.by));\n if (!retired) fail(\"NOT_FOUND\", `No rule ${id} in ${RULES_DIR}.`, \"See `baker creatives rules list --all`.\");\n writeJson({\n ok: true,\n data: { rule: rulesView([retired], { full: true })[0] },\n hints: [\"Retired: no ad is held to it from now on.\"],\n });\n },\n});\n","/**\n * A rule's admission test, before it is saved for every ad: it must catch the version it came from\n * (the rejected one), and stay silent on versions of the company the person approved. A rule that\n * misses its own ad is worded for something else; one that would block approved ads is stricter\n * than the person. Either way the person is asked again, never the rule saved as drafted. Only the\n * rules the finished-ad review holds an ad to by eye are tested (`reviewedRules`); a voice or a\n * sound needs the video playing, and is saved untested, saying so.\n */\nimport type { RenderFinding } from \"../nodes/local/lib/render-review.ts\";\nimport { reviewedRules } from \"../nodes/local/lib/rules-findings.ts\";\nimport type { CreativeRule } from \"./schema.ts\";\n\n/** One version as the rules review looks at it: its sizes as base64 JPEG, in `formats` order. */\nexport type ReviewedVersion = { runId: string; stills: string[]; formats: string[] };\n\n/** The rules review on one version (`reviewAgainstRules`); null when nobody looked. */\nexport type ReviewVersion = (version: ReviewedVersion, rules: CreativeRule[]) => Promise<RenderFinding[] | null>;\n\nexport type Admission = {\n origin: \"caught\" | \"missed\" | \"untested\";\n approved: { checked: number; blocked: Array<{ runId: string; what: string }> };\n};\n\n/** The rule's blocking findings on a version; null when nobody looked. */\nasync function breaks(\n rule: CreativeRule,\n version: ReviewedVersion,\n review: ReviewVersion,\n): Promise<RenderFinding[] | null> {\n const found = await review(version, [rule]).catch(() => null);\n return found === null ? null : found.filter((f) => f.kind?.rule === rule.id && f.severity === \"blocking\");\n}\n\n/** The rule on the version it came from and on up to a few the person approved. */\nexport async function admissionTest(\n rule: CreativeRule,\n origin: ReviewedVersion | null,\n approved: readonly ReviewedVersion[],\n review: ReviewVersion,\n): Promise<Admission> {\n const untested: Admission = { origin: \"untested\", approved: { checked: 0, blocked: [] } };\n // A prefer never blocks: it is tested as if it did, since the person reads it the same.\n const tested = { ...rule, strength: rule.strength === \"prefer\" ? (\"must\" as const) : rule.strength };\n if (reviewedRules([tested]).length === 0) return untested;\n const own = origin ? await breaks(tested, origin, review) : null;\n const results = await Promise.all(\n approved.map(async (v) => ({ runId: v.runId, found: await breaks(tested, v, review) })),\n );\n const looked = results.filter((r) => r.found !== null);\n return {\n origin: own === null ? \"untested\" : own.length > 0 ? \"caught\" : \"missed\",\n approved: {\n checked: looked.length,\n blocked: looked.flatMap((r) =>\n r.found?.[0] ? [{ runId: r.runId, what: r.found[0].what.replace(/^.*?\\): /, \"\") }] : [],\n ),\n },\n };\n}\n\n/** Why the rule is not saved as drafted, and what to ask the person; null when it passed or was not tested. Pure. */\nexport function admissionRefusal(\n rule: CreativeRule,\n admission: Admission,\n): { code: \"RULE_MISSES_ITS_AD\" | \"RULE_BLOCKS_APPROVED\"; message: string; fix: string } | null {\n if (admission.origin === \"missed\") {\n return {\n code: \"RULE_MISSES_ITS_AD\",\n message: `Not saved: \"${rule.text}\" does not catch the version it came from (${rule.source.runId ?? \"the rejected one\"}), so it is worded for something else.`,\n fix: \"Reword it to name exactly what was wrong on that version, in the person's words, and add it again; or ask the person what the rule is.\",\n };\n }\n const blocked = admission.approved.blocked;\n if (blocked.length > 0) {\n return {\n code: \"RULE_BLOCKS_APPROVED\",\n message: `Not saved: \"${rule.text}\" would block ${blocked.length} version${blocked.length === 1 ? \"\" : \"s\"} the person approved: ${blocked.map((b) => `${b.runId} (${b.what})`).join(\"; \")}.`,\n fix: \"Ask the person whether those approved ads break it. If they do not, reword the rule so it names only what they reject, and add it again.\",\n };\n }\n return null;\n}\n","/**\n * A new rule against the ones the company already has, read by the decision model in any language:\n * which say the same (a duplicate), and which it contradicts (an ad could not keep both). `rules add`\n * refuses a duplicate of a rule a person taught, and a contradiction until the person picks the winner;\n * the loser is retired, never deleted.\n */\nimport { askJev } from \"../nodes/local/lib/jev.ts\";\nimport type { ReviewUsage } from \"../nodes/local/lib/render-review.ts\";\nimport type { CreativeRule } from \"./schema.ts\";\n\nconst SAME =\n \"Do rules `a` and `b` ask the same thing of an ad, in any words or language, so that an ad keeping one keeps the other?\";\nconst CONFLICT =\n \"Do rules `a` and `b` contradict each other, so that no ad could keep both: following one breaks the other?\";\n\n/** Above these, two rules are the same or contradict: refusing a rule by mistake costs the person a rule. */\nconst SAME_BAND = 0.6;\nconst CONFLICT_BAND = 0.6;\n\nexport type RulePair = { a: string; b: string; question: \"same\" | \"conflict\" };\n\n/** Each pair's probability of yes, in order; null when the decision model did not answer. */\nexport type AskPairs = (pairs: readonly RulePair[]) => Promise<number[] | null>;\n\n/** The most questions one request carries. */\nconst BATCH = 40;\n\n/** The decision model asked about each pair, a batch at a time. */\nexport function jevPairs(onSpend?: (usage: ReviewUsage) => void): AskPairs {\n return async (pairs) => {\n const answers: number[] = [];\n for (let i = 0; i < pairs.length; i += BATCH) {\n const batch = pairs.slice(i, i + BATCH);\n const got = await askJev(\n batch.map((p) => ({ instructions: { a: p.a, b: p.b, question: p.question === \"same\" ? SAME : CONFLICT } })),\n onSpend,\n );\n if (!got) return null;\n answers.push(...got);\n }\n return answers;\n };\n}\n\nexport type Comparison = { same: CreativeRule[]; conflicts: CreativeRule[]; judged: boolean };\n\n/** The active rules `candidate` duplicates and the ones it contradicts. */\nexport async function compareRule(\n candidate: CreativeRule,\n existing: readonly CreativeRule[],\n ask: AskPairs,\n): Promise<Comparison> {\n const active = existing.filter((r) => r.status === \"active\" && r.id !== candidate.id);\n if (active.length === 0) return { same: [], conflicts: [], judged: true };\n const pairs = active.flatMap((r): RulePair[] => [\n { a: candidate.text, b: r.text, question: \"same\" },\n { a: candidate.text, b: r.text, question: \"conflict\" },\n ]);\n const answers = await ask(pairs).catch(() => null);\n if (!answers || answers.length !== pairs.length) return { same: [], conflicts: [], judged: false };\n return {\n same: active.filter((_, i) => (answers[2 * i] ?? 0) >= SAME_BAND),\n conflicts: active.filter((_, i) => (answers[2 * i + 1] ?? 0) >= CONFLICT_BAND),\n judged: true,\n };\n}\n","/**\n * A rule a person agreed to, as the file it lives in (`src/content/creative-rules/<slug>.md`): its\n * frontmatter (what decides it, where it came from) and its words, then why. The reader\n * (`parseRuleFile`) reads it back the same. Pure.\n */\nimport { stringify as stringifyYaml } from \"yaml\";\nimport type { CreativeRule } from \"./schema.ts\";\n\n/** The rule's file: frontmatter, its words, then why. Pure. */\nexport function ruleFileText(rule: CreativeRule): string {\n const frontmatter = {\n strength: rule.strength,\n applies: rule.applies,\n ...(Object.keys(rule.scope).length > 0 ? { scope: rule.scope } : {}),\n ...(rule.check && Object.keys(rule.check).length > 0 ? { check: rule.check } : {}),\n source: rule.source,\n status: rule.status,\n ...(rule.retiredBy ? { retiredBy: rule.retiredBy } : {}),\n };\n // Every string quoted: a date stays a date's words, and a quote with a colon stays one value.\n const yaml = stringifyYaml(frontmatter, { defaultStringType: \"QUOTE_DOUBLE\", defaultKeyType: \"PLAIN\", lineWidth: 0 });\n return `---\\n${yaml}---\\n${rule.text.trim()}\\n${rule.why ? `\\nWhy: ${rule.why.trim()}\\n` : \"\"}`;\n}\n\nconst SLUG_WORDS = 8;\n\n/** A file name from the rule's words, not one of `taken`. Pure. */\nexport function ruleSlug(text: string, taken: readonly string[]): string {\n const base =\n text\n .normalize(\"NFKD\")\n .replace(/\\p{M}/gu, \"\")\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \" \")\n .trim()\n .split(/\\s+/)\n .filter(Boolean)\n .slice(0, SLUG_WORDS)\n .join(\"-\") || \"rule\";\n if (!taken.includes(base)) return base;\n let n = 2;\n while (taken.includes(`${base}-${n}`)) n++;\n return `${base}-${n}`;\n}\n"],"mappings":"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","names":["text","text"]}
@@ -0,0 +1,69 @@
1
+ import {
2
+ failApi,
3
+ failValidation,
4
+ isTempScheduledAgentId
5
+ } from "./chunk-6S5CWGDA.js";
6
+ import "./chunk-ASRS37QE.js";
7
+ import "./chunk-PC3FJEZH.js";
8
+ import "./chunk-CAZGM2NX.js";
9
+ import "./chunk-NZS3KEQ2.js";
10
+ import "./chunk-GIWHHCD6.js";
11
+ import "./chunk-SOPVIIUW.js";
12
+ import "./chunk-G4FG5EQO.js";
13
+ import "./chunk-NSBNIPIW.js";
14
+ import "./chunk-46YLDIQG.js";
15
+ import {
16
+ apiPost,
17
+ validateConvexId
18
+ } from "./chunk-X7VQFLHI.js";
19
+ import "./chunk-LU4HI4KI.js";
20
+ import "./chunk-LGK7UWBN.js";
21
+ import {
22
+ registerSchema,
23
+ writeJson
24
+ } from "./chunk-Q7US4OOA.js";
25
+ import "./chunk-YQSBHWOI.js";
26
+
27
+ // src/commands/scheduled-agents/run.ts
28
+ import { defineCommand } from "citty";
29
+ registerSchema({
30
+ command: "scheduled-agents.run",
31
+ description: "Run a published scheduled agent now, whatever its trigger says. Opens a Session immediately and returns its chatId. Does not need BAKER_CHAT_ID, and refuses a temp_agent_* id \u2014 a staged item has to be published before it can run.",
32
+ args: {
33
+ id: { type: "string", description: "Published scheduled agent ID", required: true }
34
+ }
35
+ });
36
+ var runCommand = defineCommand({
37
+ meta: {
38
+ name: "run",
39
+ description: "Run a published scheduled agent now. Example: baker scheduled-agents run <id>"
40
+ },
41
+ args: {
42
+ id: { type: "positional", description: "Published scheduled agent ID", required: false },
43
+ "scheduled-agent-id": {
44
+ type: "string",
45
+ description: "Scheduled agent ID (alternative to positional)",
46
+ required: false
47
+ }
48
+ },
49
+ run: async ({ args }) => {
50
+ try {
51
+ const id = args.id || args["scheduled-agent-id"];
52
+ if (!id) {
53
+ failValidation("Scheduled agent ID is required.");
54
+ }
55
+ if (isTempScheduledAgentId(id)) {
56
+ failValidation("run needs a published scheduled agent ID, not temp_agent_*. Publish this chat first.");
57
+ }
58
+ validateConvexId(id);
59
+ const response = await apiPost("/api/scheduled-agents/run", { id });
60
+ writeJson(response);
61
+ } catch (err) {
62
+ failApi(err);
63
+ }
64
+ }
65
+ });
66
+ export {
67
+ runCommand
68
+ };
69
+ //# sourceMappingURL=run-MD64RDHZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/scheduled-agents/run.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { apiPost, validateConvexId } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi, failValidation, isTempScheduledAgentId } from \"./shared.ts\";\n\nregisterSchema({\n command: \"scheduled-agents.run\",\n description:\n \"Run a published scheduled agent now, whatever its trigger says. Opens a Session immediately and returns its chatId. Does not need BAKER_CHAT_ID, and refuses a temp_agent_* id — a staged item has to be published before it can run.\",\n args: {\n id: { type: \"string\", description: \"Published scheduled agent ID\", required: true },\n },\n});\n\nexport const runCommand = defineCommand({\n meta: {\n name: \"run\",\n description: \"Run a published scheduled agent now. Example: baker scheduled-agents run <id>\",\n },\n args: {\n id: { type: \"positional\", description: \"Published scheduled agent ID\", required: false },\n \"scheduled-agent-id\": {\n type: \"string\",\n description: \"Scheduled agent ID (alternative to positional)\",\n required: false,\n },\n },\n run: async ({ args }) => {\n try {\n const id = (args.id as string | undefined) || (args[\"scheduled-agent-id\"] as string | undefined);\n if (!id) {\n failValidation(\"Scheduled agent ID is required.\");\n }\n if (isTempScheduledAgentId(id)) {\n failValidation(\"run needs a published scheduled agent ID, not temp_agent_*. Publish this chat first.\");\n }\n validateConvexId(id);\n const response = await apiPost<{ ok: true; data: { chatId: string } }>(\"/api/scheduled-agents/run\", { id });\n writeJson(response);\n } catch (err) {\n failApi(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAM9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,IAAI,EAAE,MAAM,UAAU,aAAa,gCAAgC,UAAU,KAAK;AAAA,EACpF;AACF,CAAC;AAEM,IAAM,aAAa,cAAc;AAAA,EACtC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,IAAI,EAAE,MAAM,cAAc,aAAa,gCAAgC,UAAU,MAAM;AAAA,IACvF,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,KAAM,KAAK,MAA8B,KAAK,oBAAoB;AACxE,UAAI,CAAC,IAAI;AACP,uBAAe,iCAAiC;AAAA,MAClD;AACA,UAAI,uBAAuB,EAAE,GAAG;AAC9B,uBAAe,sFAAsF;AAAA,MACvG;AACA,uBAAiB,EAAE;AACnB,YAAM,WAAW,MAAM,QAAgD,6BAA6B,EAAE,GAAG,CAAC;AAC1G,gBAAU,QAAQ;AAAA,IACpB,SAAS,KAAK;AACZ,cAAQ,GAAG;AAAA,IACb;AAAA,EACF;AACF,CAAC;","names":[]}