@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 @@
1
+ {"version":3,"sources":["../src/commands/ads/linkedin/companies.ts"],"sourcesContent":["import {\n type LINKEDIN_COMPANIES_BY,\n type LinkedinCompaniesRequestInput,\n type LinkedinCompaniesResponse,\n linkedinCompaniesRequestSchema,\n} from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiPost } from \"../../../client.ts\";\nimport { getEnv } from \"../../../env.ts\";\nimport {\n outputFormatRefusal,\n TABLE_OUTPUT_FORMATS,\n writeAdsJson,\n writeAdsOutput,\n writeJsonEnvelope,\n} from \"../output.ts\";\nimport { csvOrJson, handleLinkedinError } from \"./shared.ts\";\n\n/** Companies per page without --full. */\nconst COMPANIES_PAGE_SIZE = 100;\n\n/** A by-campaign read makes one LinkedIn call per delivered campaign. */\nconst COMPANIES_TIMEOUT_MS = 180_000;\n\nconst CSV_FIELDS = [\n \"org\",\n \"name\",\n \"domain\",\n \"domainSource\",\n \"impressions\",\n \"clicks\",\n \"engagements\",\n \"costLocal\",\n \"videoViews\",\n \"months\",\n \"campaigns\",\n];\n\n/** Next steps the agent can't see from the rows alone. */\nexport function companiesHints(data: LinkedinCompaniesResponse, request: { withDomains: boolean }): string[] {\n const hints: string[] = [];\n if (data.rows.length === 0) {\n hints.push(\n `No company shows up for ${data.query.start} to ${data.query.end}${data.query.minImpressions > 0 ? ` at --min-impressions ${data.query.minImpressions}` : \"\"}. LinkedIn reports companies 12-24h late and leaves out any with fewer than 3 events in a month, so a small or new campaign can have none yet. Try a longer period (--last-months 24), drop --min-impressions, or check the campaigns delivered with \\`baker ads linkedin analytics\\`.`,\n );\n return hints;\n }\n const withDomain = data.rows.filter((row) => row.domain !== undefined).length;\n if (withDomain > 0) {\n hints.push(\n `${withDomain} companies came back with a website domain — if HubSpot is connected, \\`baker hubspot companies search --domains <domain,domain,…> --with-deals\\` (up to 100 per call) shows which are already accounts and which have deals.`,\n );\n } else if (!request.withDomains && data.rows.length > 0) {\n hints.push(\n \"Add --with-domains to get each company's website domain, ready for matching against your customer list.\",\n );\n }\n if (data.totalCompanies > data.rows.length) {\n const page = data.page ?? 1;\n const first = (page - 1) * COMPANIES_PAGE_SIZE + 1;\n const last = first + data.rows.length - 1;\n const next = last < data.totalCompanies ? ` — --page ${page + 1} for the next ${COMPANIES_PAGE_SIZE}, ` : \" — \";\n hints.push(\n `Showing companies ${first}-${last} of ${data.totalCompanies.toLocaleString(\"en\")}, most engaged first${next}--full for all, or --min-impressions to trim the tail.`,\n );\n }\n if (data.query.by === \"none\" && data.rows.length > 0) {\n hints.push(\"--by month shows when each company warmed up; --by campaign shows which campaigns reached it.\");\n }\n return hints;\n}\n\nfunction csvList(raw: unknown): string[] | undefined {\n if (typeof raw !== \"string\") return undefined;\n const items = raw\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n return items.length > 0 ? items : undefined;\n}\n\n/** Request fields as the flags that set them, so a refusal names what the agent typed. */\nconst FLAG_OF_FIELD: Record<string, string> = {\n accountId: \"--account-id\",\n campaignIds: \"--campaign-id\",\n lastMonths: \"--last-months\",\n start: \"--start\",\n end: \"--end\",\n by: \"--by\",\n minImpressions: \"--min-impressions\",\n page: \"--page\",\n};\n\nfunction flagOf(field: string): string {\n return FLAG_OF_FIELD[field.split(\".\")[0] ?? \"\"] ?? (field || \"args\");\n}\n\nfunction optionalNumber(raw: unknown): number | undefined {\n return typeof raw === \"string\" && raw.trim() !== \"\" ? Number(raw) : undefined;\n}\n\nfunction bareAccountId(raw: string | undefined): string | undefined {\n return raw?.startsWith(\"urn:\") ? raw.split(\":\").pop() : raw;\n}\n\nexport const companiesCommand = defineCommand({\n meta: {\n name: \"companies\",\n description: `Which companies your LinkedIn ads reached — one row per company over the whole period, most engaged first.\n\nStart here for \"which companies are our ads warming\", ABM reporting, or building a warm-account list.\nRows: {org, name, impressions, clicks, engagements, costLocal}. Defaults: the last 12 calendar\nmonths, the only selected ad account, 100 companies a page (--page 2 for the next, --full for all).\n\nExamples:\n baker ads linkedin companies # last 12 months, whole account\n baker ads linkedin companies --page 2 # the next 100 companies\n baker ads linkedin companies --by month --min-impressions 50 # when each company warmed up\n baker ads linkedin companies --campaign-id 333728193,810055513 --by campaign\n baker ads linkedin companies --with-domains --output csv # + website domain, for CRM matching\n baker ads linkedin companies --last-months 3 --stats # + how complete LinkedIn's data is\n\nLinkedIn reports companies 12-24h late and leaves out any company with fewer than 3 events in a month,\nso small companies are undercounted. engagements = LinkedIn's totalEngagements.`,\n },\n args: {\n \"account-id\": {\n type: \"string\",\n description: \"Ad account id (numeric or urn:li:sponsoredAccount:N). Default: the only selected account\",\n },\n \"campaign-id\": { type: \"string\", description: \"Comma-separated campaign ids — read only these campaigns\" },\n \"last-months\": { type: \"string\", description: \"Calendar months back, including this one (1-24, default 12)\" },\n start: { type: \"string\", description: \"Start date YYYY-MM-DD (instead of --last-months)\" },\n end: { type: \"string\", description: \"End date YYYY-MM-DD (default today)\" },\n by: { type: \"string\", description: \"none | month | campaign — break each company down (default none)\" },\n \"with-domains\": { type: \"boolean\", description: \"Add each company's website domain and domainSource\" },\n \"min-impressions\": { type: \"string\", description: \"Leave out companies under N impressions over the period\" },\n full: { type: \"boolean\", description: \"Every company (not just a page of 100), plus videoViews\" },\n page: {\n type: \"string\",\n description: \"Which page of 100 companies, most engaged first (default 1); totalCompanies counts them all\",\n },\n stats: { type: \"boolean\", description: \"Add read-quality stats: row counts, cost/reach/domain coverage\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n const input: LinkedinCompaniesRequestInput = {\n accountId: bareAccountId((args[\"account-id\"] as string | undefined) || getEnv().BAKER_LINKEDIN_AD_ACCOUNT_ID),\n campaignIds: csvList(args[\"campaign-id\"]),\n lastMonths: optionalNumber(args[\"last-months\"]),\n start: args.start as string | undefined,\n end: args.end as string | undefined,\n by: args.by as (typeof LINKEDIN_COMPANIES_BY)[number] | undefined,\n withDomains: Boolean(args[\"with-domains\"]),\n minImpressions: optionalNumber(args[\"min-impressions\"]),\n full: Boolean(args.full),\n page: optionalNumber(args.page),\n stats: Boolean(args.stats),\n skipCache: Boolean(args[\"no-cache\"]),\n };\n const parsed = linkedinCompaniesRequestSchema.safeParse(input);\n const formatRefusal = outputFormatRefusal(csvOrJson(args), TABLE_OUTPUT_FORMATS);\n if (!parsed.success || formatRefusal !== null) {\n const issues = parsed.success ? [] : parsed.error.issues;\n const messages = issues.map((issue) => `${flagOf(issue.path.join(\".\"))}: ${issue.message}`);\n writeAdsJson({\n ok: false,\n error: { code: \"INVALID_ARGS\", message: [...messages, ...(formatRefusal ? [formatRefusal] : [])].join(\"; \") },\n });\n process.exit(1);\n }\n\n try {\n const { data } = await apiPost<{ ok: true; data: LinkedinCompaniesResponse }>(\n \"/api/ads/linkedin/companies\",\n input,\n { timeoutMs: COMPANIES_TIMEOUT_MS },\n );\n const hints = companiesHints(data, parsed.data);\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n const notes = [...data.warnings.map((w) => `${w.code}: ${w.message}`), ...hints];\n writeAdsOutput(data.rows, fmt, CSV_FIELDS, notes);\n return;\n }\n writeJsonEnvelope(hints.length > 0 ? { ok: true, data, hints } : { ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n"],"mappings":"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","names":[]}
@@ -0,0 +1,82 @@
1
+ import {
2
+ failApi,
3
+ failValidation,
4
+ isTempId,
5
+ writeOk
6
+ } from "./chunk-L7WMS5PW.js";
7
+ import {
8
+ ACTION_COMPLETE_NOTE_MIN
9
+ } from "./chunk-O37VU7FG.js";
10
+ import "./chunk-CAZGM2NX.js";
11
+ import "./chunk-NZS3KEQ2.js";
12
+ import "./chunk-GIWHHCD6.js";
13
+ import "./chunk-XQIOCIDO.js";
14
+ import "./chunk-WTJSMYY2.js";
15
+ import {
16
+ apiPost,
17
+ validateConvexId
18
+ } from "./chunk-6YLNY6CK.js";
19
+ import "./chunk-D5NEIESR.js";
20
+ import {
21
+ requireChatId
22
+ } from "./chunk-57KKVDDR.js";
23
+ import {
24
+ registerSchema
25
+ } from "./chunk-QANGHND7.js";
26
+ import "./chunk-YQSBHWOI.js";
27
+
28
+ // src/commands/actions/complete.ts
29
+ import { defineCommand } from "citty";
30
+ registerSchema({
31
+ command: "actions.complete",
32
+ description: "Stage completion of an action (it was done). Accepts a real action ID (must be claimed) or a temp ID from the same draft. The action becomes completed when the chat is published. --note is required and must describe what you actually did to resolve it (what changed, where, and the outcome) \u2014 it is the client-facing record surfaced by `baker actions log`. Don't use this to drop an action you no longer want \u2014 to remove a staged op use `actions draft remove`, to close an unwanted published action use `actions discard`.",
33
+ args: {
34
+ id: { type: "string", description: "Action ID or temp ID", required: true },
35
+ note: {
36
+ type: "string",
37
+ description: "REQUIRED. Detailed description of what you did to resolve this: what changed, where, and the outcome. This is the durable, client-facing record shown by `baker actions log`.",
38
+ required: true
39
+ }
40
+ }
41
+ });
42
+ var completeCommand = defineCommand({
43
+ meta: {
44
+ name: "complete",
45
+ description: "Stage completion of an action. Accepts real IDs (claimed) or temp IDs (same draft). Example: baker actions complete <id>"
46
+ },
47
+ args: {
48
+ id: { type: "positional", description: "Action ID or temp ID", required: false },
49
+ "action-id": { type: "string", description: "Action ID or temp ID", required: false },
50
+ note: {
51
+ type: "string",
52
+ description: "REQUIRED. What you did to resolve this: what changed, where, and the outcome.",
53
+ required: false
54
+ }
55
+ },
56
+ run: async ({ args }) => {
57
+ try {
58
+ const id = args.id || args["action-id"];
59
+ if (!id) {
60
+ failValidation("Action ID is required.");
61
+ }
62
+ if (!isTempId(id)) {
63
+ validateConvexId(id);
64
+ }
65
+ const note = args.note?.trim() ?? "";
66
+ if (note.length < ACTION_COMPLETE_NOTE_MIN) {
67
+ failValidation(
68
+ `--note is required and must describe what you did (\u2265${ACTION_COMPLETE_NOTE_MIN} chars): what changed, where, and the outcome. This becomes the client-facing record surfaced by \`baker actions log\`.`
69
+ );
70
+ }
71
+ const chatId = requireChatId();
72
+ await apiPost("/api/actions/complete", { chatId, actionRef: id, note });
73
+ writeOk();
74
+ } catch (err) {
75
+ failApi(err);
76
+ }
77
+ }
78
+ });
79
+ export {
80
+ completeCommand
81
+ };
82
+ //# sourceMappingURL=complete-SYDIHMD5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/actions/complete.ts"],"sourcesContent":["import { ACTION_COMPLETE_NOTE_MIN, type ActionsCompleteResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost, validateConvexId } from \"../../client.ts\";\nimport { requireChatId } from \"../../env.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi, failValidation, isTempId, writeOk } from \"./shared.ts\";\n\nregisterSchema({\n command: \"actions.complete\",\n description:\n \"Stage completion of an action (it was done). Accepts a real action ID (must be claimed) or a temp ID from the same draft. The action becomes completed when the chat is published. --note is required and must describe what you actually did to resolve it (what changed, where, and the outcome) — it is the client-facing record surfaced by `baker actions log`. Don't use this to drop an action you no longer want — to remove a staged op use `actions draft remove`, to close an unwanted published action use `actions discard`.\",\n args: {\n id: { type: \"string\", description: \"Action ID or temp ID\", required: true },\n note: {\n type: \"string\",\n description:\n \"REQUIRED. Detailed description of what you did to resolve this: what changed, where, and the outcome. This is the durable, client-facing record shown by `baker actions log`.\",\n required: true,\n },\n },\n});\n\nexport const completeCommand = defineCommand({\n meta: {\n name: \"complete\",\n description:\n \"Stage completion of an action. Accepts real IDs (claimed) or temp IDs (same draft). Example: baker actions complete <id>\",\n },\n args: {\n id: { type: \"positional\", description: \"Action ID or temp ID\", required: false },\n \"action-id\": { type: \"string\", description: \"Action ID or temp ID\", required: false },\n note: {\n type: \"string\",\n description: \"REQUIRED. What you did to resolve this: what changed, where, and the outcome.\",\n required: false,\n },\n },\n run: async ({ args }) => {\n try {\n const id = (args.id as string | undefined) || (args[\"action-id\"] as string | undefined);\n if (!id) {\n failValidation(\"Action ID is required.\");\n }\n if (!isTempId(id)) {\n validateConvexId(id);\n }\n const note = (args.note as string | undefined)?.trim() ?? \"\";\n if (note.length < ACTION_COMPLETE_NOTE_MIN) {\n failValidation(\n `--note is required and must describe what you did (≥${ACTION_COMPLETE_NOTE_MIN} chars): what changed, where, and the outcome. This becomes the client-facing record surfaced by \\`baker actions log\\`.`,\n );\n }\n const chatId = requireChatId();\n await apiPost<ActionsCompleteResponse>(\"/api/actions/complete\", { chatId, actionRef: id, note });\n writeOk();\n } catch (err) {\n failApi(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAM9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,IAAI,EAAE,MAAM,UAAU,aAAa,wBAAwB,UAAU,KAAK;AAAA,IAC1E,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,EACF;AACF,CAAC;AAEM,IAAM,kBAAkB,cAAc;AAAA,EAC3C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,IAAI,EAAE,MAAM,cAAc,aAAa,wBAAwB,UAAU,MAAM;AAAA,IAC/E,aAAa,EAAE,MAAM,UAAU,aAAa,wBAAwB,UAAU,MAAM;AAAA,IACpF,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,KAAM,KAAK,MAA8B,KAAK,WAAW;AAC/D,UAAI,CAAC,IAAI;AACP,uBAAe,wBAAwB;AAAA,MACzC;AACA,UAAI,CAAC,SAAS,EAAE,GAAG;AACjB,yBAAiB,EAAE;AAAA,MACrB;AACA,YAAM,OAAQ,KAAK,MAA6B,KAAK,KAAK;AAC1D,UAAI,KAAK,SAAS,0BAA0B;AAC1C;AAAA,UACE,4DAAuD,wBAAwB;AAAA,QACjF;AAAA,MACF;AACA,YAAM,SAAS,cAAc;AAC7B,YAAM,QAAiC,yBAAyB,EAAE,QAAQ,WAAW,IAAI,KAAK,CAAC;AAC/F,cAAQ;AAAA,IACV,SAAS,KAAK;AACZ,cAAQ,GAAG;AAAA,IACb;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -0,0 +1,43 @@
1
+ import {
2
+ attachDestination,
3
+ attachSettings,
4
+ attachStep,
5
+ connectCommand,
6
+ copyDestination,
7
+ destinationRefusal,
8
+ restatableTargets,
9
+ sealRequestFor,
10
+ targetsFor,
11
+ unpickedSteps,
12
+ unwiredHubspotForms,
13
+ unwiredSideEffects
14
+ } from "./chunk-KQ7RCLGC.js";
15
+ import "./chunk-HPLHAHG5.js";
16
+ import "./chunk-OEZYSL3U.js";
17
+ import "./chunk-L7WMS5PW.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 "./chunk-6YLNY6CK.js";
25
+ import "./chunk-D5NEIESR.js";
26
+ import "./chunk-57KKVDDR.js";
27
+ import "./chunk-QANGHND7.js";
28
+ import "./chunk-YQSBHWOI.js";
29
+ export {
30
+ attachDestination,
31
+ attachSettings,
32
+ attachStep,
33
+ connectCommand,
34
+ copyDestination,
35
+ destinationRefusal,
36
+ restatableTargets,
37
+ sealRequestFor,
38
+ targetsFor,
39
+ unpickedSteps,
40
+ unwiredHubspotForms,
41
+ unwiredSideEffects
42
+ };
43
+ //# sourceMappingURL=connect-COS6G45S.js.map
@@ -0,0 +1,94 @@
1
+ import {
2
+ csvOrJson,
3
+ daysAgoIso,
4
+ handleLinkedinError,
5
+ todayIso
6
+ } from "./chunk-2YTBPRRG.js";
7
+ import {
8
+ writeAdsJson,
9
+ writeAdsOutput
10
+ } from "./chunk-2VIZ4UUZ.js";
11
+ import {
12
+ NO_CACHE_ARG
13
+ } from "./chunk-U6RONIJC.js";
14
+ import "./chunk-O37VU7FG.js";
15
+ import "./chunk-CAZGM2NX.js";
16
+ import "./chunk-NZS3KEQ2.js";
17
+ import "./chunk-GIWHHCD6.js";
18
+ import "./chunk-XQIOCIDO.js";
19
+ import "./chunk-WTJSMYY2.js";
20
+ import {
21
+ apiPost
22
+ } from "./chunk-6YLNY6CK.js";
23
+ import "./chunk-D5NEIESR.js";
24
+ import "./chunk-57KKVDDR.js";
25
+ import "./chunk-QANGHND7.js";
26
+ import "./chunk-YQSBHWOI.js";
27
+
28
+ // src/commands/ads/linkedin/conversation.ts
29
+ import { defineCommand } from "citty";
30
+ var conversationCommand = defineCommand({
31
+ meta: {
32
+ name: "conversation",
33
+ description: `Per-button click rates inside Sponsored Messaging / Conversation Ads.
34
+
35
+ Returns one row per CONVERSATION_NODE_BUTTON pivot, sorted by clicks desc.
36
+ Use this to A/B test button copy and the cascade tree.
37
+
38
+ Examples:
39
+ baker ads linkedin conversation --campaign-id 1234
40
+ baker ads linkedin conversation --campaign-id 1234 --last-days 30 --output csv`
41
+ },
42
+ args: {
43
+ "campaign-id": {
44
+ type: "string",
45
+ description: "Comma-separated campaign IDs (Conversation Ad campaigns)",
46
+ required: true
47
+ },
48
+ start: { type: "string", description: "Start date YYYY-MM-DD" },
49
+ end: { type: "string", description: "End date YYYY-MM-DD" },
50
+ "last-days": { type: "string", description: "Window relative to today (default: 30)" },
51
+ "no-cache": NO_CACHE_ARG,
52
+ output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
53
+ },
54
+ run: async ({ args }) => {
55
+ const campaignIdsRaw = args["campaign-id"];
56
+ if (!campaignIdsRaw) {
57
+ handleLinkedinError(new Error("--campaign-id is required"));
58
+ }
59
+ const ids = campaignIdsRaw.split(",").map((s) => s.trim()).filter(Boolean);
60
+ const start = args.start ?? daysAgoIso(args["last-days"] ? Number(args["last-days"]) : 30);
61
+ const end = args.end ?? todayIso();
62
+ try {
63
+ const data = await apiPost("/api/ads/linkedin/analytics", {
64
+ request: {
65
+ level: "campaign",
66
+ ids,
67
+ intent: "inmail",
68
+ pivot: "conversation-node-button",
69
+ start,
70
+ end,
71
+ granularity: "ALL",
72
+ limit: 500
73
+ },
74
+ skipCache: Boolean(args["no-cache"])
75
+ });
76
+ const sorted = [...data.rows].sort((a, b) => Number(b.clicks ?? 0) - Number(a.clicks ?? 0));
77
+ const fmt = csvOrJson(args);
78
+ if (fmt !== "json") {
79
+ writeAdsOutput(sorted, fmt, data.fields);
80
+ return;
81
+ }
82
+ writeAdsJson({
83
+ ok: true,
84
+ data: { query: { campaigns: ids, start, end }, rows: sorted, warnings: data.warnings }
85
+ });
86
+ } catch (err) {
87
+ handleLinkedinError(err);
88
+ }
89
+ }
90
+ });
91
+ export {
92
+ conversationCommand
93
+ };
94
+ //# sourceMappingURL=conversation-UJOWMJRH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/linkedin/conversation.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiPost } from \"../../../client.ts\";\nimport { writeAdsJson, writeAdsOutput } from \"../output.ts\";\nimport { csvOrJson, daysAgoIso, handleLinkedinError, todayIso } from \"./shared.ts\";\n\ninterface AnalyticsResponse {\n rows: Array<Record<string, unknown>>;\n fields: string[];\n warnings: Array<{ code: string; message: string }>;\n}\n\n/**\n * Conversation Ads (Sponsored Messaging) per-button analytics. Wraps\n * --pivot conversation-node-button on /api/ads/linkedin/analytics.\n *\n * Lets agents see which CTA button inside a multi-step Sponsored Message\n * actually drives clicks — no other ad platform exposes this granularity.\n */\nexport const conversationCommand = defineCommand({\n meta: {\n name: \"conversation\",\n description: `Per-button click rates inside Sponsored Messaging / Conversation Ads.\n\nReturns one row per CONVERSATION_NODE_BUTTON pivot, sorted by clicks desc.\nUse this to A/B test button copy and the cascade tree.\n\nExamples:\n baker ads linkedin conversation --campaign-id 1234\n baker ads linkedin conversation --campaign-id 1234 --last-days 30 --output csv`,\n },\n args: {\n \"campaign-id\": {\n type: \"string\",\n description: \"Comma-separated campaign IDs (Conversation Ad campaigns)\",\n required: true,\n },\n start: { type: \"string\", description: \"Start date YYYY-MM-DD\" },\n end: { type: \"string\", description: \"End date YYYY-MM-DD\" },\n \"last-days\": { type: \"string\", description: \"Window relative to today (default: 30)\" },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n const campaignIdsRaw = args[\"campaign-id\"] as string | undefined;\n if (!campaignIdsRaw) {\n handleLinkedinError(new Error(\"--campaign-id is required\"));\n }\n const ids = campaignIdsRaw\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n const start = (args.start as string | undefined) ?? daysAgoIso(args[\"last-days\"] ? Number(args[\"last-days\"]) : 30);\n const end = (args.end as string | undefined) ?? todayIso();\n\n try {\n const data = await apiPost<AnalyticsResponse>(\"/api/ads/linkedin/analytics\", {\n request: {\n level: \"campaign\",\n ids,\n intent: \"inmail\",\n pivot: \"conversation-node-button\",\n start,\n end,\n granularity: \"ALL\",\n limit: 500,\n },\n skipCache: Boolean(args[\"no-cache\"]),\n });\n const sorted = [...data.rows].sort((a, b) => Number(b.clicks ?? 0) - Number(a.clicks ?? 0));\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(sorted, fmt, data.fields);\n return;\n }\n writeAdsJson({\n ok: true,\n data: { query: { campaigns: ids, start, end }, rows: sorted, warnings: data.warnings },\n });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAmBvB,IAAM,sBAAsB,cAAc;AAAA,EAC/C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQf;AAAA,EACA,MAAM;AAAA,IACJ,eAAe;AAAA,MACb,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,OAAO,EAAE,MAAM,UAAU,aAAa,wBAAwB;AAAA,IAC9D,KAAK,EAAE,MAAM,UAAU,aAAa,sBAAsB;AAAA,IAC1D,aAAa,EAAE,MAAM,UAAU,aAAa,yCAAyC;AAAA,IACrF,YAAY;AAAA,IACZ,QAAQ,EAAE,MAAM,UAAU,aAAa,qBAAqB,SAAS,OAAO;AAAA,EAC9E;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,iBAAiB,KAAK,aAAa;AACzC,QAAI,CAAC,gBAAgB;AACnB,0BAAoB,IAAI,MAAM,2BAA2B,CAAC;AAAA,IAC5D;AACA,UAAM,MAAM,eACT,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EACnB,OAAO,OAAO;AACjB,UAAM,QAAS,KAAK,SAAgC,WAAW,KAAK,WAAW,IAAI,OAAO,KAAK,WAAW,CAAC,IAAI,EAAE;AACjH,UAAM,MAAO,KAAK,OAA8B,SAAS;AAEzD,QAAI;AACF,YAAM,OAAO,MAAM,QAA2B,+BAA+B;AAAA,QAC3E,SAAS;AAAA,UACP,OAAO;AAAA,UACP;AAAA,UACA,QAAQ;AAAA,UACR,OAAO;AAAA,UACP;AAAA,UACA;AAAA,UACA,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,QACA,WAAW,QAAQ,KAAK,UAAU,CAAC;AAAA,MACrC,CAAC;AACD,YAAM,SAAS,CAAC,GAAG,KAAK,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,EAAE,UAAU,CAAC,IAAI,OAAO,EAAE,UAAU,CAAC,CAAC;AAC1F,YAAM,MAAM,UAAU,IAAI;AAC1B,UAAI,QAAQ,QAAQ;AAClB,uBAAe,QAAQ,KAAK,KAAK,MAAM;AACvC;AAAA,MACF;AACA,mBAAa;AAAA,QACX,IAAI;AAAA,QACJ,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,IAAI,GAAG,MAAM,QAAQ,UAAU,KAAK,SAAS;AAAA,MACvF,CAAC;AAAA,IACH,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -0,0 +1,138 @@
1
+ import {
2
+ csvOrJson,
3
+ handleLinkedinError,
4
+ resolveAccountIdArg
5
+ } from "./chunk-2YTBPRRG.js";
6
+ import {
7
+ writeAdsJson,
8
+ writeAdsOutput
9
+ } from "./chunk-2VIZ4UUZ.js";
10
+ import {
11
+ NO_CACHE_ARG
12
+ } from "./chunk-U6RONIJC.js";
13
+ import "./chunk-O37VU7FG.js";
14
+ import "./chunk-CAZGM2NX.js";
15
+ import "./chunk-NZS3KEQ2.js";
16
+ import "./chunk-GIWHHCD6.js";
17
+ import "./chunk-XQIOCIDO.js";
18
+ import "./chunk-WTJSMYY2.js";
19
+ import {
20
+ apiGet
21
+ } from "./chunk-6YLNY6CK.js";
22
+ import "./chunk-D5NEIESR.js";
23
+ import "./chunk-57KKVDDR.js";
24
+ import "./chunk-QANGHND7.js";
25
+ import "./chunk-YQSBHWOI.js";
26
+
27
+ // src/commands/ads/linkedin/conversions.ts
28
+ import { defineCommand } from "citty";
29
+ var DAY_MS = 864e5;
30
+ function healthOf(rules) {
31
+ const enabled = rules.filter((r) => r.enabled !== false);
32
+ const capi = enabled.filter((r) => r.conversionMethod === "CONVERSIONS_API");
33
+ const pixel = enabled.filter((r) => r.conversionMethod === "PIXEL");
34
+ const staleCapi = capi.filter(
35
+ (r) => !r.lastConversionReportedAt || Date.now() - r.lastConversionReportedAt > 7 * DAY_MS
36
+ );
37
+ const longView = enabled.filter(
38
+ (r) => r.viewThroughAttributionWindowSize !== void 0 && r.viewThroughAttributionWindowSize > 7
39
+ );
40
+ const leads = enabled.filter((r) => r.type === "LEAD");
41
+ const wrongDedup = leads.filter((r) => r.countingMethod && r.countingMethod !== "ONE_TIME_EACH_MEMBER");
42
+ return {
43
+ totalRules: rules.length,
44
+ enabledRules: enabled.length,
45
+ capiRules: capi.length,
46
+ pixelRules: pixel.length,
47
+ hasLeadEvent: leads.length > 0,
48
+ hasPurchaseEvent: enabled.some((r) => r.type === "PURCHASE"),
49
+ staleCapiRules: staleCapi,
50
+ longViewWindow: longView,
51
+ wrongLeadDedup: wrongDedup
52
+ };
53
+ }
54
+ var listCmd = defineCommand({
55
+ meta: {
56
+ name: "list",
57
+ description: `List conversion rules on the account.`
58
+ },
59
+ args: {
60
+ "account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
61
+ "account-urn": { type: "string", description: "Alias for --account-id" },
62
+ "no-cache": NO_CACHE_ARG,
63
+ output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
64
+ },
65
+ run: async ({ args }) => {
66
+ const accountId = resolveAccountIdArg(args);
67
+ try {
68
+ const params = { "account-id": accountId };
69
+ if (args["no-cache"]) params["skip-cache"] = "true";
70
+ const data = await apiGet("/api/ads/linkedin/conversions", params);
71
+ const fmt = csvOrJson(args);
72
+ if (fmt !== "json") {
73
+ writeAdsOutput(data, fmt);
74
+ return;
75
+ }
76
+ writeAdsJson({ ok: true, data });
77
+ } catch (err) {
78
+ handleLinkedinError(err);
79
+ }
80
+ }
81
+ });
82
+ var healthCmd = defineCommand({
83
+ meta: {
84
+ name: "health",
85
+ description: `5-point Insight Tag / CAPI health check (playbook \xA707).
86
+
87
+ Surfaces:
88
+ - Are rules enabled?
89
+ - Do we have at least one LEAD or PURCHASE event?
90
+ - Do CAPI rules show recent activity (\u22647 days)?
91
+ - Is the view-through window \u22647 days?
92
+ - Do LEAD rules use ONE_TIME_EACH_MEMBER de-dup?`
93
+ },
94
+ args: {
95
+ "account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
96
+ "account-urn": { type: "string", description: "Alias for --account-id" },
97
+ "no-cache": NO_CACHE_ARG,
98
+ output: { type: "string", description: "json", default: "json" }
99
+ },
100
+ run: async ({ args }) => {
101
+ const accountId = resolveAccountIdArg(args);
102
+ try {
103
+ const params = { "account-id": accountId };
104
+ if (args["no-cache"]) params["skip-cache"] = "true";
105
+ const data = await apiGet("/api/ads/linkedin/conversions", params);
106
+ writeAdsJson({ ok: true, data: healthOf(data) });
107
+ } catch (err) {
108
+ handleLinkedinError(err);
109
+ }
110
+ }
111
+ });
112
+ var conversionsCommand = defineCommand({
113
+ meta: {
114
+ name: "conversions",
115
+ description: `Conversion rules \u2014 Insight Tag and Conversions API.
116
+
117
+ Subcommands:
118
+ list \u2014 every rule on the account
119
+ health \u2014 playbook \xA707 5-point health check
120
+ create / update \u2014 stage a conversion-rule write (applies on chat publish)
121
+ associate-campaign / dissociate-campaign
122
+ \u2014 which ad sets a rule counts for (its own LinkedIn record, not a field on the rule)
123
+ upload \u2014 stage CRM / offline conversions (deals won, qualified leads) into a Conversions API rule`
124
+ },
125
+ subCommands: {
126
+ list: listCmd,
127
+ health: healthCmd,
128
+ create: () => import("./write-commands-N74CDMQM.js").then((m) => m.conversionsCreateCommand),
129
+ update: () => import("./write-commands-N74CDMQM.js").then((m) => m.conversionsUpdateCommand),
130
+ "associate-campaign": () => import("./write-commands-N74CDMQM.js").then((m) => m.conversionsAssociateCommand),
131
+ "dissociate-campaign": () => import("./write-commands-N74CDMQM.js").then((m) => m.conversionsDissociateCommand),
132
+ upload: () => import("./write-commands-N74CDMQM.js").then((m) => m.conversionsUploadCommand)
133
+ }
134
+ });
135
+ export {
136
+ conversionsCommand
137
+ };
138
+ //# sourceMappingURL=conversions-ONOIEILU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/linkedin/conversions.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiGet } from \"../../../client.ts\";\nimport { writeAdsJson, writeAdsOutput } from \"../output.ts\";\nimport { csvOrJson, handleLinkedinError, resolveAccountIdArg } from \"./shared.ts\";\n\ninterface ConversionRule {\n id: string;\n urn: string;\n account: string;\n name?: string;\n type?: string;\n enabled?: boolean;\n conversionMethod?: string;\n attributionType?: string;\n postClickAttributionWindowSize?: number;\n viewThroughAttributionWindowSize?: number;\n associatedCampaigns?: string[];\n countingMethod?: string;\n lastConversionReportedAt?: number;\n}\n\nconst DAY_MS = 86_400_000;\n\nfunction healthOf(rules: ConversionRule[]): {\n totalRules: number;\n enabledRules: number;\n capiRules: number;\n pixelRules: number;\n hasLeadEvent: boolean;\n hasPurchaseEvent: boolean;\n staleCapiRules: ConversionRule[];\n longViewWindow: ConversionRule[];\n wrongLeadDedup: ConversionRule[];\n} {\n const enabled = rules.filter((r) => r.enabled !== false);\n const capi = enabled.filter((r) => r.conversionMethod === \"CONVERSIONS_API\");\n const pixel = enabled.filter((r) => r.conversionMethod === \"PIXEL\");\n const staleCapi = capi.filter(\n (r) => !r.lastConversionReportedAt || Date.now() - r.lastConversionReportedAt > 7 * DAY_MS,\n );\n const longView = enabled.filter(\n (r) => r.viewThroughAttributionWindowSize !== undefined && r.viewThroughAttributionWindowSize > 7,\n );\n const leads = enabled.filter((r) => r.type === \"LEAD\");\n const wrongDedup = leads.filter((r) => r.countingMethod && r.countingMethod !== \"ONE_TIME_EACH_MEMBER\");\n return {\n totalRules: rules.length,\n enabledRules: enabled.length,\n capiRules: capi.length,\n pixelRules: pixel.length,\n hasLeadEvent: leads.length > 0,\n hasPurchaseEvent: enabled.some((r) => r.type === \"PURCHASE\"),\n staleCapiRules: staleCapi,\n longViewWindow: longView,\n wrongLeadDedup: wrongDedup,\n };\n}\n\nconst listCmd = defineCommand({\n meta: {\n name: \"list\",\n description: `List conversion rules on the account.`,\n },\n args: {\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 \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n const accountId = resolveAccountIdArg(args);\n try {\n const params: Record<string, string> = { \"account-id\": accountId };\n if (args[\"no-cache\"]) params[\"skip-cache\"] = \"true\";\n const data = await apiGet<ConversionRule[]>(\"/api/ads/linkedin/conversions\", params);\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(data as unknown as Array<Record<string, unknown>>, fmt);\n return;\n }\n writeAdsJson({ ok: true, data });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nconst healthCmd = defineCommand({\n meta: {\n name: \"health\",\n description: `5-point Insight Tag / CAPI health check (playbook §07).\n\nSurfaces:\n - Are rules enabled?\n - Do we have at least one LEAD or PURCHASE event?\n - Do CAPI rules show recent activity (≤7 days)?\n - Is the view-through window ≤7 days?\n - Do LEAD rules use ONE_TIME_EACH_MEMBER de-dup?`,\n },\n args: {\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 \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json\", default: \"json\" },\n },\n run: async ({ args }) => {\n const accountId = resolveAccountIdArg(args);\n try {\n const params: Record<string, string> = { \"account-id\": accountId };\n if (args[\"no-cache\"]) params[\"skip-cache\"] = \"true\";\n const data = await apiGet<ConversionRule[]>(\"/api/ads/linkedin/conversions\", params);\n writeAdsJson({ ok: true, data: healthOf(data) });\n } catch (err) {\n handleLinkedinError(err);\n }\n },\n});\n\nexport const conversionsCommand = defineCommand({\n meta: {\n name: \"conversions\",\n description: `Conversion rules — Insight Tag and Conversions API.\n\nSubcommands:\n list — every rule on the account\n health — playbook §07 5-point health check\n create / update — stage a conversion-rule write (applies on chat publish)\n associate-campaign / dissociate-campaign\n — which ad sets a rule counts for (its own LinkedIn record, not a field on the rule)\n upload — stage CRM / offline conversions (deals won, qualified leads) into a Conversions API rule`,\n },\n subCommands: {\n list: listCmd,\n health: healthCmd,\n create: () => import(\"./write-commands.ts\").then((m) => m.conversionsCreateCommand),\n update: () => import(\"./write-commands.ts\").then((m) => m.conversionsUpdateCommand),\n \"associate-campaign\": () => import(\"./write-commands.ts\").then((m) => m.conversionsAssociateCommand),\n \"dissociate-campaign\": () => import(\"./write-commands.ts\").then((m) => m.conversionsDissociateCommand),\n upload: () => import(\"./write-commands.ts\").then((m) => m.conversionsUploadCommand),\n },\n});\n"],"mappings":"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","names":[]}
@@ -0,0 +1,208 @@
1
+ import {
2
+ buildProfilePatch
3
+ } from "./chunk-IJMWEO4P.js";
4
+ import {
5
+ chatIdFromEnv,
6
+ creationHints,
7
+ failAvatarApi,
8
+ failValidation,
9
+ parseFaceChoice
10
+ } from "./chunk-BAXDNVT2.js";
11
+ import {
12
+ writeAvatars
13
+ } from "./chunk-QG4MW2V4.js";
14
+ import {
15
+ AVATAR_HANDLE_PATTERN
16
+ } from "./chunk-O37VU7FG.js";
17
+ import "./chunk-CAZGM2NX.js";
18
+ import "./chunk-NZS3KEQ2.js";
19
+ import "./chunk-GIWHHCD6.js";
20
+ import "./chunk-XQIOCIDO.js";
21
+ import "./chunk-WTJSMYY2.js";
22
+ import "./chunk-6YLNY6CK.js";
23
+ import "./chunk-D5NEIESR.js";
24
+ import "./chunk-57KKVDDR.js";
25
+ import {
26
+ registerSchema,
27
+ writeJson
28
+ } from "./chunk-QANGHND7.js";
29
+ import "./chunk-YQSBHWOI.js";
30
+
31
+ // src/commands/avatars/create.ts
32
+ import { defineCommand } from "citty";
33
+ function parseImageIds(value) {
34
+ if (typeof value !== "string") return void 0;
35
+ const ids = value.split(",").map((id) => id.trim()).filter((id) => id.length > 0);
36
+ return ids.length > 0 ? [...new Set(ids)] : void 0;
37
+ }
38
+ registerSchema({
39
+ command: "avatars.create",
40
+ description: 'Cast a new avatar \u2014 a reusable AI presenter this company can put in images and video. Start here: `baker avatars create --name "Marta" --subject "woman in her early 40s, shoulder-length dark hair, warm brown eyes, light olive skin"`. --subject is the identity: describe ONE person plainly (age, build, hair, skin, face) with no scene, no lighting and no wardrobe, because it is copied word for word into every prompt that renders them. Two kinds: invented from your description (default), or built from photographs of a real person (--source-image with --likeness-confirmed, which is the company stating it may use that person\'s image in advertising). For a real person the copy NAMES \u2014 a testimonial author, the founder, a team member \u2014 use `baker avatars research "<name>, <role> at <company>" --create` instead: it finds their photos and builds the avatar itself. Returns immediately with status `generating` \u2014 the identity sheet is a ~30s render that settles in the background.',
41
+ args: {
42
+ name: { type: "string", description: 'Display name, e.g. "Marta"', required: true },
43
+ handle: {
44
+ type: "string",
45
+ description: 'Mention handle (lowercase, dashes), e.g. "marta". Derived from the name when omitted.',
46
+ required: false
47
+ },
48
+ subject: {
49
+ type: "string",
50
+ description: "The identity, reused verbatim in every render: one person, plainly described (age, build, hair, skin, face). No scene, no lighting, no camera, no wardrobe \u2014 those belong in the render prompt or in --wardrobe/--setting.",
51
+ required: true
52
+ },
53
+ persona: { type: "string", description: "Who they are on camera \u2014 role, attitude, energy", required: false },
54
+ speech: { type: "string", description: "How they speak \u2014 pace, register, verbal habits", required: false },
55
+ accent: {
56
+ type: "string",
57
+ description: `Where their VOICE is from, as a place: 'Spanish from Spain, Madrid accent', 'Mexican Spanish', 'British English, London'. Name the region \u2014 an adjective like 'clear Spanish accent' is read by the video model as NO accent, and the clip comes out sounding like nowhere. Default to the language the USER is writing to you in, always: they are describing an ad for their own market, and an avatar that answers them in another language is unusable however good it looks. Never take this from how the person LOOKS \u2014 'aspecto europeo', 'Nordic', 'Mediterranean' describe a face and belong in --subject. Read literally, that mistake shipped an ad for a Spanish client with --accent "German", and the clip came back spoken in German.`,
58
+ required: false
59
+ },
60
+ motion: { type: "string", description: "Body language and gesture in video", required: false },
61
+ wardrobe: { type: "string", description: "Default outfit when the brief does not name one", required: false },
62
+ setting: {
63
+ type: "string",
64
+ description: 'Where they are in their own life ("her small kitchen in Madrid on a weekday morning") \u2014 their casting photo is taken there, and renders use it when the brief leaves the surroundings open. Always fill it: a face with no world comes back looking like a studio headshot.',
65
+ required: false
66
+ },
67
+ guardrails: {
68
+ type: "string",
69
+ description: 'Comma-separated things this avatar must never do, e.g. "no competitor logos, no medical claims"',
70
+ required: false
71
+ },
72
+ "source-image": {
73
+ type: "string",
74
+ description: "Comma-separated library image ids (up to 6) of photographs of a REAL person to build the likeness from. Requires --likeness-confirmed. Source them with `baker images upload`/`library` first.",
75
+ required: false
76
+ },
77
+ "likeness-confirmed": {
78
+ type: "boolean",
79
+ description: "The company's statement that it may use this real person's image in advertising. Required with --source-image. Pass it when the user gave you the photos, or the person is someone the company features in its own marketing (its founder, its team, a customer quoted by name) \u2014 that request is the statement; there is no separate question to ask.",
80
+ required: false
81
+ },
82
+ face: {
83
+ type: "string",
84
+ description: "Who picks the face, for an invented avatar: 'ask' (default) blocks on the user through `request_avatar_casting`, 'auto' keeps the one this build casts and asks nobody. Use 'auto' only when there is no one to answer \u2014 a Schedule, a batch, an explicit \"do it yourself\" \u2014 because a person who is there almost always wants this choice.",
85
+ required: false
86
+ },
87
+ output: {
88
+ type: "string",
89
+ description: "Output format. Only `json`, which is what this returns anyway \u2014 accepted because `avatars list` and `avatars get` take it, so reaching for it here is the obvious guess.",
90
+ required: false,
91
+ default: "json"
92
+ }
93
+ }
94
+ });
95
+ var createCommand = defineCommand({
96
+ meta: {
97
+ name: "create",
98
+ description: 'Cast a new avatar (reusable AI presenter). Example: baker avatars create --name "Marta" --subject "woman in her early 40s, shoulder-length dark hair, light olive skin, warm open face" --persona "friendly product expert". Returns while the identity sheet is still building.'
99
+ },
100
+ args: {
101
+ name: { type: "string", description: "Display name", required: false },
102
+ handle: { type: "string", description: "Mention handle (derived from the name when omitted)", required: false },
103
+ subject: { type: "string", description: "The person, plainly described \u2014 reused verbatim", required: false },
104
+ persona: { type: "string", description: "Who they are on camera", required: false },
105
+ speech: { type: "string", description: "How they speak", required: false },
106
+ accent: {
107
+ type: "string",
108
+ description: "Where their voice is FROM \u2014 name the region, e.g. 'Spanish from Spain, Madrid accent'",
109
+ required: false
110
+ },
111
+ motion: { type: "string", description: "Body language in video", required: false },
112
+ wardrobe: { type: "string", description: "Default outfit", required: false },
113
+ setting: { type: "string", description: "Default surroundings", required: false },
114
+ guardrails: { type: "string", description: "Comma-separated things they must never do", required: false },
115
+ "source-image": {
116
+ type: "string",
117
+ description: "Comma-separated library image ids of a real person (needs --likeness-confirmed)",
118
+ required: false
119
+ },
120
+ "likeness-confirmed": {
121
+ type: "boolean",
122
+ description: "The company may use this real person's image in advertising",
123
+ required: false,
124
+ default: false
125
+ },
126
+ face: {
127
+ type: "string",
128
+ description: "Who picks the face of an invented avatar: 'ask' (default, blocks on the user) or 'auto' (asks nobody)",
129
+ required: false
130
+ },
131
+ output: {
132
+ type: "string",
133
+ description: "Output format \u2014 `json` only, which is what this returns anyway",
134
+ required: false,
135
+ default: "json"
136
+ }
137
+ },
138
+ run: async ({ args }) => {
139
+ const name = args.name?.trim();
140
+ if (!name) {
141
+ failValidation('--name is required, e.g. `baker avatars create --name "Marta" --subject "\u2026"`.');
142
+ }
143
+ const profile = buildProfilePatch(args);
144
+ const subjectDescription = profile.subjectDescription;
145
+ if (!subjectDescription) {
146
+ failValidation(
147
+ "--subject is required: it is the identity every render of this avatar is built from, and it is copied into each prompt word for word.",
148
+ {
149
+ action: "describe_the_person",
150
+ explanation: 'Write one person, plainly: age range, build, hair, skin, face, anything distinctive. No scene, no lighting, no camera, no wardrobe. Good: "woman in her early 40s, shoulder-length dark brown hair, light olive skin, warm open face, slight smile lines". Bad: "confident businesswoman in a sunlit office". If the user described a real person and you have their photos, pass --source-image with --likeness-confirmed instead of inventing the description; if they are named but you have no photos, run `baker avatars research "<name>, <role> at <company>" --create`.'
151
+ }
152
+ );
153
+ }
154
+ const handle = args.handle?.trim().toLowerCase();
155
+ if (handle && !AVATAR_HANDLE_PATTERN.test(handle)) {
156
+ failValidation(
157
+ `--handle "${handle}" is not usable. Use lowercase letters, numbers and dashes, starting with a letter \u2014 "maria-founder", not "Maria Founder". Leave it off to have one derived from the name.`
158
+ );
159
+ }
160
+ const output = args.output?.trim().toLowerCase();
161
+ if (output && output !== "json") {
162
+ failValidation(
163
+ `\`--output ${output}\` is not a format \`baker avatars create\` produces \u2014 it returns JSON and nothing else. Drop the flag, or pass \`--output json\`. \`baker avatars list\` and \`baker avatars get\` are the ones that also render \`files\` and \`md\`.`
164
+ );
165
+ }
166
+ const faceChoice = parseFaceChoice(args.face);
167
+ if (faceChoice === null) {
168
+ failValidation(
169
+ `--face "${String(args.face)}" is not a mode. Use --face ask to let the user pick the face, or --face auto to keep the one this build casts.`,
170
+ {
171
+ action: "pick_a_mode",
172
+ explanation: "Drop the flag entirely if a person is in the conversation \u2014 that is --face ask, and it is what they almost always want. Pass --face auto only when nobody is there to answer: a Schedule, a batch run, or the user telling you to do it without them."
173
+ }
174
+ );
175
+ }
176
+ const sourceImageIds = parseImageIds(args["source-image"]);
177
+ const likenessConfirmed = Boolean(args["likeness-confirmed"]);
178
+ if (sourceImageIds && !likenessConfirmed) {
179
+ failValidation(
180
+ "Building an avatar from photographs of a real person needs --likeness-confirmed: the company has to state that it may use that person's image in its advertising.",
181
+ {
182
+ action: "confirm_the_likeness",
183
+ explanation: 'Photos the user handed you, or of someone the company features in its own marketing (its founder, its team, a customer it quotes by name), come with that statement: re-run the same command with --likeness-confirmed. If the person is named in the copy and you have no photos, use `baker avatars research "<name>, <role> at <company>" --create` instead. Only if the user said they may NOT use this person\'s image, drop --source-image and cast an invented presenter from --subject \u2014 do not abandon the wider job over it.'
184
+ }
185
+ );
186
+ }
187
+ try {
188
+ const body = {
189
+ name,
190
+ ...handle ? { handle } : {},
191
+ profile: { ...profile, subjectDescription },
192
+ ...sourceImageIds ? { sourceImageIds, likenessConfirmed: true } : {},
193
+ ...chatIdFromEnv() ? { chatId: chatIdFromEnv() } : {},
194
+ // Sent so the backend can hold the sheet until the chosen portrait exists —
195
+ // otherwise it fuses one from a face nobody picked and pays for it twice.
196
+ faceChoice
197
+ };
198
+ const data = await writeAvatars("/api/avatars", body);
199
+ writeJson({ ok: true, data, hints: creationHints({ ...data, faceChoice }, body.profile) });
200
+ } catch (err) {
201
+ failAvatarApi(err, handle);
202
+ }
203
+ }
204
+ });
205
+ export {
206
+ createCommand
207
+ };
208
+ //# sourceMappingURL=create-DPQRYQXK.js.map