@koda-sl/baker-cli 0.512.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 +3 -3
  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-C635ATVM.js +0 -80
  485. package/dist/account-C635ATVM.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-XYYENK6X.js +0 -62
  493. package/dist/account-users-XYYENK6X.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-A2FBLZ5H.js +0 -78
  497. package/dist/accounts-A2FBLZ5H.js.map +0 -1
  498. package/dist/accounts-V2IZZ5KU.js +0 -699
  499. package/dist/accounts-V2IZZ5KU.js.map +0 -1
  500. package/dist/actions-Y4SULW2E.js +0 -55
  501. package/dist/activecampaign-63XG6CLL.js +0 -936
  502. package/dist/activecampaign-63XG6CLL.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-FOLFVGQO.js +0 -303
  510. package/dist/add-FOLFVGQO.js.map +0 -1
  511. package/dist/add-RYB4JSYC.js +0 -105
  512. package/dist/add-RYB4JSYC.js.map +0 -1
  513. package/dist/ads-2TVWICGM.js +0 -48
  514. package/dist/ads-KBE5JXCH.js +0 -115
  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-IGUMSK5Q.js +0 -121
  519. package/dist/advertisers-IGUMSK5Q.js.map +0 -1
  520. package/dist/analytics-3DKM7J43.js +0 -445
  521. package/dist/analytics-3DKM7J43.js.map +0 -1
  522. package/dist/analytics-R3QDSX2K.js +0 -2435
  523. package/dist/analytics-R3QDSX2K.js.map +0 -1
  524. package/dist/asset-writes-72DEVXGO.js +0 -48
  525. package/dist/assign-EKCGLNZB.js +0 -78
  526. package/dist/assign-EKCGLNZB.js.map +0 -1
  527. package/dist/audience-size-IKXK32HU.js +0 -74
  528. package/dist/audience-size-IKXK32HU.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-CY76S4V7.js +0 -152
  535. package/dist/audit-CY76S4V7.js.map +0 -1
  536. package/dist/autocomplete-G2S5HNUS.js +0 -112
  537. package/dist/autocomplete-G2S5HNUS.js.map +0 -1
  538. package/dist/avatars-P4UPNZM4.js +0 -38
  539. package/dist/bid-pricing-AJT4QU2C.js +0 -101
  540. package/dist/bid-pricing-AJT4QU2C.js.map +0 -1
  541. package/dist/brand-HALQWZWB.js +0 -22
  542. package/dist/brief-NW7TGG2Q.js +0 -541
  543. package/dist/brief-NW7TGG2Q.js.map +0 -1
  544. package/dist/campaign-groups-I43KMAJP.js +0 -97
  545. package/dist/campaign-groups-I43KMAJP.js.map +0 -1
  546. package/dist/campaign-writes-DLLPFAGG.js +0 -166
  547. package/dist/campaign-writes-DLLPFAGG.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-LS65QM6W.js +0 -76
  551. package/dist/campaigns-LS65QM6W.js.map +0 -1
  552. package/dist/campaigns-UIYSYCF3.js +0 -111
  553. package/dist/campaigns-UIYSYCF3.js.map +0 -1
  554. package/dist/campaigns-XZOQ2VTK.js +0 -130
  555. package/dist/campaigns-YMM5TQVO.js +0 -111
  556. package/dist/canvas-IJS7H3VE.js +0 -46
  557. package/dist/capabilities-XMQPM3UL.js +0 -145
  558. package/dist/capabilities-XMQPM3UL.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-ZI6EYDAF.js +0 -277
  566. package/dist/chats-ZI6EYDAF.js.map +0 -1
  567. package/dist/check-CHJ2OLAU.js +0 -105
  568. package/dist/check-CHJ2OLAU.js.map +0 -1
  569. package/dist/chunk-2TOIY2WN.js +0 -4254
  570. package/dist/chunk-4GAEB6NK.js +0 -228
  571. package/dist/chunk-5RVQK3SP.js +0 -494
  572. package/dist/chunk-5SRUAGTG.js +0 -547
  573. package/dist/chunk-5XTGG4PV.js +0 -274
  574. package/dist/chunk-6Z7Y4KQB.js +0 -275
  575. package/dist/chunk-7J3NZBPV.js +0 -2982
  576. package/dist/chunk-7J3NZBPV.js.map +0 -1
  577. package/dist/chunk-AIRD6T4W.js +0 -169
  578. package/dist/chunk-AQOFQNKQ.js +0 -57
  579. package/dist/chunk-ARUXGKZO.js +0 -91
  580. package/dist/chunk-AYPBARKP.js +0 -156
  581. package/dist/chunk-BRLZX3VP.js +0 -207
  582. package/dist/chunk-BTJSGJNQ.js +0 -604
  583. package/dist/chunk-C7QQQVBS.js +0 -51
  584. package/dist/chunk-CCEDZTP7.js +0 -391
  585. package/dist/chunk-CCEDZTP7.js.map +0 -1
  586. package/dist/chunk-D3KLDIPQ.js +0 -45
  587. package/dist/chunk-DUR7PEJI.js +0 -170
  588. package/dist/chunk-EDLZGTGN.js +0 -216
  589. package/dist/chunk-EDLZGTGN.js.map +0 -1
  590. package/dist/chunk-FFFJBNHA.js +0 -63
  591. package/dist/chunk-FPWQA7TK.js +0 -344
  592. package/dist/chunk-G5Y7OIPL.js +0 -392
  593. package/dist/chunk-GACSA5A6.js +0 -1646
  594. package/dist/chunk-GMHCHHAA.js +0 -19
  595. package/dist/chunk-H4NNQGG6.js +0 -66
  596. package/dist/chunk-HSQRITKG.js +0 -203
  597. package/dist/chunk-I47BEKYK.js +0 -831
  598. package/dist/chunk-JND6XSGZ.js +0 -7192
  599. package/dist/chunk-JND6XSGZ.js.map +0 -1
  600. package/dist/chunk-KBRJSPIM.js +0 -676
  601. package/dist/chunk-KQTNUDKD.js +0 -97
  602. package/dist/chunk-M7HD42M6.js +0 -24017
  603. package/dist/chunk-M7HD42M6.js.map +0 -1
  604. package/dist/chunk-MBSFEVOG.js +0 -163
  605. package/dist/chunk-MGYC2IRC.js +0 -783
  606. package/dist/chunk-MUXKYSTI.js +0 -297
  607. package/dist/chunk-MZCTX37B.js +0 -3868
  608. package/dist/chunk-N7M2TWR5.js +0 -592
  609. package/dist/chunk-NDFS3APP.js +0 -319
  610. package/dist/chunk-OBJCNGZL.js +0 -207
  611. package/dist/chunk-OJGYYH6K.js +0 -179
  612. package/dist/chunk-P6BKKUSX.js +0 -142
  613. package/dist/chunk-PLAOK4AK.js +0 -103
  614. package/dist/chunk-PLBITHV6.js +0 -846
  615. package/dist/chunk-PNKIOTCK.js +0 -349
  616. package/dist/chunk-PNKIOTCK.js.map +0 -1
  617. package/dist/chunk-QBRPM3DQ.js +0 -61
  618. package/dist/chunk-QMDMTZAW.js +0 -224
  619. package/dist/chunk-QW6HL7D6.js +0 -429
  620. package/dist/chunk-R53XMPDO.js +0 -363
  621. package/dist/chunk-RFIUOQLN.js +0 -89
  622. package/dist/chunk-RVEY7BTT.js +0 -8954
  623. package/dist/chunk-SCL7PM6P.js +0 -479
  624. package/dist/chunk-SM7G7RUA.js +0 -910
  625. package/dist/chunk-SVBJ56T7.js +0 -455
  626. package/dist/chunk-TVAIOC77.js +0 -287
  627. package/dist/chunk-TVTSA4EN.js +0 -188
  628. package/dist/chunk-VIPKDXGU.js +0 -4229
  629. package/dist/chunk-VIPKDXGU.js.map +0 -1
  630. package/dist/chunk-W574NV67.js +0 -191
  631. package/dist/chunk-XGPU2VDU.js +0 -219
  632. package/dist/chunk-XQXZJ5IR.js +0 -249
  633. package/dist/chunk-YMF2RG4Z.js +0 -942
  634. package/dist/chunk-Z2DRGXBB.js +0 -197
  635. package/dist/chunk-Z7YMSHRZ.js +0 -23
  636. package/dist/chunk-ZEC46NWW.js +0 -122
  637. package/dist/chunk-ZFC562TP.js +0 -387
  638. package/dist/chunk-ZNRGH4NS.js +0 -150
  639. package/dist/claim-OUYHVGB4.js +0 -198
  640. package/dist/claim-OUYHVGB4.js.map +0 -1
  641. package/dist/companies-XDNSG7ME.js +0 -196
  642. package/dist/companies-XDNSG7ME.js.map +0 -1
  643. package/dist/company-4FAYYPEJ.js +0 -306
  644. package/dist/company-4FAYYPEJ.js.map +0 -1
  645. package/dist/complete-M2PAUMDP.js +0 -82
  646. package/dist/complete-M2PAUMDP.js.map +0 -1
  647. package/dist/connect-PP6Z3F7Y.js +0 -43
  648. package/dist/conversation-B5NPTLFQ.js +0 -94
  649. package/dist/conversation-B5NPTLFQ.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-QRJL6JIO.js +0 -138
  658. package/dist/conversions-QRJL6JIO.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-4DWCJ2UA.js +0 -208
  662. package/dist/create-4DWCJ2UA.js.map +0 -1
  663. package/dist/create-OYV33CQ6.js +0 -60
  664. package/dist/create-OYV33CQ6.js.map +0 -1
  665. package/dist/create-U6JVIYFY.js +0 -237
  666. package/dist/create-U6JVIYFY.js.map +0 -1
  667. package/dist/create-V4FNRO63.js +0 -133
  668. package/dist/create-V4FNRO63.js.map +0 -1
  669. package/dist/creatives-64FKWEGL.js +0 -221
  670. package/dist/creatives-64FKWEGL.js.map +0 -1
  671. package/dist/creatives-JPKA2RHU.js +0 -89
  672. package/dist/creatives-UJDPD4CI.js +0 -58
  673. package/dist/credentials-EIPEZ2C2.js +0 -288
  674. package/dist/credentials-EIPEZ2C2.js.map +0 -1
  675. package/dist/critique-BADMZAZP.js +0 -230
  676. package/dist/critique-BADMZAZP.js.map +0 -1
  677. package/dist/critique-M3DEVEDA.js +0 -1449
  678. package/dist/critique-M3DEVEDA.js.map +0 -1
  679. package/dist/crm-GIYSLLY7.js +0 -321
  680. package/dist/crm-GIYSLLY7.js.map +0 -1
  681. package/dist/crm-HXKSJRY3.js +0 -225
  682. package/dist/crm-HXKSJRY3.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-7J3QGSOJ.js +0 -57
  686. package/dist/delete-EDWJQMMV.js +0 -65
  687. package/dist/delete-EDWJQMMV.js.map +0 -1
  688. package/dist/delete-O24CVQMJ.js +0 -67
  689. package/dist/delete-O24CVQMJ.js.map +0 -1
  690. package/dist/delete-QN2OYUCS.js +0 -55
  691. package/dist/delete-QN2OYUCS.js.map +0 -1
  692. package/dist/demographics-MPYYF2OI.js +0 -139
  693. package/dist/demographics-MPYYF2OI.js.map +0 -1
  694. package/dist/discard-FJCFB6SA.js +0 -67
  695. package/dist/discard-FJCFB6SA.js.map +0 -1
  696. package/dist/discover-GSJRZUOC.js +0 -172
  697. package/dist/domain-UILPSEA5.js +0 -99
  698. package/dist/domain-UILPSEA5.js.map +0 -1
  699. package/dist/download-ZMAI7QSG.js +0 -170
  700. package/dist/download-ZMAI7QSG.js.map +0 -1
  701. package/dist/draft-5OQT3APG.js +0 -308
  702. package/dist/draft-5OQT3APG.js.map +0 -1
  703. package/dist/draft-LPVK6YHI.js +0 -281
  704. package/dist/draft-LPVK6YHI.js.map +0 -1
  705. package/dist/draft-MSESA5UE.js +0 -333
  706. package/dist/draft-MSESA5UE.js.map +0 -1
  707. package/dist/draft-WYDMLNYA.js +0 -308
  708. package/dist/draft-XOOSEVY5.js +0 -218
  709. package/dist/draft-XOOSEVY5.js.map +0 -1
  710. package/dist/experiments-PVOQUL47.js +0 -234
  711. package/dist/experiments-PVOQUL47.js.map +0 -1
  712. package/dist/facets-5RW4Z3D3.js +0 -115
  713. package/dist/facets-5RW4Z3D3.js.map +0 -1
  714. package/dist/feedback-GC56R2EJ.js +0 -109
  715. package/dist/feedback-GC56R2EJ.js.map +0 -1
  716. package/dist/feedback-record-JX7ZU6J7.js +0 -263
  717. package/dist/feedback-record-JX7ZU6J7.js.map +0 -1
  718. package/dist/fetch-WUTXAPBL.js +0 -177
  719. package/dist/fetch-WUTXAPBL.js.map +0 -1
  720. package/dist/fit-N7WDGWYZ.js +0 -63
  721. package/dist/flows-ULZACISF.js +0 -248
  722. package/dist/flows-ULZACISF.js.map +0 -1
  723. package/dist/fonts-TTUAP7HS.js +0 -37
  724. package/dist/forecast-4AG5F7YC.js +0 -169
  725. package/dist/forecast-RQJJRN5D.js +0 -119
  726. package/dist/forecast-RQJJRN5D.js.map +0 -1
  727. package/dist/funnel-QPWJIXWK.js +0 -395
  728. package/dist/funnel-QPWJIXWK.js.map +0 -1
  729. package/dist/get-35D7YHWJ.js +0 -57
  730. package/dist/get-35D7YHWJ.js.map +0 -1
  731. package/dist/get-GIETDPF4.js +0 -80
  732. package/dist/get-GIETDPF4.js.map +0 -1
  733. package/dist/google-NAA4BASO.js +0 -3267
  734. package/dist/google-ads-2IZFZO4C.js +0 -196
  735. package/dist/google-ads-2IZFZO4C.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-RPLWWPLQ.js +0 -134
  739. package/dist/history-RPLWWPLQ.js.map +0 -1
  740. package/dist/history-TQYLUYVU.js +0 -100
  741. package/dist/history-TQYLUYVU.js.map +0 -1
  742. package/dist/hubspot-EPK43X4C.js +0 -780
  743. package/dist/hubspot-EPK43X4C.js.map +0 -1
  744. package/dist/ideas-SUXKKZC7.js +0 -43
  745. package/dist/images-VKVZ3DWG.js +0 -92
  746. package/dist/ingest-BBBFT6FZ.js +0 -24
  747. package/dist/ingest-EM2UY42Z.js +0 -108
  748. package/dist/ingest-EM2UY42Z.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-ZPOVOENK.js +0 -190
  754. package/dist/inspect-ZPOVOENK.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-7DPR264W.js +0 -198
  760. package/dist/keyword-metrics-7DPR264W.js.map +0 -1
  761. package/dist/keywords-for-site-IXL22UKQ.js +0 -129
  762. package/dist/keywords-for-site-IXL22UKQ.js.map +0 -1
  763. package/dist/landing-KZ4OSHHR.js +0 -28
  764. package/dist/languages-MEFQQBJ2.js +0 -40
  765. package/dist/leads-DNQTRYIR.js +0 -113
  766. package/dist/leads-DNQTRYIR.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-Q7WZG7FA.js +0 -205
  770. package/dist/learn-Q7WZG7FA.js.map +0 -1
  771. package/dist/line-item-writes-3K7FT5GO.js +0 -209
  772. package/dist/line-item-writes-3K7FT5GO.js.map +0 -1
  773. package/dist/line-items-G5YJG25N.js +0 -107
  774. package/dist/link-2QVSIZJT.js +0 -65
  775. package/dist/link-2QVSIZJT.js.map +0 -1
  776. package/dist/linkedin-VAFPZNWZ.js +0 -1314
  777. package/dist/linkedin-VAFPZNWZ.js.map +0 -1
  778. package/dist/linkedin-person-EHTYVNZY.js +0 -137
  779. package/dist/linkedin-person-EHTYVNZY.js.map +0 -1
  780. package/dist/list-5TS2VPQZ.js +0 -152
  781. package/dist/list-5TS2VPQZ.js.map +0 -1
  782. package/dist/list-PSSQXQRJ.js +0 -65
  783. package/dist/list-PSSQXQRJ.js.map +0 -1
  784. package/dist/list-UMVIFQ3X.js +0 -304
  785. package/dist/list-UMVIFQ3X.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-ZZK3QMZB.js +0 -93
  790. package/dist/log-ZZK3QMZB.js.map +0 -1
  791. package/dist/lookup-ZJIP2M4X.js +0 -22
  792. package/dist/make-DB2BDVB3.js +0 -1368
  793. package/dist/make-DB2BDVB3.js.map +0 -1
  794. package/dist/map-UJ23GKRH.js +0 -434
  795. package/dist/map-UJ23GKRH.js.map +0 -1
  796. package/dist/mcp-SS2ALFRJ.js +0 -715
  797. package/dist/mcp-SS2ALFRJ.js.map +0 -1
  798. package/dist/media-ZWN7E777.js +0 -18
  799. package/dist/media-sources-GKSEDSE3.js +0 -35
  800. package/dist/members-KD2XRYPZ.js +0 -45
  801. package/dist/members-KD2XRYPZ.js.map +0 -1
  802. package/dist/meta-EHKXH257.js +0 -122
  803. package/dist/metrics-K6FDCMK7.js +0 -152
  804. package/dist/normalize-ZNTXNX6D.js +0 -142
  805. package/dist/normalize-ZNTXNX6D.js.map +0 -1
  806. package/dist/options-TBIFJF3E.js +0 -123
  807. package/dist/options-TBIFJF3E.js.map +0 -1
  808. package/dist/organization-26J2ZIKM.js +0 -947
  809. package/dist/organization-26J2ZIKM.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-6TPJGM6A.js +0 -25
  813. package/dist/performance-O5BXZGS6.js +0 -5539
  814. package/dist/performance-O5BXZGS6.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-SZN74JHY.js +0 -181
  822. package/dist/promoted-tweet-writes-SZN74JHY.js.map +0 -1
  823. package/dist/promoted-tweets-7P4TSQU7.js +0 -119
  824. package/dist/publish-3DUERLGT.js +0 -342
  825. package/dist/publish-3DUERLGT.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-SN5CESF4.js +0 -27
  830. package/dist/refresh-2ICQBTK4.js +0 -95
  831. package/dist/refresh-2ICQBTK4.js.map +0 -1
  832. package/dist/release-JSZ4JXYJ.js +0 -61
  833. package/dist/release-JSZ4JXYJ.js.map +0 -1
  834. package/dist/relevant-pages-VOICMQ7U.js +0 -99
  835. package/dist/remove-TFUAVRFM.js +0 -51
  836. package/dist/remove-TFUAVRFM.js.map +0 -1
  837. package/dist/reopen-5T2PE7MU.js +0 -64
  838. package/dist/reopen-5T2PE7MU.js.map +0 -1
  839. package/dist/rerun-EZJ4MLYG.js +0 -93
  840. package/dist/rerun-EZJ4MLYG.js.map +0 -1
  841. package/dist/research-BKYSU2C6.js +0 -263
  842. package/dist/research-BKYSU2C6.js.map +0 -1
  843. package/dist/research-QU63CJB5.js +0 -72
  844. package/dist/reset-DKTKZF7G.js +0 -55
  845. package/dist/reset-DKTKZF7G.js.map +0 -1
  846. package/dist/reset-SXABIVP6.js +0 -55
  847. package/dist/reset-SXABIVP6.js.map +0 -1
  848. package/dist/resolve-L47U2T77.js +0 -122
  849. package/dist/resolve-L47U2T77.js.map +0 -1
  850. package/dist/retry-JEWPK2B5.js +0 -63
  851. package/dist/retry-JEWPK2B5.js.map +0 -1
  852. package/dist/retry-SXFVLT3W.js +0 -61
  853. package/dist/retry-SXFVLT3W.js.map +0 -1
  854. package/dist/revenue-2MAYTXRM.js +0 -89
  855. package/dist/revenue-2MAYTXRM.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-CHWTFASP.js +0 -97
  859. package/dist/rules-CHWTFASP.js.map +0 -1
  860. package/dist/rules-KTJ2ZZ62.js +0 -217
  861. package/dist/rules-add-3M5TALWN.js +0 -463
  862. package/dist/rules-add-3M5TALWN.js.map +0 -1
  863. package/dist/run-2DLA6YO4.js +0 -68
  864. package/dist/run-JCGH2NHD.js +0 -67
  865. package/dist/run-JCGH2NHD.js.map +0 -1
  866. package/dist/scaffold-ad-VEW7JDY7.js +0 -1514
  867. package/dist/scaffold-ad-VEW7JDY7.js.map +0 -1
  868. package/dist/scaffold-static-ad-DYRL7DOS.js +0 -1013
  869. package/dist/scaffold-static-ad-DYRL7DOS.js.map +0 -1
  870. package/dist/scaffold-video-YRAVVKUH.js +0 -886
  871. package/dist/scaffold-video-YRAVVKUH.js.map +0 -1
  872. package/dist/schedule-WYIC6VNW.js +0 -62
  873. package/dist/schedule-WYIC6VNW.js.map +0 -1
  874. package/dist/scheduled-agents-FRBF4EOK.js +0 -55
  875. package/dist/schema-TC2O3FYY.js +0 -133
  876. package/dist/schema-TC2O3FYY.js.map +0 -1
  877. package/dist/search-VDW242BN.js +0 -175
  878. package/dist/search-VDW242BN.js.map +0 -1
  879. package/dist/select-O5HSSC36.js +0 -104
  880. package/dist/select-O5HSSC36.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-TI7N64PJ.js +0 -196
  884. package/dist/set-prompt-TI7N64PJ.js.map +0 -1
  885. package/dist/setup-links-BM2FTXUZ.js +0 -142
  886. package/dist/setup-links-BM2FTXUZ.js.map +0 -1
  887. package/dist/shopify-FIHG5PYP.js +0 -3956
  888. package/dist/shopify-FIHG5PYP.js.map +0 -1
  889. package/dist/site-S3IGBMVC.js +0 -178
  890. package/dist/site-S3IGBMVC.js.map +0 -1
  891. package/dist/sources-77WLFY4Y.js +0 -30
  892. package/dist/sources-A4B3R5JC.js +0 -455
  893. package/dist/sources-A4B3R5JC.js.map +0 -1
  894. package/dist/stale-YIRCXDOK.js +0 -74
  895. package/dist/stale-YIRCXDOK.js.map +0 -1
  896. package/dist/status-6YNR647D.js +0 -63
  897. package/dist/status-6YNR647D.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-FFVWHGLE.js +0 -55
  902. package/dist/sync-FFVWHGLE.js.map +0 -1
  903. package/dist/sync-definition-K4XOAG2B.js +0 -67
  904. package/dist/tags-5KIOGEKN.js +0 -21
  905. package/dist/tags-5KIOGEKN.js.map +0 -1
  906. package/dist/tags-BKAN5EAJ.js +0 -21
  907. package/dist/tags-BKAN5EAJ.js.map +0 -1
  908. package/dist/tags-ETOOYQ57.js +0 -26
  909. package/dist/tags-RPNK7TMO.js +0 -225
  910. package/dist/tags-RPNK7TMO.js.map +0 -1
  911. package/dist/tags-UM4QO46J.js +0 -21
  912. package/dist/tags-UM4QO46J.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-L4DYIJZI.js +0 -113
  916. package/dist/targets-S6N7327Q.js +0 -104
  917. package/dist/targets-S6N7327Q.js.map +0 -1
  918. package/dist/testimonials-65N7IYN7.js +0 -32
  919. package/dist/themes-B4LCQUXB.js +0 -95
  920. package/dist/top-companies-SJKND75M.js +0 -109
  921. package/dist/top-companies-SJKND75M.js.map +0 -1
  922. package/dist/transcript-5I7I6DWL.js +0 -163
  923. package/dist/transcript-5I7I6DWL.js.map +0 -1
  924. package/dist/translate-SH6IG5Y7.js +0 -607
  925. package/dist/translate-SH6IG5Y7.js.map +0 -1
  926. package/dist/triggers-YRY3HTYU.js +0 -142
  927. package/dist/triggers-YRY3HTYU.js.map +0 -1
  928. package/dist/unlink-4B4YTQE4.js +0 -68
  929. package/dist/unlink-4B4YTQE4.js.map +0 -1
  930. package/dist/unstage-H5NTDJ6A.js +0 -86
  931. package/dist/unstage-H5NTDJ6A.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-DI52JJGB.js +0 -99
  935. package/dist/update-DI52JJGB.js.map +0 -1
  936. package/dist/update-DMPDLMMV.js +0 -64
  937. package/dist/update-DMPDLMMV.js.map +0 -1
  938. package/dist/update-TUS4PJIG.js +0 -190
  939. package/dist/update-TUS4PJIG.js.map +0 -1
  940. package/dist/update-Z66LMXNS.js +0 -153
  941. package/dist/update-Z66LMXNS.js.map +0 -1
  942. package/dist/upload-7KQYZ7T7.js +0 -127
  943. package/dist/upload-7KQYZ7T7.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-SDA2MWB5.js +0 -99
  947. package/dist/url-params-SDA2MWB5.js.map +0 -1
  948. package/dist/validate-ZABZNCSB.js +0 -120
  949. package/dist/validate-ZABZNCSB.js.map +0 -1
  950. package/dist/videos-BKVCCKIH.js +0 -41
  951. package/dist/viewer-check-B5O7ZY3Q.js +0 -81
  952. package/dist/web-KN3BTVG4.js +0 -141
  953. package/dist/web-KN3BTVG4.js.map +0 -1
  954. package/dist/winning-ads-JIDPISKM.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-RVHLLLDR.js +0 -1498
  958. package/dist/write-commands-RVHLLLDR.js.map +0 -1
  959. package/dist/x-NLGWZCGX.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-Y4SULW2E.js.map → actions-D7OWCP36.js.map} +0 -0
  963. /package/dist/{ads-2TVWICGM.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-P4UPNZM4.js.map → avatars-WZ2JDMHH.js.map} +0 -0
  969. /package/dist/{brand-HALQWZWB.js.map → brand-IZTTBZII.js.map} +0 -0
  970. /package/dist/{campaigns-YMM5TQVO.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-IJS7H3VE.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-DUR7PEJI.js.map → chunk-2GYCWRF3.js.map} +0 -0
  976. /package/dist/{chunk-QBRPM3DQ.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-R53XMPDO.js.map → chunk-4EDWXZ3I.js.map} +0 -0
  980. /package/dist/{chunk-H4NNQGG6.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-N7M2TWR5.js.map → chunk-4UZUUSVL.js.map} +0 -0
  983. /package/dist/{chunk-I47BEKYK.js.map → chunk-4XHCEYHI.js.map} +0 -0
  984. /package/dist/{chunk-SCL7PM6P.js.map → chunk-4Z6PVR3M.js.map} +0 -0
  985. /package/dist/{chunk-ZEC46NWW.js.map → chunk-5Y5FZV2W.js.map} +0 -0
  986. /package/dist/{chunk-G5Y7OIPL.js.map → chunk-6HJXLGDV.js.map} +0 -0
  987. /package/dist/{chunk-QW6HL7D6.js.map → chunk-6S5CWGDA.js.map} +0 -0
  988. /package/dist/{chunk-5RVQK3SP.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-NDFS3APP.js.map → chunk-AQRXXC6E.js.map} +0 -0
  991. /package/dist/{chunk-ZFC562TP.js.map → chunk-ARBXT73X.js.map} +0 -0
  992. /package/dist/{chunk-KQTNUDKD.js.map → chunk-BEZHQIEI.js.map} +0 -0
  993. /package/dist/{chunk-5SRUAGTG.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-Z7YMSHRZ.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-C7QQQVBS.js.map → chunk-GE3VT3CA.js.map} +0 -0
  998. /package/dist/{chunk-P6BKKUSX.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-BRLZX3VP.js.map → chunk-IRM273C7.js.map} +0 -0
  1001. /package/dist/{chunk-AYPBARKP.js.map → chunk-IWKD56AY.js.map} +0 -0
  1002. /package/dist/{chunk-MZCTX37B.js.map → chunk-JLAQWMVF.js.map} +0 -0
  1003. /package/dist/{chunk-AQOFQNKQ.js.map → chunk-K6NULQN7.js.map} +0 -0
  1004. /package/dist/{chunk-GMHCHHAA.js.map → chunk-L2BRAC2J.js.map} +0 -0
  1005. /package/dist/{chunk-SVBJ56T7.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-6Z7Y4KQB.js.map → chunk-OG47L5GG.js.map} +0 -0
  1009. /package/dist/{chunk-AIRD6T4W.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-FPWQA7TK.js.map → chunk-QIOFOD4K.js.map} +0 -0
  1012. /package/dist/{chunk-XQXZJ5IR.js.map → chunk-R2SYF5FC.js.map} +0 -0
  1013. /package/dist/{chunk-YMF2RG4Z.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-RFIUOQLN.js.map → chunk-T3P6O2VU.js.map} +0 -0
  1017. /package/dist/{chunk-BTJSGJNQ.js.map → chunk-TXDE2QJ3.js.map} +0 -0
  1018. /package/dist/{chunk-HSQRITKG.js.map → chunk-UDIEKCIR.js.map} +0 -0
  1019. /package/dist/{chunk-MBSFEVOG.js.map → chunk-USCADMM3.js.map} +0 -0
  1020. /package/dist/{chunk-SM7G7RUA.js.map → chunk-UUGISMNE.js.map} +0 -0
  1021. /package/dist/{chunk-Z2DRGXBB.js.map → chunk-VDPOCAQ2.js.map} +0 -0
  1022. /package/dist/{chunk-PLAOK4AK.js.map → chunk-VEJ3QX6M.js.map} +0 -0
  1023. /package/dist/{chunk-ARUXGKZO.js.map → chunk-VFJB7OG6.js.map} +0 -0
  1024. /package/dist/{chunk-RVEY7BTT.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-QMDMTZAW.js.map → chunk-YILZR3XI.js.map} +0 -0
  1029. /package/dist/{chunk-W574NV67.js.map → chunk-YJFLXOH4.js.map} +0 -0
  1030. /package/dist/{chunk-MUXKYSTI.js.map → chunk-YWHZYR6S.js.map} +0 -0
  1031. /package/dist/{connect-PP6Z3F7Y.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-UJDPD4CI.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-7J3QGSOJ.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-N7WDGWYZ.js.map → fit-BEFCY2B4.js.map} +0 -0
  1041. /package/dist/{fonts-TTUAP7HS.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-SUXKKZC7.js.map → ideas-M66FU45H.js.map} +0 -0
  1045. /package/dist/{images-VKVZ3DWG.js.map → images-MM5OPUKV.js.map} +0 -0
  1046. /package/dist/{ingest-BBBFT6FZ.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-KZ4OSHHR.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-G5YJG25N.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-GKSEDSE3.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-6TPJGM6A.js.map → performance-NIF3CESZ.js.map} +0 -0
  1059. /package/dist/{promoted-tweets-7P4TSQU7.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-SN5CESF4.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-QU63CJB5.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-2DLA6YO4.js.map → run-QCNRR3CA.js.map} +0 -0
  1066. /package/dist/{scheduled-agents-FRBF4EOK.js.map → scheduled-agents-OXYAVSIE.js.map} +0 -0
  1067. /package/dist/{sources-77WLFY4Y.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-K4XOAG2B.js.map → sync-definition-OGQ5XTQE.js.map} +0 -0
  1070. /package/dist/{tags-ETOOYQ57.js.map → tags-CZTRQNXV.js.map} +0 -0
  1071. /package/dist/{targeting-criteria-L4DYIJZI.js.map → targeting-criteria-AQYXVSGN.js.map} +0 -0
  1072. /package/dist/{testimonials-65N7IYN7.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-BKVCCKIH.js.map → videos-36AXDUGZ.js.map} +0 -0
  1075. /package/dist/{viewer-check-B5O7ZY3Q.js.map → viewer-check-6HL4OUQY.js.map} +0 -0
  1076. /package/dist/{winning-ads-JIDPISKM.js.map → winning-ads-GMM5W2O4.js.map} +0 -0
  1077. /package/dist/{x-NLGWZCGX.js.map → x-HGFAL3NY.js.map} +0 -0
@@ -1,288 +0,0 @@
1
- import {
2
- repeatedValues
3
- } from "./chunk-ERSX3MKH.js";
4
- import {
5
- failApi,
6
- failValidation
7
- } from "./chunk-HSQRITKG.js";
8
- import "./chunk-JND6XSGZ.js";
9
- import "./chunk-CAZGM2NX.js";
10
- import "./chunk-NZS3KEQ2.js";
11
- import "./chunk-GIWHHCD6.js";
12
- import "./chunk-NSBNIPIW.js";
13
- import {
14
- getPublicSuffix,
15
- parse
16
- } from "./chunk-2TOIY2WN.js";
17
- import {
18
- apiPost
19
- } from "./chunk-X7VQFLHI.js";
20
- import "./chunk-LU4HI4KI.js";
21
- import "./chunk-LGK7UWBN.js";
22
- import {
23
- registerSchema,
24
- writeJson
25
- } from "./chunk-Q7US4OOA.js";
26
- import "./chunk-YQSBHWOI.js";
27
-
28
- // ../api/src/credentials/contract.ts
29
- import { z } from "zod";
30
-
31
- // ../api/src/credentials/hosts.ts
32
- function normaliseHost(host) {
33
- return host.trim().toLowerCase().replace(/\.$/, "");
34
- }
35
- function asciiHost(host) {
36
- if (!/[\u0080-\u{10FFFF}]/u.test(host) || /[/?#@:\\%[\]\s]/.test(host)) return host;
37
- const url = `http://${host}`;
38
- return URL.canParse(url) ? new URL(url).hostname : host;
39
- }
40
- function validateHostPattern(raw) {
41
- const typed = normaliseHost(raw);
42
- const wildcard = typed.startsWith("*.");
43
- const host = asciiHost(wildcard ? typed.slice(2) : typed);
44
- const pattern = wildcard ? `*.${host}` : host;
45
- if (host === "" || host.includes("*")) {
46
- return { ok: false, reason: "Use a website address like api.example.com or *.example.com." };
47
- }
48
- const parsed = parse(host);
49
- if (parsed.isIp || host.startsWith("[")) {
50
- return { ok: false, reason: "Use a website address, not an IP address." };
51
- }
52
- if (parsed.hostname !== host || parsed.domain === null) {
53
- return { ok: false, reason: "Use only the website address, like api.example.com." };
54
- }
55
- if (wildcard && !wildcardSafe(host)) {
56
- return { ok: false, reason: `*.${host} would allow any website. Name the company's own address.` };
57
- }
58
- return { ok: true, pattern };
59
- }
60
- var OPEN_HOSTING_DOMAINS = ["amazonaws.com", "cloudfront.net", "googleapis.com", "on.aws"];
61
- var WITH_PRIVATE = { allowPrivateDomains: true };
62
- function wildcardSafe(host) {
63
- if (OPEN_HOSTING_DOMAINS.some((domain) => host === domain || host.endsWith(`.${domain}`))) return false;
64
- const suffix = getPublicSuffix(host, WITH_PRIVATE);
65
- return suffix !== host && getPublicSuffix(`zz.${host}`, WITH_PRIVATE) === suffix;
66
- }
67
-
68
- // ../api/src/credentials/placeholder.ts
69
- var CREDENTIAL_NAME_PATTERN = "[a-z0-9][a-z0-9_-]{0,63}";
70
- var CREDENTIAL_NAME_RE = new RegExp(`^${CREDENTIAL_NAME_PATTERN}$`);
71
- var PLACEHOLDER_SOURCE = `\\{\\{credential:(${CREDENTIAL_NAME_PATTERN})\\}\\}`;
72
- var WHOLE_PLACEHOLDER_RE = new RegExp(`^${PLACEHOLDER_SOURCE}$`);
73
-
74
- // ../api/src/credentials/contract.ts
75
- var MAX_CREDENTIAL_VALUE_LENGTH = 16384;
76
- var MAX_CREDENTIAL_HOSTS = 20;
77
- var credentialNameSchema = z.string().regex(new RegExp(`^${CREDENTIAL_NAME_PATTERN}$`), "Use lowercase letters, digits, - and _ (max 64).");
78
- var credentialHostsSchema = z.array(z.string()).max(MAX_CREDENTIAL_HOSTS).transform((hosts, ctx) => {
79
- const patterns = [];
80
- for (const host of hosts) {
81
- const result = validateHostPattern(host);
82
- if (result.ok) patterns.push(result.pattern);
83
- else ctx.addIssue({ code: "custom", message: `${host}: ${result.reason}` });
84
- }
85
- return [...new Set(patterns)];
86
- });
87
- var credentialSourceSchema = z.enum(["user", "agent", "chat-detected", "requested"]);
88
- var credentialSummarySchema = z.object({
89
- name: z.string(),
90
- label: z.string(),
91
- placeholder: z.string(),
92
- allowedHosts: z.array(z.string()),
93
- source: credentialSourceSchema,
94
- lastUsedAt: z.number().nullable()
95
- });
96
- var credentialsListResponseSchema = z.object({ credentials: z.array(credentialSummarySchema) });
97
- var credentialsPutRequestSchema = z.object({
98
- name: credentialNameSchema,
99
- label: z.string().trim().min(1).max(80).optional(),
100
- value: z.string().min(1).max(MAX_CREDENTIAL_VALUE_LENGTH),
101
- allowedHosts: credentialHostsSchema
102
- });
103
- var credentialsPutResponseSchema = z.object({
104
- name: z.string(),
105
- placeholder: z.string(),
106
- replaced: z.boolean()
107
- });
108
- var credentialsDeleteRequestSchema = z.object({ name: credentialNameSchema });
109
- var credentialsDeleteResponseSchema = z.object({ name: z.string(), deleted: z.literal(true) });
110
- var brokerResolveResponseSchema = z.object({
111
- credentials: z.array(z.object({ name: z.string(), value: z.string(), allowedHosts: z.array(z.string()) }))
112
- });
113
- var brokerUsageRequestSchema = z.object({
114
- uses: z.array(z.object({ name: credentialNameSchema, host: z.string().max(253) })).max(100)
115
- });
116
-
117
- // src/commands/credentials/index.ts
118
- import { defineCommand } from "citty";
119
- var DOC = "__tooling__/docs/tools/baker/credentials.md";
120
- var STDIN_ONLY = 'The value is read from stdin only, never from the command line (argv is visible to other processes and lands in logs). Pipe it: printf %s "$VALUE" | baker credentials put <name> --host <host>. For a credential the user owns, call request_credential instead.';
121
- registerSchema({
122
- command: "credentials.list",
123
- description: "Start here: the credentials (API keys, tokens, passwords) this company stored, by name \u2014 never their values. Write the `placeholder` ({{credential:NAME}}) into an HTTPS request (curl header, URL, SDK config, JSON body) and the sandbox proxy sends the real value, only to the credential's allowedHosts. Nothing listed? Ask the user with the request_credential tool. Compact by default; --full adds source and lastUsedAt.",
124
- args: {
125
- full: { type: "boolean", description: "Add source and lastUsedAt per credential", required: false, default: false }
126
- }
127
- });
128
- registerSchema({
129
- command: "credentials.put",
130
- description: `Store a credential YOU created on the user's behalf (e.g. a key you just generated through an API), so later requests can use {{credential:NAME}}. Example: printf %s "$KEY" | baker credentials put stripe-key --host api.stripe.com --label "Stripe key". The value comes from stdin ONLY. For a credential the user owns, call request_credential instead \u2014 never ask for it in chat. Replacing is allowed only for credentials the agent created.`,
131
- args: {
132
- name: { type: "positional", description: "Lowercase name: letters, digits, - and _ (max 64)", required: true },
133
- host: {
134
- type: "string",
135
- description: "Website the value may be sent to (repeatable, or comma-separated): api.stripe.com, acme-store.myshopify.com",
136
- required: true
137
- },
138
- label: { type: "string", description: "Human-readable label shown in Settings \u2192 Credentials", required: false }
139
- }
140
- });
141
- registerSchema({
142
- command: "credentials.delete",
143
- description: "Delete a credential the agent created (e.g. a key it rotated out). Credentials the user added can only be removed by the user, in Settings \u2192 Credentials.",
144
- args: {
145
- name: { type: "positional", description: "Credential name", required: true }
146
- }
147
- });
148
- async function readPipedValue() {
149
- const stdin = process.stdin;
150
- if (stdin.isTTY) return "";
151
- const chunks = [];
152
- for await (const chunk of stdin) {
153
- chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
154
- }
155
- return Buffer.concat(chunks).toString("utf8").replace(/\r?\n$/, "");
156
- }
157
- function parseName(raw) {
158
- const parsed = credentialNameSchema.safeParse(raw);
159
- if (!parsed.success) {
160
- failValidation(`Invalid credential name "${String(raw)}": use lowercase letters, digits, - and _ (max 64).`);
161
- }
162
- return parsed.data;
163
- }
164
- function parseHosts(rawArgs, parsed) {
165
- const hosts = repeatedValues(rawArgs, "host", parsed).flatMap((value) => value.split(",")).map((host) => host.trim()).filter((host) => host !== "");
166
- if (hosts.length === 0) {
167
- failValidation("Name at least one website the value may be sent to: --host api.example.com (repeatable).");
168
- }
169
- const result = credentialHostsSchema.safeParse(hosts);
170
- if (!result.success) {
171
- failValidation(`Invalid --host: ${result.error.issues.map((issue) => issue.message).join("; ")}`);
172
- }
173
- return result.data;
174
- }
175
- var listCommand = defineCommand({
176
- meta: {
177
- name: "list",
178
- description: "Start here: stored credentials by name with their {{credential:NAME}} placeholder and allowed websites. Never shows values."
179
- },
180
- args: {
181
- full: { type: "boolean", description: "Add source and lastUsedAt", required: false, default: false }
182
- },
183
- run: async ({ args }) => {
184
- try {
185
- const response = await apiPost("/api/credentials/list", {});
186
- const credentials = response.data.credentials.map(
187
- (credential) => args.full ? credential : {
188
- name: credential.name,
189
- placeholder: credential.placeholder,
190
- allowedHosts: credential.allowedHosts,
191
- label: credential.label
192
- }
193
- );
194
- writeJson({
195
- ok: true,
196
- data: { credentials },
197
- meta: { count: credentials.length },
198
- ...credentials.length === 0 ? {
199
- hints: [
200
- "No credentials stored. When the task needs one the user owns, call the request_credential tool (label, reason, allowedHosts) \u2014 never ask them to paste it in chat."
201
- ]
202
- } : {}
203
- });
204
- } catch (err) {
205
- failApi(err);
206
- }
207
- }
208
- });
209
- var putCommand = defineCommand({
210
- meta: {
211
- name: "put",
212
- description: `Store a credential you created on the user's behalf; the value is read from stdin only.
213
- Start here: printf %s "$KEY" | baker credentials put stripe-key --host api.stripe.com
214
- For a credential the user owns, call request_credential instead.`
215
- },
216
- args: {
217
- name: { type: "positional", description: "Lowercase name: letters, digits, - and _ (max 64)", required: true },
218
- host: {
219
- type: "string",
220
- description: "Website the value may be sent to (repeatable, or comma-separated)",
221
- required: false
222
- },
223
- label: { type: "string", description: "Label shown in Settings \u2192 Credentials", required: false },
224
- value: {
225
- type: "string",
226
- description: "Refused \u2014 never put a value on the command line. Pipe it on stdin.",
227
- required: false
228
- }
229
- },
230
- run: async ({ args, rawArgs }) => {
231
- if (args.value !== void 0 || args._.length > 1) {
232
- failValidation(STDIN_ONLY);
233
- }
234
- const name = parseName(args.name);
235
- const allowedHosts = parseHosts(rawArgs, args.host);
236
- const value = await readPipedValue();
237
- if (value === "") {
238
- failValidation(`Nothing was piped on stdin. ${STDIN_ONLY}`);
239
- }
240
- if (value.length > MAX_CREDENTIAL_VALUE_LENGTH) {
241
- failValidation(`The value is longer than ${MAX_CREDENTIAL_VALUE_LENGTH} characters.`);
242
- }
243
- const body = { name, value, allowedHosts, ...args.label ? { label: args.label } : {} };
244
- try {
245
- const response = await apiPost("/api/credentials/put", body);
246
- writeJson({
247
- ok: true,
248
- data: { name: response.data.name, placeholder: response.data.placeholder },
249
- hints: [
250
- `Use ${response.data.placeholder} in the request; the value is sent only to: ${allowedHosts.join(", ")}.`,
251
- "Never echo, print or write the value anywhere \u2014 unset the shell variable that held it."
252
- ]
253
- });
254
- } catch (err) {
255
- failApi(err);
256
- }
257
- }
258
- });
259
- var deleteCommand = defineCommand({
260
- meta: {
261
- name: "delete",
262
- description: "Delete a credential the agent created. User-added credentials are removed by the user in Settings \u2192 Credentials."
263
- },
264
- args: {
265
- name: { type: "positional", description: "Credential name", required: true }
266
- },
267
- run: async ({ args }) => {
268
- const name = parseName(args.name);
269
- try {
270
- const response = await apiPost("/api/credentials/delete", { name });
271
- writeJson({ ok: true, data: response.data });
272
- } catch (err) {
273
- failApi(err);
274
- }
275
- }
276
- });
277
- var credentialsCommand = defineCommand({
278
- meta: {
279
- name: "credentials",
280
- description: `Credentials (API keys, tokens, passwords) by name: write {{credential:NAME}} in an HTTPS request and the value is sent only to the websites it is bound to. You never see values.
281
- Full guide: ${DOC}`
282
- },
283
- subCommands: { list: listCommand, put: putCommand, delete: deleteCommand }
284
- });
285
- export {
286
- credentialsCommand
287
- };
288
- //# sourceMappingURL=credentials-EIPEZ2C2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../api/src/credentials/contract.ts","../../api/src/credentials/hosts.ts","../../api/src/credentials/placeholder.ts","../src/commands/credentials/index.ts"],"sourcesContent":["/**\n * Contract for `/api/credentials` (`baker credentials`) and the sandbox\n * broker's `/api/runtime/credentials/resolve`. Only the broker route ever\n * carries a value back; every agent-facing shape is metadata.\n */\nimport { z } from \"zod\";\nimport { validateHostPattern } from \"./hosts\";\nimport { CREDENTIAL_NAME_PATTERN } from \"./placeholder\";\n\nexport const MAX_CREDENTIAL_VALUE_LENGTH = 16_384;\nexport const MAX_CREDENTIAL_HOSTS = 20;\n\nexport const credentialNameSchema = z\n .string()\n .regex(new RegExp(`^${CREDENTIAL_NAME_PATTERN}$`), \"Use lowercase letters, digits, - and _ (max 64).\");\n\nexport const credentialHostsSchema = z\n .array(z.string())\n .max(MAX_CREDENTIAL_HOSTS)\n .transform((hosts, ctx) => {\n const patterns: string[] = [];\n for (const host of hosts) {\n const result = validateHostPattern(host);\n if (result.ok) patterns.push(result.pattern);\n else ctx.addIssue({ code: \"custom\", message: `${host}: ${result.reason}` });\n }\n return [...new Set(patterns)];\n });\n\nexport const credentialSourceSchema = z.enum([\"user\", \"agent\", \"chat-detected\", \"requested\"]);\nexport type CredentialSource = z.infer<typeof credentialSourceSchema>;\n\nexport const credentialSummarySchema = z.object({\n name: z.string(),\n label: z.string(),\n placeholder: z.string(),\n allowedHosts: z.array(z.string()),\n source: credentialSourceSchema,\n lastUsedAt: z.number().nullable(),\n});\nexport type CredentialSummary = z.infer<typeof credentialSummarySchema>;\n\nexport const credentialsListResponseSchema = z.object({ credentials: z.array(credentialSummarySchema) });\nexport type CredentialsListResponse = z.infer<typeof credentialsListResponseSchema>;\n\nexport const credentialsPutRequestSchema = z.object({\n name: credentialNameSchema,\n label: z.string().trim().min(1).max(80).optional(),\n value: z.string().min(1).max(MAX_CREDENTIAL_VALUE_LENGTH),\n allowedHosts: credentialHostsSchema,\n});\nexport type CredentialsPutRequest = z.input<typeof credentialsPutRequestSchema>;\n\nexport const credentialsPutResponseSchema = z.object({\n name: z.string(),\n placeholder: z.string(),\n replaced: z.boolean(),\n});\nexport type CredentialsPutResponse = z.infer<typeof credentialsPutResponseSchema>;\n\nexport const credentialsDeleteRequestSchema = z.object({ name: credentialNameSchema });\nexport type CredentialsDeleteRequest = z.infer<typeof credentialsDeleteRequestSchema>;\n\nexport const credentialsDeleteResponseSchema = z.object({ name: z.string(), deleted: z.literal(true) });\nexport type CredentialsDeleteResponse = z.infer<typeof credentialsDeleteResponseSchema>;\n\nexport const brokerResolveResponseSchema = z.object({\n credentials: z.array(z.object({ name: z.string(), value: z.string(), allowedHosts: z.array(z.string()) })),\n});\nexport type BrokerResolveResponse = z.infer<typeof brokerResolveResponseSchema>;\n\nexport const brokerUsageRequestSchema = z.object({\n uses: z.array(z.object({ name: credentialNameSchema, host: z.string().max(253) })).max(100),\n});\nexport type BrokerUsageRequest = z.infer<typeof brokerUsageRequestSchema>;\n","/**\n * Where a credential may be sent. The sandbox proxy only substitutes a\n * credential into a request whose host one of its patterns allows, so a\n * prompt-injected agent cannot post the value to a host it controls.\n */\nimport { getPublicSuffix, parse } from \"tldts\";\n\nexport type HostPatternResult = { ok: true; pattern: string } | { ok: false; reason: string };\n\nfunction normaliseHost(host: string): string {\n return host.trim().toLowerCase().replace(/\\.$/, \"\");\n}\n\n/** An international name (`bücher.de`) in the ASCII form a request carries (`xn--bcher-kva.de`); unchanged when it is not a host. */\nfunction asciiHost(host: string): string {\n // Only a bare name is converted: the URL parser would silently drop a path or a `user@` the person typed.\n if (!/[\\u0080-\\u{10FFFF}]/u.test(host) || /[/?#@:\\\\%[\\]\\s]/.test(host)) return host;\n const url = `http://${host}`;\n return URL.canParse(url) ? new URL(url).hostname : host;\n}\n\nexport function validateHostPattern(raw: string): HostPatternResult {\n const typed = normaliseHost(raw);\n const wildcard = typed.startsWith(\"*.\");\n const host = asciiHost(wildcard ? typed.slice(2) : typed);\n const pattern = wildcard ? `*.${host}` : host;\n if (host === \"\" || host.includes(\"*\")) {\n return { ok: false, reason: \"Use a website address like api.example.com or *.example.com.\" };\n }\n const parsed = parse(host);\n if (parsed.isIp || host.startsWith(\"[\")) {\n return { ok: false, reason: \"Use a website address, not an IP address.\" };\n }\n if (parsed.hostname !== host || parsed.domain === null) {\n return { ok: false, reason: \"Use only the website address, like api.example.com.\" };\n }\n if (wildcard && !wildcardSafe(host)) {\n return { ok: false, reason: `*.${host} would allow any website. Name the company's own address.` };\n }\n return { ok: true, pattern };\n}\n\n/**\n * Cloud hosts where anyone can own a subdomain and read the headers it is\n * sent, which the Public Suffix List does not list as a suffix: API Gateway\n * and Lambda URLs under amazonaws.com, and a Cloud Storage bucket at\n * `<bucket>.storage.googleapis.com`, and AWS's newer `on.aws`, whose Lambda\n * URLs sit two labels below it where the check below does not look.\n */\nconst OPEN_HOSTING_DOMAINS = [\"amazonaws.com\", \"cloudfront.net\", \"googleapis.com\", \"on.aws\"];\n\nconst WITH_PRIVATE = { allowPrivateDomains: true };\n\n/**\n * Whether `*.host` names one owner's sites. A public suffix (ICANN `com`, or\n * a private one such as `vercel.app`) is shared by everyone who can sign up,\n * and so is a base with one just below it (`run.app`, whose Cloud Run services\n * live under `a.run.app`).\n */\nfunction wildcardSafe(host: string): boolean {\n if (OPEN_HOSTING_DOMAINS.some((domain) => host === domain || host.endsWith(`.${domain}`))) return false;\n const suffix = getPublicSuffix(host, WITH_PRIVATE);\n return suffix !== host && getPublicSuffix(`zz.${host}`, WITH_PRIVATE) === suffix;\n}\n\nexport function hostAllowed(host: string, patterns: readonly string[]): boolean {\n const target = normaliseHost(host);\n return patterns.some((raw) => {\n const pattern = normaliseHost(raw);\n return pattern.startsWith(\"*.\") ? target.endsWith(pattern.slice(1)) : target === pattern;\n });\n}\n","/**\n * The one grammar an agent, a chat message and the sandbox proxy share for\n * \"the stored credential called NAME\": `{{credential:NAME}}`. The value never\n * appears in text; the proxy swaps the placeholder in on the way out.\n */\n\nexport const CREDENTIAL_NAME_PATTERN = \"[a-z0-9][a-z0-9_-]{0,63}\";\nconst CREDENTIAL_NAME_RE = new RegExp(`^${CREDENTIAL_NAME_PATTERN}$`);\nconst PLACEHOLDER_SOURCE = `\\\\{\\\\{credential:(${CREDENTIAL_NAME_PATTERN})\\\\}\\\\}`;\n\nexport type CredentialPlaceholder = { name: string; start: number; end: number };\n\nexport function isCredentialName(name: string): boolean {\n return CREDENTIAL_NAME_RE.test(name);\n}\n\nexport function renderPlaceholder(name: string): string {\n return `{{credential:${name}}}`;\n}\n\nexport function parsePlaceholders(text: string): CredentialPlaceholder[] {\n return [...text.matchAll(new RegExp(PLACEHOLDER_SOURCE, \"g\"))].map((match) => ({\n name: match[1] ?? \"\",\n start: match.index,\n end: match.index + match[0].length,\n }));\n}\n\nconst WHOLE_PLACEHOLDER_RE = new RegExp(`^${PLACEHOLDER_SOURCE}$`);\n\n/** The credential a value stands for when the whole value is one placeholder, as a tag's secret field holds it. */\nexport function credentialNamedBy(value: string): string | null {\n return WHOLE_PLACEHOLDER_RE.exec(value.trim())?.[1] ?? null;\n}\n\n/** A readable label (\"Meta access token\") as a placeholder name (\"meta-access-token\"). */\nexport function slugifyCredentialName(label: string): string {\n const slug = label\n .normalize(\"NFKD\")\n .replace(/[̀-ͯ]/g, \"\")\n .toLowerCase()\n .replace(/[^a-z0-9_-]+/g, \"-\")\n .replace(/-{2,}/g, \"-\")\n .replace(/^[-_]+|[-_]+$/g, \"\")\n .slice(0, 64)\n .replace(/[-_]+$/g, \"\");\n return slug === \"\" ? \"credential\" : slug;\n}\n","import type {\n CredentialsDeleteResponse,\n CredentialsListResponse,\n CredentialsPutRequest,\n CredentialsPutResponse,\n} from \"@baker/api/credentials\";\nimport { credentialHostsSchema, credentialNameSchema, MAX_CREDENTIAL_VALUE_LENGTH } from \"@baker/api/credentials\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { repeatedValues } from \"../../lib/repeatedFlags.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi, failValidation } from \"../actions/shared.ts\";\n\n/** The backend's success envelope around a contract response. */\ntype Ok<T> = { ok: true; data: T };\n\nconst DOC = \"__tooling__/docs/tools/baker/credentials.md\";\n\nconst STDIN_ONLY =\n 'The value is read from stdin only, never from the command line (argv is visible to other processes and lands in logs). Pipe it: printf %s \"$VALUE\" | baker credentials put <name> --host <host>. For a credential the user owns, call request_credential instead.';\n\nregisterSchema({\n command: \"credentials.list\",\n description:\n \"Start here: the credentials (API keys, tokens, passwords) this company stored, by name — never their values. Write the `placeholder` ({{credential:NAME}}) into an HTTPS request (curl header, URL, SDK config, JSON body) and the sandbox proxy sends the real value, only to the credential's allowedHosts. Nothing listed? Ask the user with the request_credential tool. Compact by default; --full adds source and lastUsedAt.\",\n args: {\n full: { type: \"boolean\", description: \"Add source and lastUsedAt per credential\", required: false, default: false },\n },\n});\n\nregisterSchema({\n command: \"credentials.put\",\n description:\n 'Store a credential YOU created on the user\\'s behalf (e.g. a key you just generated through an API), so later requests can use {{credential:NAME}}. Example: printf %s \"$KEY\" | baker credentials put stripe-key --host api.stripe.com --label \"Stripe key\". The value comes from stdin ONLY. For a credential the user owns, call request_credential instead — never ask for it in chat. Replacing is allowed only for credentials the agent created.',\n args: {\n name: { type: \"positional\", description: \"Lowercase name: letters, digits, - and _ (max 64)\", required: true },\n host: {\n type: \"string\",\n description:\n \"Website the value may be sent to (repeatable, or comma-separated): api.stripe.com, acme-store.myshopify.com\",\n required: true,\n },\n label: { type: \"string\", description: \"Human-readable label shown in Settings → Credentials\", required: false },\n },\n});\n\nregisterSchema({\n command: \"credentials.delete\",\n description:\n \"Delete a credential the agent created (e.g. a key it rotated out). Credentials the user added can only be removed by the user, in Settings → Credentials.\",\n args: {\n name: { type: \"positional\", description: \"Credential name\", required: true },\n },\n});\n\n/** Everything piped on stdin, with one trailing newline trimmed (what `echo` adds). */\nasync function readPipedValue(): Promise<string> {\n const stdin = process.stdin;\n if (stdin.isTTY) return \"\";\n const chunks: Buffer[] = [];\n for await (const chunk of stdin) {\n chunks.push(typeof chunk === \"string\" ? Buffer.from(chunk) : chunk);\n }\n return Buffer.concat(chunks)\n .toString(\"utf8\")\n .replace(/\\r?\\n$/, \"\");\n}\n\nfunction parseName(raw: unknown): string {\n const parsed = credentialNameSchema.safeParse(raw);\n if (!parsed.success) {\n failValidation(`Invalid credential name \"${String(raw)}\": use lowercase letters, digits, - and _ (max 64).`);\n }\n return parsed.data;\n}\n\nfunction parseHosts(rawArgs: readonly string[], parsed: unknown): string[] {\n const hosts = repeatedValues(rawArgs, \"host\", parsed)\n .flatMap((value) => value.split(\",\"))\n .map((host) => host.trim())\n .filter((host) => host !== \"\");\n if (hosts.length === 0) {\n failValidation(\"Name at least one website the value may be sent to: --host api.example.com (repeatable).\");\n }\n const result = credentialHostsSchema.safeParse(hosts);\n if (!result.success) {\n failValidation(`Invalid --host: ${result.error.issues.map((issue) => issue.message).join(\"; \")}`);\n }\n return result.data;\n}\n\nconst listCommand = defineCommand({\n meta: {\n name: \"list\",\n description:\n \"Start here: stored credentials by name with their {{credential:NAME}} placeholder and allowed websites. Never shows values.\",\n },\n args: {\n full: { type: \"boolean\", description: \"Add source and lastUsedAt\", required: false, default: false },\n },\n run: async ({ args }) => {\n try {\n const response = await apiPost<Ok<CredentialsListResponse>>(\"/api/credentials/list\", {});\n const credentials = response.data.credentials.map((credential) =>\n args.full\n ? credential\n : {\n name: credential.name,\n placeholder: credential.placeholder,\n allowedHosts: credential.allowedHosts,\n label: credential.label,\n },\n );\n writeJson({\n ok: true,\n data: { credentials },\n meta: { count: credentials.length },\n ...(credentials.length === 0\n ? {\n hints: [\n \"No credentials stored. When the task needs one the user owns, call the request_credential tool (label, reason, allowedHosts) — never ask them to paste it in chat.\",\n ],\n }\n : {}),\n });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nconst putCommand = defineCommand({\n meta: {\n name: \"put\",\n description: `Store a credential you created on the user's behalf; the value is read from stdin only.\nStart here: printf %s \"$KEY\" | baker credentials put stripe-key --host api.stripe.com\nFor a credential the user owns, call request_credential instead.`,\n },\n args: {\n name: { type: \"positional\", description: \"Lowercase name: letters, digits, - and _ (max 64)\", required: true },\n host: {\n type: \"string\",\n description: \"Website the value may be sent to (repeatable, or comma-separated)\",\n required: false,\n },\n label: { type: \"string\", description: \"Label shown in Settings → Credentials\", required: false },\n value: {\n type: \"string\",\n description: \"Refused — never put a value on the command line. Pipe it on stdin.\",\n required: false,\n },\n },\n run: async ({ args, rawArgs }) => {\n if (args.value !== undefined || args._.length > 1) {\n failValidation(STDIN_ONLY);\n }\n const name = parseName(args.name);\n const allowedHosts = parseHosts(rawArgs, args.host);\n const value = await readPipedValue();\n if (value === \"\") {\n failValidation(`Nothing was piped on stdin. ${STDIN_ONLY}`);\n }\n if (value.length > MAX_CREDENTIAL_VALUE_LENGTH) {\n failValidation(`The value is longer than ${MAX_CREDENTIAL_VALUE_LENGTH} characters.`);\n }\n const body: CredentialsPutRequest = { name, value, allowedHosts, ...(args.label ? { label: args.label } : {}) };\n try {\n const response = await apiPost<Ok<CredentialsPutResponse>>(\"/api/credentials/put\", body);\n writeJson({\n ok: true,\n data: { name: response.data.name, placeholder: response.data.placeholder },\n hints: [\n `Use ${response.data.placeholder} in the request; the value is sent only to: ${allowedHosts.join(\", \")}.`,\n \"Never echo, print or write the value anywhere — unset the shell variable that held it.\",\n ],\n });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nconst deleteCommand = defineCommand({\n meta: {\n name: \"delete\",\n description:\n \"Delete a credential the agent created. User-added credentials are removed by the user in Settings → Credentials.\",\n },\n args: {\n name: { type: \"positional\", description: \"Credential name\", required: true },\n },\n run: async ({ args }) => {\n const name = parseName(args.name);\n try {\n const response = await apiPost<Ok<CredentialsDeleteResponse>>(\"/api/credentials/delete\", { name });\n writeJson({ ok: true, data: response.data });\n } catch (err) {\n failApi(err);\n }\n },\n});\n\nexport const credentialsCommand = defineCommand({\n meta: {\n name: \"credentials\",\n description: `Credentials (API keys, tokens, passwords) by name: write {{credential:NAME}} in an HTTPS request and the value is sent only to the websites it is bound to. You never see values.\nFull guide: ${DOC}`,\n },\n subCommands: { list: listCommand, put: putCommand, delete: deleteCommand },\n});\n"],"mappings":"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","names":[]}
@@ -1,230 +0,0 @@
1
- import {
2
- FRAME_PLACEHOLDER_NOTE,
3
- exitOnPrepareError,
4
- prepareCanvas
5
- } from "./chunk-RVEY7BTT.js";
6
- import "./chunk-P6BKKUSX.js";
7
- import "./chunk-RFIUOQLN.js";
8
- import "./chunk-WHBFXR6F.js";
9
- import "./chunk-DQVI7GCX.js";
10
- import "./chunk-EKX37C3T.js";
11
- import "./chunk-SWN6OHXG.js";
12
- import "./chunk-FPWQA7TK.js";
13
- import "./chunk-A3IQAONL.js";
14
- import "./chunk-SVBJ56T7.js";
15
- import "./chunk-XQXZJ5IR.js";
16
- import "./chunk-3YJNSUNF.js";
17
- import "./chunk-QPESDKZC.js";
18
- import "./chunk-E44NXCTL.js";
19
- import "./chunk-EJGAJHLB.js";
20
- import {
21
- briefCopyLines,
22
- frameDescriptionOf,
23
- nativeDialogueOf
24
- } from "./chunk-TX7CQTD4.js";
25
- import "./chunk-F4YQ5PVR.js";
26
- import "./chunk-DGCUPJZD.js";
27
- import "./chunk-MVD7QIXI.js";
28
- import {
29
- COPY_DIRECTIVE_HEADER
30
- } from "./chunk-LRV6M2WB.js";
31
- import "./chunk-7HZSORAB.js";
32
- import "./chunk-MCJ5I5LR.js";
33
- import "./chunk-2WZI36D3.js";
34
- import "./chunk-65Y3RCWP.js";
35
- import "./chunk-LNNTHEL7.js";
36
- import "./chunk-FOMFU2RX.js";
37
- import "./chunk-PSGIHSNC.js";
38
- import "./chunk-PONLPYD7.js";
39
- import "./chunk-JND6XSGZ.js";
40
- import "./chunk-CAZGM2NX.js";
41
- import "./chunk-NZS3KEQ2.js";
42
- import "./chunk-GIWHHCD6.js";
43
- import "./chunk-NSBNIPIW.js";
44
- import "./chunk-2TOIY2WN.js";
45
- import "./chunk-X7VQFLHI.js";
46
- import "./chunk-LU4HI4KI.js";
47
- import "./chunk-LGK7UWBN.js";
48
- import "./chunk-Q7US4OOA.js";
49
- import "./chunk-YQSBHWOI.js";
50
-
51
- // src/commands/canvas/critique.ts
52
- import path from "path";
53
- import { defineCommand } from "citty";
54
-
55
- // src/engine/scaffold/lib/critique.ts
56
- var VIBE_CUE = /\b(light|lighting|golden|moody|warm|cool|tone|grade|contrast|shadow|glow|rim|backlit|neon|soft)\b/i;
57
- var MECHANISM_CUE = /\b(because|works by|so that|mechanism|proof|guarantee|clinically|backed by|the reason|that's why)\b/i;
58
- function promptOf(node) {
59
- const p = node?.params?.prompt;
60
- return typeof p === "string" ? p : "";
61
- }
62
- function round(n) {
63
- return Math.round(n * 100) / 100;
64
- }
65
- function frameLook(node) {
66
- const description = frameDescriptionOf(promptOf(node)).trim();
67
- return description.endsWith(FRAME_PLACEHOLDER_NOTE) ? "" : description;
68
- }
69
- function creativeText(nodes) {
70
- return nodes.flatMap((n) => {
71
- if (n.type === "image_generate") return [frameLook(n)];
72
- if (n.type === "video_generate") return [nativeDialogueOf(promptOf(n)) ?? ""];
73
- if (n.type === "tts" && typeof n.params?.text === "string") return [n.params.text];
74
- return [];
75
- }).join("\n");
76
- }
77
- function scoreHookStrength(nodes, scene0, hasOverlay) {
78
- const scene0Text = scene0.map((n) => promptOf(n)).join("\n");
79
- const frames = scene0.filter((n) => n.type === "image_generate");
80
- const look = (frames.length > 0 ? frames.map(frameLook) : scene0.map((n) => promptOf(n))).join("\n");
81
- const hookClip = scene0.find((n) => n.type === "video_generate");
82
- const hasSound = hookClip?.params?.generate_audio === true || /Dialogue:|Audio:/.test(scene0Text) || nodes.some((n) => n.type === "tts" || n.type === "dialogue");
83
- const layers = [hasOverlay, hasSound, look.trim().length > 40, VIBE_CUE.test(look)];
84
- const layerCount = layers.filter(Boolean).length;
85
- return {
86
- dimension: "hook_strength",
87
- score: round(hookClip ? layerCount / 4 : 0.5),
88
- note: hookClip ? `hook works on ${layerCount}/4 layers (text/sound/visual/vibe)` : "no scene-0 clip found \u2014 is this a video creative?"
89
- };
90
- }
91
- function scoreFirstFrameLegibility(hasOverlay) {
92
- return {
93
- dimension: "first_frame_legibility",
94
- score: hasOverlay ? 1 : 0.4,
95
- note: hasOverlay ? "a designed overlay layer carries the sound-off message" : "footage-only \u2014 the first frame may not read with sound off; consider an overlay hook"
96
- };
97
- }
98
- function scoreRetentionRisk(videoNodes) {
99
- let saggy = 0;
100
- for (const n of videoNodes) {
101
- const dur = typeof n.params?.duration === "number" ? n.params.duration : 0;
102
- const spoken = /Dialogue:/.test(promptOf(n)) || n.params?.generate_audio === true;
103
- if (dur >= 8 && !spoken) saggy += 1;
104
- }
105
- return {
106
- dimension: "retention_risk",
107
- score: round(videoNodes.length > 0 ? 1 - Math.min(1, saggy / videoNodes.length) : 0.7),
108
- note: saggy > 0 ? `${saggy} long clip(s) with no spoken line may sag` : "no obvious sag points"
109
- };
110
- }
111
- function scoreMechanismClarity(allPromptText) {
112
- const clear = MECHANISM_CUE.test(allPromptText);
113
- return {
114
- dimension: "mechanism_clarity",
115
- score: clear ? 1 : 0.4,
116
- note: clear ? "states a mechanism/proof" : "no clear 'why it works' \u2014 add the mechanism"
117
- };
118
- }
119
- function clamp01(n) {
120
- return Math.max(0, Math.min(1, n));
121
- }
122
- function staticCopyLines(nodes) {
123
- const sized = nodes.find((n) => n.type === "static_format")?.params?.copy;
124
- if (Array.isArray(sized)) {
125
- return sized.flatMap(
126
- (l) => typeof l?.text === "string" ? [l.text] : []
127
- );
128
- }
129
- const gen = nodes.find((n) => n.type === "image_generate");
130
- const prompt = promptOf(gen);
131
- const compiled = briefCopyLines(prompt);
132
- if (compiled.length > 0) return compiled;
133
- const start = prompt.indexOf(COPY_DIRECTIVE_HEADER);
134
- if (start === -1) return [];
135
- const bodyStart = start + COPY_DIRECTIVE_HEADER.length;
136
- const end = prompt.indexOf("\n\n", bodyStart);
137
- const block = prompt.slice(bodyStart, end === -1 ? void 0 : end);
138
- const quoted = block.match(/"[^"]+"/g);
139
- return quoted ? quoted.map((s) => s.slice(1, -1)) : [];
140
- }
141
- function scoreTextLegibilityRisk(copy) {
142
- const lines = copy.length;
143
- return {
144
- dimension: "text_legibility_risk",
145
- score: round(clamp01(1 - Math.max(0, lines - 6) / 12)),
146
- note: lines > 6 ? `${lines} copy blocks \u2014 dense; trim or split so type stays legible` : `${lines} copy block(s) \u2014 reads cleanly`
147
- };
148
- }
149
- function scoreIdentityGrounding(nodes) {
150
- const grounded = nodes.filter((n) => n.type === "image_reference_sheet").length + nodes.filter((n) => n.type === "ingest" && typeof n.id === "string" && /^el_/.test(n.id)).length;
151
- return {
152
- dimension: "identity_grounding",
153
- // 0 grounded is fine for a pure-type ad, so it's a soft nudge, not a failure.
154
- score: grounded > 0 ? 1 : 0.6,
155
- note: grounded > 0 ? `${grounded} subject(s) grounded in a real reference` : "no grounded subject \u2014 fine for a type-only ad; otherwise ground the hero in a real reference"
156
- };
157
- }
158
- function scoreTypeFidelity(nodes) {
159
- const hasSpecimen = nodes.some((n) => n.type === "font_specimen");
160
- return {
161
- dimension: "type_fidelity",
162
- score: hasSpecimen ? 1 : 0.5,
163
- note: hasSpecimen ? "brand type biased by a font specimen" : "no font specimen \u2014 brand type may drift; wire the brand font"
164
- };
165
- }
166
- function critiqueVideo(nodes, videoNodes) {
167
- const scene0 = nodes.filter((n) => typeof n.id === "string" && /^s0(?:[_a-z0-9])*_/.test(n.id));
168
- const hasOverlay = nodes.some((n) => typeof n.type === "string" && /hyperframe/.test(n.type));
169
- return [
170
- scoreHookStrength(nodes, scene0, hasOverlay),
171
- scoreFirstFrameLegibility(hasOverlay),
172
- scoreRetentionRisk(videoNodes),
173
- scoreMechanismClarity(creativeText(nodes))
174
- ];
175
- }
176
- function critiqueStatic(nodes) {
177
- const copy = staticCopyLines(nodes);
178
- const copyText = copy.join("\n");
179
- return [
180
- scoreTextLegibilityRisk(copy),
181
- scoreIdentityGrounding(nodes),
182
- scoreTypeFidelity(nodes),
183
- scoreMechanismClarity(copyText)
184
- ];
185
- }
186
- function critiqueCanvas(canvas) {
187
- const nodes = Array.isArray(canvas.nodes) ? canvas.nodes : [];
188
- const videoNodes = nodes.filter((n) => n.type === "video_generate");
189
- const dimensions = videoNodes.length > 0 ? critiqueVideo(nodes, videoNodes) : critiqueStatic(nodes);
190
- const overall = round(dimensions.reduce((s, d) => s + d.score, 0) / dimensions.length);
191
- return { advisory: true, overall, dimensions };
192
- }
193
-
194
- // src/commands/canvas/critique.ts
195
- var critiqueCommand = defineCommand({
196
- meta: {
197
- name: "critique",
198
- description: "Pre-spend creative critic (ADVISORY \u2014 never blocks). Scores a scaffolded creative BEFORE the billed render, so weak spots get fixed for free. It scores what will render: prompt.json and scenes/*.json edits are brought into the canvas first, exactly as `run` does. A VIDEO creative is scored on hook strength, sound-off first-frame legibility, retention risk, and mechanism clarity; a STATIC ad on baked-text legibility risk, identity grounding, brand-type fidelity, and mechanism clarity. Ground a video hook against `baker winning-ads hooks` for a proven pattern."
199
- },
200
- args: { file: { type: "positional", required: true, description: "Path to canvas JSON" } },
201
- async run({ args }) {
202
- const filePath = path.resolve(String(args.file));
203
- let prepared;
204
- try {
205
- prepared = await prepareCanvas(filePath, { log: (line) => process.stderr.write(`${line}
206
- `) });
207
- } catch (e) {
208
- exitOnPrepareError(e);
209
- }
210
- const report = critiqueCanvas(prepared.canvas);
211
- process.stdout.write(
212
- `${JSON.stringify(
213
- {
214
- ok: true,
215
- advisory: true,
216
- overall: report.overall,
217
- dimensions: report.dimensions,
218
- hint: "Scores are 0\u20131 (higher is better). This never blocks a render \u2014 strengthen weak dimensions or proceed."
219
- },
220
- null,
221
- 2
222
- )}
223
- `
224
- );
225
- }
226
- });
227
- export {
228
- critiqueCommand
229
- };
230
- //# sourceMappingURL=critique-BADMZAZP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/canvas/critique.ts","../src/engine/scaffold/lib/critique.ts"],"sourcesContent":["import path from \"node:path\";\nimport { defineCommand } from \"citty\";\nimport { critiqueCanvas } from \"../../engine/scaffold/lib/critique.ts\";\nimport { exitOnPrepareError, type PreparedCanvas, prepareCanvas } from \"./prepare-canvas.ts\";\n\nexport const critiqueCommand = defineCommand({\n meta: {\n name: \"critique\",\n description:\n \"Pre-spend creative critic (ADVISORY — never blocks). Scores a scaffolded creative BEFORE the billed render, so weak spots get fixed for free. It scores what will render: prompt.json and scenes/*.json edits are brought into the canvas first, exactly as `run` does. A VIDEO creative is scored on hook strength, sound-off first-frame legibility, retention risk, and mechanism clarity; a STATIC ad on baked-text legibility risk, identity grounding, brand-type fidelity, and mechanism clarity. Ground a video hook against `baker winning-ads hooks` for a proven pattern.\",\n },\n args: { file: { type: \"positional\", required: true, description: \"Path to canvas JSON\" } },\n async run({ args }) {\n const filePath = path.resolve(String(args.file));\n // Scored on the graph the render will run: every projection applied (the static copy\n // from prompt.json, each scene's frame and clip prompts from scenes/*.json), not the\n // canvas as it was scaffolded.\n let prepared: PreparedCanvas;\n try {\n prepared = await prepareCanvas(filePath, { log: (line) => process.stderr.write(`${line}\\n`) });\n } catch (e) {\n exitOnPrepareError(e);\n }\n const report = critiqueCanvas(prepared.canvas as Parameters<typeof critiqueCanvas>[0]);\n // Advisory: always exit 0. A low score is guidance, not a gate — the operator\n // decides whether to strengthen the creative or render as-is.\n process.stdout.write(\n `${JSON.stringify(\n {\n ok: true,\n advisory: true,\n overall: report.overall,\n dimensions: report.dimensions,\n hint: \"Scores are 0–1 (higher is better). This never blocks a render — strengthen weak dimensions or proceed.\",\n },\n null,\n 2,\n )}\\n`,\n );\n },\n});\n","/**\n * Pre-spend creative critic (T4.1) — our answer to Higgsfield's Virality Predictor,\n * grounded in the doctrine we already enforce. It scores a scaffolded creative on\n * the dimensions that decide whether an ad stops the scroll, BEFORE the billed\n * render, so the operator can strengthen a weak hook for free.\n *\n * ADVISORY ONLY. It never blocks a render or publish — it returns scores + notes;\n * the operator decides. This mirrors our validator philosophy (advisory warnings\n * steer, they don't gate).\n *\n * Pure + offline: it reads the parsed canvas and reasons from the node graph. The\n * deeper \"is this hook a proven winner for the segment\" question is answered by\n * grounding against `baker winning-ads hooks` (see references/critique.md) — kept\n * out of this function so the critic can't fail on a network hiccup.\n */\n\nimport { frameDescriptionOf } from \"../../engine/lint/rules/video-prompt.ts\";\nimport { nativeDialogueOf } from \"../../lib/prompt-profiles.ts\";\nimport { briefCopyLines } from \"../static-brief.ts\";\nimport { COPY_DIRECTIVE_HEADER } from \"../static-copy.ts\";\nimport { FRAME_PLACEHOLDER_NOTE } from \"../video/prompts/frame.ts\";\n\nexport type CritiqueCanvasInput = {\n nodes?: Array<{ id?: string; type?: string; params?: Record<string, unknown>; inputs?: unknown }>;\n metadata?: { video?: { duration_s?: number; vo_segments?: unknown[]; talking_scenes?: unknown[] } };\n};\n\nexport type CritiqueDimension = {\n dimension: // Video creative dimensions.\n | \"hook_strength\"\n | \"first_frame_legibility\"\n | \"retention_risk\"\n // Static-ad dimensions.\n | \"text_legibility_risk\"\n | \"identity_grounding\"\n | \"type_fidelity\"\n // Shared.\n | \"mechanism_clarity\";\n /** 0–1, higher is better (for the *_risk dimensions, higher = LOWER risk). */\n score: number;\n note: string;\n};\n\nexport type CritiqueReport = {\n advisory: true;\n overall: number;\n dimensions: CritiqueDimension[];\n};\n\nconst VIBE_CUE = /\\b(light|lighting|golden|moody|warm|cool|tone|grade|contrast|shadow|glow|rim|backlit|neon|soft)\\b/i;\nconst MECHANISM_CUE =\n /\\b(because|works by|so that|mechanism|proof|guarantee|clinically|backed by|the reason|that's why)\\b/i;\n\nfunction promptOf(node: { params?: Record<string, unknown> } | undefined): string {\n const p = node?.params?.prompt;\n return typeof p === \"string\" ? p : \"\";\n}\n\nfunction round(n: number): number {\n return Math.round(n * 100) / 100;\n}\n\ntype CanvasNode = NonNullable<CritiqueCanvasInput[\"nodes\"]>[number];\n\n/**\n * What a frame node says about its own picture: the FRAME DESCRIPTION a scaffolded frame\n * wraps in fixed instructions (the same slice the validator reads), or a hand-authored\n * prompt whole. The fixed instructions are the same on every frame — scoring them is how\n * every hook read as having a mood, because they name \"lighting\" — and a frame still\n * waiting for its description has none.\n */\nfunction frameLook(node: CanvasNode): string {\n const description = frameDescriptionOf(promptOf(node)).trim();\n return description.endsWith(FRAME_PLACEHOLDER_NOTE) ? \"\" : description;\n}\n\n/** The words the creative itself says: every frame's own description and every spoken line. */\nfunction creativeText(nodes: CanvasNode[]): string {\n return nodes\n .flatMap((n) => {\n if (n.type === \"image_generate\") return [frameLook(n)];\n if (n.type === \"video_generate\") return [nativeDialogueOf(promptOf(n)) ?? \"\"];\n if (n.type === \"tts\" && typeof n.params?.text === \"string\") return [n.params.text];\n return [];\n })\n .join(\"\\n\");\n}\n\n/**\n * HOOK STRENGTH — the four hook layers present on scene 0 (text/sound/visual/vibe). The\n * visual and vibe layers are read off the opening frames' own descriptions (a canvas with\n * no generated frame: its scene-0 prompts, whole).\n */\nfunction scoreHookStrength(nodes: CanvasNode[], scene0: CanvasNode[], hasOverlay: boolean): CritiqueDimension {\n const scene0Text = scene0.map((n) => promptOf(n)).join(\"\\n\");\n const frames = scene0.filter((n) => n.type === \"image_generate\");\n const look = (frames.length > 0 ? frames.map(frameLook) : scene0.map((n) => promptOf(n))).join(\"\\n\");\n const hookClip = scene0.find((n) => n.type === \"video_generate\");\n const hasSound =\n hookClip?.params?.generate_audio === true ||\n /Dialogue:|Audio:/.test(scene0Text) ||\n nodes.some((n) => n.type === \"tts\" || n.type === \"dialogue\");\n const layers = [hasOverlay, hasSound, look.trim().length > 40, VIBE_CUE.test(look)];\n const layerCount = layers.filter(Boolean).length;\n return {\n dimension: \"hook_strength\",\n score: round(hookClip ? layerCount / 4 : 0.5),\n note: hookClip\n ? `hook works on ${layerCount}/4 layers (text/sound/visual/vibe)`\n : \"no scene-0 clip found — is this a video creative?\",\n };\n}\n\n/** FIRST-FRAME LEGIBILITY (sound-off) — feeds autoplay muted, so the first frame\n * must read without audio. A designed overlay text layer is the strongest signal. */\nfunction scoreFirstFrameLegibility(hasOverlay: boolean): CritiqueDimension {\n return {\n dimension: \"first_frame_legibility\",\n score: hasOverlay ? 1 : 0.4,\n note: hasOverlay\n ? \"a designed overlay layer carries the sound-off message\"\n : \"footage-only — the first frame may not read with sound off; consider an overlay hook\",\n };\n}\n\n/** RETENTION RISK (higher = lower risk) — long clips with no spoken line sag. */\nfunction scoreRetentionRisk(videoNodes: CanvasNode[]): CritiqueDimension {\n let saggy = 0;\n for (const n of videoNodes) {\n const dur = typeof n.params?.duration === \"number\" ? n.params.duration : 0;\n const spoken = /Dialogue:/.test(promptOf(n)) || n.params?.generate_audio === true;\n if (dur >= 8 && !spoken) saggy += 1;\n }\n return {\n dimension: \"retention_risk\",\n score: round(videoNodes.length > 0 ? 1 - Math.min(1, saggy / videoNodes.length) : 0.7),\n note: saggy > 0 ? `${saggy} long clip(s) with no spoken line may sag` : \"no obvious sag points\",\n };\n}\n\n/** MECHANISM CLARITY — does the creative state WHY it works, not just what it is? */\nfunction scoreMechanismClarity(allPromptText: string): CritiqueDimension {\n const clear = MECHANISM_CUE.test(allPromptText);\n return {\n dimension: \"mechanism_clarity\",\n score: clear ? 1 : 0.4,\n note: clear ? \"states a mechanism/proof\" : \"no clear 'why it works' — add the mechanism\",\n };\n}\n\nfunction clamp01(n: number): number {\n return Math.max(0, Math.min(1, n));\n}\n\n/**\n * The copy a static ad carries: on one picture the designed lines every size sets\n * (`static_format`'s `copy`, its picture carrying none); else the numbered lines its compiled\n * brief quotes (`static-brief.ts`), or, on a canvas no run has compiled yet, the strings of the\n * older prompt's copy block (from its header to the next blank line).\n */\nfunction staticCopyLines(nodes: CanvasNode[]): string[] {\n const sized = nodes.find((n) => n.type === \"static_format\")?.params?.copy;\n if (Array.isArray(sized)) {\n return sized.flatMap((l) =>\n typeof (l as { text?: unknown })?.text === \"string\" ? [(l as { text: string }).text] : [],\n );\n }\n const gen = nodes.find((n) => n.type === \"image_generate\");\n const prompt = promptOf(gen);\n const compiled = briefCopyLines(prompt);\n if (compiled.length > 0) return compiled;\n const start = prompt.indexOf(COPY_DIRECTIVE_HEADER);\n if (start === -1) return [];\n const bodyStart = start + COPY_DIRECTIVE_HEADER.length;\n const end = prompt.indexOf(\"\\n\\n\", bodyStart);\n const block = prompt.slice(bodyStart, end === -1 ? undefined : end);\n const quoted = block.match(/\"[^\"]+\"/g);\n return quoted ? quoted.map((s) => s.slice(1, -1)) : [];\n}\n\n/** TEXT LEGIBILITY RISK (higher = lower risk) — baked copy is the #1 static-ad defect,\n * and it crowds fast: past ~6 distinct copy blocks the render garbles and duplicates. */\nfunction scoreTextLegibilityRisk(copy: string[]): CritiqueDimension {\n const lines = copy.length;\n return {\n dimension: \"text_legibility_risk\",\n score: round(clamp01(1 - Math.max(0, lines - 6) / 12)),\n note:\n lines > 6\n ? `${lines} copy blocks — dense; trim or split so type stays legible`\n : `${lines} copy block(s) — reads cleanly`,\n };\n}\n\n/** IDENTITY GROUNDING — Rule 1: every real subject grounds on a real reference (a\n * dropped `el_*` asset or its fused reference sheet), never free-generated. */\nfunction scoreIdentityGrounding(nodes: CanvasNode[]): CritiqueDimension {\n const grounded =\n nodes.filter((n) => n.type === \"image_reference_sheet\").length +\n nodes.filter((n) => n.type === \"ingest\" && typeof n.id === \"string\" && /^el_/.test(n.id)).length;\n return {\n dimension: \"identity_grounding\",\n // 0 grounded is fine for a pure-type ad, so it's a soft nudge, not a failure.\n score: grounded > 0 ? 1 : 0.6,\n note:\n grounded > 0\n ? `${grounded} subject(s) grounded in a real reference`\n : \"no grounded subject — fine for a type-only ad; otherwise ground the hero in a real reference\",\n };\n}\n\n/** TYPE FIDELITY — \"the big one\": image models don't hold a brand font, so a wired\n * font specimen that biases the render toward the real face is the strongest lever. */\nfunction scoreTypeFidelity(nodes: CanvasNode[]): CritiqueDimension {\n const hasSpecimen = nodes.some((n) => n.type === \"font_specimen\");\n return {\n dimension: \"type_fidelity\",\n score: hasSpecimen ? 1 : 0.5,\n note: hasSpecimen\n ? \"brand type biased by a font specimen\"\n : \"no font specimen — brand type may drift; wire the brand font\",\n };\n}\n\n/** VIDEO creative dimensions (hook / legibility / retention / mechanism). */\nfunction critiqueVideo(nodes: CanvasNode[], videoNodes: CanvasNode[]): CritiqueDimension[] {\n const scene0 = nodes.filter((n) => typeof n.id === \"string\" && /^s0(?:[_a-z0-9])*_/.test(n.id));\n const hasOverlay = nodes.some((n) => typeof n.type === \"string\" && /hyperframe/.test(n.type));\n return [\n scoreHookStrength(nodes, scene0, hasOverlay),\n scoreFirstFrameLegibility(hasOverlay),\n scoreRetentionRisk(videoNodes),\n scoreMechanismClarity(creativeText(nodes)),\n ];\n}\n\n/** STATIC-ad dimensions (legibility / grounding / type / mechanism). */\nfunction critiqueStatic(nodes: CanvasNode[]): CritiqueDimension[] {\n // Only the ad's own copy: every other prompt on the canvas is the scaffold's boilerplate,\n // and the judge's rubric alone (\"the reason the reference ad works\") read as a stated\n // mechanism on every multi-take ad.\n const copy = staticCopyLines(nodes);\n const copyText = copy.join(\"\\n\");\n return [\n scoreTextLegibilityRisk(copy),\n scoreIdentityGrounding(nodes),\n scoreTypeFidelity(nodes),\n scoreMechanismClarity(copyText),\n ];\n}\n\n/**\n * Score a scaffolded creative. Branches on modality — a canvas with `video_generate`\n * nodes is a video creative; anything else (an `image_generate` static ad, or an empty\n * canvas) is scored on the static dimensions. All heuristics degrade gracefully rather\n * than throwing, and every dimension is advisory only.\n */\nexport function critiqueCanvas(canvas: CritiqueCanvasInput): CritiqueReport {\n const nodes = Array.isArray(canvas.nodes) ? canvas.nodes : [];\n const videoNodes = nodes.filter((n) => n.type === \"video_generate\");\n const dimensions = videoNodes.length > 0 ? critiqueVideo(nodes, videoNodes) : critiqueStatic(nodes);\n const overall = round(dimensions.reduce((s, d) => s + d.score, 0) / dimensions.length);\n return { advisory: true, overall, dimensions };\n}\n"],"mappings":"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","names":[]}