@koda-sl/baker-cli 0.496.0 → 0.497.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (841) hide show
  1. package/README.md +25 -4
  2. package/dist/account-ZKJFX2GK.js +80 -0
  3. package/dist/account-ZKJFX2GK.js.map +1 -0
  4. package/dist/account-users-SZCYHVBM.js +62 -0
  5. package/dist/account-users-SZCYHVBM.js.map +1 -0
  6. package/dist/accounts-5DFYKYSM.js +78 -0
  7. package/dist/accounts-5DFYKYSM.js.map +1 -0
  8. package/dist/accounts-OGAIQNE6.js +612 -0
  9. package/dist/accounts-OGAIQNE6.js.map +1 -0
  10. package/dist/actions-FMNJSOBA.js +55 -0
  11. package/dist/activecampaign-LYYYH6XD.js +936 -0
  12. package/dist/activecampaign-LYYYH6XD.js.map +1 -0
  13. package/dist/add-AOQLZRPC.js +80 -0
  14. package/dist/add-AOQLZRPC.js.map +1 -0
  15. package/dist/add-HWXEPSZF.js +105 -0
  16. package/dist/add-HWXEPSZF.js.map +1 -0
  17. package/dist/add-VDZPGZF5.js +148 -0
  18. package/dist/add-VDZPGZF5.js.map +1 -0
  19. package/dist/add-YYP3O536.js +303 -0
  20. package/dist/add-YYP3O536.js.map +1 -0
  21. package/dist/ads-OLXSDPD6.js +40 -0
  22. package/dist/advertisers-STYAIX72.js +121 -0
  23. package/dist/advertisers-STYAIX72.js.map +1 -0
  24. package/dist/analytics-6WBK4VFO.js +1977 -0
  25. package/dist/analytics-6WBK4VFO.js.map +1 -0
  26. package/dist/analytics-DHB325DM.js +434 -0
  27. package/dist/analytics-DHB325DM.js.map +1 -0
  28. package/dist/assign-BFXHYTMF.js +78 -0
  29. package/dist/assign-BFXHYTMF.js.map +1 -0
  30. package/dist/audience-size-XWHZV2GH.js +74 -0
  31. package/dist/audience-size-XWHZV2GH.js.map +1 -0
  32. package/dist/audit-IYGRU7LD.js +152 -0
  33. package/dist/audit-IYGRU7LD.js.map +1 -0
  34. package/dist/autocomplete-SDDSJTAF.js +112 -0
  35. package/dist/autocomplete-SDDSJTAF.js.map +1 -0
  36. package/dist/avatars-I4H3NMEJ.js +38 -0
  37. package/dist/bid-pricing-OVYBDRMV.js +101 -0
  38. package/dist/bid-pricing-OVYBDRMV.js.map +1 -0
  39. package/dist/brand-3V7ECY7D.js +22 -0
  40. package/dist/brief-U2W7KMFC.js +539 -0
  41. package/dist/brief-U2W7KMFC.js.map +1 -0
  42. package/dist/campaign-groups-FJHBVUA3.js +97 -0
  43. package/dist/campaign-groups-FJHBVUA3.js.map +1 -0
  44. package/dist/campaign-writes-XKYYMZML.js +166 -0
  45. package/dist/campaign-writes-XKYYMZML.js.map +1 -0
  46. package/dist/campaigns-E5UW4I3X.js +111 -0
  47. package/dist/campaigns-E5UW4I3X.js.map +1 -0
  48. package/dist/campaigns-MCB76NPQ.js +107 -0
  49. package/dist/canvas-JCNKMGCG.js +46 -0
  50. package/dist/capabilities-CLTZCXCZ.js +145 -0
  51. package/dist/capabilities-CLTZCXCZ.js.map +1 -0
  52. package/dist/chatgpt-XFZ42NXC.js +47 -0
  53. package/dist/chats-DTJSBDWO.js +277 -0
  54. package/dist/chats-DTJSBDWO.js.map +1 -0
  55. package/dist/check-CZTS64AW.js +105 -0
  56. package/dist/check-CZTS64AW.js.map +1 -0
  57. package/dist/chunk-2YTBPRRG.js +207 -0
  58. package/dist/chunk-3SNCMEJB.js +97 -0
  59. package/dist/chunk-7QGFO35A.js +23 -0
  60. package/dist/chunk-AV7ALENU.js +191 -0
  61. package/dist/chunk-BRLFQ4VX.js +604 -0
  62. package/dist/chunk-CAZGM2NX.js +92 -0
  63. package/dist/chunk-CAZGM2NX.js.map +1 -0
  64. package/dist/chunk-DJE7UXYT.js +831 -0
  65. package/dist/chunk-EFWXYUSK.js +139 -0
  66. package/dist/chunk-EONSZAZB.js +3868 -0
  67. package/dist/chunk-FALJQCWL.js +661 -0
  68. package/dist/chunk-FALJQCWL.js.map +1 -0
  69. package/dist/chunk-FG3MV2XM.js +89 -0
  70. package/dist/chunk-FKG476GH.js +392 -0
  71. package/dist/chunk-FUGQSIYG.js +297 -0
  72. package/dist/chunk-GZ4A2VYW.js +39 -0
  73. package/dist/chunk-GZ4A2VYW.js.map +1 -0
  74. package/dist/chunk-HPLHAHG5.js +275 -0
  75. package/dist/chunk-I24YT2KG.js +122 -0
  76. package/dist/chunk-IFDZZOUC.js +903 -0
  77. package/dist/chunk-JVVUI55M.js +455 -0
  78. package/dist/chunk-KKSHEPBY.js +363 -0
  79. package/dist/chunk-KQ7RCLGC.js +547 -0
  80. package/dist/chunk-L7WMS5PW.js +172 -0
  81. package/dist/chunk-LBRO4MTL.js +19 -0
  82. package/dist/chunk-LNRPOULW.js +224 -0
  83. package/dist/chunk-LX6WC2XZ.js +942 -0
  84. package/dist/chunk-MMGTJBM6.js +142 -0
  85. package/dist/chunk-NZS3KEQ2.js +97 -0
  86. package/dist/chunk-NZS3KEQ2.js.map +1 -0
  87. package/dist/chunk-O37VU7FG.js +6799 -0
  88. package/dist/chunk-O37VU7FG.js.map +1 -0
  89. package/dist/chunk-OEZYSL3U.js +51 -0
  90. package/dist/chunk-OOVHBMQB.js +103 -0
  91. package/dist/chunk-PTH7VWKK.js +159 -0
  92. package/dist/chunk-PYD6IGW6.js +401 -0
  93. package/dist/chunk-PYD6IGW6.js.map +1 -0
  94. package/dist/chunk-QE2E4EYJ.js +349 -0
  95. package/dist/chunk-QE2E4EYJ.js.map +1 -0
  96. package/dist/chunk-QZF4BVKL.js +66 -0
  97. package/dist/chunk-RITUSBYO.js +61 -0
  98. package/dist/chunk-SSTL3A7Z.js +206 -0
  99. package/dist/chunk-SZNGQ2GF.js +64 -0
  100. package/dist/chunk-SZNGQ2GF.js.map +1 -0
  101. package/dist/chunk-TD4SO6TR.js +169 -0
  102. package/dist/chunk-UZ4RTOFG.js +91 -0
  103. package/dist/chunk-VAX7PFQV.js +592 -0
  104. package/dist/chunk-VDRSZK4P.js +494 -0
  105. package/dist/chunk-VNU2EYD4.js +344 -0
  106. package/dist/chunk-WT4WDIXA.js +156 -0
  107. package/dist/chunk-XEX23CIB.js +160 -0
  108. package/dist/chunk-XXDF25BW.js +8939 -0
  109. package/dist/chunk-YJ3LSFMX.js +249 -0
  110. package/dist/chunk-YVK5RT3B.js +197 -0
  111. package/dist/chunk-YWWRLZUR.js +433 -0
  112. package/dist/chunk-Z4S5BCVZ.js +57 -0
  113. package/dist/chunk-ZYGK7GAK.js +1079 -0
  114. package/dist/claim-TSFPWTQY.js +198 -0
  115. package/dist/claim-TSFPWTQY.js.map +1 -0
  116. package/dist/cli.js +38 -37
  117. package/dist/cli.js.map +1 -1
  118. package/dist/companies-P7FZNJQV.js +196 -0
  119. package/dist/companies-P7FZNJQV.js.map +1 -0
  120. package/dist/complete-SYDIHMD5.js +82 -0
  121. package/dist/complete-SYDIHMD5.js.map +1 -0
  122. package/dist/connect-COS6G45S.js +43 -0
  123. package/dist/conversation-UJOWMJRH.js +94 -0
  124. package/dist/conversation-UJOWMJRH.js.map +1 -0
  125. package/dist/conversions-ONOIEILU.js +138 -0
  126. package/dist/conversions-ONOIEILU.js.map +1 -0
  127. package/dist/create-DPQRYQXK.js +208 -0
  128. package/dist/create-DPQRYQXK.js.map +1 -0
  129. package/dist/create-JD76Z4A4.js +60 -0
  130. package/dist/create-JD76Z4A4.js.map +1 -0
  131. package/dist/create-NOT3HGP2.js +133 -0
  132. package/dist/create-NOT3HGP2.js.map +1 -0
  133. package/dist/create-ZYEB7SHF.js +236 -0
  134. package/dist/create-ZYEB7SHF.js.map +1 -0
  135. package/dist/creatives-LRSELC7Y.js +221 -0
  136. package/dist/creatives-LRSELC7Y.js.map +1 -0
  137. package/dist/creatives-SEQHJD2M.js +58 -0
  138. package/dist/credentials-LHPTUVVA.js +288 -0
  139. package/dist/credentials-LHPTUVVA.js.map +1 -0
  140. package/dist/critique-Q7GSZ5RP.js +1459 -0
  141. package/dist/critique-Q7GSZ5RP.js.map +1 -0
  142. package/dist/critique-RR2XOQCE.js +228 -0
  143. package/dist/critique-RR2XOQCE.js.map +1 -0
  144. package/dist/crm-J7EU32PL.js +319 -0
  145. package/dist/crm-J7EU32PL.js.map +1 -0
  146. package/dist/crm-MC444ZVU.js +225 -0
  147. package/dist/crm-MC444ZVU.js.map +1 -0
  148. package/dist/customers-LMSX33FO.js +57 -0
  149. package/dist/delete-BQBVATMF.js +55 -0
  150. package/dist/delete-BQBVATMF.js.map +1 -0
  151. package/dist/delete-K7A3AUPH.js +65 -0
  152. package/dist/delete-K7A3AUPH.js.map +1 -0
  153. package/dist/delete-VV2ICIHF.js +67 -0
  154. package/dist/delete-VV2ICIHF.js.map +1 -0
  155. package/dist/demographics-7GWUXXS6.js +139 -0
  156. package/dist/demographics-7GWUXXS6.js.map +1 -0
  157. package/dist/discard-3CLZ4DPD.js +67 -0
  158. package/dist/discard-3CLZ4DPD.js.map +1 -0
  159. package/dist/domain-ZS74BSE6.js +99 -0
  160. package/dist/domain-ZS74BSE6.js.map +1 -0
  161. package/dist/draft-J3B33RAZ.js +308 -0
  162. package/dist/draft-J3B33RAZ.js.map +1 -0
  163. package/dist/draft-MZLWVX3D.js +218 -0
  164. package/dist/draft-MZLWVX3D.js.map +1 -0
  165. package/dist/draft-R56PIXCV.js +333 -0
  166. package/dist/draft-R56PIXCV.js.map +1 -0
  167. package/dist/experiment-7RJ5X2LL.js +1397 -0
  168. package/dist/experiments-NOSJJMYI.js +234 -0
  169. package/dist/experiments-NOSJJMYI.js.map +1 -0
  170. package/dist/facets-E6SHYUAI.js +115 -0
  171. package/dist/facets-E6SHYUAI.js.map +1 -0
  172. package/dist/feedback-HXCQBV7S.js +107 -0
  173. package/dist/feedback-HXCQBV7S.js.map +1 -0
  174. package/dist/feedback-record-GXPYXNT6.js +261 -0
  175. package/dist/feedback-record-GXPYXNT6.js.map +1 -0
  176. package/dist/fetch-HMUGSRE4.js +177 -0
  177. package/dist/fetch-HMUGSRE4.js.map +1 -0
  178. package/dist/find-2EPXK5RF.js +134 -0
  179. package/dist/fit-W7UNFZT5.js +63 -0
  180. package/dist/flows-SO5J3M3X.js +248 -0
  181. package/dist/flows-SO5J3M3X.js.map +1 -0
  182. package/dist/fonts-N42UYWTX.js +37 -0
  183. package/dist/forecast-24LGJVLC.js +119 -0
  184. package/dist/forecast-24LGJVLC.js.map +1 -0
  185. package/dist/funnel-NYT36B3C.js +395 -0
  186. package/dist/funnel-NYT36B3C.js.map +1 -0
  187. package/dist/ga4-6EIQC2TG.js +55 -0
  188. package/dist/get-KAGO4EC5.js +80 -0
  189. package/dist/get-KAGO4EC5.js.map +1 -0
  190. package/dist/get-PZX27LQY.js +38 -0
  191. package/dist/get-PZX27LQY.js.map +1 -0
  192. package/dist/get-R5JAFHTH.js +57 -0
  193. package/dist/get-R5JAFHTH.js.map +1 -0
  194. package/dist/google-O5OI6QFU.js +136 -0
  195. package/dist/google-ads-6X4BHGUR.js +196 -0
  196. package/dist/google-ads-6X4BHGUR.js.map +1 -0
  197. package/dist/gsc-BM3T2GDL.js +30 -0
  198. package/dist/history-LGOWYLBE.js +134 -0
  199. package/dist/history-LGOWYLBE.js.map +1 -0
  200. package/dist/hubspot-LJB3ETUT.js +780 -0
  201. package/dist/hubspot-LJB3ETUT.js.map +1 -0
  202. package/dist/icon-B7DG53S5.js +137 -0
  203. package/dist/ideas-DYN2DMFN.js +41 -0
  204. package/dist/images-EQCUXEHF.js +92 -0
  205. package/dist/ingest-B46AY3QU.js +24 -0
  206. package/dist/ingest-T7ZS2R4U.js +108 -0
  207. package/dist/ingest-T7ZS2R4U.js.map +1 -0
  208. package/dist/inspect-BSNGAT2S.js +190 -0
  209. package/dist/inspect-BSNGAT2S.js.map +1 -0
  210. package/dist/inspiration-TCCKM4R7.js +53 -0
  211. package/dist/keyword-metrics-KNTIN4ZK.js +198 -0
  212. package/dist/keyword-metrics-KNTIN4ZK.js.map +1 -0
  213. package/dist/keywords-for-site-S4MXGXWR.js +129 -0
  214. package/dist/keywords-for-site-S4MXGXWR.js.map +1 -0
  215. package/dist/landing-WVPA7NBR.js +28 -0
  216. package/dist/leads-EINV5FK3.js +113 -0
  217. package/dist/leads-EINV5FK3.js.map +1 -0
  218. package/dist/learn-7Z2VR6MS.js +205 -0
  219. package/dist/learn-7Z2VR6MS.js.map +1 -0
  220. package/dist/line-item-writes-Z3TIB5KZ.js +209 -0
  221. package/dist/line-item-writes-Z3TIB5KZ.js.map +1 -0
  222. package/dist/line-items-OEWYOPFP.js +103 -0
  223. package/dist/link-KYHUIPJE.js +65 -0
  224. package/dist/link-KYHUIPJE.js.map +1 -0
  225. package/dist/linkedin-JVB4HXJC.js +1314 -0
  226. package/dist/linkedin-JVB4HXJC.js.map +1 -0
  227. package/dist/list-EORTO73V.js +93 -0
  228. package/dist/list-EORTO73V.js.map +1 -0
  229. package/dist/list-QQVLURKH.js +152 -0
  230. package/dist/list-QQVLURKH.js.map +1 -0
  231. package/dist/list-QWGKRUSM.js +65 -0
  232. package/dist/list-QWGKRUSM.js.map +1 -0
  233. package/dist/list-WRBWQASJ.js +50 -0
  234. package/dist/list-Z6NMNK3T.js +304 -0
  235. package/dist/list-Z6NMNK3T.js.map +1 -0
  236. package/dist/log-RUMKYPYK.js +93 -0
  237. package/dist/log-RUMKYPYK.js.map +1 -0
  238. package/dist/logo-QTSBKP2J.js +18 -0
  239. package/dist/make-IJGCQA7C.js +1354 -0
  240. package/dist/make-IJGCQA7C.js.map +1 -0
  241. package/dist/map-QZHIJFQT.js +434 -0
  242. package/dist/map-QZHIJFQT.js.map +1 -0
  243. package/dist/mcp-ZH2XDV5P.js +715 -0
  244. package/dist/mcp-ZH2XDV5P.js.map +1 -0
  245. package/dist/media-sources-SQ2RPDBO.js +35 -0
  246. package/dist/media-sources-SQ2RPDBO.js.map +1 -0
  247. package/dist/members-4YX7JEZM.js +45 -0
  248. package/dist/members-4YX7JEZM.js.map +1 -0
  249. package/dist/normalize-ABIWLRIT.js +142 -0
  250. package/dist/normalize-ABIWLRIT.js.map +1 -0
  251. package/dist/options-SVCQVTNE.js +123 -0
  252. package/dist/options-SVCQVTNE.js.map +1 -0
  253. package/dist/organization-FNKDC742.js +947 -0
  254. package/dist/organization-FNKDC742.js.map +1 -0
  255. package/dist/performance-HTU5FR2K.js +25 -0
  256. package/dist/posts-3DAPTBH2.js +34 -0
  257. package/dist/posts-3DAPTBH2.js.map +1 -0
  258. package/dist/promoted-tweet-writes-DD3CJNWW.js +181 -0
  259. package/dist/promoted-tweet-writes-DD3CJNWW.js.map +1 -0
  260. package/dist/promoted-tweets-TTWN5OMW.js +119 -0
  261. package/dist/publish-Z62KGDJ2.js +342 -0
  262. package/dist/publish-Z62KGDJ2.js.map +1 -0
  263. package/dist/reddit-6C3PT5CT.js +27 -0
  264. package/dist/refresh-HCQXVFVR.js +95 -0
  265. package/dist/refresh-HCQXVFVR.js.map +1 -0
  266. package/dist/refresh-ZCGH64OZ.js +42 -0
  267. package/dist/refresh-ZCGH64OZ.js.map +1 -0
  268. package/dist/release-FIHW2HCH.js +61 -0
  269. package/dist/release-FIHW2HCH.js.map +1 -0
  270. package/dist/remove-CBR7NVMI.js +51 -0
  271. package/dist/remove-CBR7NVMI.js.map +1 -0
  272. package/dist/remove-PUZP5GWN.js +49 -0
  273. package/dist/remove-PUZP5GWN.js.map +1 -0
  274. package/dist/reopen-EJGLRQWR.js +64 -0
  275. package/dist/reopen-EJGLRQWR.js.map +1 -0
  276. package/dist/rerun-TVBZXASH.js +91 -0
  277. package/dist/rerun-TVBZXASH.js.map +1 -0
  278. package/dist/research-L25D4WHQ.js +263 -0
  279. package/dist/research-L25D4WHQ.js.map +1 -0
  280. package/dist/research-YCMMQVK6.js +62 -0
  281. package/dist/reset-HKKCWKZ7.js +55 -0
  282. package/dist/reset-HKKCWKZ7.js.map +1 -0
  283. package/dist/reset-SRL6I6GP.js +55 -0
  284. package/dist/reset-SRL6I6GP.js.map +1 -0
  285. package/dist/resolve-POMTTAFR.js +122 -0
  286. package/dist/resolve-POMTTAFR.js.map +1 -0
  287. package/dist/retry-MEPTOAV2.js +61 -0
  288. package/dist/retry-MEPTOAV2.js.map +1 -0
  289. package/dist/retry-RNGM3KKA.js +63 -0
  290. package/dist/retry-RNGM3KKA.js.map +1 -0
  291. package/dist/revenue-X4KPTSAM.js +89 -0
  292. package/dist/revenue-X4KPTSAM.js.map +1 -0
  293. package/dist/rules-VK7YA23Q.js +97 -0
  294. package/dist/rules-VK7YA23Q.js.map +1 -0
  295. package/dist/rules-add-VG7AT6EG.js +463 -0
  296. package/dist/rules-add-VG7AT6EG.js.map +1 -0
  297. package/dist/run-DIDQSZU7.js +67 -0
  298. package/dist/run-DIDQSZU7.js.map +1 -0
  299. package/dist/run-SR7DJ7M5.js +66 -0
  300. package/dist/scaffold-ad-46GTFUMP.js +1512 -0
  301. package/dist/scaffold-ad-46GTFUMP.js.map +1 -0
  302. package/dist/scaffold-static-ad-U63V4UHR.js +1006 -0
  303. package/dist/scaffold-static-ad-U63V4UHR.js.map +1 -0
  304. package/dist/scaffold-video-4DNTURH6.js +884 -0
  305. package/dist/scaffold-video-4DNTURH6.js.map +1 -0
  306. package/dist/schedule-JO66N7XO.js +62 -0
  307. package/dist/schedule-JO66N7XO.js.map +1 -0
  308. package/dist/schedule-JZBIX6LH.js +67 -0
  309. package/dist/schedule-JZBIX6LH.js.map +1 -0
  310. package/dist/scheduled-agents-N63EZNY6.js +50 -0
  311. package/dist/schema-B2XANMEY.js +133 -0
  312. package/dist/schema-B2XANMEY.js.map +1 -0
  313. package/dist/schema-C6SGBNA6.js +69 -0
  314. package/dist/search-7GHS3OUZ.js +51 -0
  315. package/dist/search-7GHS3OUZ.js.map +1 -0
  316. package/dist/search-W5HZUJA2.js +175 -0
  317. package/dist/search-W5HZUJA2.js.map +1 -0
  318. package/dist/select-LMGLNFWB.js +102 -0
  319. package/dist/select-LMGLNFWB.js.map +1 -0
  320. package/dist/set-prompt-M5E3UZDM.js +194 -0
  321. package/dist/set-prompt-M5E3UZDM.js.map +1 -0
  322. package/dist/setup-links-ERBQSKAB.js +142 -0
  323. package/dist/setup-links-ERBQSKAB.js.map +1 -0
  324. package/dist/site-PNVFJRYK.js +178 -0
  325. package/dist/site-PNVFJRYK.js.map +1 -0
  326. package/dist/sources-DMZJPLKC.js +455 -0
  327. package/dist/sources-DMZJPLKC.js.map +1 -0
  328. package/dist/sources-HN3GCEDX.js +30 -0
  329. package/dist/stale-VWN25WTL.js +72 -0
  330. package/dist/stale-VWN25WTL.js.map +1 -0
  331. package/dist/stats-CVF6AC7R.js +34 -0
  332. package/dist/status-SF7DTPCJ.js +63 -0
  333. package/dist/status-SF7DTPCJ.js.map +1 -0
  334. package/dist/stock-4LPQ6SM7.js +179 -0
  335. package/dist/studio-NZ6WQ7OE.js +49 -0
  336. package/dist/suggest-WMMEQCUH.js +66 -0
  337. package/dist/suggest-WMMEQCUH.js.map +1 -0
  338. package/dist/sync-F7VNZLWY.js +55 -0
  339. package/dist/sync-F7VNZLWY.js.map +1 -0
  340. package/dist/sync-HVNDPBOD.js +55 -0
  341. package/dist/sync-HVNDPBOD.js.map +1 -0
  342. package/dist/sync-definition-CKEUYKWN.js +65 -0
  343. package/dist/tag-KTQ2FV5C.js +57 -0
  344. package/dist/tag-KTQ2FV5C.js.map +1 -0
  345. package/dist/tag-manager-FLXXLNKP.js +43 -0
  346. package/dist/tags-EUOOSAKN.js +26 -0
  347. package/dist/tags-KOMAP2G5.js +21 -0
  348. package/dist/tags-KOMAP2G5.js.map +1 -0
  349. package/dist/tags-TKXJGTR3.js +21 -0
  350. package/dist/tags-TKXJGTR3.js.map +1 -0
  351. package/dist/tags-VWIPDCUA.js +225 -0
  352. package/dist/tags-VWIPDCUA.js.map +1 -0
  353. package/dist/tags-XAB4HWGW.js +21 -0
  354. package/dist/tags-XAB4HWGW.js.map +1 -0
  355. package/dist/targeting-criteria-HE7K52WN.js +113 -0
  356. package/dist/targets-NA4XPDBF.js +104 -0
  357. package/dist/targets-NA4XPDBF.js.map +1 -0
  358. package/dist/testimonials-3Q5XM7JD.js +32 -0
  359. package/dist/top-companies-TKO4QGPJ.js +109 -0
  360. package/dist/top-companies-TKO4QGPJ.js.map +1 -0
  361. package/dist/translate-YVIZ5T44.js +605 -0
  362. package/dist/translate-YVIZ5T44.js.map +1 -0
  363. package/dist/triggers-QX7VW7UO.js +143 -0
  364. package/dist/triggers-QX7VW7UO.js.map +1 -0
  365. package/dist/unlink-64SRPUNG.js +68 -0
  366. package/dist/unlink-64SRPUNG.js.map +1 -0
  367. package/dist/unstage-5X2MOUMF.js +86 -0
  368. package/dist/unstage-5X2MOUMF.js.map +1 -0
  369. package/dist/update-22ZBHURE.js +81 -0
  370. package/dist/update-22ZBHURE.js.map +1 -0
  371. package/dist/update-2LTPSGWT.js +99 -0
  372. package/dist/update-2LTPSGWT.js.map +1 -0
  373. package/dist/update-DOKS7ATM.js +189 -0
  374. package/dist/update-DOKS7ATM.js.map +1 -0
  375. package/dist/update-FB6X463M.js +64 -0
  376. package/dist/update-FB6X463M.js.map +1 -0
  377. package/dist/update-QIZ7XFAM.js +153 -0
  378. package/dist/update-QIZ7XFAM.js.map +1 -0
  379. package/dist/upload-XJ7TUVIK.js +127 -0
  380. package/dist/upload-XJ7TUVIK.js.map +1 -0
  381. package/dist/url-params-KLQOLNPS.js +99 -0
  382. package/dist/url-params-KLQOLNPS.js.map +1 -0
  383. package/dist/validate-YTBJBG44.js +118 -0
  384. package/dist/validate-YTBJBG44.js.map +1 -0
  385. package/dist/videos-WAPUPJVT.js +39 -0
  386. package/dist/viewer-check-GHQA3UY2.js +81 -0
  387. package/dist/web-6JMWERTT.js +141 -0
  388. package/dist/web-6JMWERTT.js.map +1 -0
  389. package/dist/winning-ads-XCVUAIOU.js +86 -0
  390. package/dist/write-commands-N74CDMQM.js +1493 -0
  391. package/dist/write-commands-N74CDMQM.js.map +1 -0
  392. package/dist/x-SI4KYDEY.js +47 -0
  393. package/package.json +1 -1
  394. package/dist/account-UHNR5KTE.js +0 -79
  395. package/dist/account-UHNR5KTE.js.map +0 -1
  396. package/dist/accounts-KMLXHADA.js +0 -77
  397. package/dist/accounts-KMLXHADA.js.map +0 -1
  398. package/dist/accounts-QDGNTSTV.js +0 -611
  399. package/dist/accounts-QDGNTSTV.js.map +0 -1
  400. package/dist/actions-QL5UD2W4.js +0 -55
  401. package/dist/activecampaign-5OD45ROS.js +0 -935
  402. package/dist/activecampaign-5OD45ROS.js.map +0 -1
  403. package/dist/add-2F7BEVYD.js +0 -105
  404. package/dist/add-2F7BEVYD.js.map +0 -1
  405. package/dist/add-6K6LO7CM.js +0 -104
  406. package/dist/add-6K6LO7CM.js.map +0 -1
  407. package/dist/add-LYDJZDGO.js +0 -302
  408. package/dist/add-LYDJZDGO.js.map +0 -1
  409. package/dist/ads-DHPJFU52.js +0 -40
  410. package/dist/advertisers-23LU7GTV.js +0 -120
  411. package/dist/advertisers-23LU7GTV.js.map +0 -1
  412. package/dist/analytics-HO2SLL4W.js +0 -433
  413. package/dist/analytics-HO2SLL4W.js.map +0 -1
  414. package/dist/analytics-LD3D7ISK.js +0 -1976
  415. package/dist/analytics-LD3D7ISK.js.map +0 -1
  416. package/dist/assign-CLKJKH2B.js +0 -77
  417. package/dist/assign-CLKJKH2B.js.map +0 -1
  418. package/dist/audience-size-NNYYXODL.js +0 -73
  419. package/dist/audience-size-NNYYXODL.js.map +0 -1
  420. package/dist/audit-KB4P2XGS.js +0 -151
  421. package/dist/audit-KB4P2XGS.js.map +0 -1
  422. package/dist/autocomplete-VZD2SMTE.js +0 -111
  423. package/dist/autocomplete-VZD2SMTE.js.map +0 -1
  424. package/dist/avatars-FKOO6VZ2.js +0 -38
  425. package/dist/bid-pricing-6LLXOLLI.js +0 -100
  426. package/dist/bid-pricing-6LLXOLLI.js.map +0 -1
  427. package/dist/brand-NNWHBIAX.js +0 -22
  428. package/dist/brief-CPJQWT6W.js +0 -538
  429. package/dist/brief-CPJQWT6W.js.map +0 -1
  430. package/dist/campaign-groups-YPYNXOWU.js +0 -95
  431. package/dist/campaign-groups-YPYNXOWU.js.map +0 -1
  432. package/dist/campaign-writes-UJ4L2O6G.js +0 -165
  433. package/dist/campaign-writes-UJ4L2O6G.js.map +0 -1
  434. package/dist/campaigns-HLBZRH5A.js +0 -107
  435. package/dist/campaigns-N44ZDGB5.js +0 -109
  436. package/dist/campaigns-N44ZDGB5.js.map +0 -1
  437. package/dist/canvas-D64GLWUO.js +0 -46
  438. package/dist/capabilities-LWXCWMIY.js +0 -144
  439. package/dist/capabilities-LWXCWMIY.js.map +0 -1
  440. package/dist/chatgpt-YI6YNACI.js +0 -47
  441. package/dist/chats-7WGC2CVW.js +0 -276
  442. package/dist/chats-7WGC2CVW.js.map +0 -1
  443. package/dist/check-EH6BXWWL.js +0 -104
  444. package/dist/check-EH6BXWWL.js.map +0 -1
  445. package/dist/chunk-2B772ZEA.js +0 -169
  446. package/dist/chunk-2KRK667G.js +0 -51
  447. package/dist/chunk-2TVXJPGR.js +0 -103
  448. package/dist/chunk-3AMLOCXY.js +0 -392
  449. package/dist/chunk-3B5LPK6D.js +0 -658
  450. package/dist/chunk-3B5LPK6D.js.map +0 -1
  451. package/dist/chunk-3N5A44NQ.js +0 -122
  452. package/dist/chunk-3WAYZQNV.js +0 -61
  453. package/dist/chunk-5A257KJA.js +0 -160
  454. package/dist/chunk-6QGS3RQP.js +0 -363
  455. package/dist/chunk-AFD32O4A.js +0 -494
  456. package/dist/chunk-AW2GKIGS.js +0 -433
  457. package/dist/chunk-CYSBNCPX.js +0 -55
  458. package/dist/chunk-CYSBNCPX.js.map +0 -1
  459. package/dist/chunk-DAO63OOP.js +0 -6352
  460. package/dist/chunk-DAO63OOP.js.map +0 -1
  461. package/dist/chunk-EMQUW6JB.js +0 -942
  462. package/dist/chunk-EW3JEKIV.js +0 -139
  463. package/dist/chunk-FBFWMTOP.js +0 -19
  464. package/dist/chunk-GXDLWBOY.js +0 -73
  465. package/dist/chunk-GXDLWBOY.js.map +0 -1
  466. package/dist/chunk-GXGYTFZA.js +0 -8939
  467. package/dist/chunk-I7J7YQXZ.js +0 -142
  468. package/dist/chunk-IBY44U2M.js +0 -1079
  469. package/dist/chunk-IFXGCI33.js +0 -297
  470. package/dist/chunk-IKLHXGMF.js +0 -91
  471. package/dist/chunk-IYTPWAN3.js +0 -604
  472. package/dist/chunk-J3CWAERS.js +0 -3868
  473. package/dist/chunk-JH2L5CQD.js +0 -206
  474. package/dist/chunk-JUVVCA7B.js +0 -97
  475. package/dist/chunk-MK6XJUCQ.js +0 -197
  476. package/dist/chunk-N3I6ZXR7.js +0 -66
  477. package/dist/chunk-NBO2NSAW.js +0 -592
  478. package/dist/chunk-NEU5QD2C.js +0 -249
  479. package/dist/chunk-NKIBXOHT.js +0 -344
  480. package/dist/chunk-OE3MIV4F.js +0 -547
  481. package/dist/chunk-P2MFWJR3.js +0 -903
  482. package/dist/chunk-PHCIFBP3.js +0 -89
  483. package/dist/chunk-PTUXBO5O.js +0 -224
  484. package/dist/chunk-Q3LXLWZY.js +0 -275
  485. package/dist/chunk-Q5WBTVA7.js +0 -455
  486. package/dist/chunk-RDEAVCMF.js +0 -399
  487. package/dist/chunk-RDEAVCMF.js.map +0 -1
  488. package/dist/chunk-RGMKXNQP.js +0 -23
  489. package/dist/chunk-RZTKCCUL.js +0 -831
  490. package/dist/chunk-TTKBNBQF.js +0 -156
  491. package/dist/chunk-VB3XUR6A.js +0 -207
  492. package/dist/chunk-XCKINS7K.js +0 -57
  493. package/dist/chunk-Y6GKV7CU.js +0 -346
  494. package/dist/chunk-Y6GKV7CU.js.map +0 -1
  495. package/dist/chunk-Z2GQREJY.js +0 -159
  496. package/dist/chunk-ZDAVSTEE.js +0 -172
  497. package/dist/chunk-ZXCSOVS5.js +0 -191
  498. package/dist/claim-SVDCQ2AI.js +0 -197
  499. package/dist/claim-SVDCQ2AI.js.map +0 -1
  500. package/dist/companies-BYMYQK6A.js +0 -195
  501. package/dist/companies-BYMYQK6A.js.map +0 -1
  502. package/dist/complete-NEH3MWRI.js +0 -81
  503. package/dist/complete-NEH3MWRI.js.map +0 -1
  504. package/dist/connect-5PGL7ZOM.js +0 -42
  505. package/dist/conversation-CSOKJXDW.js +0 -93
  506. package/dist/conversation-CSOKJXDW.js.map +0 -1
  507. package/dist/conversions-4JOTTFEH.js +0 -135
  508. package/dist/conversions-4JOTTFEH.js.map +0 -1
  509. package/dist/create-2XYMBULY.js +0 -207
  510. package/dist/create-2XYMBULY.js.map +0 -1
  511. package/dist/create-56PTZABQ.js +0 -235
  512. package/dist/create-56PTZABQ.js.map +0 -1
  513. package/dist/create-D6S6TGWY.js +0 -59
  514. package/dist/create-D6S6TGWY.js.map +0 -1
  515. package/dist/create-SMW4O5PC.js +0 -132
  516. package/dist/create-SMW4O5PC.js.map +0 -1
  517. package/dist/creatives-OO76DAFS.js +0 -58
  518. package/dist/creatives-VJUYWJL6.js +0 -182
  519. package/dist/creatives-VJUYWJL6.js.map +0 -1
  520. package/dist/credentials-2ONYUJW6.js +0 -287
  521. package/dist/credentials-2ONYUJW6.js.map +0 -1
  522. package/dist/critique-NDDFSGPE.js +0 -1458
  523. package/dist/critique-NDDFSGPE.js.map +0 -1
  524. package/dist/critique-YXZVMLZ4.js +0 -227
  525. package/dist/critique-YXZVMLZ4.js.map +0 -1
  526. package/dist/crm-Q6CEP5XV.js +0 -224
  527. package/dist/crm-Q6CEP5XV.js.map +0 -1
  528. package/dist/crm-WRONZYDH.js +0 -318
  529. package/dist/crm-WRONZYDH.js.map +0 -1
  530. package/dist/customers-2EFYSCU2.js +0 -56
  531. package/dist/delete-7WEVC3FS.js +0 -66
  532. package/dist/delete-7WEVC3FS.js.map +0 -1
  533. package/dist/delete-RBWK255M.js +0 -54
  534. package/dist/delete-RBWK255M.js.map +0 -1
  535. package/dist/delete-VN4WWMQF.js +0 -64
  536. package/dist/delete-VN4WWMQF.js.map +0 -1
  537. package/dist/demographics-I5XZ435C.js +0 -138
  538. package/dist/demographics-I5XZ435C.js.map +0 -1
  539. package/dist/discard-XJLIXTNM.js +0 -66
  540. package/dist/discard-XJLIXTNM.js.map +0 -1
  541. package/dist/domain-M7AEGAYI.js +0 -98
  542. package/dist/domain-M7AEGAYI.js.map +0 -1
  543. package/dist/draft-5DQI4W5F.js +0 -306
  544. package/dist/draft-5DQI4W5F.js.map +0 -1
  545. package/dist/draft-7IIYHSY2.js +0 -332
  546. package/dist/draft-7IIYHSY2.js.map +0 -1
  547. package/dist/draft-CN6GKVBF.js +0 -217
  548. package/dist/draft-CN6GKVBF.js.map +0 -1
  549. package/dist/experiment-IDDWRCJ7.js +0 -1397
  550. package/dist/facets-ZLZ6LIHN.js +0 -114
  551. package/dist/facets-ZLZ6LIHN.js.map +0 -1
  552. package/dist/feedback-7LEX2P5Q.js +0 -106
  553. package/dist/feedback-7LEX2P5Q.js.map +0 -1
  554. package/dist/feedback-record-P4JJ63KA.js +0 -260
  555. package/dist/feedback-record-P4JJ63KA.js.map +0 -1
  556. package/dist/fetch-MIVCEHXZ.js +0 -176
  557. package/dist/fetch-MIVCEHXZ.js.map +0 -1
  558. package/dist/find-VHN34MWL.js +0 -134
  559. package/dist/fit-SS6HSZPU.js +0 -62
  560. package/dist/flows-UTIIHDNE.js +0 -247
  561. package/dist/flows-UTIIHDNE.js.map +0 -1
  562. package/dist/fonts-YPNN7ZJP.js +0 -36
  563. package/dist/forecast-OBSHG2GJ.js +0 -118
  564. package/dist/forecast-OBSHG2GJ.js.map +0 -1
  565. package/dist/funnel-A4MXQYBA.js +0 -394
  566. package/dist/funnel-A4MXQYBA.js.map +0 -1
  567. package/dist/ga4-ZPAEF2G2.js +0 -55
  568. package/dist/get-MDAO6I7T.js +0 -56
  569. package/dist/get-MDAO6I7T.js.map +0 -1
  570. package/dist/get-ZB553BSH.js +0 -79
  571. package/dist/get-ZB553BSH.js.map +0 -1
  572. package/dist/google-C3X7O2UO.js +0 -136
  573. package/dist/google-ads-FTWL772L.js +0 -195
  574. package/dist/google-ads-FTWL772L.js.map +0 -1
  575. package/dist/gsc-SDDHGTZK.js +0 -30
  576. package/dist/history-WKJYKDMG.js +0 -133
  577. package/dist/history-WKJYKDMG.js.map +0 -1
  578. package/dist/hubspot-EPHVEPOO.js +0 -779
  579. package/dist/hubspot-EPHVEPOO.js.map +0 -1
  580. package/dist/icon-MYPDC6FM.js +0 -137
  581. package/dist/ideas-3PBH7VEX.js +0 -40
  582. package/dist/images-J35C3WG4.js +0 -92
  583. package/dist/ingest-5QOPUKFE.js +0 -107
  584. package/dist/ingest-5QOPUKFE.js.map +0 -1
  585. package/dist/ingest-OKUYP632.js +0 -23
  586. package/dist/inspect-PMNCP6MV.js +0 -189
  587. package/dist/inspect-PMNCP6MV.js.map +0 -1
  588. package/dist/inspiration-QAL7NS7G.js +0 -53
  589. package/dist/keyword-metrics-R752SJIT.js +0 -197
  590. package/dist/keyword-metrics-R752SJIT.js.map +0 -1
  591. package/dist/keywords-for-site-7UWPJYQF.js +0 -128
  592. package/dist/keywords-for-site-7UWPJYQF.js.map +0 -1
  593. package/dist/landing-CBVIOGJ5.js +0 -28
  594. package/dist/leads-LIJS6Y5W.js +0 -90
  595. package/dist/leads-LIJS6Y5W.js.map +0 -1
  596. package/dist/learn-N6QV7GXA.js +0 -204
  597. package/dist/learn-N6QV7GXA.js.map +0 -1
  598. package/dist/line-item-writes-3WPJXKIL.js +0 -208
  599. package/dist/line-item-writes-3WPJXKIL.js.map +0 -1
  600. package/dist/line-items-ZOFKOGAA.js +0 -103
  601. package/dist/link-DDRQKOUL.js +0 -64
  602. package/dist/link-DDRQKOUL.js.map +0 -1
  603. package/dist/linkedin-UWZCF66X.js +0 -1057
  604. package/dist/linkedin-UWZCF66X.js.map +0 -1
  605. package/dist/list-5PLXVPLB.js +0 -151
  606. package/dist/list-5PLXVPLB.js.map +0 -1
  607. package/dist/list-RC2NX6AX.js +0 -50
  608. package/dist/list-VSJISE7U.js +0 -303
  609. package/dist/list-VSJISE7U.js.map +0 -1
  610. package/dist/list-WTVOBQYX.js +0 -64
  611. package/dist/list-WTVOBQYX.js.map +0 -1
  612. package/dist/log-YKKPROLZ.js +0 -92
  613. package/dist/log-YKKPROLZ.js.map +0 -1
  614. package/dist/logo-WE2UELX6.js +0 -18
  615. package/dist/make-RNOWBLZQ.js +0 -1353
  616. package/dist/make-RNOWBLZQ.js.map +0 -1
  617. package/dist/map-WTDPQLVO.js +0 -433
  618. package/dist/map-WTDPQLVO.js.map +0 -1
  619. package/dist/mcp-XJNSCPP3.js +0 -714
  620. package/dist/mcp-XJNSCPP3.js.map +0 -1
  621. package/dist/media-sources-JGBDDXZ5.js +0 -32
  622. package/dist/media-sources-JGBDDXZ5.js.map +0 -1
  623. package/dist/members-O3BTMRXX.js +0 -44
  624. package/dist/members-O3BTMRXX.js.map +0 -1
  625. package/dist/normalize-R5AYLA2J.js +0 -141
  626. package/dist/normalize-R5AYLA2J.js.map +0 -1
  627. package/dist/options-AILRY7JY.js +0 -122
  628. package/dist/options-AILRY7JY.js.map +0 -1
  629. package/dist/organization-KJJXZLVK.js +0 -946
  630. package/dist/organization-KJJXZLVK.js.map +0 -1
  631. package/dist/performance-7YU4HOGH.js +0 -24
  632. package/dist/promoted-tweet-writes-TNELWPVG.js +0 -180
  633. package/dist/promoted-tweet-writes-TNELWPVG.js.map +0 -1
  634. package/dist/promoted-tweets-76WKUFJQ.js +0 -119
  635. package/dist/publish-BKLHCKHB.js +0 -341
  636. package/dist/publish-BKLHCKHB.js.map +0 -1
  637. package/dist/reddit-YK3YUZEI.js +0 -26
  638. package/dist/refresh-WIII7KXB.js +0 -94
  639. package/dist/refresh-WIII7KXB.js.map +0 -1
  640. package/dist/release-ZHXYQI7G.js +0 -60
  641. package/dist/release-ZHXYQI7G.js.map +0 -1
  642. package/dist/remove-NOX4BXWK.js +0 -50
  643. package/dist/remove-NOX4BXWK.js.map +0 -1
  644. package/dist/remove-VLWRCOEZ.js +0 -48
  645. package/dist/remove-VLWRCOEZ.js.map +0 -1
  646. package/dist/reopen-NLWKK5HB.js +0 -63
  647. package/dist/reopen-NLWKK5HB.js.map +0 -1
  648. package/dist/rerun-DZWQNMZQ.js +0 -90
  649. package/dist/rerun-DZWQNMZQ.js.map +0 -1
  650. package/dist/research-Q3P76RHN.js +0 -62
  651. package/dist/research-UDZBCDNX.js +0 -262
  652. package/dist/research-UDZBCDNX.js.map +0 -1
  653. package/dist/reset-5UHFX7QY.js +0 -54
  654. package/dist/reset-5UHFX7QY.js.map +0 -1
  655. package/dist/reset-MTRJQUP7.js +0 -54
  656. package/dist/reset-MTRJQUP7.js.map +0 -1
  657. package/dist/resolve-DA72VT7Q.js +0 -121
  658. package/dist/resolve-DA72VT7Q.js.map +0 -1
  659. package/dist/retry-LQUBX5TK.js +0 -62
  660. package/dist/retry-LQUBX5TK.js.map +0 -1
  661. package/dist/retry-U6F4CS6O.js +0 -60
  662. package/dist/retry-U6F4CS6O.js.map +0 -1
  663. package/dist/rules-VS5PZ7VO.js +0 -96
  664. package/dist/rules-VS5PZ7VO.js.map +0 -1
  665. package/dist/rules-add-LMVZYDXE.js +0 -462
  666. package/dist/rules-add-LMVZYDXE.js.map +0 -1
  667. package/dist/run-6PRA2YSD.js +0 -65
  668. package/dist/run-R6COFNOR.js +0 -66
  669. package/dist/run-R6COFNOR.js.map +0 -1
  670. package/dist/scaffold-ad-3OVJ7VZQ.js +0 -1511
  671. package/dist/scaffold-ad-3OVJ7VZQ.js.map +0 -1
  672. package/dist/scaffold-static-ad-DDRA3Q5I.js +0 -1005
  673. package/dist/scaffold-static-ad-DDRA3Q5I.js.map +0 -1
  674. package/dist/scaffold-video-3JZYFYFU.js +0 -883
  675. package/dist/scaffold-video-3JZYFYFU.js.map +0 -1
  676. package/dist/schedule-BRSYHMKR.js +0 -66
  677. package/dist/schedule-BRSYHMKR.js.map +0 -1
  678. package/dist/schedule-ED2YDUPY.js +0 -61
  679. package/dist/schedule-ED2YDUPY.js.map +0 -1
  680. package/dist/scheduled-agents-5P67MVGX.js +0 -50
  681. package/dist/schema-4XVKERSA.js +0 -132
  682. package/dist/schema-4XVKERSA.js.map +0 -1
  683. package/dist/schema-RRAQW3OS.js +0 -69
  684. package/dist/search-Y2UMIQ57.js +0 -174
  685. package/dist/search-Y2UMIQ57.js.map +0 -1
  686. package/dist/select-OZ4E6VLF.js +0 -101
  687. package/dist/select-OZ4E6VLF.js.map +0 -1
  688. package/dist/set-prompt-O4YAE4CE.js +0 -193
  689. package/dist/set-prompt-O4YAE4CE.js.map +0 -1
  690. package/dist/setup-links-2GJYCV2A.js +0 -141
  691. package/dist/setup-links-2GJYCV2A.js.map +0 -1
  692. package/dist/site-47B6V2UX.js +0 -177
  693. package/dist/site-47B6V2UX.js.map +0 -1
  694. package/dist/sources-DXPZAPQ7.js +0 -454
  695. package/dist/sources-DXPZAPQ7.js.map +0 -1
  696. package/dist/sources-NDXYTASG.js +0 -30
  697. package/dist/stale-VLVBO2L6.js +0 -71
  698. package/dist/stale-VLVBO2L6.js.map +0 -1
  699. package/dist/stats-37OFAMPW.js +0 -34
  700. package/dist/status-4ODD46XY.js +0 -62
  701. package/dist/status-4ODD46XY.js.map +0 -1
  702. package/dist/stock-6R5E7MJX.js +0 -179
  703. package/dist/studio-LEIGL3Q7.js +0 -49
  704. package/dist/sync-EKGEWE53.js +0 -54
  705. package/dist/sync-EKGEWE53.js.map +0 -1
  706. package/dist/sync-TKNVBUDM.js +0 -54
  707. package/dist/sync-TKNVBUDM.js.map +0 -1
  708. package/dist/sync-definition-M5R3H3TP.js +0 -64
  709. package/dist/tag-manager-3Q55PBEW.js +0 -43
  710. package/dist/tags-4N5UUUN6.js +0 -26
  711. package/dist/tags-5NHIAD5A.js +0 -20
  712. package/dist/tags-5NHIAD5A.js.map +0 -1
  713. package/dist/tags-UUKWSWCN.js +0 -20
  714. package/dist/tags-UUKWSWCN.js.map +0 -1
  715. package/dist/tags-VK7B5DJF.js +0 -20
  716. package/dist/tags-VK7B5DJF.js.map +0 -1
  717. package/dist/tags-XAHIB3WA.js +0 -224
  718. package/dist/tags-XAHIB3WA.js.map +0 -1
  719. package/dist/targeting-criteria-AVARWV2G.js +0 -113
  720. package/dist/targets-6RYLQRID.js +0 -103
  721. package/dist/targets-6RYLQRID.js.map +0 -1
  722. package/dist/testimonials-6TF6BOFN.js +0 -32
  723. package/dist/top-companies-45EHRCJD.js +0 -108
  724. package/dist/top-companies-45EHRCJD.js.map +0 -1
  725. package/dist/translate-VHLBACCE.js +0 -604
  726. package/dist/translate-VHLBACCE.js.map +0 -1
  727. package/dist/triggers-ERQONJNO.js +0 -142
  728. package/dist/triggers-ERQONJNO.js.map +0 -1
  729. package/dist/unlink-TPDO6JNF.js +0 -67
  730. package/dist/unlink-TPDO6JNF.js.map +0 -1
  731. package/dist/unstage-YKKQQ7LW.js +0 -85
  732. package/dist/unstage-YKKQQ7LW.js.map +0 -1
  733. package/dist/update-43WU6X7R.js +0 -63
  734. package/dist/update-43WU6X7R.js.map +0 -1
  735. package/dist/update-CAHLAXWO.js +0 -98
  736. package/dist/update-CAHLAXWO.js.map +0 -1
  737. package/dist/update-NGH6YADN.js +0 -152
  738. package/dist/update-NGH6YADN.js.map +0 -1
  739. package/dist/update-SPJIHHLE.js +0 -188
  740. package/dist/update-SPJIHHLE.js.map +0 -1
  741. package/dist/upload-ACESIZIZ.js +0 -126
  742. package/dist/upload-ACESIZIZ.js.map +0 -1
  743. package/dist/url-params-MIXEDBF7.js +0 -98
  744. package/dist/url-params-MIXEDBF7.js.map +0 -1
  745. package/dist/validate-XJJA7ULE.js +0 -117
  746. package/dist/validate-XJJA7ULE.js.map +0 -1
  747. package/dist/videos-LBXPG7WC.js +0 -39
  748. package/dist/viewer-check-7VJ3GUZX.js +0 -80
  749. package/dist/web-EWQJC2SD.js +0 -140
  750. package/dist/web-EWQJC2SD.js.map +0 -1
  751. package/dist/winning-ads-SAOJAKEQ.js +0 -86
  752. package/dist/write-commands-QPDE4GWW.js +0 -1024
  753. package/dist/write-commands-QPDE4GWW.js.map +0 -1
  754. package/dist/x-LXOJPCRF.js +0 -47
  755. /package/dist/{actions-QL5UD2W4.js.map → actions-FMNJSOBA.js.map} +0 -0
  756. /package/dist/{ads-DHPJFU52.js.map → ads-OLXSDPD6.js.map} +0 -0
  757. /package/dist/{avatars-FKOO6VZ2.js.map → avatars-I4H3NMEJ.js.map} +0 -0
  758. /package/dist/{brand-NNWHBIAX.js.map → brand-3V7ECY7D.js.map} +0 -0
  759. /package/dist/{campaigns-HLBZRH5A.js.map → campaigns-MCB76NPQ.js.map} +0 -0
  760. /package/dist/{canvas-D64GLWUO.js.map → canvas-JCNKMGCG.js.map} +0 -0
  761. /package/dist/{chatgpt-YI6YNACI.js.map → chatgpt-XFZ42NXC.js.map} +0 -0
  762. /package/dist/{chunk-VB3XUR6A.js.map → chunk-2YTBPRRG.js.map} +0 -0
  763. /package/dist/{chunk-JUVVCA7B.js.map → chunk-3SNCMEJB.js.map} +0 -0
  764. /package/dist/{chunk-RGMKXNQP.js.map → chunk-7QGFO35A.js.map} +0 -0
  765. /package/dist/{chunk-ZXCSOVS5.js.map → chunk-AV7ALENU.js.map} +0 -0
  766. /package/dist/{chunk-IYTPWAN3.js.map → chunk-BRLFQ4VX.js.map} +0 -0
  767. /package/dist/{chunk-RZTKCCUL.js.map → chunk-DJE7UXYT.js.map} +0 -0
  768. /package/dist/{chunk-EW3JEKIV.js.map → chunk-EFWXYUSK.js.map} +0 -0
  769. /package/dist/{chunk-J3CWAERS.js.map → chunk-EONSZAZB.js.map} +0 -0
  770. /package/dist/{chunk-PHCIFBP3.js.map → chunk-FG3MV2XM.js.map} +0 -0
  771. /package/dist/{chunk-3AMLOCXY.js.map → chunk-FKG476GH.js.map} +0 -0
  772. /package/dist/{chunk-IFXGCI33.js.map → chunk-FUGQSIYG.js.map} +0 -0
  773. /package/dist/{chunk-Q3LXLWZY.js.map → chunk-HPLHAHG5.js.map} +0 -0
  774. /package/dist/{chunk-3N5A44NQ.js.map → chunk-I24YT2KG.js.map} +0 -0
  775. /package/dist/{chunk-P2MFWJR3.js.map → chunk-IFDZZOUC.js.map} +0 -0
  776. /package/dist/{chunk-Q5WBTVA7.js.map → chunk-JVVUI55M.js.map} +0 -0
  777. /package/dist/{chunk-6QGS3RQP.js.map → chunk-KKSHEPBY.js.map} +0 -0
  778. /package/dist/{chunk-OE3MIV4F.js.map → chunk-KQ7RCLGC.js.map} +0 -0
  779. /package/dist/{chunk-ZDAVSTEE.js.map → chunk-L7WMS5PW.js.map} +0 -0
  780. /package/dist/{chunk-FBFWMTOP.js.map → chunk-LBRO4MTL.js.map} +0 -0
  781. /package/dist/{chunk-PTUXBO5O.js.map → chunk-LNRPOULW.js.map} +0 -0
  782. /package/dist/{chunk-EMQUW6JB.js.map → chunk-LX6WC2XZ.js.map} +0 -0
  783. /package/dist/{chunk-I7J7YQXZ.js.map → chunk-MMGTJBM6.js.map} +0 -0
  784. /package/dist/{chunk-2KRK667G.js.map → chunk-OEZYSL3U.js.map} +0 -0
  785. /package/dist/{chunk-2TVXJPGR.js.map → chunk-OOVHBMQB.js.map} +0 -0
  786. /package/dist/{chunk-Z2GQREJY.js.map → chunk-PTH7VWKK.js.map} +0 -0
  787. /package/dist/{chunk-N3I6ZXR7.js.map → chunk-QZF4BVKL.js.map} +0 -0
  788. /package/dist/{chunk-3WAYZQNV.js.map → chunk-RITUSBYO.js.map} +0 -0
  789. /package/dist/{chunk-JH2L5CQD.js.map → chunk-SSTL3A7Z.js.map} +0 -0
  790. /package/dist/{chunk-2B772ZEA.js.map → chunk-TD4SO6TR.js.map} +0 -0
  791. /package/dist/{chunk-IKLHXGMF.js.map → chunk-UZ4RTOFG.js.map} +0 -0
  792. /package/dist/{chunk-NBO2NSAW.js.map → chunk-VAX7PFQV.js.map} +0 -0
  793. /package/dist/{chunk-AFD32O4A.js.map → chunk-VDRSZK4P.js.map} +0 -0
  794. /package/dist/{chunk-NKIBXOHT.js.map → chunk-VNU2EYD4.js.map} +0 -0
  795. /package/dist/{chunk-TTKBNBQF.js.map → chunk-WT4WDIXA.js.map} +0 -0
  796. /package/dist/{chunk-5A257KJA.js.map → chunk-XEX23CIB.js.map} +0 -0
  797. /package/dist/{chunk-GXGYTFZA.js.map → chunk-XXDF25BW.js.map} +0 -0
  798. /package/dist/{chunk-NEU5QD2C.js.map → chunk-YJ3LSFMX.js.map} +0 -0
  799. /package/dist/{chunk-MK6XJUCQ.js.map → chunk-YVK5RT3B.js.map} +0 -0
  800. /package/dist/{chunk-AW2GKIGS.js.map → chunk-YWWRLZUR.js.map} +0 -0
  801. /package/dist/{chunk-XCKINS7K.js.map → chunk-Z4S5BCVZ.js.map} +0 -0
  802. /package/dist/{chunk-IBY44U2M.js.map → chunk-ZYGK7GAK.js.map} +0 -0
  803. /package/dist/{connect-5PGL7ZOM.js.map → connect-COS6G45S.js.map} +0 -0
  804. /package/dist/{creatives-OO76DAFS.js.map → creatives-SEQHJD2M.js.map} +0 -0
  805. /package/dist/{customers-2EFYSCU2.js.map → customers-LMSX33FO.js.map} +0 -0
  806. /package/dist/{experiment-IDDWRCJ7.js.map → experiment-7RJ5X2LL.js.map} +0 -0
  807. /package/dist/{find-VHN34MWL.js.map → find-2EPXK5RF.js.map} +0 -0
  808. /package/dist/{fit-SS6HSZPU.js.map → fit-W7UNFZT5.js.map} +0 -0
  809. /package/dist/{fonts-YPNN7ZJP.js.map → fonts-N42UYWTX.js.map} +0 -0
  810. /package/dist/{ga4-ZPAEF2G2.js.map → ga4-6EIQC2TG.js.map} +0 -0
  811. /package/dist/{google-C3X7O2UO.js.map → google-O5OI6QFU.js.map} +0 -0
  812. /package/dist/{gsc-SDDHGTZK.js.map → gsc-BM3T2GDL.js.map} +0 -0
  813. /package/dist/{icon-MYPDC6FM.js.map → icon-B7DG53S5.js.map} +0 -0
  814. /package/dist/{ideas-3PBH7VEX.js.map → ideas-DYN2DMFN.js.map} +0 -0
  815. /package/dist/{images-J35C3WG4.js.map → images-EQCUXEHF.js.map} +0 -0
  816. /package/dist/{ingest-OKUYP632.js.map → ingest-B46AY3QU.js.map} +0 -0
  817. /package/dist/{inspiration-QAL7NS7G.js.map → inspiration-TCCKM4R7.js.map} +0 -0
  818. /package/dist/{landing-CBVIOGJ5.js.map → landing-WVPA7NBR.js.map} +0 -0
  819. /package/dist/{line-items-ZOFKOGAA.js.map → line-items-OEWYOPFP.js.map} +0 -0
  820. /package/dist/{list-RC2NX6AX.js.map → list-WRBWQASJ.js.map} +0 -0
  821. /package/dist/{logo-WE2UELX6.js.map → logo-QTSBKP2J.js.map} +0 -0
  822. /package/dist/{performance-7YU4HOGH.js.map → performance-HTU5FR2K.js.map} +0 -0
  823. /package/dist/{promoted-tweets-76WKUFJQ.js.map → promoted-tweets-TTWN5OMW.js.map} +0 -0
  824. /package/dist/{reddit-YK3YUZEI.js.map → reddit-6C3PT5CT.js.map} +0 -0
  825. /package/dist/{research-Q3P76RHN.js.map → research-YCMMQVK6.js.map} +0 -0
  826. /package/dist/{run-6PRA2YSD.js.map → run-SR7DJ7M5.js.map} +0 -0
  827. /package/dist/{scheduled-agents-5P67MVGX.js.map → scheduled-agents-N63EZNY6.js.map} +0 -0
  828. /package/dist/{schema-RRAQW3OS.js.map → schema-C6SGBNA6.js.map} +0 -0
  829. /package/dist/{sources-NDXYTASG.js.map → sources-HN3GCEDX.js.map} +0 -0
  830. /package/dist/{stats-37OFAMPW.js.map → stats-CVF6AC7R.js.map} +0 -0
  831. /package/dist/{stock-6R5E7MJX.js.map → stock-4LPQ6SM7.js.map} +0 -0
  832. /package/dist/{studio-LEIGL3Q7.js.map → studio-NZ6WQ7OE.js.map} +0 -0
  833. /package/dist/{sync-definition-M5R3H3TP.js.map → sync-definition-CKEUYKWN.js.map} +0 -0
  834. /package/dist/{tag-manager-3Q55PBEW.js.map → tag-manager-FLXXLNKP.js.map} +0 -0
  835. /package/dist/{tags-4N5UUUN6.js.map → tags-EUOOSAKN.js.map} +0 -0
  836. /package/dist/{targeting-criteria-AVARWV2G.js.map → targeting-criteria-HE7K52WN.js.map} +0 -0
  837. /package/dist/{testimonials-6TF6BOFN.js.map → testimonials-3Q5XM7JD.js.map} +0 -0
  838. /package/dist/{videos-LBXPG7WC.js.map → videos-WAPUPJVT.js.map} +0 -0
  839. /package/dist/{viewer-check-7VJ3GUZX.js.map → viewer-check-GHQA3UY2.js.map} +0 -0
  840. /package/dist/{winning-ads-SAOJAKEQ.js.map → winning-ads-XCVUAIOU.js.map} +0 -0
  841. /package/dist/{x-LXOJPCRF.js.map → x-SI4KYDEY.js.map} +0 -0
@@ -0,0 +1,221 @@
1
+ import {
2
+ csvOrJson,
3
+ handleLinkedinError,
4
+ resolveAccountIdArg,
5
+ resolveStatusFilter,
6
+ statusesArgDescription
7
+ } from "./chunk-2YTBPRRG.js";
8
+ import {
9
+ writeAdsOutput,
10
+ writeJsonEnvelope
11
+ } from "./chunk-2VIZ4UUZ.js";
12
+ import {
13
+ NO_CACHE_ARG
14
+ } from "./chunk-U6RONIJC.js";
15
+ import {
16
+ shapeListRows
17
+ } from "./chunk-65Y3RCWP.js";
18
+ import "./chunk-O37VU7FG.js";
19
+ import "./chunk-CAZGM2NX.js";
20
+ import "./chunk-NZS3KEQ2.js";
21
+ import "./chunk-GIWHHCD6.js";
22
+ import "./chunk-XQIOCIDO.js";
23
+ import "./chunk-WTJSMYY2.js";
24
+ import {
25
+ apiGet
26
+ } from "./chunk-6YLNY6CK.js";
27
+ import "./chunk-D5NEIESR.js";
28
+ import "./chunk-57KKVDDR.js";
29
+ import "./chunk-QANGHND7.js";
30
+ import "./chunk-YQSBHWOI.js";
31
+
32
+ // src/commands/ads/linkedin/creatives.ts
33
+ import { defineCommand } from "citty";
34
+ function asRecord(value) {
35
+ return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
36
+ }
37
+ function asString(value) {
38
+ return typeof value === "string" && value.length > 0 ? value : void 0;
39
+ }
40
+ function creativeDestination(content) {
41
+ if (!content) return { format: "unknown" };
42
+ const reference = asString(content.reference);
43
+ if (reference) return { format: "post", postUrn: reference };
44
+ const textAd = asRecord(content.textAd);
45
+ if (textAd) return { format: "text", landingUrl: asString(textAd.landingPage) };
46
+ const spotlight = asRecord(content.spotlight);
47
+ if (spotlight) return { format: "spotlight", landingUrl: asString(spotlight.landingPage) };
48
+ if (asRecord(content.follower)) return { format: "follower" };
49
+ if (asRecord(content.jobs)) return { format: "jobs" };
50
+ return { format: "unknown" };
51
+ }
52
+ var COMPACT_COLUMNS = [
53
+ "id",
54
+ "urn",
55
+ "campaign",
56
+ "intendedStatus",
57
+ "isServing",
58
+ "reviewStatus",
59
+ "format",
60
+ "landingUrl",
61
+ "postUrn",
62
+ "leadForm",
63
+ "leadFormButton"
64
+ ];
65
+ function leadFormUrn(destination) {
66
+ const id = destination?.match(/(\d+)$/)?.[1];
67
+ return id ? `urn:li:leadGenForm:${id}` : void 0;
68
+ }
69
+ function compactRow(row) {
70
+ const destination = creativeDestination(row.content);
71
+ const leadForm = leadFormUrn(row.leadgenCallToAction?.destination);
72
+ return {
73
+ id: row.id,
74
+ urn: row.urn,
75
+ campaign: row.campaign,
76
+ intendedStatus: row.intendedStatus,
77
+ isServing: row.isServing,
78
+ reviewStatus: row.reviewStatus,
79
+ format: destination.format,
80
+ ...destination.landingUrl ? { landingUrl: destination.landingUrl } : {},
81
+ ...destination.postUrn ? { postUrn: destination.postUrn } : {},
82
+ ...leadForm ? { leadForm, leadFormButton: row.leadgenCallToAction?.label } : {}
83
+ };
84
+ }
85
+ function unmappedShapeWarnings(rows, rawContentReturned) {
86
+ const unmapped = rows.filter((row) => row.content && creativeDestination(row.content).format === "unknown");
87
+ if (unmapped.length === 0) return [];
88
+ const remedy = rawContentReturned ? "Their raw content is in this response \u2014 read it directly; this command cannot resolve a destination for them." : "Re-read those with --full before drawing any conclusion about where they point.";
89
+ return [
90
+ {
91
+ code: "UNMAPPED_CREATIVE_CONTENT",
92
+ message: `${unmapped.length} of ${rows.length} creatives have a content shape this command can't read, so their destination is missing (ids: ${unmapped.slice(0, 5).map((row) => row.id).join(", ")}). ${remedy}`
93
+ }
94
+ ];
95
+ }
96
+ var listArgs = {
97
+ "account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
98
+ "account-urn": { type: "string", description: "Alias for --account-id" },
99
+ "campaign-id": { type: "string", description: "Filter by campaign ID" },
100
+ "all-statuses": { type: "boolean", description: "Drop the default ACTIVE filter" },
101
+ statuses: { type: "string", description: statusesArgDescription("creatives") },
102
+ fields: {
103
+ type: "string",
104
+ description: "CSV of dotted paths to return instead of the compact row, e.g. id,content.textAd.landingPage"
105
+ },
106
+ full: { type: "boolean", description: "Return the complete raw records, including the opaque 'content' block" },
107
+ limit: { type: "string", description: "Max rows (default: 500)" },
108
+ "no-cache": NO_CACHE_ARG,
109
+ output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
110
+ };
111
+ var creativesListCommand = defineCommand({
112
+ meta: {
113
+ name: "list",
114
+ description: "List LinkedIn creatives (ads). Runs by default when no subcommand is given."
115
+ },
116
+ args: listArgs,
117
+ run: async ({ args }) => {
118
+ const accountId = resolveAccountIdArg(args);
119
+ try {
120
+ const params = { "account-id": accountId };
121
+ const statuses = resolveStatusFilter(args, "creatives");
122
+ if (statuses) params.statuses = statuses.join(",");
123
+ if (args["campaign-id"]) params["campaign-id"] = String(args["campaign-id"]);
124
+ if (args.limit) params.limit = String(args.limit);
125
+ if (args["no-cache"]) params["skip-cache"] = "true";
126
+ const data = await apiGet("/api/ads/linkedin/creatives", params);
127
+ const shaped = shapeListRows(data, args, {
128
+ row: compactRow,
129
+ columns: COMPACT_COLUMNS
130
+ });
131
+ const fmt = csvOrJson(args);
132
+ if (fmt !== "json") {
133
+ writeAdsOutput(shaped.rows, fmt, shaped.fields, shaped.hints);
134
+ return;
135
+ }
136
+ const warnings = unmappedShapeWarnings(data, args.full === true);
137
+ writeJsonEnvelope({
138
+ ok: true,
139
+ data: shaped.rows,
140
+ ...warnings.length > 0 ? { warnings } : {},
141
+ ...shaped.hints ? { hints: shaped.hints } : {}
142
+ });
143
+ } catch (err) {
144
+ handleLinkedinError(err);
145
+ }
146
+ }
147
+ });
148
+ var creativesGetCommand = defineCommand({
149
+ meta: {
150
+ name: "get",
151
+ description: `Read one ad as LinkedIn holds it: headline, intro text, landing URL, the lead gen form it opens, its review verdict (with rejection reasons) and why it is not serving (notServingBecause \u2014 e.g. FORM_HOLD, UNDER_REVIEW, CAMPAIGN_STOPPED).
152
+ The listing can only name a post-based ad's post; this is where its headline and link come back.
153
+ Example: baker ads linkedin creatives get 1584704523`
154
+ },
155
+ args: {
156
+ id: { type: "positional", description: "Creative id or urn:li:sponsoredCreative:N", required: true },
157
+ "account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
158
+ "account-urn": { type: "string", description: "Alias for --account-id" }
159
+ },
160
+ run: async ({ args }) => {
161
+ const accountId = resolveAccountIdArg(args);
162
+ try {
163
+ const data = await apiGet("/api/ads/linkedin/creative", {
164
+ "account-id": accountId,
165
+ "creative-id": String(args.id)
166
+ });
167
+ writeJsonEnvelope({ ok: true, data });
168
+ } catch (err) {
169
+ handleLinkedinError(err);
170
+ }
171
+ }
172
+ });
173
+ var creativesCommand = defineCommand({
174
+ meta: {
175
+ name: "creatives",
176
+ description: `List LinkedIn creatives (ads), or stage writes (create/update/pause/resume/duplicate).
177
+
178
+ Defaults to ACTIVE intended-status. Pass --all-statuses or --statuses ACTIVE,PAUSED to widen.
179
+
180
+ Rows are compact by default: id, urn, campaign, status, review status, format, and
181
+ the resolved destination (landingUrl, or postUrn for post-based ads), and for a
182
+ lead gen ad the form it opens (leadForm, leadFormButton). Use --fields
183
+ for specific dotted paths, or --full for the complete raw records.
184
+
185
+ Post-based ads (image, video, carousel, document, article, event, TLA) report a
186
+ postUrn, not a landingUrl \u2014 their destination lives in the post itself.
187
+ Use 'reviewStatus' to spot rejected/pending creatives during an audit.
188
+
189
+ Write subcommands stage ops on this chat's draft \u2014 media comes from the Baker
190
+ library and is uploaded to LinkedIn only at publish.
191
+
192
+ Examples:
193
+ baker ads linkedin creatives --account-id 503001492
194
+ baker ads linkedin creatives --account-id 503001492 --fields id,intendedStatus,content.textAd.landingPage
195
+ baker ads linkedin creatives create --campaign 1234 --format image --image-id <bakerImageId> --intro "\u2026" --headline "Book a demo" --landing-url https://example.com --cta REQUEST_DEMO
196
+ baker ads linkedin creatives get 1584704523 # one ad: headline, landing URL, form, review, why not serving
197
+ baker ads linkedin creatives pause urn:li:sponsoredCreative:789`
198
+ },
199
+ subCommands: {
200
+ list: creativesListCommand,
201
+ get: creativesGetCommand,
202
+ create: () => import("./write-commands-N74CDMQM.js").then((m) => m.creativesCreateCommand),
203
+ update: () => import("./write-commands-N74CDMQM.js").then((m) => m.creativesUpdateCommand),
204
+ pause: () => import("./write-commands-N74CDMQM.js").then((m) => m.creativesPauseCommand),
205
+ resume: () => import("./write-commands-N74CDMQM.js").then((m) => m.creativesResumeCommand),
206
+ duplicate: () => import("./write-commands-N74CDMQM.js").then((m) => m.creativesDuplicateCommand),
207
+ delete: () => import("./write-commands-N74CDMQM.js").then((m) => m.creativesDeleteCommand)
208
+ },
209
+ // A parent must never declare `run`: citty falls through to it *after* running
210
+ // the matched subcommand, so every write would also trigger a full live list.
211
+ // `args` stays here so citty's subcommand scan knows which flags take a value.
212
+ args: listArgs,
213
+ default: "list"
214
+ });
215
+ export {
216
+ compactRow,
217
+ creativeDestination,
218
+ creativesCommand,
219
+ unmappedShapeWarnings
220
+ };
221
+ //# sourceMappingURL=creatives-LRSELC7Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/linkedin/creatives.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiGet } from \"../../../client.ts\";\nimport { shapeListRows } from \"../list-rows.ts\";\nimport { writeAdsOutput, writeJsonEnvelope } from \"../output.ts\";\nimport type { AdsWarning } from \"../types.ts\";\nimport {\n csvOrJson,\n handleLinkedinError,\n resolveAccountIdArg,\n resolveStatusFilter,\n statusesArgDescription,\n} from \"./shared.ts\";\n\ninterface LinkedinCreativeRow {\n id: string;\n urn: string;\n account: string;\n campaign?: string;\n intendedStatus?: string;\n isServing?: boolean;\n reviewStatus?: string;\n type?: string;\n content?: Record<string, unknown>;\n leadgenCallToAction?: { destination?: string; label?: string };\n createdAt?: number;\n}\n\n/**\n * The shape of a creative's `content` depends on its format, and LinkedIn wraps\n * each one differently. Callers overwhelmingly want one thing from it — where\n * the ad sends people — so resolve that here instead of making every reader\n * re-learn the union.\n *\n * Post-based ads (image, video, carousel, document, article, event, TLA) only\n * carry a post reference: their destination lives inside the post and is not\n * readable — or writable — through the ads API.\n */\nexport interface CreativeDestination {\n format: string;\n landingUrl?: string;\n postUrn?: string;\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n\nfunction asString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nexport function creativeDestination(content: Record<string, unknown> | undefined): CreativeDestination {\n if (!content) return { format: \"unknown\" };\n\n const reference = asString(content.reference);\n if (reference) return { format: \"post\", postUrn: reference };\n\n const textAd = asRecord(content.textAd);\n if (textAd) return { format: \"text\", landingUrl: asString(textAd.landingPage) };\n\n const spotlight = asRecord(content.spotlight);\n if (spotlight) return { format: \"spotlight\", landingUrl: asString(spotlight.landingPage) };\n\n if (asRecord(content.follower)) return { format: \"follower\" };\n if (asRecord(content.jobs)) return { format: \"jobs\" };\n\n return { format: \"unknown\" };\n}\n\n/**\n * Every column a compact row can carry, in order. `compactRow` omits the destination\n * keys it has no value for, so the tabular writers cannot infer the header from a row:\n * a first row that is post-based would drop `landingUrl` from every later row.\n */\nconst COMPACT_COLUMNS = [\n \"id\",\n \"urn\",\n \"campaign\",\n \"intendedStatus\",\n \"isServing\",\n \"reviewStatus\",\n \"format\",\n \"landingUrl\",\n \"postUrn\",\n \"leadForm\",\n \"leadFormButton\",\n] as const;\n\n/** LinkedIn hands the creative's form back as `urn:li:adForm:N`; every other command names it `urn:li:leadGenForm:N`. */\nfunction leadFormUrn(destination: string | undefined): string | undefined {\n const id = destination?.match(/(\\d+)$/)?.[1];\n return id ? `urn:li:leadGenForm:${id}` : undefined;\n}\n\n/** The fields worth spending context on by default — everything else needs --fields or --full. */\nexport function compactRow(row: LinkedinCreativeRow): Record<string, unknown> {\n const destination = creativeDestination(row.content);\n const leadForm = leadFormUrn(row.leadgenCallToAction?.destination);\n return {\n id: row.id,\n urn: row.urn,\n campaign: row.campaign,\n intendedStatus: row.intendedStatus,\n isServing: row.isServing,\n reviewStatus: row.reviewStatus,\n format: destination.format,\n ...(destination.landingUrl ? { landingUrl: destination.landingUrl } : {}),\n ...(destination.postUrn ? { postUrn: destination.postUrn } : {}),\n ...(leadForm ? { leadForm, leadFormButton: row.leadgenCallToAction?.label } : {}),\n };\n}\n\n/**\n * `content` crosses the wire as an unvalidated bag, so if LinkedIn renames a\n * wrapper key nothing else in the stack would notice — the destination would\n * just quietly stop resolving. Counting the shapes this mapper couldn't read is\n * the cheapest signal that the contract moved.\n */\nexport function unmappedShapeWarnings(rows: LinkedinCreativeRow[], rawContentReturned: boolean): AdsWarning[] {\n const unmapped = rows.filter((row) => row.content && creativeDestination(row.content).format === \"unknown\");\n if (unmapped.length === 0) return [];\n // Under --full the caller already holds the raw `content`, so \"re-read with\n // --full\" is a dead end — point them at what they are already holding.\n const remedy = rawContentReturned\n ? \"Their raw content is in this response — read it directly; this command cannot resolve a destination for them.\"\n : \"Re-read those with --full before drawing any conclusion about where they point.\";\n return [\n {\n code: \"UNMAPPED_CREATIVE_CONTENT\",\n message: `${unmapped.length} of ${rows.length} creatives have a content shape this command can't read, so their destination is missing (ids: ${unmapped\n .slice(0, 5)\n .map((row) => row.id)\n .join(\", \")}). ${remedy}`,\n },\n ];\n}\n\nconst listArgs = {\n \"account-id\": { type: \"string\", description: \"Numeric account ID or urn:li:sponsoredAccount:N\" },\n \"account-urn\": { type: \"string\", description: \"Alias for --account-id\" },\n \"campaign-id\": { type: \"string\", description: \"Filter by campaign ID\" },\n \"all-statuses\": { type: \"boolean\", description: \"Drop the default ACTIVE filter\" },\n statuses: { type: \"string\", description: statusesArgDescription(\"creatives\") },\n fields: {\n type: \"string\",\n description: \"CSV of dotted paths to return instead of the compact row, e.g. id,content.textAd.landingPage\",\n },\n full: { type: \"boolean\", description: \"Return the complete raw records, including the opaque 'content' block\" },\n limit: { type: \"string\", description: \"Max rows (default: 500)\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n} as const;\n\nconst creativesListCommand = defineCommand({\n meta: {\n name: \"list\",\n description: \"List LinkedIn creatives (ads). Runs by default when no subcommand is given.\",\n },\n args: listArgs,\n run: async ({ args }) => {\n const accountId = resolveAccountIdArg(args);\n try {\n const params: Record<string, string> = { \"account-id\": accountId };\n const statuses = resolveStatusFilter(args, \"creatives\");\n if (statuses) params.statuses = statuses.join(\",\");\n if (args[\"campaign-id\"]) params[\"campaign-id\"] = String(args[\"campaign-id\"]);\n if (args.limit) params.limit = String(args.limit);\n if (args[\"no-cache\"]) params[\"skip-cache\"] = \"true\";\n\n const data = await apiGet<LinkedinCreativeRow[]>(\"/api/ads/linkedin/creatives\", params);\n const shaped = shapeListRows(data, args as Record<string, unknown>, {\n row: compactRow,\n columns: COMPACT_COLUMNS,\n });\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(shaped.rows, fmt, shaped.fields, shaped.hints);\n return;\n }\n const warnings = unmappedShapeWarnings(data, args.full === true);\n writeJsonEnvelope({\n ok: true,\n data: shaped.rows,\n ...(warnings.length > 0 ? { warnings } : {}),\n ...(shaped.hints ? { hints: shaped.hints } : {}),\n });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nconst creativesGetCommand = defineCommand({\n meta: {\n name: \"get\",\n description: `Read one ad as LinkedIn holds it: headline, intro text, landing URL, the lead gen form it opens, its review verdict (with rejection reasons) and why it is not serving (notServingBecause — e.g. FORM_HOLD, UNDER_REVIEW, CAMPAIGN_STOPPED).\nThe listing can only name a post-based ad's post; this is where its headline and link come back.\nExample: baker ads linkedin creatives get 1584704523`,\n },\n args: {\n id: { type: \"positional\", description: \"Creative id or urn:li:sponsoredCreative:N\", required: true },\n \"account-id\": { type: \"string\", description: \"Numeric account ID or urn:li:sponsoredAccount:N\" },\n \"account-urn\": { type: \"string\", description: \"Alias for --account-id\" },\n },\n run: async ({ args }) => {\n const accountId = resolveAccountIdArg(args);\n try {\n const data = await apiGet<Record<string, unknown>>(\"/api/ads/linkedin/creative\", {\n \"account-id\": accountId,\n \"creative-id\": String(args.id),\n });\n writeJsonEnvelope({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nexport const creativesCommand = defineCommand({\n meta: {\n name: \"creatives\",\n description: `List LinkedIn creatives (ads), or stage writes (create/update/pause/resume/duplicate).\n\nDefaults to ACTIVE intended-status. Pass --all-statuses or --statuses ACTIVE,PAUSED to widen.\n\nRows are compact by default: id, urn, campaign, status, review status, format, and\nthe resolved destination (landingUrl, or postUrn for post-based ads), and for a\nlead gen ad the form it opens (leadForm, leadFormButton). Use --fields\nfor specific dotted paths, or --full for the complete raw records.\n\nPost-based ads (image, video, carousel, document, article, event, TLA) report a\npostUrn, not a landingUrl — their destination lives in the post itself.\nUse 'reviewStatus' to spot rejected/pending creatives during an audit.\n\nWrite subcommands stage ops on this chat's draft — media comes from the Baker\nlibrary and is uploaded to LinkedIn only at publish.\n\nExamples:\n baker ads linkedin creatives --account-id 503001492\n baker ads linkedin creatives --account-id 503001492 --fields id,intendedStatus,content.textAd.landingPage\n baker ads linkedin creatives create --campaign 1234 --format image --image-id <bakerImageId> --intro \"…\" --headline \"Book a demo\" --landing-url https://example.com --cta REQUEST_DEMO\n baker ads linkedin creatives get 1584704523 # one ad: headline, landing URL, form, review, why not serving\n baker ads linkedin creatives pause urn:li:sponsoredCreative:789`,\n },\n subCommands: {\n list: creativesListCommand,\n get: creativesGetCommand,\n create: () => import(\"./write-commands.ts\").then((m) => m.creativesCreateCommand),\n update: () => import(\"./write-commands.ts\").then((m) => m.creativesUpdateCommand),\n pause: () => import(\"./write-commands.ts\").then((m) => m.creativesPauseCommand),\n resume: () => import(\"./write-commands.ts\").then((m) => m.creativesResumeCommand),\n duplicate: () => import(\"./write-commands.ts\").then((m) => m.creativesDuplicateCommand),\n delete: () => import(\"./write-commands.ts\").then((m) => m.creativesDeleteCommand),\n },\n // A parent must never declare `run`: citty falls through to it *after* running\n // the matched subcommand, so every write would also trigger a full live list.\n // `args` stays here so citty's subcommand scan knows which flags take a value.\n args: listArgs,\n default: \"list\",\n});\n"],"mappings":"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","names":[]}
@@ -0,0 +1,58 @@
1
+ import "./chunk-YQSBHWOI.js";
2
+
3
+ // src/commands/creatives/index.ts
4
+ import { defineCommand } from "citty";
5
+ var creativesCommand = defineCommand({
6
+ meta: {
7
+ name: "creatives",
8
+ description: `Make ads from what customers said, read and record what the user thinks of each version, and save the approved ones.
9
+
10
+ Making ads, in order:
11
+ baker creatives brief # one read: who sees the ads, what works, taste, customer quotes, ideas on file
12
+ baker creatives ideas # check and rank the ideas in src/creatives/_ideas/
13
+ baker creatives make <idea> # one idea \u2192 one creative (reference picked and checked for you)
14
+ baker creatives translate --slug <ad> --to es-MX,pt-BR # the same ad in other languages, one design
15
+ baker creatives learn # what each idea's ads did, written back onto the idea
16
+
17
+ Before making or changing a creative, read the company's taste:
18
+ baker creatives feedback [--slug <slug>]
19
+
20
+ The company's standing rules for every ad (BRAND.md's and the ones a person taught):
21
+ baker creatives rules list
22
+ baker creatives rules add --candidate <rc-\u2026> # only after the person agreed it is a rule for every ad
23
+ baker creatives check # after a rule changes: which ads already made break it
24
+
25
+ When the user reacts to a version in the chat (likes it, rejects it, asks for changes), record it:
26
+ baker creatives feedback record --slug <slug> --run <r_\u2026> --verdict approved|rejected [--reasons a,b] [--note "<their words>"]
27
+
28
+ When they pick a version (or options inside it) to keep:
29
+ baker creatives select --slug <slug> --run <r_\u2026> [--options <label,\u2026>]
30
+
31
+ Creative handoff:
32
+ baker creatives publish --title "Spring Offer Static Ad" --slug <slug> --run-id <r_\u2026> [--output 4:5]
33
+ baker creatives publish ./canvas/run/final.mp4 --title "Spring Offer Reel" --slug spring-offer --run-id <r_\u2026>
34
+
35
+ Publishing an image uploads it to the Company image library, applies the official creative tag, and returns an image reference for chat previews. Publishing a video uploads it to the video library, waits until it plays, saves it on the creative (--slug required) and returns a video reference.
36
+
37
+ How published creatives are doing in live Meta ads (results, fatigue, angle; hook and hold rate for videos):
38
+ baker creatives performance [--slug <slug>] [--days 30] [--full]
39
+ Full guide: __tooling__/docs/tools/baker/creatives.md`
40
+ },
41
+ subCommands: {
42
+ brief: () => import("./brief-U2W7KMFC.js").then((m) => m.briefCommand),
43
+ ideas: () => import("./ideas-DYN2DMFN.js").then((m) => m.ideasCommand),
44
+ make: () => import("./make-IJGCQA7C.js").then((m) => m.makeCommand),
45
+ translate: () => import("./translate-YVIZ5T44.js").then((m) => m.translateCommand),
46
+ learn: () => import("./learn-7Z2VR6MS.js").then((m) => m.learnCommand),
47
+ feedback: () => import("./feedback-HXCQBV7S.js").then((m) => m.feedbackCommand),
48
+ rules: () => import("./rules-VK7YA23Q.js").then((m) => m.rulesCommand),
49
+ check: () => import("./check-CZTS64AW.js").then((m) => m.checkCommand),
50
+ select: () => import("./select-LMGLNFWB.js").then((m) => m.selectCommand),
51
+ publish: () => import("./publish-Z62KGDJ2.js").then((m) => m.publishCommand),
52
+ performance: () => import("./performance-HTU5FR2K.js").then((m) => m.performanceCommand)
53
+ }
54
+ });
55
+ export {
56
+ creativesCommand
57
+ };
58
+ //# sourceMappingURL=creatives-SEQHJD2M.js.map
@@ -0,0 +1,288 @@
1
+ import {
2
+ repeatedValues
3
+ } from "./chunk-ERSX3MKH.js";
4
+ import {
5
+ failApi,
6
+ failValidation
7
+ } from "./chunk-L7WMS5PW.js";
8
+ import "./chunk-O37VU7FG.js";
9
+ import "./chunk-CAZGM2NX.js";
10
+ import "./chunk-NZS3KEQ2.js";
11
+ import "./chunk-GIWHHCD6.js";
12
+ import "./chunk-XQIOCIDO.js";
13
+ import {
14
+ getPublicSuffix,
15
+ parse
16
+ } from "./chunk-WTJSMYY2.js";
17
+ import {
18
+ apiPost
19
+ } from "./chunk-6YLNY6CK.js";
20
+ import "./chunk-D5NEIESR.js";
21
+ import "./chunk-57KKVDDR.js";
22
+ import {
23
+ registerSchema,
24
+ writeJson
25
+ } from "./chunk-QANGHND7.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-LHPTUVVA.js.map