@koda-sl/baker-cli 0.449.0 → 0.450.0-dev.b454c3dd2

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 (878) hide show
  1. package/README.md +11 -2
  2. package/dist/account-4H7QVBRK.js +80 -0
  3. package/dist/account-XQXC7BR6.js +80 -0
  4. package/dist/account-XQXC7BR6.js.map +1 -0
  5. package/dist/account-writes-AK42HGRM.js +66 -0
  6. package/dist/accounts-722UY53A.js +78 -0
  7. package/dist/accounts-722UY53A.js.map +1 -0
  8. package/dist/accounts-E67BMK7T.js +612 -0
  9. package/dist/accounts-E67BMK7T.js.map +1 -0
  10. package/dist/actions-6TQMSVWD.js +55 -0
  11. package/dist/ad-group-writes-QQS4223F.js +170 -0
  12. package/dist/ad-groups-WGPDPUI2.js +68 -0
  13. package/dist/ad-writes-XE2IE4DS.js +174 -0
  14. package/dist/add-2BEGRHUX.js +303 -0
  15. package/dist/add-2BEGRHUX.js.map +1 -0
  16. package/dist/add-LEMKEOPO.js +105 -0
  17. package/dist/add-LEMKEOPO.js.map +1 -0
  18. package/dist/ads-AGYCVD62.js +40 -0
  19. package/dist/ads-BCOSQALY.js +77 -0
  20. package/dist/advertisers-2VQKAYKG.js +121 -0
  21. package/dist/advertisers-2VQKAYKG.js.map +1 -0
  22. package/dist/analytics-IFELDWLL.js +1962 -0
  23. package/dist/analytics-IFELDWLL.js.map +1 -0
  24. package/dist/analytics-OH5QEH7F.js +434 -0
  25. package/dist/analytics-OH5QEH7F.js.map +1 -0
  26. package/dist/animate-AIZ3GS4J.js +480 -0
  27. package/dist/assign-PTUJUCEL.js +78 -0
  28. package/dist/assign-PTUJUCEL.js.map +1 -0
  29. package/dist/audience-size-LRI6GJRT.js +95 -0
  30. package/dist/audience-size-LRI6GJRT.js.map +1 -0
  31. package/dist/audiences-TGD5US2M.js +268 -0
  32. package/dist/audit-HWP7OPB7.js +152 -0
  33. package/dist/audit-HWP7OPB7.js.map +1 -0
  34. package/dist/autocomplete-J6DHU6MR.js +112 -0
  35. package/dist/autocomplete-J6DHU6MR.js.map +1 -0
  36. package/dist/avatars-467OSBD6.js +38 -0
  37. package/dist/bid-pricing-EO5WLHGV.js +100 -0
  38. package/dist/bid-pricing-EO5WLHGV.js.map +1 -0
  39. package/dist/brand-YRTEPGBK.js +22 -0
  40. package/dist/brief-OSFJ2V7F.js +478 -0
  41. package/dist/brief-OSFJ2V7F.js.map +1 -0
  42. package/dist/campaign-groups-PQ6KSQJR.js +96 -0
  43. package/dist/campaign-groups-PQ6KSQJR.js.map +1 -0
  44. package/dist/campaign-writes-5OVLUD5E.js +166 -0
  45. package/dist/campaign-writes-5OVLUD5E.js.map +1 -0
  46. package/dist/campaign-writes-SXLZFYF6.js +170 -0
  47. package/dist/campaigns-6T3NSUT2.js +110 -0
  48. package/dist/campaigns-6T3NSUT2.js.map +1 -0
  49. package/dist/campaigns-OYMXDGWX.js +107 -0
  50. package/dist/campaigns-YS3OGQXO.js +76 -0
  51. package/dist/canvas-YQFG52IG.js +46 -0
  52. package/dist/capabilities-PXBKUN2G.js +145 -0
  53. package/dist/capabilities-PXBKUN2G.js.map +1 -0
  54. package/dist/catalog-XLXIM7IW.js +65 -0
  55. package/dist/catalogs-BRXEDE56.js +128 -0
  56. package/dist/chatgpt-7W75X3ER.js +47 -0
  57. package/dist/chats-UK47UE7C.js +263 -0
  58. package/dist/chats-UK47UE7C.js.map +1 -0
  59. package/dist/chunk-24EB7EDR.js +433 -0
  60. package/dist/chunk-2AOE2MZQ.js +159 -0
  61. package/dist/chunk-2VPBIT65.js +509 -0
  62. package/dist/chunk-4PDHHHUJ.js +537 -0
  63. package/dist/chunk-4PDHHHUJ.js.map +1 -0
  64. package/dist/chunk-54C6YDGJ.js +622 -0
  65. package/dist/chunk-5WCSKQ7Z.js +188 -0
  66. package/dist/chunk-5ZNTADVR.js +197 -0
  67. package/dist/chunk-6F7DVPOS.js +310 -0
  68. package/dist/chunk-6NY2GPR4.js +304 -0
  69. package/dist/chunk-6Y7ZBENQ.js +207 -0
  70. package/dist/chunk-7CTMH5AK.js +111 -0
  71. package/dist/chunk-7EPXVICM.js +6184 -0
  72. package/dist/chunk-7EPXVICM.js.map +1 -0
  73. package/dist/chunk-7J6EHOH6.js +274 -0
  74. package/dist/chunk-ASI4P6X2.js +6667 -0
  75. package/dist/chunk-C46GUI2S.js +19 -0
  76. package/dist/chunk-CAMX6OHF.js +3182 -0
  77. package/dist/chunk-CAMX6OHF.js.map +1 -0
  78. package/dist/chunk-CWYAELVG.js +60 -0
  79. package/dist/chunk-DCRPXOJJ.js +363 -0
  80. package/dist/chunk-EAP4O4FE.js +440 -0
  81. package/dist/chunk-FPOGPFAG.js +4383 -0
  82. package/dist/chunk-FTWJFDIN.js +23992 -0
  83. package/dist/chunk-FTWJFDIN.js.map +1 -0
  84. package/dist/chunk-FUHN4MFY.js +103 -0
  85. package/dist/chunk-FYGR3I2A.js +297 -0
  86. package/dist/chunk-H3427GPU.js +206 -0
  87. package/dist/chunk-HDLYPC6K.js +172 -0
  88. package/dist/chunk-HDLYPC6K.js.map +1 -0
  89. package/dist/chunk-HR6IWNKE.js +2942 -0
  90. package/dist/chunk-HR6IWNKE.js.map +1 -0
  91. package/dist/chunk-HROZYQ5H.js +275 -0
  92. package/dist/chunk-HROZYQ5H.js.map +1 -0
  93. package/dist/chunk-HZUDRKGR.js +98 -0
  94. package/dist/chunk-I3ZR655O.js +382 -0
  95. package/dist/chunk-KMKEYI37.js +96 -0
  96. package/dist/chunk-KS2QY6MK.js +139 -0
  97. package/dist/chunk-LYQJ4PZW.js +5189 -0
  98. package/dist/chunk-MACCF4JZ.js +3147 -0
  99. package/dist/chunk-N4LAYIIN.js +175 -0
  100. package/dist/chunk-NA63BH7V.js +346 -0
  101. package/dist/chunk-NCWCZY5P.js +1441 -0
  102. package/dist/chunk-NDEE6G2J.js +494 -0
  103. package/dist/chunk-NJXNU2G6.js +819 -0
  104. package/dist/chunk-NYIGXDUG.js +178 -0
  105. package/dist/chunk-NYIGXDUG.js.map +1 -0
  106. package/dist/chunk-P5T7OZKV.js +26 -0
  107. package/dist/chunk-PZXCWSKV.js +1830 -0
  108. package/dist/chunk-QE7W555R.js +541 -0
  109. package/dist/chunk-QE7W555R.js.map +1 -0
  110. package/dist/chunk-R25YLW6H.js +20 -0
  111. package/dist/chunk-RL5CP7N6.js +57 -0
  112. package/dist/chunk-RX2DKU3W.js +592 -0
  113. package/dist/chunk-SJYEY5MV.js +172 -0
  114. package/dist/chunk-SJYEY5MV.js.map +1 -0
  115. package/dist/chunk-ULG4QRTV.js +92 -0
  116. package/dist/chunk-VL43TNIP.js +455 -0
  117. package/dist/chunk-VLMBTPXU.js +51 -0
  118. package/dist/chunk-VNUNE5AB.js +160 -0
  119. package/dist/chunk-VYQ3QJ3C.js +169 -0
  120. package/dist/chunk-WGUQHAJY.js +23 -0
  121. package/dist/chunk-WKQG6TER.js +1079 -0
  122. package/dist/chunk-XFGAUP5B.js +76 -0
  123. package/dist/chunk-ZDMTXQ2Q.js +337 -0
  124. package/dist/claim-W6G6VEG5.js +198 -0
  125. package/dist/claim-W6G6VEG5.js.map +1 -0
  126. package/dist/cli.js +30 -30
  127. package/dist/companies-TS6KBATJ.js +196 -0
  128. package/dist/companies-TS6KBATJ.js.map +1 -0
  129. package/dist/complete-LYR2HMQU.js +82 -0
  130. package/dist/complete-LYR2HMQU.js.map +1 -0
  131. package/dist/connect-FCXNVTXG.js +43 -0
  132. package/dist/conversation-6ZJGPCXM.js +94 -0
  133. package/dist/conversation-6ZJGPCXM.js.map +1 -0
  134. package/dist/conversion-report-XQBJ6LG4.js +125 -0
  135. package/dist/conversion-writes-UBCVXP2E.js +120 -0
  136. package/dist/conversions-D236RTUK.js +76 -0
  137. package/dist/conversions-UHB55MMQ.js +136 -0
  138. package/dist/conversions-UHB55MMQ.js.map +1 -0
  139. package/dist/create-EX6OWLNM.js +208 -0
  140. package/dist/create-EX6OWLNM.js.map +1 -0
  141. package/dist/create-JCA7JPLP.js +131 -0
  142. package/dist/create-JCA7JPLP.js.map +1 -0
  143. package/dist/create-JFSK4BOP.js +60 -0
  144. package/dist/create-JFSK4BOP.js.map +1 -0
  145. package/dist/create-WU22YYU2.js +236 -0
  146. package/dist/create-WU22YYU2.js.map +1 -0
  147. package/dist/creatives-FXUQ5WSD.js +51 -0
  148. package/dist/creatives-KGXUOYPE.js +183 -0
  149. package/dist/creatives-KGXUOYPE.js.map +1 -0
  150. package/dist/credentials-MJC7PGKR.js +1056 -0
  151. package/dist/credentials-MJC7PGKR.js.map +1 -0
  152. package/dist/critique-GS5VV5ZC.js +214 -0
  153. package/dist/critique-GS5VV5ZC.js.map +1 -0
  154. package/dist/critique-TPHR27KH.js +1450 -0
  155. package/dist/critique-TPHR27KH.js.map +1 -0
  156. package/dist/crm-AVCM5D4G.js +319 -0
  157. package/dist/crm-AVCM5D4G.js.map +1 -0
  158. package/dist/crm-VK44O3ED.js +225 -0
  159. package/dist/crm-VK44O3ED.js.map +1 -0
  160. package/dist/customers-XH2DMTFH.js +57 -0
  161. package/dist/delete-E3R3TKIL.js +67 -0
  162. package/dist/delete-E3R3TKIL.js.map +1 -0
  163. package/dist/delete-KRH2YMSZ.js +55 -0
  164. package/dist/delete-KRH2YMSZ.js.map +1 -0
  165. package/dist/delete-WI5E3DR3.js +64 -0
  166. package/dist/delete-WI5E3DR3.js.map +1 -0
  167. package/dist/demographics-XV5PBA77.js +139 -0
  168. package/dist/demographics-XV5PBA77.js.map +1 -0
  169. package/dist/discard-HTQUUHJR.js +67 -0
  170. package/dist/discard-HTQUUHJR.js.map +1 -0
  171. package/dist/domain-RECGZXJB.js +99 -0
  172. package/dist/domain-RECGZXJB.js.map +1 -0
  173. package/dist/draft-2IBSJEKC.js +218 -0
  174. package/dist/draft-2IBSJEKC.js.map +1 -0
  175. package/dist/draft-MNFJ4G3C.js +281 -0
  176. package/dist/draft-PVTX6QT6.js +329 -0
  177. package/dist/draft-PVTX6QT6.js.map +1 -0
  178. package/dist/draft-Q546QPPU.js +307 -0
  179. package/dist/draft-Q546QPPU.js.map +1 -0
  180. package/dist/engine/index.js +6 -6
  181. package/dist/facets-7EVPJMKS.js +115 -0
  182. package/dist/facets-7EVPJMKS.js.map +1 -0
  183. package/dist/feedback-EIZKS4JU.js +66 -0
  184. package/dist/feedback-record-TKO54BOE.js +176 -0
  185. package/dist/feedback-record-TKO54BOE.js.map +1 -0
  186. package/dist/fetch-4BY6HYUM.js +177 -0
  187. package/dist/fetch-4BY6HYUM.js.map +1 -0
  188. package/dist/find-FRRHAPWX.js +134 -0
  189. package/dist/fit-UOFYFJ4Q.js +45 -0
  190. package/dist/flows-KTFAML22.js +248 -0
  191. package/dist/flows-KTFAML22.js.map +1 -0
  192. package/dist/fonts-MXR3ZKDX.js +35 -0
  193. package/dist/forecast-3QTJYVND.js +105 -0
  194. package/dist/forecast-3QTJYVND.js.map +1 -0
  195. package/dist/funnel-I6XIAEHG.js +393 -0
  196. package/dist/funnel-I6XIAEHG.js.map +1 -0
  197. package/dist/ga4-DV2AXCSL.js +55 -0
  198. package/dist/generate-3XYYITU6.js +262 -0
  199. package/dist/get-5PKNKJ5S.js +57 -0
  200. package/dist/get-5PKNKJ5S.js.map +1 -0
  201. package/dist/get-72YPHJGV.js +79 -0
  202. package/dist/get-72YPHJGV.js.map +1 -0
  203. package/dist/google-6OGZX47I.js +1872 -0
  204. package/dist/google-QYYYSSXI.js +136 -0
  205. package/dist/google-ads-QGMQKZQD.js +196 -0
  206. package/dist/google-ads-QGMQKZQD.js.map +1 -0
  207. package/dist/gsc-TAKOF7J5.js +30 -0
  208. package/dist/history-6AVQX2OQ.js +134 -0
  209. package/dist/history-6AVQX2OQ.js.map +1 -0
  210. package/dist/history-Q3QCT64S.js +67 -0
  211. package/dist/hubspot-SVEMFK5S.js +780 -0
  212. package/dist/hubspot-SVEMFK5S.js.map +1 -0
  213. package/dist/icon-L4RSS6PZ.js +137 -0
  214. package/dist/ideas-NFOW3HKJ.js +33 -0
  215. package/dist/images-2EFFUNNV.js +90 -0
  216. package/dist/ingest-2EIKN4QC.js +24 -0
  217. package/dist/ingest-2SO62RRI.js +108 -0
  218. package/dist/ingest-2SO62RRI.js.map +1 -0
  219. package/dist/insights-LNAXV2CG.js +122 -0
  220. package/dist/inspect-4OOS4APT.js +190 -0
  221. package/dist/inspect-4OOS4APT.js.map +1 -0
  222. package/dist/inspiration-S3DU4CMQ.js +53 -0
  223. package/dist/keyword-metrics-SF4CSNZ2.js +198 -0
  224. package/dist/keyword-metrics-SF4CSNZ2.js.map +1 -0
  225. package/dist/keywords-for-site-WDAOPNKC.js +129 -0
  226. package/dist/keywords-for-site-WDAOPNKC.js.map +1 -0
  227. package/dist/landing-2ZB46LXH.js +28 -0
  228. package/dist/leads-A4W5KTWB.js +91 -0
  229. package/dist/leads-A4W5KTWB.js.map +1 -0
  230. package/dist/learn-IPULBCOD.js +204 -0
  231. package/dist/learn-IPULBCOD.js.map +1 -0
  232. package/dist/line-item-writes-EMYSOJKM.js +209 -0
  233. package/dist/line-item-writes-EMYSOJKM.js.map +1 -0
  234. package/dist/line-items-5NECXUZT.js +103 -0
  235. package/dist/link-CI45HWFN.js +65 -0
  236. package/dist/link-CI45HWFN.js.map +1 -0
  237. package/dist/linkedin-B7SYR75X.js +1009 -0
  238. package/dist/linkedin-B7SYR75X.js.map +1 -0
  239. package/dist/list-2BARXOT5.js +152 -0
  240. package/dist/list-2BARXOT5.js.map +1 -0
  241. package/dist/list-BIEVLEHS.js +304 -0
  242. package/dist/list-BIEVLEHS.js.map +1 -0
  243. package/dist/list-ZBT3EBVZ.js +64 -0
  244. package/dist/list-ZBT3EBVZ.js.map +1 -0
  245. package/dist/locations-2NKBJKBT.js +67 -0
  246. package/dist/log-C23OOAJZ.js +93 -0
  247. package/dist/log-C23OOAJZ.js.map +1 -0
  248. package/dist/logo-Q5D7PZY6.js +18 -0
  249. package/dist/lookup-ETWY47F7.js +23 -0
  250. package/dist/make-TPKKJXGL.js +594 -0
  251. package/dist/make-TPKKJXGL.js.map +1 -0
  252. package/dist/map-SYZMPHLL.js +405 -0
  253. package/dist/map-SYZMPHLL.js.map +1 -0
  254. package/dist/mcp-6FQBVJ6F.js +477 -0
  255. package/dist/mcp-6FQBVJ6F.js.map +1 -0
  256. package/dist/media-sources-ZXHEEP6T.js +32 -0
  257. package/dist/members-UDY4OOJW.js +45 -0
  258. package/dist/members-UDY4OOJW.js.map +1 -0
  259. package/dist/models-3Z6MDHQW.js +155 -0
  260. package/dist/normalize-DAKHYS3V.js +142 -0
  261. package/dist/normalize-DAKHYS3V.js.map +1 -0
  262. package/dist/options-QL3ULED5.js +122 -0
  263. package/dist/options-QL3ULED5.js.map +1 -0
  264. package/dist/performance-UF5VTY2U.js +25 -0
  265. package/dist/pixels-TZPF746S.js +60 -0
  266. package/dist/plan-FT632COT.js +51 -0
  267. package/dist/plan-FT632COT.js.map +1 -0
  268. package/dist/promoted-tweet-writes-7HGESJ46.js +181 -0
  269. package/dist/promoted-tweet-writes-7HGESJ46.js.map +1 -0
  270. package/dist/promoted-tweets-LZKS5JIF.js +119 -0
  271. package/dist/publish-NPD3SMZL.js +323 -0
  272. package/dist/publish-NPD3SMZL.js.map +1 -0
  273. package/dist/questionnaire-JNGYJTAY.js +37 -0
  274. package/dist/questionnaire-JNGYJTAY.js.map +1 -0
  275. package/dist/reddit-NU2N3LZD.js +27 -0
  276. package/dist/refresh-EBVJ2C6L.js +95 -0
  277. package/dist/refresh-EBVJ2C6L.js.map +1 -0
  278. package/dist/release-V43YB2PY.js +61 -0
  279. package/dist/release-V43YB2PY.js.map +1 -0
  280. package/dist/remove-QPSWLFI4.js +51 -0
  281. package/dist/remove-QPSWLFI4.js.map +1 -0
  282. package/dist/reopen-GQ66NMWF.js +64 -0
  283. package/dist/reopen-GQ66NMWF.js.map +1 -0
  284. package/dist/rerun-PZK275DY.js +86 -0
  285. package/dist/rerun-PZK275DY.js.map +1 -0
  286. package/dist/research-FMM6AWZC.js +62 -0
  287. package/dist/research-GEOCUBXB.js +263 -0
  288. package/dist/research-GEOCUBXB.js.map +1 -0
  289. package/dist/reset-REXJ6AUK.js +55 -0
  290. package/dist/reset-REXJ6AUK.js.map +1 -0
  291. package/dist/reset-Y72IVESB.js +55 -0
  292. package/dist/reset-Y72IVESB.js.map +1 -0
  293. package/dist/resolve-OGX7C4TV.js +122 -0
  294. package/dist/resolve-OGX7C4TV.js.map +1 -0
  295. package/dist/retry-CD6JAQ3F.js +61 -0
  296. package/dist/retry-CD6JAQ3F.js.map +1 -0
  297. package/dist/retry-TCUBBFR5.js +63 -0
  298. package/dist/retry-TCUBBFR5.js.map +1 -0
  299. package/dist/run-A5ZDXTOI.js +66 -0
  300. package/dist/run-A5ZDXTOI.js.map +1 -0
  301. package/dist/run-EUO34T2J.js +61 -0
  302. package/dist/scaffold-ad-SW2HEWM3.js +1550 -0
  303. package/dist/scaffold-ad-SW2HEWM3.js.map +1 -0
  304. package/dist/scaffold-static-ad-ECTJL54Y.js +967 -0
  305. package/dist/scaffold-static-ad-ECTJL54Y.js.map +1 -0
  306. package/dist/scaffold-video-EI7U7RBK.js +874 -0
  307. package/dist/scaffold-video-EI7U7RBK.js.map +1 -0
  308. package/dist/schedule-S5YZJZ5U.js +62 -0
  309. package/dist/schedule-S5YZJZ5U.js.map +1 -0
  310. package/dist/scheduled-agents-N4LJRM4C.js +49 -0
  311. package/dist/schema-R7JWWOF4.js +133 -0
  312. package/dist/schema-R7JWWOF4.js.map +1 -0
  313. package/dist/search-KHMQH3AT.js +175 -0
  314. package/dist/search-KHMQH3AT.js.map +1 -0
  315. package/dist/select-O2FN2JEQ.js +95 -0
  316. package/dist/select-O2FN2JEQ.js.map +1 -0
  317. package/dist/sends-BQZM5PLS.js +310 -0
  318. package/dist/sends-BQZM5PLS.js.map +1 -0
  319. package/dist/set-prompt-2HASHGWC.js +187 -0
  320. package/dist/set-prompt-2HASHGWC.js.map +1 -0
  321. package/dist/setup-links-GYSE56GX.js +142 -0
  322. package/dist/setup-links-GYSE56GX.js.map +1 -0
  323. package/dist/site-4SKM7RKG.js +178 -0
  324. package/dist/site-4SKM7RKG.js.map +1 -0
  325. package/dist/sources-FQ2UZTHL.js +30 -0
  326. package/dist/sources-R2NKNC6J.js +422 -0
  327. package/dist/sources-R2NKNC6J.js.map +1 -0
  328. package/dist/stale-W756ACKC.js +64 -0
  329. package/dist/stale-W756ACKC.js.map +1 -0
  330. package/dist/status-SE2VZJJB.js +63 -0
  331. package/dist/status-SE2VZJJB.js.map +1 -0
  332. package/dist/stock-KXJ26BY4.js +179 -0
  333. package/dist/studio-SYKOSNDB.js +49 -0
  334. package/dist/sync-LJGSODK3.js +55 -0
  335. package/dist/sync-LJGSODK3.js.map +1 -0
  336. package/dist/sync-definition-QR2N233R.js +54 -0
  337. package/dist/tags-4BAVFH4S.js +225 -0
  338. package/dist/tags-4BAVFH4S.js.map +1 -0
  339. package/dist/tags-5SBMRC2A.js +21 -0
  340. package/dist/tags-5SBMRC2A.js.map +1 -0
  341. package/dist/tags-PYWFSBTR.js +26 -0
  342. package/dist/tags-QQU3OKMZ.js +21 -0
  343. package/dist/tags-QQU3OKMZ.js.map +1 -0
  344. package/dist/tags-YYLNF3PK.js +21 -0
  345. package/dist/tags-YYLNF3PK.js.map +1 -0
  346. package/dist/targeting-criteria-RJFLFICN.js +113 -0
  347. package/dist/targets-S2MT2PNB.js +103 -0
  348. package/dist/targets-S2MT2PNB.js.map +1 -0
  349. package/dist/templates-ZE5TOGRT.js +179 -0
  350. package/dist/templates-ZE5TOGRT.js.map +1 -0
  351. package/dist/testimonials-DII5DYLR.js +32 -0
  352. package/dist/top-companies-PGIAEHDF.js +109 -0
  353. package/dist/top-companies-PGIAEHDF.js.map +1 -0
  354. package/dist/translate-GXTS633J.js +599 -0
  355. package/dist/translate-GXTS633J.js.map +1 -0
  356. package/dist/triggers-2PTONXRU.js +142 -0
  357. package/dist/triggers-2PTONXRU.js.map +1 -0
  358. package/dist/unlink-XRMYJ6DB.js +68 -0
  359. package/dist/unlink-XRMYJ6DB.js.map +1 -0
  360. package/dist/unstage-FY7A3YFF.js +85 -0
  361. package/dist/unstage-FY7A3YFF.js.map +1 -0
  362. package/dist/unstage-RM2RLXKD.js +96 -0
  363. package/dist/unstage-RM2RLXKD.js.map +1 -0
  364. package/dist/update-E5SRBXQR.js +143 -0
  365. package/dist/update-E5SRBXQR.js.map +1 -0
  366. package/dist/update-PJ67D2OG.js +156 -0
  367. package/dist/update-PJ67D2OG.js.map +1 -0
  368. package/dist/update-S4562V3O.js +64 -0
  369. package/dist/update-S4562V3O.js.map +1 -0
  370. package/dist/update-V6YVEUI2.js +99 -0
  371. package/dist/update-V6YVEUI2.js.map +1 -0
  372. package/dist/upload-R6CQVLKF.js +127 -0
  373. package/dist/upload-R6CQVLKF.js.map +1 -0
  374. package/dist/url-options-JOKU46F2.js +128 -0
  375. package/dist/url-options-JOKU46F2.js.map +1 -0
  376. package/dist/url-params-7U2XMOWF.js +99 -0
  377. package/dist/url-params-7U2XMOWF.js.map +1 -0
  378. package/dist/validate-7YPOUKPB.js +90 -0
  379. package/dist/validate-7YPOUKPB.js.map +1 -0
  380. package/dist/videos-LICG6ACJ.js +39 -0
  381. package/dist/viewer-check-L4B4LIAX.js +69 -0
  382. package/dist/web-BA2PGTWU.js +141 -0
  383. package/dist/web-BA2PGTWU.js.map +1 -0
  384. package/dist/winning-ads-C6S2C5VP.js +62 -0
  385. package/dist/write-commands-7SJ3BOW5.js +1016 -0
  386. package/dist/write-commands-7SJ3BOW5.js.map +1 -0
  387. package/dist/x-CZHRC6U7.js +47 -0
  388. package/package.json +1 -1
  389. package/dist/account-AL2ZDSR7.js +0 -79
  390. package/dist/account-AL2ZDSR7.js.map +0 -1
  391. package/dist/account-F6MHQ64I.js +0 -80
  392. package/dist/account-writes-ISE4U2FQ.js +0 -66
  393. package/dist/accounts-HAFCLSR5.js +0 -77
  394. package/dist/accounts-HAFCLSR5.js.map +0 -1
  395. package/dist/accounts-O5MFO3QQ.js +0 -611
  396. package/dist/accounts-O5MFO3QQ.js.map +0 -1
  397. package/dist/actions-P35MEMGN.js +0 -55
  398. package/dist/ad-group-writes-UU5NNKSO.js +0 -170
  399. package/dist/ad-groups-CGFXZNIA.js +0 -68
  400. package/dist/ad-writes-NALDYWOR.js +0 -174
  401. package/dist/add-5GAN6CVO.js +0 -280
  402. package/dist/add-5GAN6CVO.js.map +0 -1
  403. package/dist/add-6DTC6X5G.js +0 -104
  404. package/dist/add-6DTC6X5G.js.map +0 -1
  405. package/dist/ads-C47NA2HH.js +0 -40
  406. package/dist/ads-PV7GZXPR.js +0 -77
  407. package/dist/advertisers-AE75CGVE.js +0 -120
  408. package/dist/advertisers-AE75CGVE.js.map +0 -1
  409. package/dist/analytics-FKCXIMPO.js +0 -1958
  410. package/dist/analytics-FKCXIMPO.js.map +0 -1
  411. package/dist/analytics-FPWQQGRM.js +0 -433
  412. package/dist/analytics-FPWQQGRM.js.map +0 -1
  413. package/dist/animate-FWWHSYPL.js +0 -480
  414. package/dist/assign-ABN2AQ4J.js +0 -77
  415. package/dist/assign-ABN2AQ4J.js.map +0 -1
  416. package/dist/audience-size-GNBJY35X.js +0 -94
  417. package/dist/audience-size-GNBJY35X.js.map +0 -1
  418. package/dist/audiences-VEKGLWBG.js +0 -268
  419. package/dist/audit-3VS63TBW.js +0 -151
  420. package/dist/audit-3VS63TBW.js.map +0 -1
  421. package/dist/autocomplete-VS3XG3B7.js +0 -111
  422. package/dist/autocomplete-VS3XG3B7.js.map +0 -1
  423. package/dist/avatars-EKCKHCC3.js +0 -38
  424. package/dist/bid-pricing-Q72B65AY.js +0 -99
  425. package/dist/bid-pricing-Q72B65AY.js.map +0 -1
  426. package/dist/brand-C6PFGGQN.js +0 -22
  427. package/dist/brief-UO52ZHFI.js +0 -477
  428. package/dist/brief-UO52ZHFI.js.map +0 -1
  429. package/dist/campaign-groups-KFFYQPU3.js +0 -95
  430. package/dist/campaign-groups-KFFYQPU3.js.map +0 -1
  431. package/dist/campaign-writes-FHOS5XZY.js +0 -165
  432. package/dist/campaign-writes-FHOS5XZY.js.map +0 -1
  433. package/dist/campaign-writes-SX52CJYW.js +0 -170
  434. package/dist/campaigns-2NHWBF5C.js +0 -109
  435. package/dist/campaigns-2NHWBF5C.js.map +0 -1
  436. package/dist/campaigns-KZYZTXDS.js +0 -107
  437. package/dist/campaigns-X3DPCCSN.js +0 -76
  438. package/dist/canvas-DPCBGW7K.js +0 -46
  439. package/dist/capabilities-DJFTRJKS.js +0 -144
  440. package/dist/capabilities-DJFTRJKS.js.map +0 -1
  441. package/dist/catalog-ME44ZRZF.js +0 -65
  442. package/dist/catalogs-G3YEVG6S.js +0 -128
  443. package/dist/chatgpt-QNUN63YS.js +0 -47
  444. package/dist/chats-D2CSDX5Q.js +0 -262
  445. package/dist/chats-D2CSDX5Q.js.map +0 -1
  446. package/dist/chunk-2QHODRR6.js +0 -19
  447. package/dist/chunk-35XWJEWH.js +0 -274
  448. package/dist/chunk-3G3ZDLMI.js +0 -197
  449. package/dist/chunk-3HJLHTWP.js +0 -163
  450. package/dist/chunk-3HJLHTWP.js.map +0 -1
  451. package/dist/chunk-3IBYKLXR.js +0 -337
  452. package/dist/chunk-4AUMTNVB.js +0 -346
  453. package/dist/chunk-4BQXAE7Z.js +0 -494
  454. package/dist/chunk-54UVGFX3.js +0 -440
  455. package/dist/chunk-5Y5UAJWD.js +0 -111
  456. package/dist/chunk-5ZDLTE5T.js +0 -159
  457. package/dist/chunk-647RO73Q.js +0 -92
  458. package/dist/chunk-7YCRFMXF.js +0 -433
  459. package/dist/chunk-7ZHMGXE2.js +0 -819
  460. package/dist/chunk-A4LOJ2VD.js +0 -23
  461. package/dist/chunk-AEOSAVVL.js +0 -310
  462. package/dist/chunk-CHSNHVYF.js +0 -3182
  463. package/dist/chunk-CHSNHVYF.js.map +0 -1
  464. package/dist/chunk-CSYSX4D2.js +0 -175
  465. package/dist/chunk-DWHIOO7E.js +0 -390
  466. package/dist/chunk-DWHIOO7E.js.map +0 -1
  467. package/dist/chunk-EDLZGTGN.js +0 -216
  468. package/dist/chunk-EDLZGTGN.js.map +0 -1
  469. package/dist/chunk-FD27ZDVP.js +0 -304
  470. package/dist/chunk-GBMP4F45.js +0 -3147
  471. package/dist/chunk-GLCPTMPG.js +0 -5189
  472. package/dist/chunk-HBTF25YG.js +0 -592
  473. package/dist/chunk-HQSCJYZO.js +0 -26
  474. package/dist/chunk-IBURXTL4.js +0 -509
  475. package/dist/chunk-IR6D7K4H.js +0 -382
  476. package/dist/chunk-J5IY3GVE.js +0 -96
  477. package/dist/chunk-JQJDXPCO.js +0 -103
  478. package/dist/chunk-K66OLA6Y.js +0 -4383
  479. package/dist/chunk-K7FZXIOZ.js +0 -60
  480. package/dist/chunk-KFE3S63W.js +0 -1441
  481. package/dist/chunk-KHRXPQID.js +0 -169
  482. package/dist/chunk-KLBTXETO.js +0 -23992
  483. package/dist/chunk-KLBTXETO.js.map +0 -1
  484. package/dist/chunk-KQTYTCKQ.js +0 -98
  485. package/dist/chunk-LYBXCXJB.js +0 -160
  486. package/dist/chunk-LZ73CZGP.js +0 -188
  487. package/dist/chunk-MELOSESI.js +0 -20
  488. package/dist/chunk-MXYBTMKB.js +0 -363
  489. package/dist/chunk-NPY4QUMQ.js +0 -622
  490. package/dist/chunk-OZRUJVIQ.js +0 -206
  491. package/dist/chunk-QRP3PXWN.js +0 -455
  492. package/dist/chunk-RPUSTYHL.js +0 -170
  493. package/dist/chunk-RPUSTYHL.js.map +0 -1
  494. package/dist/chunk-S77PZVYM.js +0 -297
  495. package/dist/chunk-SHL7LOC3.js +0 -51
  496. package/dist/chunk-SSJK7FEV.js +0 -2886
  497. package/dist/chunk-SSJK7FEV.js.map +0 -1
  498. package/dist/chunk-TT5R35PJ.js +0 -207
  499. package/dist/chunk-ULJ5RFOV.js +0 -76
  500. package/dist/chunk-VB6WJJR3.js +0 -1830
  501. package/dist/chunk-W3ZHJJVT.js +0 -139
  502. package/dist/chunk-XF4JUKVF.js +0 -6151
  503. package/dist/chunk-XF4JUKVF.js.map +0 -1
  504. package/dist/chunk-Y6O7EWYY.js +0 -57
  505. package/dist/chunk-YRQYA2LR.js +0 -217
  506. package/dist/chunk-YRQYA2LR.js.map +0 -1
  507. package/dist/chunk-Z2EOC6PL.js +0 -6667
  508. package/dist/chunk-ZEYEWPK6.js +0 -1079
  509. package/dist/claim-FZ5OQLMU.js +0 -197
  510. package/dist/claim-FZ5OQLMU.js.map +0 -1
  511. package/dist/companies-DNI634RC.js +0 -195
  512. package/dist/companies-DNI634RC.js.map +0 -1
  513. package/dist/complete-2FZMGJV5.js +0 -81
  514. package/dist/complete-2FZMGJV5.js.map +0 -1
  515. package/dist/connect-QCOGEPP4.js +0 -36
  516. package/dist/conversation-6IOGV7B7.js +0 -93
  517. package/dist/conversation-6IOGV7B7.js.map +0 -1
  518. package/dist/conversion-report-N4HANYOB.js +0 -125
  519. package/dist/conversion-writes-LW4HQKK5.js +0 -120
  520. package/dist/conversions-4SRZPBBX.js +0 -135
  521. package/dist/conversions-4SRZPBBX.js.map +0 -1
  522. package/dist/conversions-TS723AZV.js +0 -76
  523. package/dist/create-BJNMO6HT.js +0 -207
  524. package/dist/create-BJNMO6HT.js.map +0 -1
  525. package/dist/create-FX4OJ2XF.js +0 -59
  526. package/dist/create-FX4OJ2XF.js.map +0 -1
  527. package/dist/create-RM7HV77Y.js +0 -130
  528. package/dist/create-RM7HV77Y.js.map +0 -1
  529. package/dist/create-VXM34ZWH.js +0 -235
  530. package/dist/create-VXM34ZWH.js.map +0 -1
  531. package/dist/creatives-JSWBFQ5R.js +0 -182
  532. package/dist/creatives-JSWBFQ5R.js.map +0 -1
  533. package/dist/creatives-SJTJU6VT.js +0 -51
  534. package/dist/credentials-VOZTILFO.js +0 -1055
  535. package/dist/credentials-VOZTILFO.js.map +0 -1
  536. package/dist/critique-65W63MFZ.js +0 -213
  537. package/dist/critique-65W63MFZ.js.map +0 -1
  538. package/dist/critique-ZS4ON3SU.js +0 -1449
  539. package/dist/critique-ZS4ON3SU.js.map +0 -1
  540. package/dist/crm-52ROSWH5.js +0 -224
  541. package/dist/crm-52ROSWH5.js.map +0 -1
  542. package/dist/crm-R5IXIFIV.js +0 -318
  543. package/dist/crm-R5IXIFIV.js.map +0 -1
  544. package/dist/customers-4AWBFDUF.js +0 -56
  545. package/dist/delete-AIGE4Y4H.js +0 -63
  546. package/dist/delete-AIGE4Y4H.js.map +0 -1
  547. package/dist/delete-HGHXY24R.js +0 -54
  548. package/dist/delete-HGHXY24R.js.map +0 -1
  549. package/dist/delete-M2GDLPYN.js +0 -66
  550. package/dist/delete-M2GDLPYN.js.map +0 -1
  551. package/dist/demographics-NTWB2IMG.js +0 -138
  552. package/dist/demographics-NTWB2IMG.js.map +0 -1
  553. package/dist/discard-2WWQG6OU.js +0 -66
  554. package/dist/discard-2WWQG6OU.js.map +0 -1
  555. package/dist/domain-Y2LT6JLT.js +0 -98
  556. package/dist/domain-Y2LT6JLT.js.map +0 -1
  557. package/dist/draft-EJXNNJ3Y.js +0 -306
  558. package/dist/draft-EJXNNJ3Y.js.map +0 -1
  559. package/dist/draft-FJ7WHIXW.js +0 -328
  560. package/dist/draft-FJ7WHIXW.js.map +0 -1
  561. package/dist/draft-SLHAKJ2A.js +0 -217
  562. package/dist/draft-SLHAKJ2A.js.map +0 -1
  563. package/dist/draft-THPZFASM.js +0 -281
  564. package/dist/facets-U7AQC4H6.js +0 -114
  565. package/dist/facets-U7AQC4H6.js.map +0 -1
  566. package/dist/feedback-XNJQ63DS.js +0 -66
  567. package/dist/feedback-record-FDLMWMDG.js +0 -175
  568. package/dist/feedback-record-FDLMWMDG.js.map +0 -1
  569. package/dist/fetch-W7NULDEO.js +0 -176
  570. package/dist/fetch-W7NULDEO.js.map +0 -1
  571. package/dist/find-OTDIX6V4.js +0 -134
  572. package/dist/fit-7237F5EB.js +0 -45
  573. package/dist/flows-KABCBS3S.js +0 -244
  574. package/dist/flows-KABCBS3S.js.map +0 -1
  575. package/dist/fonts-EMMX3KII.js +0 -34
  576. package/dist/forecast-GNODEIIC.js +0 -104
  577. package/dist/forecast-GNODEIIC.js.map +0 -1
  578. package/dist/funnel-AAX27NH4.js +0 -837
  579. package/dist/funnel-AAX27NH4.js.map +0 -1
  580. package/dist/ga4-UDQ2HA2J.js +0 -55
  581. package/dist/generate-MMBYB44G.js +0 -262
  582. package/dist/get-QEYJRLV3.js +0 -54
  583. package/dist/get-QEYJRLV3.js.map +0 -1
  584. package/dist/get-RTVUZM6E.js +0 -78
  585. package/dist/get-RTVUZM6E.js.map +0 -1
  586. package/dist/google-KTO3PLEU.js +0 -136
  587. package/dist/google-M7KEXVK5.js +0 -1872
  588. package/dist/google-ads-OK6IG3UV.js +0 -195
  589. package/dist/google-ads-OK6IG3UV.js.map +0 -1
  590. package/dist/gsc-P3QYGDV2.js +0 -30
  591. package/dist/history-DBIEYQHY.js +0 -67
  592. package/dist/history-PQUJKK26.js +0 -133
  593. package/dist/history-PQUJKK26.js.map +0 -1
  594. package/dist/hubspot-Y77VLY6Y.js +0 -779
  595. package/dist/hubspot-Y77VLY6Y.js.map +0 -1
  596. package/dist/icon-I43F77FV.js +0 -137
  597. package/dist/ideas-MIDU7YOA.js +0 -32
  598. package/dist/images-S254MS6O.js +0 -90
  599. package/dist/ingest-J4I3HKM3.js +0 -107
  600. package/dist/ingest-J4I3HKM3.js.map +0 -1
  601. package/dist/ingest-YV2NLDBE.js +0 -23
  602. package/dist/insights-ZIU6FJMS.js +0 -122
  603. package/dist/inspect-Q5NHBBHX.js +0 -189
  604. package/dist/inspect-Q5NHBBHX.js.map +0 -1
  605. package/dist/inspiration-P265QJ2H.js +0 -53
  606. package/dist/keyword-metrics-PDY4ZXSP.js +0 -197
  607. package/dist/keyword-metrics-PDY4ZXSP.js.map +0 -1
  608. package/dist/keywords-for-site-GALSCV77.js +0 -128
  609. package/dist/keywords-for-site-GALSCV77.js.map +0 -1
  610. package/dist/landing-CJYGWCK4.js +0 -28
  611. package/dist/leads-PHKG6CP3.js +0 -90
  612. package/dist/leads-PHKG6CP3.js.map +0 -1
  613. package/dist/learn-3VO6DXUX.js +0 -203
  614. package/dist/learn-3VO6DXUX.js.map +0 -1
  615. package/dist/line-item-writes-E6MZPIZZ.js +0 -208
  616. package/dist/line-item-writes-E6MZPIZZ.js.map +0 -1
  617. package/dist/line-items-7ZGIKEF2.js +0 -103
  618. package/dist/link-QYAW6A2W.js +0 -64
  619. package/dist/link-QYAW6A2W.js.map +0 -1
  620. package/dist/linkedin-FFSDSGGS.js +0 -1008
  621. package/dist/linkedin-FFSDSGGS.js.map +0 -1
  622. package/dist/list-5IC6KIKO.js +0 -63
  623. package/dist/list-5IC6KIKO.js.map +0 -1
  624. package/dist/list-NVQC5SNY.js +0 -151
  625. package/dist/list-NVQC5SNY.js.map +0 -1
  626. package/dist/list-SAV3LQHY.js +0 -303
  627. package/dist/list-SAV3LQHY.js.map +0 -1
  628. package/dist/locations-74TPQWAT.js +0 -67
  629. package/dist/log-XZPVOALD.js +0 -92
  630. package/dist/log-XZPVOALD.js.map +0 -1
  631. package/dist/logo-2IP663QO.js +0 -18
  632. package/dist/lookup-XK45W2SH.js +0 -22
  633. package/dist/make-LCNP76OF.js +0 -593
  634. package/dist/make-LCNP76OF.js.map +0 -1
  635. package/dist/map-4J5WIWIG.js +0 -404
  636. package/dist/map-4J5WIWIG.js.map +0 -1
  637. package/dist/mcp-XXD7ZQCP.js +0 -476
  638. package/dist/mcp-XXD7ZQCP.js.map +0 -1
  639. package/dist/media-sources-O6ZRUA3N.js +0 -32
  640. package/dist/members-D5ZYLS4Y.js +0 -44
  641. package/dist/members-D5ZYLS4Y.js.map +0 -1
  642. package/dist/models-7U3GRYHF.js +0 -155
  643. package/dist/normalize-PCNC6E2N.js +0 -138
  644. package/dist/normalize-PCNC6E2N.js.map +0 -1
  645. package/dist/options-MQ65VEVD.js +0 -121
  646. package/dist/options-MQ65VEVD.js.map +0 -1
  647. package/dist/performance-6QW2KEEQ.js +0 -24
  648. package/dist/pixels-45A55MOP.js +0 -60
  649. package/dist/promoted-tweet-writes-JPLHY3GM.js +0 -180
  650. package/dist/promoted-tweet-writes-JPLHY3GM.js.map +0 -1
  651. package/dist/promoted-tweets-SURKMHFI.js +0 -119
  652. package/dist/publish-HCQ6MXLB.js +0 -322
  653. package/dist/publish-HCQ6MXLB.js.map +0 -1
  654. package/dist/reddit-GIP3ADMS.js +0 -26
  655. package/dist/refresh-UXQSLCR3.js +0 -94
  656. package/dist/refresh-UXQSLCR3.js.map +0 -1
  657. package/dist/release-5KVLXNP6.js +0 -60
  658. package/dist/release-5KVLXNP6.js.map +0 -1
  659. package/dist/remove-6FIVKCJI.js +0 -50
  660. package/dist/remove-6FIVKCJI.js.map +0 -1
  661. package/dist/reopen-YM5LNOLB.js +0 -63
  662. package/dist/reopen-YM5LNOLB.js.map +0 -1
  663. package/dist/rerun-CET74VPF.js +0 -85
  664. package/dist/rerun-CET74VPF.js.map +0 -1
  665. package/dist/research-EY7C7JJY.js +0 -62
  666. package/dist/research-YOGE7GT2.js +0 -262
  667. package/dist/research-YOGE7GT2.js.map +0 -1
  668. package/dist/reset-C4UHQ3EU.js +0 -54
  669. package/dist/reset-C4UHQ3EU.js.map +0 -1
  670. package/dist/reset-OLVB6AE6.js +0 -54
  671. package/dist/reset-OLVB6AE6.js.map +0 -1
  672. package/dist/resolve-XYH2GDAE.js +0 -121
  673. package/dist/resolve-XYH2GDAE.js.map +0 -1
  674. package/dist/retry-726GKI6V.js +0 -62
  675. package/dist/retry-726GKI6V.js.map +0 -1
  676. package/dist/retry-7EELDEQP.js +0 -60
  677. package/dist/retry-7EELDEQP.js.map +0 -1
  678. package/dist/run-P4KR2MXC.js +0 -65
  679. package/dist/run-P4KR2MXC.js.map +0 -1
  680. package/dist/run-XQ7EM3JT.js +0 -60
  681. package/dist/scaffold-ad-U2KSHKBC.js +0 -1549
  682. package/dist/scaffold-ad-U2KSHKBC.js.map +0 -1
  683. package/dist/scaffold-static-ad-63LQKUSO.js +0 -966
  684. package/dist/scaffold-static-ad-63LQKUSO.js.map +0 -1
  685. package/dist/scaffold-video-MUS6LHJQ.js +0 -873
  686. package/dist/scaffold-video-MUS6LHJQ.js.map +0 -1
  687. package/dist/schedule-RDK4GEPI.js +0 -61
  688. package/dist/schedule-RDK4GEPI.js.map +0 -1
  689. package/dist/scheduled-agents-6U44QE76.js +0 -49
  690. package/dist/schema-CHJDC7GQ.js +0 -129
  691. package/dist/schema-CHJDC7GQ.js.map +0 -1
  692. package/dist/search-PMJRU3C4.js +0 -174
  693. package/dist/search-PMJRU3C4.js.map +0 -1
  694. package/dist/select-4Z7BW5RH.js +0 -94
  695. package/dist/select-4Z7BW5RH.js.map +0 -1
  696. package/dist/sends-WGJVQUMF.js +0 -309
  697. package/dist/sends-WGJVQUMF.js.map +0 -1
  698. package/dist/set-prompt-OB2V3XJP.js +0 -186
  699. package/dist/set-prompt-OB2V3XJP.js.map +0 -1
  700. package/dist/setup-links-REPREN3C.js +0 -141
  701. package/dist/setup-links-REPREN3C.js.map +0 -1
  702. package/dist/site-WFSWIA3S.js +0 -177
  703. package/dist/site-WFSWIA3S.js.map +0 -1
  704. package/dist/sources-AMI2AWKZ.js +0 -421
  705. package/dist/sources-AMI2AWKZ.js.map +0 -1
  706. package/dist/sources-YBQ6KPFM.js +0 -30
  707. package/dist/stale-DAYXOY3Z.js +0 -63
  708. package/dist/stale-DAYXOY3Z.js.map +0 -1
  709. package/dist/status-7F2KHFGA.js +0 -62
  710. package/dist/status-7F2KHFGA.js.map +0 -1
  711. package/dist/stock-2YCDN3N6.js +0 -179
  712. package/dist/studio-C5K3YX3P.js +0 -49
  713. package/dist/sync-GWTLKZTU.js +0 -54
  714. package/dist/sync-GWTLKZTU.js.map +0 -1
  715. package/dist/sync-definition-ILS2B2BJ.js +0 -53
  716. package/dist/tags-3WPW6PTV.js +0 -26
  717. package/dist/tags-6342FQEB.js +0 -20
  718. package/dist/tags-6342FQEB.js.map +0 -1
  719. package/dist/tags-ABHSX6M5.js +0 -20
  720. package/dist/tags-ABHSX6M5.js.map +0 -1
  721. package/dist/tags-FJIBBBRG.js +0 -20
  722. package/dist/tags-FJIBBBRG.js.map +0 -1
  723. package/dist/tags-KFYLZLB3.js +0 -224
  724. package/dist/tags-KFYLZLB3.js.map +0 -1
  725. package/dist/targeting-criteria-NR47AF5C.js +0 -113
  726. package/dist/targets-L56KOVQE.js +0 -102
  727. package/dist/targets-L56KOVQE.js.map +0 -1
  728. package/dist/templates-B6XGDYUF.js +0 -178
  729. package/dist/templates-B6XGDYUF.js.map +0 -1
  730. package/dist/testimonials-CVC4YIXO.js +0 -32
  731. package/dist/top-companies-45X3DT7Z.js +0 -108
  732. package/dist/top-companies-45X3DT7Z.js.map +0 -1
  733. package/dist/translate-TA5KQIU7.js +0 -598
  734. package/dist/translate-TA5KQIU7.js.map +0 -1
  735. package/dist/triggers-22EMIVFD.js +0 -141
  736. package/dist/triggers-22EMIVFD.js.map +0 -1
  737. package/dist/unlink-65KUN6ID.js +0 -67
  738. package/dist/unlink-65KUN6ID.js.map +0 -1
  739. package/dist/unstage-2E3I5SWF.js +0 -84
  740. package/dist/unstage-2E3I5SWF.js.map +0 -1
  741. package/dist/unstage-4ZEULXEQ.js +0 -95
  742. package/dist/unstage-4ZEULXEQ.js.map +0 -1
  743. package/dist/update-2S7CSEAW.js +0 -63
  744. package/dist/update-2S7CSEAW.js.map +0 -1
  745. package/dist/update-7NCOTAQZ.js +0 -98
  746. package/dist/update-7NCOTAQZ.js.map +0 -1
  747. package/dist/update-D6DJC6T7.js +0 -155
  748. package/dist/update-D6DJC6T7.js.map +0 -1
  749. package/dist/update-KREBPGBH.js +0 -142
  750. package/dist/update-KREBPGBH.js.map +0 -1
  751. package/dist/upload-O6NHRPS7.js +0 -126
  752. package/dist/upload-O6NHRPS7.js.map +0 -1
  753. package/dist/url-options-GGXAL3J4.js +0 -127
  754. package/dist/url-options-GGXAL3J4.js.map +0 -1
  755. package/dist/url-params-3EFGVTZZ.js +0 -98
  756. package/dist/url-params-3EFGVTZZ.js.map +0 -1
  757. package/dist/validate-LDBAAXQO.js +0 -89
  758. package/dist/validate-LDBAAXQO.js.map +0 -1
  759. package/dist/videos-YSXYGTBM.js +0 -39
  760. package/dist/viewer-check-45T2HLAH.js +0 -69
  761. package/dist/web-IGIGVEKS.js +0 -140
  762. package/dist/web-IGIGVEKS.js.map +0 -1
  763. package/dist/winning-ads-ASH5DSV3.js +0 -62
  764. package/dist/write-commands-5C7FUOVN.js +0 -1015
  765. package/dist/write-commands-5C7FUOVN.js.map +0 -1
  766. package/dist/x-BFSKFCZD.js +0 -47
  767. /package/dist/{account-F6MHQ64I.js.map → account-4H7QVBRK.js.map} +0 -0
  768. /package/dist/{account-writes-ISE4U2FQ.js.map → account-writes-AK42HGRM.js.map} +0 -0
  769. /package/dist/{actions-P35MEMGN.js.map → actions-6TQMSVWD.js.map} +0 -0
  770. /package/dist/{ad-group-writes-UU5NNKSO.js.map → ad-group-writes-QQS4223F.js.map} +0 -0
  771. /package/dist/{ad-groups-CGFXZNIA.js.map → ad-groups-WGPDPUI2.js.map} +0 -0
  772. /package/dist/{ad-writes-NALDYWOR.js.map → ad-writes-XE2IE4DS.js.map} +0 -0
  773. /package/dist/{ads-C47NA2HH.js.map → ads-AGYCVD62.js.map} +0 -0
  774. /package/dist/{ads-PV7GZXPR.js.map → ads-BCOSQALY.js.map} +0 -0
  775. /package/dist/{animate-FWWHSYPL.js.map → animate-AIZ3GS4J.js.map} +0 -0
  776. /package/dist/{audiences-VEKGLWBG.js.map → audiences-TGD5US2M.js.map} +0 -0
  777. /package/dist/{avatars-EKCKHCC3.js.map → avatars-467OSBD6.js.map} +0 -0
  778. /package/dist/{brand-C6PFGGQN.js.map → brand-YRTEPGBK.js.map} +0 -0
  779. /package/dist/{campaign-writes-SX52CJYW.js.map → campaign-writes-SXLZFYF6.js.map} +0 -0
  780. /package/dist/{campaigns-KZYZTXDS.js.map → campaigns-OYMXDGWX.js.map} +0 -0
  781. /package/dist/{campaigns-X3DPCCSN.js.map → campaigns-YS3OGQXO.js.map} +0 -0
  782. /package/dist/{canvas-DPCBGW7K.js.map → canvas-YQFG52IG.js.map} +0 -0
  783. /package/dist/{catalog-ME44ZRZF.js.map → catalog-XLXIM7IW.js.map} +0 -0
  784. /package/dist/{catalogs-G3YEVG6S.js.map → catalogs-BRXEDE56.js.map} +0 -0
  785. /package/dist/{chatgpt-QNUN63YS.js.map → chatgpt-7W75X3ER.js.map} +0 -0
  786. /package/dist/{chunk-7YCRFMXF.js.map → chunk-24EB7EDR.js.map} +0 -0
  787. /package/dist/{chunk-5ZDLTE5T.js.map → chunk-2AOE2MZQ.js.map} +0 -0
  788. /package/dist/{chunk-IBURXTL4.js.map → chunk-2VPBIT65.js.map} +0 -0
  789. /package/dist/{chunk-NPY4QUMQ.js.map → chunk-54C6YDGJ.js.map} +0 -0
  790. /package/dist/{chunk-LZ73CZGP.js.map → chunk-5WCSKQ7Z.js.map} +0 -0
  791. /package/dist/{chunk-3G3ZDLMI.js.map → chunk-5ZNTADVR.js.map} +0 -0
  792. /package/dist/{chunk-AEOSAVVL.js.map → chunk-6F7DVPOS.js.map} +0 -0
  793. /package/dist/{chunk-FD27ZDVP.js.map → chunk-6NY2GPR4.js.map} +0 -0
  794. /package/dist/{chunk-TT5R35PJ.js.map → chunk-6Y7ZBENQ.js.map} +0 -0
  795. /package/dist/{chunk-5Y5UAJWD.js.map → chunk-7CTMH5AK.js.map} +0 -0
  796. /package/dist/{chunk-35XWJEWH.js.map → chunk-7J6EHOH6.js.map} +0 -0
  797. /package/dist/{chunk-Z2EOC6PL.js.map → chunk-ASI4P6X2.js.map} +0 -0
  798. /package/dist/{chunk-2QHODRR6.js.map → chunk-C46GUI2S.js.map} +0 -0
  799. /package/dist/{chunk-K7FZXIOZ.js.map → chunk-CWYAELVG.js.map} +0 -0
  800. /package/dist/{chunk-MXYBTMKB.js.map → chunk-DCRPXOJJ.js.map} +0 -0
  801. /package/dist/{chunk-54UVGFX3.js.map → chunk-EAP4O4FE.js.map} +0 -0
  802. /package/dist/{chunk-K66OLA6Y.js.map → chunk-FPOGPFAG.js.map} +0 -0
  803. /package/dist/{chunk-JQJDXPCO.js.map → chunk-FUHN4MFY.js.map} +0 -0
  804. /package/dist/{chunk-S77PZVYM.js.map → chunk-FYGR3I2A.js.map} +0 -0
  805. /package/dist/{chunk-OZRUJVIQ.js.map → chunk-H3427GPU.js.map} +0 -0
  806. /package/dist/{chunk-KQTYTCKQ.js.map → chunk-HZUDRKGR.js.map} +0 -0
  807. /package/dist/{chunk-IR6D7K4H.js.map → chunk-I3ZR655O.js.map} +0 -0
  808. /package/dist/{chunk-J5IY3GVE.js.map → chunk-KMKEYI37.js.map} +0 -0
  809. /package/dist/{chunk-W3ZHJJVT.js.map → chunk-KS2QY6MK.js.map} +0 -0
  810. /package/dist/{chunk-GLCPTMPG.js.map → chunk-LYQJ4PZW.js.map} +0 -0
  811. /package/dist/{chunk-GBMP4F45.js.map → chunk-MACCF4JZ.js.map} +0 -0
  812. /package/dist/{chunk-CSYSX4D2.js.map → chunk-N4LAYIIN.js.map} +0 -0
  813. /package/dist/{chunk-4AUMTNVB.js.map → chunk-NA63BH7V.js.map} +0 -0
  814. /package/dist/{chunk-KFE3S63W.js.map → chunk-NCWCZY5P.js.map} +0 -0
  815. /package/dist/{chunk-4BQXAE7Z.js.map → chunk-NDEE6G2J.js.map} +0 -0
  816. /package/dist/{chunk-7ZHMGXE2.js.map → chunk-NJXNU2G6.js.map} +0 -0
  817. /package/dist/{chunk-HQSCJYZO.js.map → chunk-P5T7OZKV.js.map} +0 -0
  818. /package/dist/{chunk-VB6WJJR3.js.map → chunk-PZXCWSKV.js.map} +0 -0
  819. /package/dist/{chunk-MELOSESI.js.map → chunk-R25YLW6H.js.map} +0 -0
  820. /package/dist/{chunk-Y6O7EWYY.js.map → chunk-RL5CP7N6.js.map} +0 -0
  821. /package/dist/{chunk-HBTF25YG.js.map → chunk-RX2DKU3W.js.map} +0 -0
  822. /package/dist/{chunk-647RO73Q.js.map → chunk-ULG4QRTV.js.map} +0 -0
  823. /package/dist/{chunk-QRP3PXWN.js.map → chunk-VL43TNIP.js.map} +0 -0
  824. /package/dist/{chunk-SHL7LOC3.js.map → chunk-VLMBTPXU.js.map} +0 -0
  825. /package/dist/{chunk-LYBXCXJB.js.map → chunk-VNUNE5AB.js.map} +0 -0
  826. /package/dist/{chunk-KHRXPQID.js.map → chunk-VYQ3QJ3C.js.map} +0 -0
  827. /package/dist/{chunk-A4LOJ2VD.js.map → chunk-WGUQHAJY.js.map} +0 -0
  828. /package/dist/{chunk-ZEYEWPK6.js.map → chunk-WKQG6TER.js.map} +0 -0
  829. /package/dist/{chunk-ULJ5RFOV.js.map → chunk-XFGAUP5B.js.map} +0 -0
  830. /package/dist/{chunk-3IBYKLXR.js.map → chunk-ZDMTXQ2Q.js.map} +0 -0
  831. /package/dist/{connect-QCOGEPP4.js.map → connect-FCXNVTXG.js.map} +0 -0
  832. /package/dist/{conversion-report-N4HANYOB.js.map → conversion-report-XQBJ6LG4.js.map} +0 -0
  833. /package/dist/{conversion-writes-LW4HQKK5.js.map → conversion-writes-UBCVXP2E.js.map} +0 -0
  834. /package/dist/{conversions-TS723AZV.js.map → conversions-D236RTUK.js.map} +0 -0
  835. /package/dist/{creatives-SJTJU6VT.js.map → creatives-FXUQ5WSD.js.map} +0 -0
  836. /package/dist/{customers-4AWBFDUF.js.map → customers-XH2DMTFH.js.map} +0 -0
  837. /package/dist/{draft-THPZFASM.js.map → draft-MNFJ4G3C.js.map} +0 -0
  838. /package/dist/{feedback-XNJQ63DS.js.map → feedback-EIZKS4JU.js.map} +0 -0
  839. /package/dist/{find-OTDIX6V4.js.map → find-FRRHAPWX.js.map} +0 -0
  840. /package/dist/{fit-7237F5EB.js.map → fit-UOFYFJ4Q.js.map} +0 -0
  841. /package/dist/{fonts-EMMX3KII.js.map → fonts-MXR3ZKDX.js.map} +0 -0
  842. /package/dist/{ga4-UDQ2HA2J.js.map → ga4-DV2AXCSL.js.map} +0 -0
  843. /package/dist/{generate-MMBYB44G.js.map → generate-3XYYITU6.js.map} +0 -0
  844. /package/dist/{google-M7KEXVK5.js.map → google-6OGZX47I.js.map} +0 -0
  845. /package/dist/{google-KTO3PLEU.js.map → google-QYYYSSXI.js.map} +0 -0
  846. /package/dist/{gsc-P3QYGDV2.js.map → gsc-TAKOF7J5.js.map} +0 -0
  847. /package/dist/{history-DBIEYQHY.js.map → history-Q3QCT64S.js.map} +0 -0
  848. /package/dist/{icon-I43F77FV.js.map → icon-L4RSS6PZ.js.map} +0 -0
  849. /package/dist/{ideas-MIDU7YOA.js.map → ideas-NFOW3HKJ.js.map} +0 -0
  850. /package/dist/{images-S254MS6O.js.map → images-2EFFUNNV.js.map} +0 -0
  851. /package/dist/{ingest-YV2NLDBE.js.map → ingest-2EIKN4QC.js.map} +0 -0
  852. /package/dist/{insights-ZIU6FJMS.js.map → insights-LNAXV2CG.js.map} +0 -0
  853. /package/dist/{inspiration-P265QJ2H.js.map → inspiration-S3DU4CMQ.js.map} +0 -0
  854. /package/dist/{landing-CJYGWCK4.js.map → landing-2ZB46LXH.js.map} +0 -0
  855. /package/dist/{line-items-7ZGIKEF2.js.map → line-items-5NECXUZT.js.map} +0 -0
  856. /package/dist/{locations-74TPQWAT.js.map → locations-2NKBJKBT.js.map} +0 -0
  857. /package/dist/{logo-2IP663QO.js.map → logo-Q5D7PZY6.js.map} +0 -0
  858. /package/dist/{lookup-XK45W2SH.js.map → lookup-ETWY47F7.js.map} +0 -0
  859. /package/dist/{media-sources-O6ZRUA3N.js.map → media-sources-ZXHEEP6T.js.map} +0 -0
  860. /package/dist/{models-7U3GRYHF.js.map → models-3Z6MDHQW.js.map} +0 -0
  861. /package/dist/{performance-6QW2KEEQ.js.map → performance-UF5VTY2U.js.map} +0 -0
  862. /package/dist/{pixels-45A55MOP.js.map → pixels-TZPF746S.js.map} +0 -0
  863. /package/dist/{promoted-tweets-SURKMHFI.js.map → promoted-tweets-LZKS5JIF.js.map} +0 -0
  864. /package/dist/{reddit-GIP3ADMS.js.map → reddit-NU2N3LZD.js.map} +0 -0
  865. /package/dist/{research-EY7C7JJY.js.map → research-FMM6AWZC.js.map} +0 -0
  866. /package/dist/{run-XQ7EM3JT.js.map → run-EUO34T2J.js.map} +0 -0
  867. /package/dist/{scheduled-agents-6U44QE76.js.map → scheduled-agents-N4LJRM4C.js.map} +0 -0
  868. /package/dist/{sources-YBQ6KPFM.js.map → sources-FQ2UZTHL.js.map} +0 -0
  869. /package/dist/{stock-2YCDN3N6.js.map → stock-KXJ26BY4.js.map} +0 -0
  870. /package/dist/{studio-C5K3YX3P.js.map → studio-SYKOSNDB.js.map} +0 -0
  871. /package/dist/{sync-definition-ILS2B2BJ.js.map → sync-definition-QR2N233R.js.map} +0 -0
  872. /package/dist/{tags-3WPW6PTV.js.map → tags-PYWFSBTR.js.map} +0 -0
  873. /package/dist/{targeting-criteria-NR47AF5C.js.map → targeting-criteria-RJFLFICN.js.map} +0 -0
  874. /package/dist/{testimonials-CVC4YIXO.js.map → testimonials-DII5DYLR.js.map} +0 -0
  875. /package/dist/{videos-YSXYGTBM.js.map → videos-LICG6ACJ.js.map} +0 -0
  876. /package/dist/{viewer-check-45T2HLAH.js.map → viewer-check-L4B4LIAX.js.map} +0 -0
  877. /package/dist/{winning-ads-ASH5DSV3.js.map → winning-ads-C6S2C5VP.js.map} +0 -0
  878. /package/dist/{x-BFSKFCZD.js.map → x-CZHRC6U7.js.map} +0 -0
@@ -0,0 +1,263 @@
1
+ import {
2
+ chatIdFromEnv,
3
+ failAvatarApi,
4
+ failValidation
5
+ } from "./chunk-MZL4H5PY.js";
6
+ import {
7
+ writeAvatars
8
+ } from "./chunk-PWGWMIIJ.js";
9
+ import {
10
+ AVATAR_HANDLE_PATTERN
11
+ } from "./chunk-7EPXVICM.js";
12
+ import "./chunk-GXDLWBOY.js";
13
+ import "./chunk-TEINLN64.js";
14
+ import "./chunk-ZJWUBJYQ.js";
15
+ import "./chunk-HR6IWNKE.js";
16
+ import "./chunk-NE4F3FHN.js";
17
+ import "./chunk-XBOK23HI.js";
18
+ import "./chunk-IFWP3ZDO.js";
19
+ import "./chunk-NAWWC5I3.js";
20
+ import {
21
+ registerSchema,
22
+ writeJson
23
+ } from "./chunk-NU7JSWVA.js";
24
+ import "./chunk-YQSBHWOI.js";
25
+
26
+ // src/commands/avatars/research.ts
27
+ import { defineCommand } from "citty";
28
+
29
+ // src/commands/avatars/researchHints.ts
30
+ function described(call) {
31
+ return call.who ?? [call.name, call.role, call.company].filter(Boolean).join(", ");
32
+ }
33
+ function rerunOf(call) {
34
+ return [
35
+ "baker avatars research",
36
+ call.who ? quoted(call.who) : void 0,
37
+ call.name ? `--name ${quoted(call.name)}` : void 0,
38
+ call.role ? `--role ${quoted(call.role)}` : void 0,
39
+ call.company ? `--company ${quoted(call.company)}` : void 0,
40
+ call.context ? `--context ${quoted(call.context)}` : void 0,
41
+ call.site ? `--site ${call.site}` : void 0,
42
+ call.handle ? `--handle ${call.handle}` : void 0,
43
+ call.profile ? `--profile ${call.profile}` : void 0
44
+ ].filter(Boolean).join(" ");
45
+ }
46
+ function quoted(text) {
47
+ return `"${text.replaceAll('"', '\\"')}"`;
48
+ }
49
+ function possibleHints(data, rerun, create) {
50
+ const lines = (data.candidates ?? []).map(
51
+ (candidate) => [candidate.name, candidate.headline, candidate.profile].filter(Boolean).join(" \u2014 ")
52
+ );
53
+ const example = data.candidates?.[0]?.profile ?? "<profile url>";
54
+ return [
55
+ `Not sure it is them: these profiles matched only in part, so no photo was taken.
56
+ ${lines.map((line) => ` - ${line}`).join("\n")}`,
57
+ `If the copy makes clear which one is the person (same company, same role, what else you know of them), take it: \`${rerun} --profile ${example}${create}\`. If none of them clearly is, treat this as not found \u2014 never put a face in an ad on a guess.`
58
+ ];
59
+ }
60
+ function notFoundHints(data, rerun, create) {
61
+ const searched = data.searched.map((query) => `"${query}"`).join(", ");
62
+ const company = data.query.company;
63
+ const sites = (data.possibleSites ?? []).map(
64
+ (site) => `${site} may be ${company ?? "the company"}'s own website (its domain spells part of the name). If it is \u2014 you know it, or a quick look confirms it \u2014 run again on it: \`${rerun} --site ${site}${create}\`. Never name a site that is not theirs.`
65
+ );
66
+ return [
67
+ `No public profile could be tied to this person${searched ? ` (searched ${searched})` : ""}, so no photo was taken. Carry on with an invented one-off person drawn from the description, exactly as for anyone unnamed \u2014 never a photo of somebody else, and never stall the job over it.`,
68
+ ...sites,
69
+ 'If you know more than was searched, run it again with it: their exact name or company (`--name`, `--company`), the company\'s own website (`--site <domain>`), what else is known of them (`--context "Spanish, banking"`: where they are from or based, their field), or their LinkedIn profile once you have checked it is them (`--profile <url>`).'
70
+ ];
71
+ }
72
+ function avatarHints(avatar, name) {
73
+ const where = avatar.reused ? `@${avatar.handle} is already ${name}'s avatar \u2014 reused, not built again.` : `@${avatar.handle} is ${name}'s avatar, built from their real photos. Its sheet settles in about 30s: if the next thing you do needs it, \`baker avatars get ${avatar.handle} --wait\`.`;
74
+ return [
75
+ where,
76
+ `Use it everywhere ${name} appears: \`--avatar ${avatar.handle}\` on static ads, video and Studio renders; on a landing, their photo is the avatar's \`coverUrl\` from \`baker avatars get ${avatar.handle}\` (upscale it when it is shown large). Never invent another face for them.`
77
+ ];
78
+ }
79
+ function foundHints(data, call, rerun) {
80
+ const name = data.person?.name ?? described(call);
81
+ if (data.avatar) return avatarHints(data.avatar, name);
82
+ const photoIds = (data.photos ?? []).map((photo) => photo.imageId).join(",");
83
+ if (!photoIds) {
84
+ return [
85
+ `Found ${name}, but no usable photo of them was public${call.create ? ", so no avatar was built" : ""}. Carry on with an invented one-off person drawn from the description.`
86
+ ];
87
+ }
88
+ if (call.create) {
89
+ return [
90
+ `Found ${name}, but their avatar could not be built automatically. Build it from the photos yourself: \`baker avatars create --name ${quoted(name)} --subject "<one person, plainly: age, build, hair, skin, face>" --source-image ${photoIds} --likeness-confirmed\`.`
91
+ ];
92
+ }
93
+ return [
94
+ `Found ${name}; their photos are in the image library (${photoIds}). Build their avatar from them: \`${rerun} --create\`.`
95
+ ];
96
+ }
97
+ function researchHints(data, call) {
98
+ const rerun = rerunOf(call);
99
+ if (data.status === "possible") {
100
+ return possibleHints(data, rerunOf({ ...call, profile: void 0 }), call.create ? " --create" : "");
101
+ }
102
+ if (data.status === "not_found") return notFoundHints(data, rerun, call.create ? " --create" : "");
103
+ return foundHints(data, call, rerun);
104
+ }
105
+
106
+ // src/commands/avatars/research.ts
107
+ var RESEARCH_TIMEOUT_MS = 18e4;
108
+ registerSchema({
109
+ command: "avatars.research",
110
+ description: 'Find a REAL, named person from a description and gather their public photos \u2014 and, with --create, build their avatar from them. Start here: `baker avatars research "Lautaro Suarez, CTO at Vibiz" --create`. Use it whenever copy shows a real person by name: a testimonial author with their role and company, the company\'s founder or CEO, a named team member. Describe them: "<name>, <role> at <company>", or "the CEO of <company>" when the copy names a role, and add what else you know: --site <the company\'s own website> when its domain is not its name spelled out (santander.com for Banco Santander), --context "<where they are from or based, their field>" for someone with no company. Identity is checked in code (the name AND the company \u2014 or, with no company, the role and the context \u2014 must match a public profile): `found` returns their photos (now in the image library) and a subject description; `possible` returns the half-matches to pick from with --profile <their link> (or a LinkedIn you found and checked yourself); `not_found` lists any site that may be the company\'s (possibleSites) and means fall back to an invented one-off person. The company naming them in its copy is the go-ahead to use their likeness \u2014 no confirmation question. A person who already has an avatar comes back with it (`reused: true`) \u2014 nothing searched, nothing billed \u2014 so run it every time copy names someone.',
111
+ args: {
112
+ who: {
113
+ type: "string",
114
+ description: 'How the copy names them, e.g. "Lautaro Suarez, CTO at Vibiz" or "the CEO of Vibiz"',
115
+ required: true
116
+ },
117
+ name: {
118
+ type: "string",
119
+ description: "Their full name, when the description leaves it out or reads it wrong",
120
+ required: false
121
+ },
122
+ role: { type: "string", description: 'Their role, e.g. "CTO", "Founder"', required: false },
123
+ company: { type: "string", description: "The company they are at", required: false },
124
+ context: {
125
+ type: "string",
126
+ description: 'What else you know of them, in a few words: where they are from or based, their field, e.g. "Spanish, banking". Narrows the search; with no company, name + role + context on one profile is enough to find them',
127
+ required: false
128
+ },
129
+ site: {
130
+ type: "string",
131
+ description: "The company's own website, e.g. \"santander.com\" for Banco Santander: its pages are searched for them however the domain spells the name. Use it when the domain is not the company's name spelled out, or when a `not_found` lists it in possibleSites and it is theirs",
132
+ required: false
133
+ },
134
+ profile: {
135
+ type: "string",
136
+ description: "The profile to take, by its link: one of the candidates a `possible` answer listed (a LinkedIn, or a public record), or a LinkedIn you found and checked is them (same person, role and company). The name on it must match",
137
+ required: false
138
+ },
139
+ linkedin: { type: "string", description: "Same as --profile", required: false },
140
+ create: {
141
+ type: "boolean",
142
+ description: "Build their avatar from the photos right away (likeness `licensed`, no face picker)",
143
+ required: false
144
+ },
145
+ handle: {
146
+ type: "string",
147
+ description: "Mention handle for the avatar --create builds (derived from the name when omitted)",
148
+ required: false
149
+ },
150
+ full: {
151
+ type: "boolean",
152
+ description: "Include their about text, location and every search that was run",
153
+ required: false
154
+ }
155
+ }
156
+ });
157
+ function compact(data, full) {
158
+ if (full) return data;
159
+ const { searched, person, ...rest } = data;
160
+ const { about: _about, location: _location, ...who } = person ?? { socials: {} };
161
+ return {
162
+ ...rest,
163
+ ...person ? { person: who } : {},
164
+ // A `not_found` is only useful with what was tried.
165
+ ...data.status === "not_found" ? { searched } : {}
166
+ };
167
+ }
168
+ var researchCommand = defineCommand({
169
+ meta: {
170
+ name: "research",
171
+ description: 'Find a real, named person from a description and build their avatar from their public photos. Example: baker avatars research "Lautaro Suarez, CTO at Vibiz" --create'
172
+ },
173
+ args: {
174
+ who: {
175
+ type: "positional",
176
+ description: 'Who: "<name>, <role> at <company>" or "the CEO of <company>"',
177
+ required: false
178
+ },
179
+ name: { type: "string", description: "Their full name (overrides the description)", required: false },
180
+ role: { type: "string", description: "Their role (overrides the description)", required: false },
181
+ company: { type: "string", description: "Their company (overrides the description)", required: false },
182
+ context: {
183
+ type: "string",
184
+ description: 'What else you know of them: "Spanish, banking" (where they are from or based, their field)',
185
+ required: false
186
+ },
187
+ site: { type: "string", description: `The company's own website, e.g. "santander.com"`, required: false },
188
+ profile: {
189
+ type: "string",
190
+ description: "The profile to take: a candidate's link from a `possible` answer, or a LinkedIn you checked is them",
191
+ required: false
192
+ },
193
+ linkedin: { type: "string", description: "Same as --profile", required: false },
194
+ create: { type: "boolean", description: "Build their avatar from the photos", required: false, default: false },
195
+ handle: { type: "string", description: "Mention handle for the new avatar", required: false },
196
+ full: {
197
+ type: "boolean",
198
+ description: "Include about, location and the searches run",
199
+ required: false,
200
+ default: false
201
+ }
202
+ },
203
+ run: async ({ args }) => {
204
+ const text = (key) => {
205
+ const value = args[key];
206
+ return typeof value === "string" && value.trim() ? value.trim() : void 0;
207
+ };
208
+ const call = callOf(text, Boolean(args.create));
209
+ const { who, name, company, handle } = call;
210
+ if (!who && !name && !company) {
211
+ failValidation(
212
+ 'Say who to research, e.g. `baker avatars research "Lautaro Suarez, CTO at Vibiz"` or `baker avatars research "the CEO of Vibiz"`.'
213
+ );
214
+ }
215
+ if (handle && !AVATAR_HANDLE_PATTERN.test(handle)) {
216
+ failValidation(
217
+ `--handle "${handle}" is not usable. Use lowercase letters, numbers and dashes, starting with a letter \u2014 "lautaro-suarez". Leave it off to have one derived from the name.`
218
+ );
219
+ }
220
+ const chatId = chatIdFromEnv();
221
+ const { profile: profileUrl, ...asked } = call;
222
+ const body = {
223
+ ...asked,
224
+ ...profileUrl ? { profileUrl } : {},
225
+ // A backend from before --profile reads a picked LinkedIn only here.
226
+ ...profileUrl && /linkedin\.com\//i.test(profileUrl) ? { linkedinUrl: profileUrl } : {},
227
+ ...chatId ? { chatId } : {}
228
+ };
229
+ try {
230
+ const data = await writeAvatars("/api/avatars/research", body, {
231
+ timeoutMs: RESEARCH_TIMEOUT_MS
232
+ });
233
+ writeJson({ ok: true, data: compact(data, Boolean(args.full)), hints: researchHints(data, call) });
234
+ } catch (err) {
235
+ failAvatarApi(err, handle);
236
+ }
237
+ }
238
+ });
239
+ function callOf(text, create) {
240
+ const who = text("who");
241
+ const name = text("name");
242
+ const role = text("role");
243
+ const company = text("company");
244
+ const context = text("context");
245
+ const site = text("site");
246
+ const handle = text("handle")?.toLowerCase();
247
+ const profile = text("profile") ?? text("linkedin");
248
+ return {
249
+ ...who ? { who } : {},
250
+ ...name ? { name } : {},
251
+ ...role ? { role } : {},
252
+ ...company ? { company } : {},
253
+ ...context ? { context } : {},
254
+ ...site ? { site } : {},
255
+ ...handle ? { handle } : {},
256
+ ...profile ? { profile } : {},
257
+ create
258
+ };
259
+ }
260
+ export {
261
+ researchCommand
262
+ };
263
+ //# sourceMappingURL=research-GEOCUBXB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/avatars/research.ts","../src/commands/avatars/researchHints.ts"],"sourcesContent":["import { AVATAR_HANDLE_PATTERN, type AvatarsResearchRequest, type AvatarsResearchResponse } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { chatIdFromEnv } from \"./casting.ts\";\nimport { failAvatarApi, failValidation } from \"./failures.ts\";\nimport { type ResearchCall, researchHints } from \"./researchHints.ts\";\nimport { writeAvatars } from \"./transport.ts\";\n\n/** Searches, profile reads, a vision check and the photo ingests — well past the default minute on a slow day. */\nconst RESEARCH_TIMEOUT_MS = 180_000;\n\nregisterSchema({\n command: \"avatars.research\",\n description:\n 'Find a REAL, named person from a description and gather their public photos — and, with --create, build their avatar from them. Start here: `baker avatars research \"Lautaro Suarez, CTO at Vibiz\" --create`. Use it whenever copy shows a real person by name: a testimonial author with their role and company, the company\\'s founder or CEO, a named team member. Describe them: \"<name>, <role> at <company>\", or \"the CEO of <company>\" when the copy names a role, and add what else you know: --site <the company\\'s own website> when its domain is not its name spelled out (santander.com for Banco Santander), --context \"<where they are from or based, their field>\" for someone with no company. Identity is checked in code (the name AND the company — or, with no company, the role and the context — must match a public profile): `found` returns their photos (now in the image library) and a subject description; `possible` returns the half-matches to pick from with --profile <their link> (or a LinkedIn you found and checked yourself); `not_found` lists any site that may be the company\\'s (possibleSites) and means fall back to an invented one-off person. The company naming them in its copy is the go-ahead to use their likeness — no confirmation question. A person who already has an avatar comes back with it (`reused: true`) — nothing searched, nothing billed — so run it every time copy names someone.',\n args: {\n who: {\n type: \"string\",\n description: 'How the copy names them, e.g. \"Lautaro Suarez, CTO at Vibiz\" or \"the CEO of Vibiz\"',\n required: true,\n },\n name: {\n type: \"string\",\n description: \"Their full name, when the description leaves it out or reads it wrong\",\n required: false,\n },\n role: { type: \"string\", description: 'Their role, e.g. \"CTO\", \"Founder\"', required: false },\n company: { type: \"string\", description: \"The company they are at\", required: false },\n context: {\n type: \"string\",\n description:\n 'What else you know of them, in a few words: where they are from or based, their field, e.g. \"Spanish, banking\". Narrows the search; with no company, name + role + context on one profile is enough to find them',\n required: false,\n },\n site: {\n type: \"string\",\n description:\n \"The company's own website, e.g. \\\"santander.com\\\" for Banco Santander: its pages are searched for them however the domain spells the name. Use it when the domain is not the company's name spelled out, or when a `not_found` lists it in possibleSites and it is theirs\",\n required: false,\n },\n profile: {\n type: \"string\",\n description:\n \"The profile to take, by its link: one of the candidates a `possible` answer listed (a LinkedIn, or a public record), or a LinkedIn you found and checked is them (same person, role and company). The name on it must match\",\n required: false,\n },\n linkedin: { type: \"string\", description: \"Same as --profile\", required: false },\n create: {\n type: \"boolean\",\n description: \"Build their avatar from the photos right away (likeness `licensed`, no face picker)\",\n required: false,\n },\n handle: {\n type: \"string\",\n description: \"Mention handle for the avatar --create builds (derived from the name when omitted)\",\n required: false,\n },\n full: {\n type: \"boolean\",\n description: \"Include their about text, location and every search that was run\",\n required: false,\n },\n },\n});\n\n/**\n * Compact by default: what an agent needs to decide — who, how sure, which photos,\n * which avatar. The about text is paragraphs long and only matters to a reader.\n */\nfunction compact(data: AvatarsResearchResponse, full: boolean): Record<string, unknown> {\n if (full) return data;\n const { searched, person, ...rest } = data;\n const { about: _about, location: _location, ...who } = person ?? { socials: {} };\n return {\n ...rest,\n ...(person ? { person: who } : {}),\n // A `not_found` is only useful with what was tried.\n ...(data.status === \"not_found\" ? { searched } : {}),\n };\n}\n\nexport const researchCommand = defineCommand({\n meta: {\n name: \"research\",\n description:\n 'Find a real, named person from a description and build their avatar from their public photos. Example: baker avatars research \"Lautaro Suarez, CTO at Vibiz\" --create',\n },\n args: {\n who: {\n type: \"positional\",\n description: 'Who: \"<name>, <role> at <company>\" or \"the CEO of <company>\"',\n required: false,\n },\n name: { type: \"string\", description: \"Their full name (overrides the description)\", required: false },\n role: { type: \"string\", description: \"Their role (overrides the description)\", required: false },\n company: { type: \"string\", description: \"Their company (overrides the description)\", required: false },\n context: {\n type: \"string\",\n description: 'What else you know of them: \"Spanish, banking\" (where they are from or based, their field)',\n required: false,\n },\n site: { type: \"string\", description: 'The company\\'s own website, e.g. \"santander.com\"', required: false },\n profile: {\n type: \"string\",\n description:\n \"The profile to take: a candidate's link from a `possible` answer, or a LinkedIn you checked is them\",\n required: false,\n },\n linkedin: { type: \"string\", description: \"Same as --profile\", required: false },\n create: { type: \"boolean\", description: \"Build their avatar from the photos\", required: false, default: false },\n handle: { type: \"string\", description: \"Mention handle for the new avatar\", required: false },\n full: {\n type: \"boolean\",\n description: \"Include about, location and the searches run\",\n required: false,\n default: false,\n },\n },\n run: async ({ args }) => {\n const text = (key: string) => {\n const value = (args as Record<string, unknown>)[key];\n return typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n };\n const call = callOf(text, Boolean(args.create));\n const { who, name, company, handle } = call;\n if (!who && !name && !company) {\n failValidation(\n 'Say who to research, e.g. `baker avatars research \"Lautaro Suarez, CTO at Vibiz\"` or `baker avatars research \"the CEO of Vibiz\"`.',\n );\n }\n if (handle && !AVATAR_HANDLE_PATTERN.test(handle)) {\n failValidation(\n `--handle \"${handle}\" is not usable. Use lowercase letters, numbers and dashes, starting with a letter — \"lautaro-suarez\". Leave it off to have one derived from the name.`,\n );\n }\n\n const chatId = chatIdFromEnv();\n const { profile: profileUrl, ...asked } = call;\n const body: AvatarsResearchRequest = {\n ...asked,\n ...(profileUrl ? { profileUrl } : {}),\n // A backend from before --profile reads a picked LinkedIn only here.\n ...(profileUrl && /linkedin\\.com\\//i.test(profileUrl) ? { linkedinUrl: profileUrl } : {}),\n ...(chatId ? { chatId } : {}),\n };\n\n try {\n const data = await writeAvatars<AvatarsResearchResponse>(\"/api/avatars/research\", body, {\n timeoutMs: RESEARCH_TIMEOUT_MS,\n });\n writeJson({ ok: true, data: compact(data, Boolean(args.full)), hints: researchHints(data, call) });\n } catch (err) {\n failAvatarApi(err, handle);\n }\n },\n});\n\n/** The call as it was made: the description and the flags given, each only when set. */\nfunction callOf(text: (key: string) => string | undefined, create: boolean): ResearchCall {\n const who = text(\"who\");\n const name = text(\"name\");\n const role = text(\"role\");\n const company = text(\"company\");\n const context = text(\"context\");\n const site = text(\"site\");\n const handle = text(\"handle\")?.toLowerCase();\n const profile = text(\"profile\") ?? text(\"linkedin\");\n return {\n ...(who ? { who } : {}),\n ...(name ? { name } : {}),\n ...(role ? { role } : {}),\n ...(company ? { company } : {}),\n ...(context ? { context } : {}),\n ...(site ? { site } : {}),\n ...(handle ? { handle } : {}),\n ...(profile ? { profile } : {}),\n create,\n };\n}\n","import type { AvatarsResearchResponse } from \"@baker/api\";\n\n/** How the command was called, so a hint can hand back the exact next command. */\nexport interface ResearchCall {\n who?: string;\n name?: string;\n role?: string;\n company?: string;\n context?: string;\n site?: string;\n handle?: string;\n /** The profile picked by its link (`--profile`, or `--linkedin` as it was called before). */\n profile?: string;\n create: boolean;\n}\n\n/** The person as the call described them. */\nfunction described(call: ResearchCall): string {\n return call.who ?? [call.name, call.role, call.company].filter(Boolean).join(\", \");\n}\n\n/** The call again, exactly as it was made (without `--create`, which each hint adds when it applies). */\nfunction rerunOf(call: ResearchCall): string {\n return [\n \"baker avatars research\",\n call.who ? quoted(call.who) : undefined,\n call.name ? `--name ${quoted(call.name)}` : undefined,\n call.role ? `--role ${quoted(call.role)}` : undefined,\n call.company ? `--company ${quoted(call.company)}` : undefined,\n call.context ? `--context ${quoted(call.context)}` : undefined,\n call.site ? `--site ${call.site}` : undefined,\n call.handle ? `--handle ${call.handle}` : undefined,\n call.profile ? `--profile ${call.profile}` : undefined,\n ]\n .filter(Boolean)\n .join(\" \");\n}\n\nfunction quoted(text: string): string {\n return `\"${text.replaceAll('\"', '\\\\\"')}\"`;\n}\n\nfunction possibleHints(data: AvatarsResearchResponse, rerun: string, create: string): string[] {\n const lines = (data.candidates ?? []).map((candidate) =>\n [candidate.name, candidate.headline, candidate.profile].filter(Boolean).join(\" — \"),\n );\n const example = data.candidates?.[0]?.profile ?? \"<profile url>\";\n return [\n `Not sure it is them: these profiles matched only in part, so no photo was taken.\\n${lines.map((line) => ` - ${line}`).join(\"\\n\")}`,\n `If the copy makes clear which one is the person (same company, same role, what else you know of them), take it: \\`${rerun} --profile ${example}${create}\\`. If none of them clearly is, treat this as not found — never put a face in an ad on a guess.`,\n ];\n}\n\nfunction notFoundHints(data: AvatarsResearchResponse, rerun: string, create: string): string[] {\n const searched = data.searched.map((query) => `\"${query}\"`).join(\", \");\n const company = data.query.company;\n const sites = (data.possibleSites ?? []).map(\n (site) =>\n `${site} may be ${company ?? \"the company\"}'s own website (its domain spells part of the name). If it is — you know it, or a quick look confirms it — run again on it: \\`${rerun} --site ${site}${create}\\`. Never name a site that is not theirs.`,\n );\n return [\n `No public profile could be tied to this person${searched ? ` (searched ${searched})` : \"\"}, so no photo was taken. Carry on with an invented one-off person drawn from the description, exactly as for anyone unnamed — never a photo of somebody else, and never stall the job over it.`,\n ...sites,\n 'If you know more than was searched, run it again with it: their exact name or company (`--name`, `--company`), the company\\'s own website (`--site <domain>`), what else is known of them (`--context \"Spanish, banking\"`: where they are from or based, their field), or their LinkedIn profile once you have checked it is them (`--profile <url>`).',\n ];\n}\n\nfunction avatarHints(avatar: NonNullable<AvatarsResearchResponse[\"avatar\"]>, name: string): string[] {\n const where = avatar.reused\n ? `@${avatar.handle} is already ${name}'s avatar — reused, not built again.`\n : `@${avatar.handle} is ${name}'s avatar, built from their real photos. Its sheet settles in about 30s: if the next thing you do needs it, \\`baker avatars get ${avatar.handle} --wait\\`.`;\n return [\n where,\n `Use it everywhere ${name} appears: \\`--avatar ${avatar.handle}\\` on static ads, video and Studio renders; on a landing, their photo is the avatar's \\`coverUrl\\` from \\`baker avatars get ${avatar.handle}\\` (upscale it when it is shown large). Never invent another face for them.`,\n ];\n}\n\nfunction foundHints(data: AvatarsResearchResponse, call: ResearchCall, rerun: string): string[] {\n const name = data.person?.name ?? described(call);\n if (data.avatar) return avatarHints(data.avatar, name);\n\n const photoIds = (data.photos ?? []).map((photo) => photo.imageId).join(\",\");\n if (!photoIds) {\n return [\n `Found ${name}, but no usable photo of them was public${call.create ? \", so no avatar was built\" : \"\"}. Carry on with an invented one-off person drawn from the description.`,\n ];\n }\n if (call.create) {\n return [\n `Found ${name}, but their avatar could not be built automatically. Build it from the photos yourself: \\`baker avatars create --name ${quoted(name)} --subject \"<one person, plainly: age, build, hair, skin, face>\" --source-image ${photoIds} --likeness-confirmed\\`.`,\n ];\n }\n return [\n `Found ${name}; their photos are in the image library (${photoIds}). Build their avatar from them: \\`${rerun} --create\\`.`,\n ];\n}\n\n/** What the agent should do next with a research answer, keyed off its status. */\nexport function researchHints(data: AvatarsResearchResponse, call: ResearchCall): string[] {\n const rerun = rerunOf(call);\n if (data.status === \"possible\") {\n return possibleHints(data, rerunOf({ ...call, profile: undefined }), call.create ? \" --create\" : \"\");\n }\n if (data.status === \"not_found\") return notFoundHints(data, rerun, call.create ? \" --create\" : \"\");\n return foundHints(data, call, rerun);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;;;ACgB9B,SAAS,UAAU,MAA4B;AAC7C,SAAO,KAAK,OAAO,CAAC,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,IAAI;AACnF;AAGA,SAAS,QAAQ,MAA4B;AAC3C,SAAO;AAAA,IACL;AAAA,IACA,KAAK,MAAM,OAAO,KAAK,GAAG,IAAI;AAAA,IAC9B,KAAK,OAAO,UAAU,OAAO,KAAK,IAAI,CAAC,KAAK;AAAA,IAC5C,KAAK,OAAO,UAAU,OAAO,KAAK,IAAI,CAAC,KAAK;AAAA,IAC5C,KAAK,UAAU,aAAa,OAAO,KAAK,OAAO,CAAC,KAAK;AAAA,IACrD,KAAK,UAAU,aAAa,OAAO,KAAK,OAAO,CAAC,KAAK;AAAA,IACrD,KAAK,OAAO,UAAU,KAAK,IAAI,KAAK;AAAA,IACpC,KAAK,SAAS,YAAY,KAAK,MAAM,KAAK;AAAA,IAC1C,KAAK,UAAU,aAAa,KAAK,OAAO,KAAK;AAAA,EAC/C,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AACb;AAEA,SAAS,OAAO,MAAsB;AACpC,SAAO,IAAI,KAAK,WAAW,KAAK,KAAK,CAAC;AACxC;AAEA,SAAS,cAAc,MAA+B,OAAe,QAA0B;AAC7F,QAAM,SAAS,KAAK,cAAc,CAAC,GAAG;AAAA,IAAI,CAAC,cACzC,CAAC,UAAU,MAAM,UAAU,UAAU,UAAU,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,UAAK;AAAA,EACpF;AACA,QAAM,UAAU,KAAK,aAAa,CAAC,GAAG,WAAW;AACjD,SAAO;AAAA,IACL;AAAA,EAAqF,MAAM,IAAI,CAAC,SAAS,OAAO,IAAI,EAAE,EAAE,KAAK,IAAI,CAAC;AAAA,IAClI,qHAAqH,KAAK,cAAc,OAAO,GAAG,MAAM;AAAA,EAC1J;AACF;AAEA,SAAS,cAAc,MAA+B,OAAe,QAA0B;AAC7F,QAAM,WAAW,KAAK,SAAS,IAAI,CAAC,UAAU,IAAI,KAAK,GAAG,EAAE,KAAK,IAAI;AACrE,QAAM,UAAU,KAAK,MAAM;AAC3B,QAAM,SAAS,KAAK,iBAAiB,CAAC,GAAG;AAAA,IACvC,CAAC,SACC,GAAG,IAAI,WAAW,WAAW,aAAa,2IAAiI,KAAK,WAAW,IAAI,GAAG,MAAM;AAAA,EAC5M;AACA,SAAO;AAAA,IACL,iDAAiD,WAAW,cAAc,QAAQ,MAAM,EAAE;AAAA,IAC1F,GAAG;AAAA,IACH;AAAA,EACF;AACF;AAEA,SAAS,YAAY,QAAwD,MAAwB;AACnG,QAAM,QAAQ,OAAO,SACjB,IAAI,OAAO,MAAM,eAAe,IAAI,8CACpC,IAAI,OAAO,MAAM,OAAO,IAAI,mIAAmI,OAAO,MAAM;AAChL,SAAO;AAAA,IACL;AAAA,IACA,qBAAqB,IAAI,wBAAwB,OAAO,MAAM,+HAA+H,OAAO,MAAM;AAAA,EAC5M;AACF;AAEA,SAAS,WAAW,MAA+B,MAAoB,OAAyB;AAC9F,QAAM,OAAO,KAAK,QAAQ,QAAQ,UAAU,IAAI;AAChD,MAAI,KAAK,OAAQ,QAAO,YAAY,KAAK,QAAQ,IAAI;AAErD,QAAM,YAAY,KAAK,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,MAAM,OAAO,EAAE,KAAK,GAAG;AAC3E,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,MACL,SAAS,IAAI,2CAA2C,KAAK,SAAS,6BAA6B,EAAE;AAAA,IACvG;AAAA,EACF;AACA,MAAI,KAAK,QAAQ;AACf,WAAO;AAAA,MACL,SAAS,IAAI,yHAAyH,OAAO,IAAI,CAAC,mFAAmF,QAAQ;AAAA,IAC/O;AAAA,EACF;AACA,SAAO;AAAA,IACL,SAAS,IAAI,4CAA4C,QAAQ,sCAAsC,KAAK;AAAA,EAC9G;AACF;AAGO,SAAS,cAAc,MAA+B,MAA8B;AACzF,QAAM,QAAQ,QAAQ,IAAI;AAC1B,MAAI,KAAK,WAAW,YAAY;AAC9B,WAAO,cAAc,MAAM,QAAQ,EAAE,GAAG,MAAM,SAAS,OAAU,CAAC,GAAG,KAAK,SAAS,cAAc,EAAE;AAAA,EACrG;AACA,MAAI,KAAK,WAAW,YAAa,QAAO,cAAc,MAAM,OAAO,KAAK,SAAS,cAAc,EAAE;AACjG,SAAO,WAAW,MAAM,MAAM,KAAK;AACrC;;;AD/FA,IAAM,sBAAsB;AAE5B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,KAAK;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,MAAM,EAAE,MAAM,UAAU,aAAa,qCAAqC,UAAU,MAAM;AAAA,IAC1F,SAAS,EAAE,MAAM,UAAU,aAAa,2BAA2B,UAAU,MAAM;AAAA,IACnF,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,UAAU,EAAE,MAAM,UAAU,aAAa,qBAAqB,UAAU,MAAM;AAAA,IAC9E,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,EACF;AACF,CAAC;AAMD,SAAS,QAAQ,MAA+B,MAAwC;AACtF,MAAI,KAAM,QAAO;AACjB,QAAM,EAAE,UAAU,QAAQ,GAAG,KAAK,IAAI;AACtC,QAAM,EAAE,OAAO,QAAQ,UAAU,WAAW,GAAG,IAAI,IAAI,UAAU,EAAE,SAAS,CAAC,EAAE;AAC/E,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAI,SAAS,EAAE,QAAQ,IAAI,IAAI,CAAC;AAAA;AAAA,IAEhC,GAAI,KAAK,WAAW,cAAc,EAAE,SAAS,IAAI,CAAC;AAAA,EACpD;AACF;AAEO,IAAM,kBAAkB,cAAc;AAAA,EAC3C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM;AAAA,IACJ,KAAK;AAAA,MACH,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,MAAM,EAAE,MAAM,UAAU,aAAa,+CAA+C,UAAU,MAAM;AAAA,IACpG,MAAM,EAAE,MAAM,UAAU,aAAa,0CAA0C,UAAU,MAAM;AAAA,IAC/F,SAAS,EAAE,MAAM,UAAU,aAAa,6CAA6C,UAAU,MAAM;AAAA,IACrG,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,IACA,MAAM,EAAE,MAAM,UAAU,aAAa,mDAAoD,UAAU,MAAM;AAAA,IACzG,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,UAAU,EAAE,MAAM,UAAU,aAAa,qBAAqB,UAAU,MAAM;AAAA,IAC9E,QAAQ,EAAE,MAAM,WAAW,aAAa,sCAAsC,UAAU,OAAO,SAAS,MAAM;AAAA,IAC9G,QAAQ,EAAE,MAAM,UAAU,aAAa,qCAAqC,UAAU,MAAM;AAAA,IAC5F,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,MACV,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,OAAO,CAAC,QAAgB;AAC5B,YAAM,QAAS,KAAiC,GAAG;AACnD,aAAO,OAAO,UAAU,YAAY,MAAM,KAAK,IAAI,MAAM,KAAK,IAAI;AAAA,IACpE;AACA,UAAM,OAAO,OAAO,MAAM,QAAQ,KAAK,MAAM,CAAC;AAC9C,UAAM,EAAE,KAAK,MAAM,SAAS,OAAO,IAAI;AACvC,QAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;AAC7B;AAAA,QACE;AAAA,MACF;AAAA,IACF;AACA,QAAI,UAAU,CAAC,sBAAsB,KAAK,MAAM,GAAG;AACjD;AAAA,QACE,aAAa,MAAM;AAAA,MACrB;AAAA,IACF;AAEA,UAAM,SAAS,cAAc;AAC7B,UAAM,EAAE,SAAS,YAAY,GAAG,MAAM,IAAI;AAC1C,UAAM,OAA+B;AAAA,MACnC,GAAG;AAAA,MACH,GAAI,aAAa,EAAE,WAAW,IAAI,CAAC;AAAA;AAAA,MAEnC,GAAI,cAAc,mBAAmB,KAAK,UAAU,IAAI,EAAE,aAAa,WAAW,IAAI,CAAC;AAAA,MACvF,GAAI,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,IAC7B;AAEA,QAAI;AACF,YAAM,OAAO,MAAM,aAAsC,yBAAyB,MAAM;AAAA,QACtF,WAAW;AAAA,MACb,CAAC;AACD,gBAAU,EAAE,IAAI,MAAM,MAAM,QAAQ,MAAM,QAAQ,KAAK,IAAI,CAAC,GAAG,OAAO,cAAc,MAAM,IAAI,EAAE,CAAC;AAAA,IACnG,SAAS,KAAK;AACZ,oBAAc,KAAK,MAAM;AAAA,IAC3B;AAAA,EACF;AACF,CAAC;AAGD,SAAS,OAAO,MAA2C,QAA+B;AACxF,QAAM,MAAM,KAAK,KAAK;AACtB,QAAM,OAAO,KAAK,MAAM;AACxB,QAAM,OAAO,KAAK,MAAM;AACxB,QAAM,UAAU,KAAK,SAAS;AAC9B,QAAM,UAAU,KAAK,SAAS;AAC9B,QAAM,OAAO,KAAK,MAAM;AACxB,QAAM,SAAS,KAAK,QAAQ,GAAG,YAAY;AAC3C,QAAM,UAAU,KAAK,SAAS,KAAK,KAAK,UAAU;AAClD,SAAO;AAAA,IACL,GAAI,MAAM,EAAE,IAAI,IAAI,CAAC;AAAA,IACrB,GAAI,OAAO,EAAE,KAAK,IAAI,CAAC;AAAA,IACvB,GAAI,OAAO,EAAE,KAAK,IAAI,CAAC;AAAA,IACvB,GAAI,UAAU,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC7B,GAAI,UAAU,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC7B,GAAI,OAAO,EAAE,KAAK,IAAI,CAAC;AAAA,IACvB,GAAI,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,IAC3B,GAAI,UAAU,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC7B;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,55 @@
1
+ import {
2
+ reportError
3
+ } from "./chunk-TD2P4HBP.js";
4
+ import {
5
+ mediaSourcesResetRequestSchema
6
+ } from "./chunk-7EPXVICM.js";
7
+ import "./chunk-GXDLWBOY.js";
8
+ import "./chunk-TEINLN64.js";
9
+ import "./chunk-ZJWUBJYQ.js";
10
+ import "./chunk-HR6IWNKE.js";
11
+ import "./chunk-NE4F3FHN.js";
12
+ import {
13
+ apiPost
14
+ } from "./chunk-XBOK23HI.js";
15
+ import "./chunk-IFWP3ZDO.js";
16
+ import "./chunk-NAWWC5I3.js";
17
+ import {
18
+ registerSchema,
19
+ writeJson
20
+ } from "./chunk-NU7JSWVA.js";
21
+ import "./chunk-YQSBHWOI.js";
22
+
23
+ // src/commands/media-sources/reset.ts
24
+ import { defineCommand } from "citty";
25
+ registerSchema({
26
+ command: "media-sources.reset",
27
+ description: "Unstick a connected source whose import failed, or has not moved for an hour, so it can import again. Keeps what it already imported. Refused while an import is still moving.",
28
+ args: {
29
+ key: { type: "string", description: "Source key from `media-sources list`, e.g. tiktok:acme", required: true }
30
+ }
31
+ });
32
+ var resetCommand = defineCommand({
33
+ meta: {
34
+ name: "reset",
35
+ description: "Unstick a source whose import failed or has not moved for an hour, so it can import again. Keeps what it already imported; refused while an import is still moving.\n\nExample: baker media-sources reset tiktok:acme"
36
+ },
37
+ args: { key: { type: "positional", description: "Source key, e.g. tiktok:acme", required: true } },
38
+ run: async ({ args }) => {
39
+ const parsed = mediaSourcesResetRequestSchema.safeParse({ key: String(args.key ?? "") });
40
+ if (!parsed.success) {
41
+ writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message: parsed.error.issues[0]?.message ?? "" } });
42
+ process.exit(1);
43
+ }
44
+ try {
45
+ const data = await apiPost("/api/media-sources/reset", parsed.data);
46
+ writeJson({ ok: true, data, hints: [`Run \`baker media-sources sync ${data.key}\` to import its new posts.`] });
47
+ } catch (err) {
48
+ reportError(err);
49
+ }
50
+ }
51
+ });
52
+ export {
53
+ resetCommand
54
+ };
55
+ //# sourceMappingURL=reset-REXJ6AUK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/media-sources/reset.ts"],"sourcesContent":["import { type MediaSourcesResetResponse, mediaSourcesResetRequestSchema } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { reportError } from \"./shared.ts\";\n\nregisterSchema({\n command: \"media-sources.reset\",\n description:\n \"Unstick a connected source whose import failed, or has not moved for an hour, so it can import again. Keeps what it already imported. Refused while an import is still moving.\",\n args: {\n key: { type: \"string\", description: \"Source key from `media-sources list`, e.g. tiktok:acme\", required: true },\n },\n});\n\nexport const resetCommand = defineCommand({\n meta: {\n name: \"reset\",\n description:\n \"Unstick a source whose import failed or has not moved for an hour, so it can import again. Keeps what it already imported; refused while an import is still moving.\\n\\nExample: baker media-sources reset tiktok:acme\",\n },\n args: { key: { type: \"positional\", description: \"Source key, e.g. tiktok:acme\", required: true } },\n run: async ({ args }) => {\n const parsed = mediaSourcesResetRequestSchema.safeParse({ key: String(args.key ?? \"\") });\n if (!parsed.success) {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message: parsed.error.issues[0]?.message ?? \"\" } });\n process.exit(1);\n }\n try {\n const data = await apiPost<MediaSourcesResetResponse>(\"/api/media-sources/reset\", parsed.data);\n writeJson({ ok: true, data, hints: [`Run \\`baker media-sources sync ${data.key}\\` to import its new posts.`] });\n } catch (err) {\n reportError(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAM9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,KAAK,EAAE,MAAM,UAAU,aAAa,0DAA0D,UAAU,KAAK;AAAA,EAC/G;AACF,CAAC;AAEM,IAAM,eAAe,cAAc;AAAA,EACxC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,aAAa,gCAAgC,UAAU,KAAK,EAAE;AAAA,EACjG,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,SAAS,+BAA+B,UAAU,EAAE,KAAK,OAAO,KAAK,OAAO,EAAE,EAAE,CAAC;AACvF,QAAI,CAAC,OAAO,SAAS;AACnB,gBAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,oBAAoB,SAAS,OAAO,MAAM,OAAO,CAAC,GAAG,WAAW,GAAG,EAAE,CAAC;AAC5G,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,QAAI;AACF,YAAM,OAAO,MAAM,QAAmC,4BAA4B,OAAO,IAAI;AAC7F,gBAAU,EAAE,IAAI,MAAM,MAAM,OAAO,CAAC,kCAAkC,KAAK,GAAG,6BAA6B,EAAE,CAAC;AAAA,IAChH,SAAS,KAAK;AACZ,kBAAY,GAAG;AAAA,IACjB;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -0,0 +1,55 @@
1
+ import {
2
+ reportError,
3
+ reportInvalid
4
+ } from "./chunk-6G5K6ZC6.js";
5
+ import {
6
+ testimonialSourcesResetRequestSchema
7
+ } from "./chunk-7EPXVICM.js";
8
+ import "./chunk-GXDLWBOY.js";
9
+ import "./chunk-TEINLN64.js";
10
+ import "./chunk-ZJWUBJYQ.js";
11
+ import "./chunk-HR6IWNKE.js";
12
+ import "./chunk-NE4F3FHN.js";
13
+ import {
14
+ apiPost
15
+ } from "./chunk-XBOK23HI.js";
16
+ import "./chunk-IFWP3ZDO.js";
17
+ import "./chunk-NAWWC5I3.js";
18
+ import {
19
+ registerSchema,
20
+ writeJson
21
+ } from "./chunk-NU7JSWVA.js";
22
+ import "./chunk-YQSBHWOI.js";
23
+
24
+ // src/commands/testimonials/sources/reset.ts
25
+ import { defineCommand } from "citty";
26
+ registerSchema({
27
+ command: "testimonials.sources.reset",
28
+ description: "Unstick a review source whose import failed or has not moved for an hour, so it can be imported again. Refused while an import is still running. Keeps its reviews.",
29
+ args: { id: { type: "string", description: "Source id from `testimonials sources list`", required: true } }
30
+ });
31
+ var resetCommand = defineCommand({
32
+ meta: {
33
+ name: "reset",
34
+ description: "Unstick a review source whose import failed or has not moved for an hour, so it can be imported again. Refused while an import is still running. Keeps its reviews.\n\nExample: baker testimonials sources reset <source-id>"
35
+ },
36
+ args: { id: { type: "positional", description: "Source id from `testimonials sources list`", required: true } },
37
+ run: async ({ args }) => {
38
+ const parsed = testimonialSourcesResetRequestSchema.safeParse({ id: String(args.id ?? "") });
39
+ if (!parsed.success) reportInvalid(parsed.error.issues[0]);
40
+ try {
41
+ const data = await apiPost("/api/testimonials/sources/reset", parsed.data);
42
+ writeJson({
43
+ ok: true,
44
+ data,
45
+ hints: [`Run \`baker testimonials sources sync ${data.id}\` to import its reviews again.`]
46
+ });
47
+ } catch (err) {
48
+ reportError(err);
49
+ }
50
+ }
51
+ });
52
+ export {
53
+ resetCommand
54
+ };
55
+ //# sourceMappingURL=reset-Y72IVESB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/testimonials/sources/reset.ts"],"sourcesContent":["import { type TestimonialSourcesResetResponse, testimonialSourcesResetRequestSchema } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { apiPost } from \"../../../client.ts\";\nimport { writeJson } from \"../../../output.ts\";\nimport { registerSchema } from \"../../../schemas.ts\";\nimport { reportError, reportInvalid } from \"./shared.ts\";\n\nregisterSchema({\n command: \"testimonials.sources.reset\",\n description:\n \"Unstick a review source whose import failed or has not moved for an hour, so it can be imported again. Refused while an import is still running. Keeps its reviews.\",\n args: { id: { type: \"string\", description: \"Source id from `testimonials sources list`\", required: true } },\n});\n\nexport const resetCommand = defineCommand({\n meta: {\n name: \"reset\",\n description:\n \"Unstick a review source whose import failed or has not moved for an hour, so it can be imported again. Refused while an import is still running. Keeps its reviews.\\n\\nExample: baker testimonials sources reset <source-id>\",\n },\n args: { id: { type: \"positional\", description: \"Source id from `testimonials sources list`\", required: true } },\n run: async ({ args }) => {\n const parsed = testimonialSourcesResetRequestSchema.safeParse({ id: String(args.id ?? \"\") });\n if (!parsed.success) reportInvalid(parsed.error.issues[0]);\n try {\n const data = await apiPost<TestimonialSourcesResetResponse>(\"/api/testimonials/sources/reset\", parsed.data);\n writeJson({\n ok: true,\n data,\n hints: [`Run \\`baker testimonials sources sync ${data.id}\\` to import its reviews again.`],\n });\n } catch (err) {\n reportError(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAM9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,aAAa,8CAA8C,UAAU,KAAK,EAAE;AAC5G,CAAC;AAEM,IAAM,eAAe,cAAc;AAAA,EACxC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,aAAa,8CAA8C,UAAU,KAAK,EAAE;AAAA,EAC9G,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,SAAS,qCAAqC,UAAU,EAAE,IAAI,OAAO,KAAK,MAAM,EAAE,EAAE,CAAC;AAC3F,QAAI,CAAC,OAAO,QAAS,eAAc,OAAO,MAAM,OAAO,CAAC,CAAC;AACzD,QAAI;AACF,YAAM,OAAO,MAAM,QAAyC,mCAAmC,OAAO,IAAI;AAC1G,gBAAU;AAAA,QACR,IAAI;AAAA,QACJ;AAAA,QACA,OAAO,CAAC,yCAAyC,KAAK,EAAE,iCAAiC;AAAA,MAC3F,CAAC;AAAA,IACH,SAAS,KAAK;AACZ,kBAAY,GAAG;AAAA,IACjB;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -0,0 +1,122 @@
1
+ import {
2
+ csvOrJson,
3
+ handleLinkedinError
4
+ } from "./chunk-N4LAYIIN.js";
5
+ import {
6
+ writeAdsJson,
7
+ writeAdsOutput,
8
+ writeJsonEnvelope
9
+ } from "./chunk-VFIOJD5M.js";
10
+ import {
11
+ NO_CACHE_ARG
12
+ } from "./chunk-X7ZODEXJ.js";
13
+ import "./chunk-7EPXVICM.js";
14
+ import "./chunk-GXDLWBOY.js";
15
+ import "./chunk-TEINLN64.js";
16
+ import "./chunk-ZJWUBJYQ.js";
17
+ import "./chunk-HR6IWNKE.js";
18
+ import "./chunk-NE4F3FHN.js";
19
+ import {
20
+ apiPost
21
+ } from "./chunk-XBOK23HI.js";
22
+ import "./chunk-IFWP3ZDO.js";
23
+ import "./chunk-NAWWC5I3.js";
24
+ import "./chunk-NU7JSWVA.js";
25
+ import "./chunk-YQSBHWOI.js";
26
+
27
+ // src/commands/ads/linkedin/resolve.ts
28
+ import { defineCommand } from "citty";
29
+ function domainHints(resolution) {
30
+ const hints = [];
31
+ if (resolution.errors.length > 0) {
32
+ hints.push(
33
+ `LinkedIn has no organization for ${resolution.errors.map((e) => e.id).join(", ")} \u2014 skip them or check the ids.`
34
+ );
35
+ }
36
+ if (resolution.orgs.some((o) => o.domainSource === "subdomain")) {
37
+ hints.push("domainSource=subdomain (e.g. news.microsoft.com \u2192 microsoft.com) is a weaker match \u2014 confirm it.");
38
+ }
39
+ if (resolution.orgs.some((o) => o.domainSource === "none")) {
40
+ hints.push("domainSource=none: no usable website (shortlink or missing) \u2014 match those by vanityName or name.");
41
+ }
42
+ return hints;
43
+ }
44
+ function toOrgUrn(raw) {
45
+ const trimmed = raw.trim();
46
+ if (trimmed.length === 0) {
47
+ return null;
48
+ }
49
+ if (trimmed.startsWith("urn:li:")) {
50
+ return trimmed;
51
+ }
52
+ return /^\d+$/.test(trimmed) ? `urn:li:organization:${trimmed}` : null;
53
+ }
54
+ var resolveCommand = defineCommand({
55
+ meta: {
56
+ name: "resolve",
57
+ description: `Resolve organization URNs to company names.
58
+
59
+ Examples:
60
+ baker ads linkedin resolve --urns urn:li:organization:17719,urn:li:organization:19022
61
+ baker ads linkedin resolve --ids 17719,19022 --output csv
62
+ baker ads linkedin resolve --ids 1035,1337 --with-domains # + website domain per org, for CRM matching
63
+
64
+ Accepts --urns (full URNs) and/or --ids (bare numeric ids). Rows with no name
65
+ couldn't be resolved \u2014 typically an org outside LinkedIn's targetable set.
66
+
67
+ --with-domains returns {orgs, errors}: per org name, vanityName (LinkedIn page),
68
+ website and domain (registrable, e.g. microsoft.com) with domainSource
69
+ website | subdomain (weaker) | none (shortlink / no website). Ids LinkedIn
70
+ doesn't know land in errors; the rest still resolve. Cached 7 days.`
71
+ },
72
+ args: {
73
+ urns: { type: "string", description: "Comma-separated org URNs (urn:li:organization:NNN)" },
74
+ ids: { type: "string", description: "Comma-separated bare org ids (17719,19022)" },
75
+ "with-domains": {
76
+ type: "boolean",
77
+ description: "Return vanityName, website, domain and domainSource per org (+ errors for unknown ids)"
78
+ },
79
+ "no-cache": NO_CACHE_ARG,
80
+ output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
81
+ },
82
+ run: async ({ args }) => {
83
+ const raw = [args.urns, args.ids].filter(Boolean).join(",").split(",");
84
+ const urns = [...new Set(raw.map(toOrgUrn).filter((u) => u !== null))];
85
+ if (urns.length === 0) {
86
+ handleLinkedinError(new Error("Provide --urns or --ids (org URNs or bare numeric ids)."));
87
+ }
88
+ try {
89
+ if (args["with-domains"]) {
90
+ const resolution = await apiPost("/api/ads/linkedin/resolve-orgs", {
91
+ urns,
92
+ withDomains: true,
93
+ skipCache: Boolean(args["no-cache"])
94
+ });
95
+ const hints = domainHints(resolution);
96
+ const fmt2 = csvOrJson(args);
97
+ if (fmt2 !== "json") {
98
+ writeAdsOutput(resolution.orgs, fmt2, void 0, hints);
99
+ return;
100
+ }
101
+ writeJsonEnvelope(hints.length > 0 ? { ok: true, data: resolution, hints } : { ok: true, data: resolution });
102
+ return;
103
+ }
104
+ const data = await apiPost("/api/ads/linkedin/resolve-orgs", {
105
+ urns,
106
+ skipCache: Boolean(args["no-cache"])
107
+ });
108
+ const fmt = csvOrJson(args);
109
+ if (fmt !== "json") {
110
+ writeAdsOutput(data, fmt);
111
+ return;
112
+ }
113
+ writeAdsJson({ ok: true, data });
114
+ } catch (err) {
115
+ handleLinkedinError(err);
116
+ }
117
+ }
118
+ });
119
+ export {
120
+ resolveCommand
121
+ };
122
+ //# sourceMappingURL=resolve-OGX7C4TV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/linkedin/resolve.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { NO_CACHE_ARG } from \"../../../cache-flag.ts\";\nimport { apiPost } from \"../../../client.ts\";\nimport { writeAdsJson, writeAdsOutput, writeJsonEnvelope } from \"../output.ts\";\nimport { csvOrJson, handleLinkedinError } from \"./shared.ts\";\n\ninterface ResolvedOrg {\n urn: string;\n id: string;\n name?: string;\n}\n\ninterface ResolvedOrgDomain {\n urn: string;\n id: string;\n name: string | null;\n vanityName: string | null;\n website: string | null;\n domain: string | null;\n domainSource: \"website\" | \"subdomain\" | \"none\";\n}\n\ninterface OrgDomainResolution {\n orgs: ResolvedOrgDomain[];\n errors: Array<{ urn: string; id: string; status: number | null }>;\n}\n\nfunction domainHints(resolution: OrgDomainResolution): string[] {\n const hints: string[] = [];\n if (resolution.errors.length > 0) {\n hints.push(\n `LinkedIn has no organization for ${resolution.errors.map((e) => e.id).join(\", \")} — skip them or check the ids.`,\n );\n }\n if (resolution.orgs.some((o) => o.domainSource === \"subdomain\")) {\n hints.push(\"domainSource=subdomain (e.g. news.microsoft.com → microsoft.com) is a weaker match — confirm it.\");\n }\n if (resolution.orgs.some((o) => o.domainSource === \"none\")) {\n hints.push(\"domainSource=none: no usable website (shortlink or missing) — match those by vanityName or name.\");\n }\n return hints;\n}\n\n/** Accept bare ids (`17719`) or full URNs; emit canonical `urn:li:organization:NNN`. */\nfunction toOrgUrn(raw: string): string | null {\n const trimmed = raw.trim();\n if (trimmed.length === 0) {\n return null;\n }\n if (trimmed.startsWith(\"urn:li:\")) {\n return trimmed;\n }\n return /^\\d+$/.test(trimmed) ? `urn:li:organization:${trimmed}` : null;\n}\n\n/**\n * Resolve LinkedIn organization URNs to company names. The companion to\n * `top-companies` / `analytics --pivot company`, which surface bare org URNs:\n * paste the unresolved URNs here to confirm whether they're target accounts.\n *\n * Backed by the ads-scoped adTargetingEntities `urns` finder (1h-cached). Orgs\n * outside LinkedIn's targetable employer set come back with no name.\n */\nexport const resolveCommand = defineCommand({\n meta: {\n name: \"resolve\",\n description: `Resolve organization URNs to company names.\n\nExamples:\n baker ads linkedin resolve --urns urn:li:organization:17719,urn:li:organization:19022\n baker ads linkedin resolve --ids 17719,19022 --output csv\n baker ads linkedin resolve --ids 1035,1337 --with-domains # + website domain per org, for CRM matching\n\nAccepts --urns (full URNs) and/or --ids (bare numeric ids). Rows with no name\ncouldn't be resolved — typically an org outside LinkedIn's targetable set.\n\n--with-domains returns {orgs, errors}: per org name, vanityName (LinkedIn page),\nwebsite and domain (registrable, e.g. microsoft.com) with domainSource\nwebsite | subdomain (weaker) | none (shortlink / no website). Ids LinkedIn\ndoesn't know land in errors; the rest still resolve. Cached 7 days.`,\n },\n args: {\n urns: { type: \"string\", description: \"Comma-separated org URNs (urn:li:organization:NNN)\" },\n ids: { type: \"string\", description: \"Comma-separated bare org ids (17719,19022)\" },\n \"with-domains\": {\n type: \"boolean\",\n description: \"Return vanityName, website, domain and domainSource per org (+ errors for unknown ids)\",\n },\n \"no-cache\": NO_CACHE_ARG,\n output: { type: \"string\", description: \"json|csv|jsonl|md\", default: \"json\" },\n },\n run: async ({ args }) => {\n const raw = [args.urns as string | undefined, args.ids as string | undefined].filter(Boolean).join(\",\").split(\",\");\n const urns = [...new Set(raw.map(toOrgUrn).filter((u): u is string => u !== null))];\n if (urns.length === 0) {\n handleLinkedinError(new Error(\"Provide --urns or --ids (org URNs or bare numeric ids).\"));\n }\n\n try {\n if (args[\"with-domains\"]) {\n const resolution = await apiPost<OrgDomainResolution>(\"/api/ads/linkedin/resolve-orgs\", {\n urns,\n withDomains: true,\n skipCache: Boolean(args[\"no-cache\"]),\n });\n const hints = domainHints(resolution);\n const fmt = csvOrJson(args);\n if (fmt !== \"json\") {\n writeAdsOutput(resolution.orgs as unknown as Array<Record<string, unknown>>, fmt, undefined, hints);\n return;\n }\n writeJsonEnvelope(hints.length > 0 ? { ok: true, data: resolution, hints } : { ok: true, data: resolution });\n return;\n }\n const data = await apiPost<ResolvedOrg[]>(\"/api/ads/linkedin/resolve-orgs\", {\n urns,\n skipCache: Boolean(args[\"no-cache\"]),\n });\n\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AA2B9B,SAAS,YAAY,YAA2C;AAC9D,QAAM,QAAkB,CAAC;AACzB,MAAI,WAAW,OAAO,SAAS,GAAG;AAChC,UAAM;AAAA,MACJ,oCAAoC,WAAW,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC;AAAA,IACnF;AAAA,EACF;AACA,MAAI,WAAW,KAAK,KAAK,CAAC,MAAM,EAAE,iBAAiB,WAAW,GAAG;AAC/D,UAAM,KAAK,4GAAkG;AAAA,EAC/G;AACA,MAAI,WAAW,KAAK,KAAK,CAAC,MAAM,EAAE,iBAAiB,MAAM,GAAG;AAC1D,UAAM,KAAK,uGAAkG;AAAA,EAC/G;AACA,SAAO;AACT;AAGA,SAAS,SAAS,KAA4B;AAC5C,QAAM,UAAU,IAAI,KAAK;AACzB,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO;AAAA,EACT;AACA,MAAI,QAAQ,WAAW,SAAS,GAAG;AACjC,WAAO;AAAA,EACT;AACA,SAAO,QAAQ,KAAK,OAAO,IAAI,uBAAuB,OAAO,KAAK;AACpE;AAUO,IAAM,iBAAiB,cAAc;AAAA,EAC1C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcf;AAAA,EACA,MAAM;AAAA,IACJ,MAAM,EAAE,MAAM,UAAU,aAAa,qDAAqD;AAAA,IAC1F,KAAK,EAAE,MAAM,UAAU,aAAa,6CAA6C;AAAA,IACjF,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,IACA,YAAY;AAAA,IACZ,QAAQ,EAAE,MAAM,UAAU,aAAa,qBAAqB,SAAS,OAAO;AAAA,EAC9E;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,MAAM,CAAC,KAAK,MAA4B,KAAK,GAAyB,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG;AACjH,UAAM,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,QAAQ,EAAE,OAAO,CAAC,MAAmB,MAAM,IAAI,CAAC,CAAC;AAClF,QAAI,KAAK,WAAW,GAAG;AACrB,0BAAoB,IAAI,MAAM,yDAAyD,CAAC;AAAA,IAC1F;AAEA,QAAI;AACF,UAAI,KAAK,cAAc,GAAG;AACxB,cAAM,aAAa,MAAM,QAA6B,kCAAkC;AAAA,UACtF;AAAA,UACA,aAAa;AAAA,UACb,WAAW,QAAQ,KAAK,UAAU,CAAC;AAAA,QACrC,CAAC;AACD,cAAM,QAAQ,YAAY,UAAU;AACpC,cAAMA,OAAM,UAAU,IAAI;AAC1B,YAAIA,SAAQ,QAAQ;AAClB,yBAAe,WAAW,MAAmDA,MAAK,QAAW,KAAK;AAClG;AAAA,QACF;AACA,0BAAkB,MAAM,SAAS,IAAI,EAAE,IAAI,MAAM,MAAM,YAAY,MAAM,IAAI,EAAE,IAAI,MAAM,MAAM,WAAW,CAAC;AAC3G;AAAA,MACF;AACA,YAAM,OAAO,MAAM,QAAuB,kCAAkC;AAAA,QAC1E;AAAA,QACA,WAAW,QAAQ,KAAK,UAAU,CAAC;AAAA,MACrC,CAAC;AAED,YAAM,MAAM,UAAU,IAAI;AAC1B,UAAI,QAAQ,QAAQ;AAClB,uBAAe,MAAmD,GAAG;AACrE;AAAA,MACF;AACA,mBAAa,EAAE,IAAI,MAAM,KAAK,CAAC;AAAA,IACjC,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;","names":["fmt"]}
@@ -0,0 +1,61 @@
1
+ import {
2
+ libraryAssetIdRequestSchema
3
+ } from "./chunk-7EPXVICM.js";
4
+ import "./chunk-GXDLWBOY.js";
5
+ import "./chunk-TEINLN64.js";
6
+ import "./chunk-ZJWUBJYQ.js";
7
+ import "./chunk-HR6IWNKE.js";
8
+ import "./chunk-NE4F3FHN.js";
9
+ import {
10
+ ApiError,
11
+ apiPost
12
+ } from "./chunk-XBOK23HI.js";
13
+ import "./chunk-IFWP3ZDO.js";
14
+ import "./chunk-NAWWC5I3.js";
15
+ import {
16
+ registerSchema,
17
+ writeJson
18
+ } from "./chunk-NU7JSWVA.js";
19
+ import "./chunk-YQSBHWOI.js";
20
+
21
+ // src/commands/images/retry.ts
22
+ import { defineCommand } from "citty";
23
+ registerSchema({
24
+ command: "images.retry",
25
+ description: "Process a library image that failed (status 'error') again \u2014 its description, tags and search entry. Only failed images can be retried.",
26
+ args: { id: { type: "string", description: "Image ID with status 'error'", required: true } }
27
+ });
28
+ var retryCommand = defineCommand({
29
+ meta: {
30
+ name: "retry",
31
+ description: "Process a failed library image again. Only images with status 'error' can be retried.\n\nExample: baker images retry j571abc123def"
32
+ },
33
+ args: { id: { type: "positional", description: "Image ID with status 'error'", required: true } },
34
+ run: async ({ args }) => {
35
+ const parsed = libraryAssetIdRequestSchema.safeParse({ id: String(args.id ?? "") });
36
+ if (!parsed.success) {
37
+ writeJson({
38
+ ok: false,
39
+ error: { code: "VALIDATION_ERROR", message: parsed.error.issues[0]?.message ?? "Invalid ID" }
40
+ });
41
+ process.exit(1);
42
+ }
43
+ try {
44
+ const data = await apiPost("/api/images/retry", parsed.data);
45
+ writeJson({
46
+ ok: true,
47
+ data,
48
+ hints: [`Check it with \`baker images get ${data.id}\` in a minute; it is ready when status is 'ready'.`]
49
+ });
50
+ } catch (err) {
51
+ const code = err instanceof ApiError ? err.code : "INTERNAL_ERROR";
52
+ const message = err instanceof ApiError ? err.message : "Unexpected error";
53
+ writeJson({ ok: false, error: { code, message } });
54
+ process.exit(1);
55
+ }
56
+ }
57
+ });
58
+ export {
59
+ retryCommand
60
+ };
61
+ //# sourceMappingURL=retry-CD6JAQ3F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/images/retry.ts"],"sourcesContent":["import { type ImagesRetryResponse, libraryAssetIdRequestSchema } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\n\nregisterSchema({\n command: \"images.retry\",\n description:\n \"Process a library image that failed (status 'error') again — its description, tags and search entry. Only failed images can be retried.\",\n args: { id: { type: \"string\", description: \"Image ID with status 'error'\", required: true } },\n});\n\nexport const retryCommand = defineCommand({\n meta: {\n name: \"retry\",\n description:\n \"Process a failed library image again. Only images with status 'error' can be retried.\\n\\nExample: baker images retry j571abc123def\",\n },\n args: { id: { type: \"positional\", description: \"Image ID with status 'error'\", required: true } },\n run: async ({ args }) => {\n const parsed = libraryAssetIdRequestSchema.safeParse({ id: String(args.id ?? \"\") });\n if (!parsed.success) {\n writeJson({\n ok: false,\n error: { code: \"VALIDATION_ERROR\", message: parsed.error.issues[0]?.message ?? \"Invalid ID\" },\n });\n process.exit(1);\n }\n try {\n const data = await apiPost<ImagesRetryResponse>(\"/api/images/retry\", parsed.data);\n writeJson({\n ok: true,\n data,\n hints: [`Check it with \\`baker images get ${data.id}\\` in a minute; it is ready when status is 'ready'.`],\n });\n } catch (err) {\n const code = err instanceof ApiError ? err.code : \"INTERNAL_ERROR\";\n const message = err instanceof ApiError ? err.message : \"Unexpected error\";\n writeJson({ ok: false, error: { code, message } });\n process.exit(1);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,SAAS,qBAAqB;AAK9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,aAAa,gCAAgC,UAAU,KAAK,EAAE;AAC9F,CAAC;AAEM,IAAM,eAAe,cAAc;AAAA,EACxC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,aAAa,gCAAgC,UAAU,KAAK,EAAE;AAAA,EAChG,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,SAAS,4BAA4B,UAAU,EAAE,IAAI,OAAO,KAAK,MAAM,EAAE,EAAE,CAAC;AAClF,QAAI,CAAC,OAAO,SAAS;AACnB,gBAAU;AAAA,QACR,IAAI;AAAA,QACJ,OAAO,EAAE,MAAM,oBAAoB,SAAS,OAAO,MAAM,OAAO,CAAC,GAAG,WAAW,aAAa;AAAA,MAC9F,CAAC;AACD,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,QAAI;AACF,YAAM,OAAO,MAAM,QAA6B,qBAAqB,OAAO,IAAI;AAChF,gBAAU;AAAA,QACR,IAAI;AAAA,QACJ;AAAA,QACA,OAAO,CAAC,oCAAoC,KAAK,EAAE,qDAAqD;AAAA,MAC1G,CAAC;AAAA,IACH,SAAS,KAAK;AACZ,YAAM,OAAO,eAAe,WAAW,IAAI,OAAO;AAClD,YAAM,UAAU,eAAe,WAAW,IAAI,UAAU;AACxD,gBAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,QAAQ,EAAE,CAAC;AACjD,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AACF,CAAC;","names":[]}