@koda-sl/baker-cli 0.517.0 → 0.519.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/README.md +1 -2
  2. package/dist/{account-HIQYGYT4.js → account-SB2M4ACJ.js} +6 -6
  3. package/dist/{account-users-VC5SNYKW.js → account-users-O25RX67D.js} +6 -6
  4. package/dist/{accounts-CCWDKLHP.js → accounts-NBATVND7.js} +5 -5
  5. package/dist/{accounts-5ZFFDJIL.js → accounts-X6OS6LFQ.js} +7 -7
  6. package/dist/{actions-6LP4UN4U.js → actions-WQBRBRQM.js} +18 -18
  7. package/dist/{activecampaign-FVOQZVBM.js → activecampaign-GJ4QHU5I.js} +5 -5
  8. package/dist/{add-63X5JFLN.js → add-3FM5IKMS.js} +4 -4
  9. package/dist/{add-2IJVGWA6.js → add-A5VX5UUP.js} +3 -3
  10. package/dist/{add-XTQJ7KNR.js → add-L7GVFQJG.js} +5 -5
  11. package/dist/{add-T4HBAXZE.js → add-YXTVT2IS.js} +3 -3
  12. package/dist/{ads-PA4DUVVT.js → ads-Y7WZPGER.js} +4 -4
  13. package/dist/{advertisers-3KGJDTCG.js → advertisers-KMMOSMCM.js} +5 -5
  14. package/dist/{analytics-EVKBNTNB.js → analytics-46QAGRUG.js} +5 -5
  15. package/dist/{analytics-SB42GKIT.js → analytics-OBXOCY64.js} +8 -8
  16. package/dist/approved-A2YR4M4Z.js +73 -0
  17. package/dist/approved-A2YR4M4Z.js.map +1 -0
  18. package/dist/{assign-H3EPC4TB.js → assign-RRUSAKS7.js} +5 -5
  19. package/dist/{audience-size-CAPQWSRV.js → audience-size-ZTP67T4K.js} +5 -5
  20. package/dist/{audit-6HBYMOKF.js → audit-KALSWJ4L.js} +5 -5
  21. package/dist/{autocomplete-M7KXEDAW.js → autocomplete-VGOVCLFQ.js} +5 -5
  22. package/dist/{avatars-RZVFKOV5.js → avatars-KU4DN7VX.js} +4 -4
  23. package/dist/{bid-pricing-DB4DS5C4.js → bid-pricing-SVFOSIC4.js} +6 -6
  24. package/dist/{brand-NXNIHPZT.js → brand-XPLJH74A.js} +2 -2
  25. package/dist/{brief-LGEI6PGB.js → brief-IIY547K5.js} +14 -14
  26. package/dist/{campaign-groups-2T2AEB34.js → campaign-groups-NHOTEJMK.js} +11 -11
  27. package/dist/{campaign-writes-DHN7P3NI.js → campaign-writes-44MRFJKF.js} +5 -5
  28. package/dist/{campaigns-SHEFD5WE.js → campaigns-4UGHW5VG.js} +14 -14
  29. package/dist/{campaigns-7K5GA2FI.js → campaigns-DGFPAYW6.js} +5 -5
  30. package/dist/{canvas-7AW3JWDK.js → canvas-DE2DVGQT.js} +13 -13
  31. package/dist/{capabilities-P6P3PCN4.js → capabilities-IV3TIY5P.js} +5 -5
  32. package/dist/{chats-AFKZYIVE.js → chats-O3KS5FRK.js} +5 -5
  33. package/dist/{check-IRTF2SLS.js → check-XTCIDHDP.js} +7 -7
  34. package/dist/{chunk-GNPFPOAR.js → chunk-27LRO2OC.js} +2 -2
  35. package/dist/{chunk-2L7F7KR4.js → chunk-2AS4ACOC.js} +2 -2
  36. package/dist/{chunk-ZBDPPW65.js → chunk-2T4ITAX4.js} +2 -2
  37. package/dist/{chunk-IQ6IPBEM.js → chunk-453Y7PXW.js} +2 -2
  38. package/dist/{chunk-K6AYR6PN.js → chunk-4XPR7U3A.js} +3 -3
  39. package/dist/{chunk-JOIUJOCM.js → chunk-52MN4CC7.js} +2 -8
  40. package/dist/chunk-52MN4CC7.js.map +1 -0
  41. package/dist/{chunk-YZWEZQE4.js → chunk-6MN6OJJV.js} +2 -2
  42. package/dist/{chunk-REN4YI4L.js → chunk-6ZHVCUHZ.js} +2 -2
  43. package/dist/{chunk-PUFCP6CS.js → chunk-7J34JKHT.js} +3 -3
  44. package/dist/{chunk-F34CKDO4.js → chunk-BKCXGCWP.js} +3 -3
  45. package/dist/{chunk-YBNE6UFA.js → chunk-D7PCSTXL.js} +2 -2
  46. package/dist/{chunk-ERJZS5OP.js → chunk-DD7JXOWY.js} +2 -2
  47. package/dist/{chunk-7JCBBJIE.js → chunk-DXDNV33I.js} +2 -2
  48. package/dist/{chunk-O6A3L35F.js → chunk-FQSPKUDV.js} +3 -3
  49. package/dist/{chunk-WM2WOQAX.js → chunk-GWI6UIIX.js} +4 -4
  50. package/dist/{chunk-IHLGTYEO.js → chunk-HLENNA5Y.js} +2 -2
  51. package/dist/{chunk-PUH4ORIY.js → chunk-IAJNZPVZ.js} +2 -2
  52. package/dist/{chunk-MLFSYS2H.js → chunk-J5SZHVAN.js} +3 -3
  53. package/dist/{chunk-SU573TSF.js → chunk-JEWNEB33.js} +3 -3
  54. package/dist/{chunk-IUWCDYAK.js → chunk-JOKLBSDV.js} +2 -2
  55. package/dist/{chunk-4Z6PVR3M.js → chunk-JWYYAHSF.js} +2 -2
  56. package/dist/{chunk-BB7BZHRT.js → chunk-JZGZC4W2.js} +2 -2
  57. package/dist/{chunk-PO4Y66ZT.js → chunk-K66NBDPO.js} +2 -2
  58. package/dist/{chunk-BFAKWX4N.js → chunk-KDFO3X2K.js} +5 -5
  59. package/dist/{chunk-4VPC3KQV.js → chunk-LKKO4OYI.js} +8 -8
  60. package/dist/{chunk-ATW4OELT.js → chunk-NBP2NTVI.js} +2 -2
  61. package/dist/{chunk-GQPMFFU2.js → chunk-OLHCZA2Y.js} +2 -2
  62. package/dist/{chunk-S63QUIAF.js → chunk-PPKQTNY7.js} +2 -2
  63. package/dist/{chunk-PC3FJEZH.js → chunk-PR45G3SV.js} +7 -3
  64. package/dist/chunk-PR45G3SV.js.map +1 -0
  65. package/dist/{chunk-3Q2CF6PN.js → chunk-QDWQDWZ6.js} +2 -2
  66. package/dist/{chunk-XNTQDAAM.js → chunk-QJL5DYCP.js} +5 -5
  67. package/dist/{chunk-SUYJG7YR.js → chunk-QQQGMSGL.js} +2 -2
  68. package/dist/{chunk-CAZGM2NX.js → chunk-QV6AST5T.js} +2 -2
  69. package/dist/{chunk-ARBXT73X.js → chunk-RCDEKWP7.js} +2 -2
  70. package/dist/{chunk-VGMTVZG7.js → chunk-RDYS7Z5Y.js} +2 -2
  71. package/dist/{chunk-HI3PLCOQ.js → chunk-RMVESPXL.js} +3 -3
  72. package/dist/{chunk-52KZOLJU.js → chunk-RP6EPH7U.js} +20 -4
  73. package/dist/chunk-RP6EPH7U.js.map +1 -0
  74. package/dist/{chunk-HO3SFL4V.js → chunk-TQR2TL2X.js} +2 -2
  75. package/dist/{chunk-AQRXXC6E.js → chunk-UXJSZ74Q.js} +2 -2
  76. package/dist/{chunk-LGT5QIDH.js → chunk-VU6UJXPW.js} +2 -2
  77. package/dist/{chunk-NZS3KEQ2.js → chunk-WCU362Z6.js} +7 -1
  78. package/dist/chunk-WCU362Z6.js.map +1 -0
  79. package/dist/{chunk-QGT2B6IK.js → chunk-WNX5RQCM.js} +3 -3
  80. package/dist/{chunk-6HJXLGDV.js → chunk-XEJMY2NG.js} +2 -2
  81. package/dist/{chunk-K6NULQN7.js → chunk-YQWJBAA6.js} +2 -2
  82. package/dist/{chunk-P33YBON4.js → chunk-Z7MOJPTA.js} +2 -2
  83. package/dist/{chunk-P33YBON4.js.map → chunk-Z7MOJPTA.js.map} +1 -1
  84. package/dist/{chunk-UWLXAQOR.js → chunk-ZGXRX7VQ.js} +3 -3
  85. package/dist/{claim-GVEBBGR3.js → claim-UUYFZYQX.js} +5 -5
  86. package/dist/cli.js +31 -31
  87. package/dist/{companies-WSH35EDY.js → companies-SJPRPNZW.js} +5 -5
  88. package/dist/{company-CTERVQSX.js → company-DNWA3VBT.js} +5 -5
  89. package/dist/{complete-SI3AXMUL.js → complete-ZFKVCZ7T.js} +5 -5
  90. package/dist/{connect-SQERLPW7.js → connect-RZ2QGAD2.js} +8 -8
  91. package/dist/{conversation-HLIZIZGW.js → conversation-N6G3HEKP.js} +5 -5
  92. package/dist/{conversions-RPVEVIKI.js → conversions-R2XG377F.js} +10 -10
  93. package/dist/{create-EP7TMMZN.js → create-CQ2F3RVK.js} +5 -5
  94. package/dist/{create-SJV6K36J.js → create-WFFFHYT7.js} +5 -5
  95. package/dist/{create-BEDPQEBH.js → create-XJWY3UYA.js} +4 -4
  96. package/dist/{create-DV6ESQ2I.js → create-Z4GRVMNI.js} +5 -5
  97. package/dist/{creatives-HS4USKWX.js → creatives-BVDFEUGW.js} +12 -12
  98. package/dist/{creatives-47VHC5EK.js → creatives-P62EW2IB.js} +11 -11
  99. package/dist/{credentials-OQGLIQJG.js → credentials-RBVXAYGB.js} +5 -5
  100. package/dist/{critique-7ESCPCZ7.js → critique-LMDBUCNG.js} +10 -10
  101. package/dist/{critique-BGDASZGD.js → critique-Z6PJLV7A.js} +5 -5
  102. package/dist/{crm-G654DZVI.js → crm-IPU62BGC.js} +6 -6
  103. package/dist/{crm-Q3AU3MIA.js → crm-MMEEIC2W.js} +6 -6
  104. package/dist/{customers-KBELHID7.js → customers-IIVCHZ5R.js} +7 -7
  105. package/dist/{delete-IIL5KCST.js → delete-7PYYXFO6.js} +5 -5
  106. package/dist/{delete-RRRY6XET.js → delete-BQDCLL7M.js} +5 -5
  107. package/dist/{delete-IAUWDMU7.js → delete-C76IUSVH.js} +4 -4
  108. package/dist/{demographics-APU7OYII.js → demographics-X3GXYKMG.js} +5 -5
  109. package/dist/{discard-ULJXJFDQ.js → discard-PBEIHDFU.js} +5 -5
  110. package/dist/{domain-P2SZ3YF4.js → domain-3TMWNPZ7.js} +5 -5
  111. package/dist/{download-EWU5K3H6.js → download-BYVQLRJD.js} +4 -4
  112. package/dist/{draft-UYRL4TYH.js → draft-65SXX3CW.js} +6 -6
  113. package/dist/{draft-IZWZC4FK.js → draft-C2PB3XV5.js} +5 -5
  114. package/dist/{draft-Z3HWEHIE.js → draft-J7FS3DU6.js} +5 -5
  115. package/dist/{experiments-PXPVOOP3.js → experiments-6AQ3H5TP.js} +6 -6
  116. package/dist/{facets-7SO4AK7T.js → facets-QIBOD36G.js} +5 -5
  117. package/dist/{feedback-HENZKXJG.js → feedback-UWKIPCPU.js} +13 -13
  118. package/dist/{feedback-record-6HSI2NHW.js → feedback-record-PRBALHEF.js} +14 -14
  119. package/dist/{fetch-P2A2IWCZ.js → fetch-JAW3CLR7.js} +5 -5
  120. package/dist/{fit-A2S3DIGM.js → fit-6USDAOWA.js} +7 -7
  121. package/dist/{flows-QQ5XRGFL.js → flows-77TYO56Q.js} +12 -12
  122. package/dist/{fonts-WP6BYRZ6.js → fonts-HPGCVH56.js} +7 -7
  123. package/dist/{forecast-FE4OHPJC.js → forecast-E6VX34YE.js} +6 -6
  124. package/dist/{funnel-TLKZNW3H.js → funnel-EKW64M7Z.js} +6 -6
  125. package/dist/{get-N7W4E3S3.js → get-4URDPE46.js} +5 -5
  126. package/dist/{get-ZZFJK4BC.js → get-6JWGIPN2.js} +2 -2
  127. package/dist/{get-L72Z4EPU.js → get-XTYQ7LRY.js} +5 -5
  128. package/dist/{google-ads-HKW7HQMB.js → google-ads-LSOL6ZAT.js} +5 -5
  129. package/dist/{history-KW7XE3WD.js → history-2PDLZQJ2.js} +5 -5
  130. package/dist/{history-EJEC3M6F.js → history-CXVGFR2N.js} +5 -5
  131. package/dist/{hubspot-6K37PW65.js → hubspot-FHJHMYJI.js} +9 -9
  132. package/dist/{ideas-ZE2Q3N2G.js → ideas-RGFK5HUY.js} +6 -6
  133. package/dist/{images-6674KEOT.js → images-JEC7LTTJ.js} +4 -4
  134. package/dist/{ingest-YFC5X3DL.js → ingest-3CX5R5IT.js} +5 -5
  135. package/dist/{ingest-F4B7YUSP.js → ingest-WFVQVBAM.js} +4 -4
  136. package/dist/{inspect-H46HYVEZ.js → inspect-2UHVWOG2.js} +5 -5
  137. package/dist/{keyword-metrics-6UWS5M56.js → keyword-metrics-LH4W6QFP.js} +5 -5
  138. package/dist/{keywords-for-site-24RQIO7D.js → keywords-for-site-XYHIIXTG.js} +5 -5
  139. package/dist/{landing-NBY7W4TC.js → landing-L6KGKU4P.js} +2 -2
  140. package/dist/{leads-FQETKGK6.js → leads-U2H7VSS5.js} +5 -5
  141. package/dist/{learn-HIFV2X6Y.js → learn-TJX6P3BX.js} +6 -6
  142. package/dist/{line-item-writes-G6CQQ2OE.js → line-item-writes-ZJWAI6F5.js} +5 -5
  143. package/dist/{line-items-7RII35L6.js → line-items-2DAQ4HQC.js} +5 -5
  144. package/dist/{link-U6T53J4M.js → link-BLXHUO6M.js} +5 -5
  145. package/dist/{linkedin-HV33YUQH.js → linkedin-FTRTC4FJ.js} +31 -31
  146. package/dist/{linkedin-person-RRRDEKVO.js → linkedin-person-IDSNXORW.js} +5 -5
  147. package/dist/{list-WNULRKMX.js → list-6WXKFWNK.js} +5 -5
  148. package/dist/{list-MZ7VL6YP.js → list-MHHBEIV2.js} +4 -4
  149. package/dist/{list-3T6O43NA.js → list-Z5WACV7V.js} +5 -5
  150. package/dist/{list-BOINVP2D.js → list-Z7NOJY3P.js} +3 -3
  151. package/dist/{log-JTO4LCK7.js → log-JK4MXZHL.js} +5 -5
  152. package/dist/{make-DLUX3YJG.js → make-OY6V7TEN.js} +19 -23
  153. package/dist/make-OY6V7TEN.js.map +1 -0
  154. package/dist/{map-C4CL2K2H.js → map-I7QD5DLU.js} +6 -6
  155. package/dist/{mcp-DNQSMHCT.js → mcp-FFODYTJ2.js} +4 -4
  156. package/dist/{media-sources-6Y4SLLKU.js → media-sources-WZJ67OP7.js} +7 -7
  157. package/dist/{members-6H6YJLEE.js → members-3Q6YGEHV.js} +5 -5
  158. package/dist/{normalize-WZOYY4DO.js → normalize-WBWLUF4B.js} +5 -5
  159. package/dist/{options-GBRUIUEB.js → options-FXT3WL2Q.js} +8 -8
  160. package/dist/{organization-36Q5KWP4.js → organization-I2DXVVIE.js} +5 -5
  161. package/dist/{performance-HY2S3M3Q.js → performance-B5YM4YWL.js} +6 -6
  162. package/dist/{performance-IYJWXEIR.js → performance-S5PPW6WN.js} +5 -5
  163. package/dist/{posts-5EHNIOBK.js → posts-PPSQ726T.js} +11 -9
  164. package/dist/posts-PPSQ726T.js.map +1 -0
  165. package/dist/{promoted-tweet-writes-O7E6NCPZ.js → promoted-tweet-writes-4AMNWCLE.js} +5 -5
  166. package/dist/{promoted-tweets-4YG3JXGA.js → promoted-tweets-IQTM4LGO.js} +3 -3
  167. package/dist/{publish-D555JP3P.js → publish-SQHJU7D4.js} +5 -5
  168. package/dist/{reddit-PQPA6OW6.js → reddit-LDKULCVD.js} +6 -6
  169. package/dist/{refresh-CK4KWM7L.js → refresh-7KY4EVFP.js} +4 -4
  170. package/dist/{refresh-BSQUG5ES.js → refresh-ZCKZ6RPU.js} +2 -2
  171. package/dist/{release-LTANINTQ.js → release-AQOOYDQL.js} +5 -5
  172. package/dist/{remove-R3RPAVCO.js → remove-MMFYOG6I.js} +4 -4
  173. package/dist/{remove-3UUDDSVZ.js → remove-PPLOR5BM.js} +3 -3
  174. package/dist/{reopen-GPCCEOW7.js → reopen-MEH2MLSF.js} +5 -5
  175. package/dist/{rerun-GMX3MXNT.js → rerun-HQPYU22S.js} +16 -16
  176. package/dist/{research-CZNU2TPL.js → research-F4GTVF3J.js} +13 -13
  177. package/dist/{research-CFTKGJJE.js → research-I7PGG23J.js} +4 -4
  178. package/dist/{reset-LGTW4LMQ.js → reset-2V7TDDOL.js} +4 -4
  179. package/dist/{reset-KOB2UPTO.js → reset-BRDUWVSE.js} +4 -4
  180. package/dist/{resolve-VP6ZXGR4.js → resolve-IJCE2ITP.js} +5 -5
  181. package/dist/{retry-LJT5VXTP.js → retry-AYSAFT57.js} +4 -4
  182. package/dist/{retry-3YKKY5FV.js → retry-FNCL5A7B.js} +4 -4
  183. package/dist/{revenue-QACBLUVF.js → revenue-NEUL7AWO.js} +6 -6
  184. package/dist/{rules-E6LT44LB.js → rules-PMLZCOA5.js} +7 -7
  185. package/dist/{rules-add-O5IIJQG5.js → rules-add-776T2BP7.js} +7 -7
  186. package/dist/{run-NEFURGDJ.js → run-EHVEZSB2.js} +16 -16
  187. package/dist/{run-KDKVNEFU.js → run-WFV5RIGG.js} +5 -5
  188. package/dist/{scaffold-ad-S3LLVRMM.js → scaffold-ad-OBEYIJFJ.js} +12 -16
  189. package/dist/scaffold-ad-OBEYIJFJ.js.map +1 -0
  190. package/dist/{scaffold-static-ad-HKTT6Q5A.js → scaffold-static-ad-SFW7M3QD.js} +20 -25
  191. package/dist/scaffold-static-ad-SFW7M3QD.js.map +1 -0
  192. package/dist/{scaffold-video-KEPI4AKO.js → scaffold-video-NM35Q654.js} +11 -15
  193. package/dist/scaffold-video-NM35Q654.js.map +1 -0
  194. package/dist/{schedule-5U2KLUVV.js → schedule-JZLFA3NT.js} +4 -4
  195. package/dist/{schedule-XT4QNSEJ.js → schedule-N5NXFCIW.js} +3 -3
  196. package/dist/{scheduled-agents-RGI6FOGL.js → scheduled-agents-A5OLKMAB.js} +11 -11
  197. package/dist/{schema-6HQWNWNX.js → schema-K5XBEGPU.js} +6 -6
  198. package/dist/{search-TBR2OQAQ.js → search-SQGZEEDU.js} +4 -4
  199. package/dist/{search-5HHN5SCT.js → search-ZWQJCYAB.js} +3 -3
  200. package/dist/{select-MCI7YOAT.js → select-SLJIHO2B.js} +12 -12
  201. package/dist/{set-prompt-QLFAWUYT.js → set-prompt-5ABLKNZ7.js} +10 -10
  202. package/dist/{setup-links-I4UIEK3F.js → setup-links-5PAHBVRM.js} +5 -5
  203. package/dist/{shopify-GLRBIUQU.js → shopify-3KNP5U4O.js} +5 -5
  204. package/dist/{site-UXH2ERL6.js → site-5NCEJBUK.js} +6 -6
  205. package/dist/{sources-G7YJZMKO.js → sources-N4Z3FCPT.js} +6 -6
  206. package/dist/{sources-DHLKS662.js → sources-WGXHR7SO.js} +8 -8
  207. package/dist/{stale-5JJDXRJQ.js → stale-C26V6JYZ.js} +11 -11
  208. package/dist/{status-BLBU3WLF.js → status-DLMR6XYY.js} +5 -5
  209. package/dist/{suggest-22OK4TOU.js → suggest-6DLRLGOR.js} +3 -3
  210. package/dist/{sync-F7YKBFD6.js → sync-2CFDRWNM.js} +4 -4
  211. package/dist/{sync-5MR3S6EN.js → sync-EFIN4VNC.js} +3 -3
  212. package/dist/{sync-definition-KZBTYXTT.js → sync-definition-JVRNC2AY.js} +11 -11
  213. package/dist/{tag-4XJRM5EK.js → tag-VIE22YTB.js} +3 -3
  214. package/dist/{tags-PWNRJVD7.js → tags-BRKXMMY5.js} +5 -5
  215. package/dist/{tags-TZWQUVL4.js → tags-BYZLOSKY.js} +5 -5
  216. package/dist/{tags-LMXKB2OL.js → tags-IJQ2E7EM.js} +5 -5
  217. package/dist/{tags-TXLWDBWF.js → tags-SZM7BZEN.js} +4 -4
  218. package/dist/{tags-6CUL5VHX.js → tags-UZ7CS5M6.js} +4 -4
  219. package/dist/{targeting-criteria-QJUZ2WYD.js → targeting-criteria-XPISQ4CC.js} +3 -3
  220. package/dist/{targets-G2IGX3OZ.js → targets-QBV4Q3FV.js} +5 -5
  221. package/dist/{testimonials-OT6NY7SS.js → testimonials-Q3HZ7CW5.js} +6 -6
  222. package/dist/{top-companies-VBBCBOUH.js → top-companies-AEVG3GM2.js} +5 -5
  223. package/dist/{transcript-B3M5EOBO.js → transcript-D46W3YS6.js} +5 -5
  224. package/dist/{translate-JDOV66SF.js → translate-RRRZIIZI.js} +15 -24
  225. package/dist/translate-RRRZIIZI.js.map +1 -0
  226. package/dist/{triggers-JBJ2B25H.js → triggers-2PMG3CTE.js} +5 -5
  227. package/dist/{unlink-HFWMJ54N.js → unlink-B6SXOKUJ.js} +5 -5
  228. package/dist/{unstage-NEQ4LBVA.js → unstage-MXZHQWMJ.js} +5 -5
  229. package/dist/{update-O53IK7IO.js → update-4NQN2INR.js} +5 -5
  230. package/dist/{update-MPXQIFBV.js → update-EM6EZQ73.js} +2 -2
  231. package/dist/{update-OC4AXD37.js → update-G3JCKMAY.js} +5 -5
  232. package/dist/{update-UZAR3XHC.js → update-HCKZL5MK.js} +4 -4
  233. package/dist/{update-AQ7PNMDT.js → update-TAQAF735.js} +5 -5
  234. package/dist/{upload-ZZRTKYOD.js → upload-FNKD3HFW.js} +5 -5
  235. package/dist/{url-params-T52VQBSO.js → url-params-JTFJAWSC.js} +5 -5
  236. package/dist/{validate-6WVFHIHO.js → validate-SSW2W7Z7.js} +12 -12
  237. package/dist/{videos-2TBZRY5V.js → videos-RYCPYL5P.js} +6 -6
  238. package/dist/{viewer-check-SRNQRROA.js → viewer-check-ZPGWIUNI.js} +8 -8
  239. package/dist/{web-DRPZSSB7.js → web-HUBEV7L6.js} +5 -5
  240. package/dist/{winning-ads-HSUV7XN3.js → winning-ads-YIBTH2Q5.js} +3 -3
  241. package/dist/{write-commands-MZTHQWQL.js → write-commands-DEQGPWQM.js} +6 -6
  242. package/dist/{x-MLGIU2JN.js → x-AIP6SGS3.js} +6 -6
  243. package/package.json +1 -1
  244. package/dist/chunk-52KZOLJU.js.map +0 -1
  245. package/dist/chunk-JOIUJOCM.js.map +0 -1
  246. package/dist/chunk-NZS3KEQ2.js.map +0 -1
  247. package/dist/chunk-PC3FJEZH.js.map +0 -1
  248. package/dist/chunk-UZV5QWC5.js +0 -66
  249. package/dist/chunk-UZV5QWC5.js.map +0 -1
  250. package/dist/make-DLUX3YJG.js.map +0 -1
  251. package/dist/posts-5EHNIOBK.js.map +0 -1
  252. package/dist/scaffold-ad-S3LLVRMM.js.map +0 -1
  253. package/dist/scaffold-static-ad-HKTT6Q5A.js.map +0 -1
  254. package/dist/scaffold-video-KEPI4AKO.js.map +0 -1
  255. package/dist/translate-JDOV66SF.js.map +0 -1
  256. /package/dist/{account-HIQYGYT4.js.map → account-SB2M4ACJ.js.map} +0 -0
  257. /package/dist/{account-users-VC5SNYKW.js.map → account-users-O25RX67D.js.map} +0 -0
  258. /package/dist/{accounts-CCWDKLHP.js.map → accounts-NBATVND7.js.map} +0 -0
  259. /package/dist/{accounts-5ZFFDJIL.js.map → accounts-X6OS6LFQ.js.map} +0 -0
  260. /package/dist/{actions-6LP4UN4U.js.map → actions-WQBRBRQM.js.map} +0 -0
  261. /package/dist/{activecampaign-FVOQZVBM.js.map → activecampaign-GJ4QHU5I.js.map} +0 -0
  262. /package/dist/{add-63X5JFLN.js.map → add-3FM5IKMS.js.map} +0 -0
  263. /package/dist/{add-2IJVGWA6.js.map → add-A5VX5UUP.js.map} +0 -0
  264. /package/dist/{add-XTQJ7KNR.js.map → add-L7GVFQJG.js.map} +0 -0
  265. /package/dist/{add-T4HBAXZE.js.map → add-YXTVT2IS.js.map} +0 -0
  266. /package/dist/{ads-PA4DUVVT.js.map → ads-Y7WZPGER.js.map} +0 -0
  267. /package/dist/{advertisers-3KGJDTCG.js.map → advertisers-KMMOSMCM.js.map} +0 -0
  268. /package/dist/{analytics-EVKBNTNB.js.map → analytics-46QAGRUG.js.map} +0 -0
  269. /package/dist/{analytics-SB42GKIT.js.map → analytics-OBXOCY64.js.map} +0 -0
  270. /package/dist/{assign-H3EPC4TB.js.map → assign-RRUSAKS7.js.map} +0 -0
  271. /package/dist/{audience-size-CAPQWSRV.js.map → audience-size-ZTP67T4K.js.map} +0 -0
  272. /package/dist/{audit-6HBYMOKF.js.map → audit-KALSWJ4L.js.map} +0 -0
  273. /package/dist/{autocomplete-M7KXEDAW.js.map → autocomplete-VGOVCLFQ.js.map} +0 -0
  274. /package/dist/{avatars-RZVFKOV5.js.map → avatars-KU4DN7VX.js.map} +0 -0
  275. /package/dist/{bid-pricing-DB4DS5C4.js.map → bid-pricing-SVFOSIC4.js.map} +0 -0
  276. /package/dist/{brand-NXNIHPZT.js.map → brand-XPLJH74A.js.map} +0 -0
  277. /package/dist/{brief-LGEI6PGB.js.map → brief-IIY547K5.js.map} +0 -0
  278. /package/dist/{campaign-groups-2T2AEB34.js.map → campaign-groups-NHOTEJMK.js.map} +0 -0
  279. /package/dist/{campaign-writes-DHN7P3NI.js.map → campaign-writes-44MRFJKF.js.map} +0 -0
  280. /package/dist/{campaigns-SHEFD5WE.js.map → campaigns-4UGHW5VG.js.map} +0 -0
  281. /package/dist/{campaigns-7K5GA2FI.js.map → campaigns-DGFPAYW6.js.map} +0 -0
  282. /package/dist/{canvas-7AW3JWDK.js.map → canvas-DE2DVGQT.js.map} +0 -0
  283. /package/dist/{capabilities-P6P3PCN4.js.map → capabilities-IV3TIY5P.js.map} +0 -0
  284. /package/dist/{chats-AFKZYIVE.js.map → chats-O3KS5FRK.js.map} +0 -0
  285. /package/dist/{check-IRTF2SLS.js.map → check-XTCIDHDP.js.map} +0 -0
  286. /package/dist/{chunk-GNPFPOAR.js.map → chunk-27LRO2OC.js.map} +0 -0
  287. /package/dist/{chunk-2L7F7KR4.js.map → chunk-2AS4ACOC.js.map} +0 -0
  288. /package/dist/{chunk-ZBDPPW65.js.map → chunk-2T4ITAX4.js.map} +0 -0
  289. /package/dist/{chunk-IQ6IPBEM.js.map → chunk-453Y7PXW.js.map} +0 -0
  290. /package/dist/{chunk-K6AYR6PN.js.map → chunk-4XPR7U3A.js.map} +0 -0
  291. /package/dist/{chunk-YZWEZQE4.js.map → chunk-6MN6OJJV.js.map} +0 -0
  292. /package/dist/{chunk-REN4YI4L.js.map → chunk-6ZHVCUHZ.js.map} +0 -0
  293. /package/dist/{chunk-PUFCP6CS.js.map → chunk-7J34JKHT.js.map} +0 -0
  294. /package/dist/{chunk-F34CKDO4.js.map → chunk-BKCXGCWP.js.map} +0 -0
  295. /package/dist/{chunk-YBNE6UFA.js.map → chunk-D7PCSTXL.js.map} +0 -0
  296. /package/dist/{chunk-ERJZS5OP.js.map → chunk-DD7JXOWY.js.map} +0 -0
  297. /package/dist/{chunk-7JCBBJIE.js.map → chunk-DXDNV33I.js.map} +0 -0
  298. /package/dist/{chunk-O6A3L35F.js.map → chunk-FQSPKUDV.js.map} +0 -0
  299. /package/dist/{chunk-WM2WOQAX.js.map → chunk-GWI6UIIX.js.map} +0 -0
  300. /package/dist/{chunk-IHLGTYEO.js.map → chunk-HLENNA5Y.js.map} +0 -0
  301. /package/dist/{chunk-PUH4ORIY.js.map → chunk-IAJNZPVZ.js.map} +0 -0
  302. /package/dist/{chunk-MLFSYS2H.js.map → chunk-J5SZHVAN.js.map} +0 -0
  303. /package/dist/{chunk-SU573TSF.js.map → chunk-JEWNEB33.js.map} +0 -0
  304. /package/dist/{chunk-IUWCDYAK.js.map → chunk-JOKLBSDV.js.map} +0 -0
  305. /package/dist/{chunk-4Z6PVR3M.js.map → chunk-JWYYAHSF.js.map} +0 -0
  306. /package/dist/{chunk-BB7BZHRT.js.map → chunk-JZGZC4W2.js.map} +0 -0
  307. /package/dist/{chunk-PO4Y66ZT.js.map → chunk-K66NBDPO.js.map} +0 -0
  308. /package/dist/{chunk-BFAKWX4N.js.map → chunk-KDFO3X2K.js.map} +0 -0
  309. /package/dist/{chunk-4VPC3KQV.js.map → chunk-LKKO4OYI.js.map} +0 -0
  310. /package/dist/{chunk-ATW4OELT.js.map → chunk-NBP2NTVI.js.map} +0 -0
  311. /package/dist/{chunk-GQPMFFU2.js.map → chunk-OLHCZA2Y.js.map} +0 -0
  312. /package/dist/{chunk-S63QUIAF.js.map → chunk-PPKQTNY7.js.map} +0 -0
  313. /package/dist/{chunk-3Q2CF6PN.js.map → chunk-QDWQDWZ6.js.map} +0 -0
  314. /package/dist/{chunk-XNTQDAAM.js.map → chunk-QJL5DYCP.js.map} +0 -0
  315. /package/dist/{chunk-SUYJG7YR.js.map → chunk-QQQGMSGL.js.map} +0 -0
  316. /package/dist/{chunk-CAZGM2NX.js.map → chunk-QV6AST5T.js.map} +0 -0
  317. /package/dist/{chunk-ARBXT73X.js.map → chunk-RCDEKWP7.js.map} +0 -0
  318. /package/dist/{chunk-VGMTVZG7.js.map → chunk-RDYS7Z5Y.js.map} +0 -0
  319. /package/dist/{chunk-HI3PLCOQ.js.map → chunk-RMVESPXL.js.map} +0 -0
  320. /package/dist/{chunk-HO3SFL4V.js.map → chunk-TQR2TL2X.js.map} +0 -0
  321. /package/dist/{chunk-AQRXXC6E.js.map → chunk-UXJSZ74Q.js.map} +0 -0
  322. /package/dist/{chunk-LGT5QIDH.js.map → chunk-VU6UJXPW.js.map} +0 -0
  323. /package/dist/{chunk-QGT2B6IK.js.map → chunk-WNX5RQCM.js.map} +0 -0
  324. /package/dist/{chunk-6HJXLGDV.js.map → chunk-XEJMY2NG.js.map} +0 -0
  325. /package/dist/{chunk-K6NULQN7.js.map → chunk-YQWJBAA6.js.map} +0 -0
  326. /package/dist/{chunk-UWLXAQOR.js.map → chunk-ZGXRX7VQ.js.map} +0 -0
  327. /package/dist/{claim-GVEBBGR3.js.map → claim-UUYFZYQX.js.map} +0 -0
  328. /package/dist/{companies-WSH35EDY.js.map → companies-SJPRPNZW.js.map} +0 -0
  329. /package/dist/{company-CTERVQSX.js.map → company-DNWA3VBT.js.map} +0 -0
  330. /package/dist/{complete-SI3AXMUL.js.map → complete-ZFKVCZ7T.js.map} +0 -0
  331. /package/dist/{connect-SQERLPW7.js.map → connect-RZ2QGAD2.js.map} +0 -0
  332. /package/dist/{conversation-HLIZIZGW.js.map → conversation-N6G3HEKP.js.map} +0 -0
  333. /package/dist/{conversions-RPVEVIKI.js.map → conversions-R2XG377F.js.map} +0 -0
  334. /package/dist/{create-EP7TMMZN.js.map → create-CQ2F3RVK.js.map} +0 -0
  335. /package/dist/{create-SJV6K36J.js.map → create-WFFFHYT7.js.map} +0 -0
  336. /package/dist/{create-BEDPQEBH.js.map → create-XJWY3UYA.js.map} +0 -0
  337. /package/dist/{create-DV6ESQ2I.js.map → create-Z4GRVMNI.js.map} +0 -0
  338. /package/dist/{creatives-HS4USKWX.js.map → creatives-BVDFEUGW.js.map} +0 -0
  339. /package/dist/{creatives-47VHC5EK.js.map → creatives-P62EW2IB.js.map} +0 -0
  340. /package/dist/{credentials-OQGLIQJG.js.map → credentials-RBVXAYGB.js.map} +0 -0
  341. /package/dist/{critique-7ESCPCZ7.js.map → critique-LMDBUCNG.js.map} +0 -0
  342. /package/dist/{critique-BGDASZGD.js.map → critique-Z6PJLV7A.js.map} +0 -0
  343. /package/dist/{crm-G654DZVI.js.map → crm-IPU62BGC.js.map} +0 -0
  344. /package/dist/{crm-Q3AU3MIA.js.map → crm-MMEEIC2W.js.map} +0 -0
  345. /package/dist/{customers-KBELHID7.js.map → customers-IIVCHZ5R.js.map} +0 -0
  346. /package/dist/{delete-IIL5KCST.js.map → delete-7PYYXFO6.js.map} +0 -0
  347. /package/dist/{delete-RRRY6XET.js.map → delete-BQDCLL7M.js.map} +0 -0
  348. /package/dist/{delete-IAUWDMU7.js.map → delete-C76IUSVH.js.map} +0 -0
  349. /package/dist/{demographics-APU7OYII.js.map → demographics-X3GXYKMG.js.map} +0 -0
  350. /package/dist/{discard-ULJXJFDQ.js.map → discard-PBEIHDFU.js.map} +0 -0
  351. /package/dist/{domain-P2SZ3YF4.js.map → domain-3TMWNPZ7.js.map} +0 -0
  352. /package/dist/{download-EWU5K3H6.js.map → download-BYVQLRJD.js.map} +0 -0
  353. /package/dist/{draft-UYRL4TYH.js.map → draft-65SXX3CW.js.map} +0 -0
  354. /package/dist/{draft-IZWZC4FK.js.map → draft-C2PB3XV5.js.map} +0 -0
  355. /package/dist/{draft-Z3HWEHIE.js.map → draft-J7FS3DU6.js.map} +0 -0
  356. /package/dist/{experiments-PXPVOOP3.js.map → experiments-6AQ3H5TP.js.map} +0 -0
  357. /package/dist/{facets-7SO4AK7T.js.map → facets-QIBOD36G.js.map} +0 -0
  358. /package/dist/{feedback-HENZKXJG.js.map → feedback-UWKIPCPU.js.map} +0 -0
  359. /package/dist/{feedback-record-6HSI2NHW.js.map → feedback-record-PRBALHEF.js.map} +0 -0
  360. /package/dist/{fetch-P2A2IWCZ.js.map → fetch-JAW3CLR7.js.map} +0 -0
  361. /package/dist/{fit-A2S3DIGM.js.map → fit-6USDAOWA.js.map} +0 -0
  362. /package/dist/{flows-QQ5XRGFL.js.map → flows-77TYO56Q.js.map} +0 -0
  363. /package/dist/{fonts-WP6BYRZ6.js.map → fonts-HPGCVH56.js.map} +0 -0
  364. /package/dist/{forecast-FE4OHPJC.js.map → forecast-E6VX34YE.js.map} +0 -0
  365. /package/dist/{funnel-TLKZNW3H.js.map → funnel-EKW64M7Z.js.map} +0 -0
  366. /package/dist/{get-N7W4E3S3.js.map → get-4URDPE46.js.map} +0 -0
  367. /package/dist/{get-ZZFJK4BC.js.map → get-6JWGIPN2.js.map} +0 -0
  368. /package/dist/{get-L72Z4EPU.js.map → get-XTYQ7LRY.js.map} +0 -0
  369. /package/dist/{google-ads-HKW7HQMB.js.map → google-ads-LSOL6ZAT.js.map} +0 -0
  370. /package/dist/{history-KW7XE3WD.js.map → history-2PDLZQJ2.js.map} +0 -0
  371. /package/dist/{history-EJEC3M6F.js.map → history-CXVGFR2N.js.map} +0 -0
  372. /package/dist/{hubspot-6K37PW65.js.map → hubspot-FHJHMYJI.js.map} +0 -0
  373. /package/dist/{ideas-ZE2Q3N2G.js.map → ideas-RGFK5HUY.js.map} +0 -0
  374. /package/dist/{images-6674KEOT.js.map → images-JEC7LTTJ.js.map} +0 -0
  375. /package/dist/{ingest-YFC5X3DL.js.map → ingest-3CX5R5IT.js.map} +0 -0
  376. /package/dist/{ingest-F4B7YUSP.js.map → ingest-WFVQVBAM.js.map} +0 -0
  377. /package/dist/{inspect-H46HYVEZ.js.map → inspect-2UHVWOG2.js.map} +0 -0
  378. /package/dist/{keyword-metrics-6UWS5M56.js.map → keyword-metrics-LH4W6QFP.js.map} +0 -0
  379. /package/dist/{keywords-for-site-24RQIO7D.js.map → keywords-for-site-XYHIIXTG.js.map} +0 -0
  380. /package/dist/{landing-NBY7W4TC.js.map → landing-L6KGKU4P.js.map} +0 -0
  381. /package/dist/{leads-FQETKGK6.js.map → leads-U2H7VSS5.js.map} +0 -0
  382. /package/dist/{learn-HIFV2X6Y.js.map → learn-TJX6P3BX.js.map} +0 -0
  383. /package/dist/{line-item-writes-G6CQQ2OE.js.map → line-item-writes-ZJWAI6F5.js.map} +0 -0
  384. /package/dist/{line-items-7RII35L6.js.map → line-items-2DAQ4HQC.js.map} +0 -0
  385. /package/dist/{link-U6T53J4M.js.map → link-BLXHUO6M.js.map} +0 -0
  386. /package/dist/{linkedin-HV33YUQH.js.map → linkedin-FTRTC4FJ.js.map} +0 -0
  387. /package/dist/{linkedin-person-RRRDEKVO.js.map → linkedin-person-IDSNXORW.js.map} +0 -0
  388. /package/dist/{list-WNULRKMX.js.map → list-6WXKFWNK.js.map} +0 -0
  389. /package/dist/{list-MZ7VL6YP.js.map → list-MHHBEIV2.js.map} +0 -0
  390. /package/dist/{list-3T6O43NA.js.map → list-Z5WACV7V.js.map} +0 -0
  391. /package/dist/{list-BOINVP2D.js.map → list-Z7NOJY3P.js.map} +0 -0
  392. /package/dist/{log-JTO4LCK7.js.map → log-JK4MXZHL.js.map} +0 -0
  393. /package/dist/{map-C4CL2K2H.js.map → map-I7QD5DLU.js.map} +0 -0
  394. /package/dist/{mcp-DNQSMHCT.js.map → mcp-FFODYTJ2.js.map} +0 -0
  395. /package/dist/{media-sources-6Y4SLLKU.js.map → media-sources-WZJ67OP7.js.map} +0 -0
  396. /package/dist/{members-6H6YJLEE.js.map → members-3Q6YGEHV.js.map} +0 -0
  397. /package/dist/{normalize-WZOYY4DO.js.map → normalize-WBWLUF4B.js.map} +0 -0
  398. /package/dist/{options-GBRUIUEB.js.map → options-FXT3WL2Q.js.map} +0 -0
  399. /package/dist/{organization-36Q5KWP4.js.map → organization-I2DXVVIE.js.map} +0 -0
  400. /package/dist/{performance-HY2S3M3Q.js.map → performance-B5YM4YWL.js.map} +0 -0
  401. /package/dist/{performance-IYJWXEIR.js.map → performance-S5PPW6WN.js.map} +0 -0
  402. /package/dist/{promoted-tweet-writes-O7E6NCPZ.js.map → promoted-tweet-writes-4AMNWCLE.js.map} +0 -0
  403. /package/dist/{promoted-tweets-4YG3JXGA.js.map → promoted-tweets-IQTM4LGO.js.map} +0 -0
  404. /package/dist/{publish-D555JP3P.js.map → publish-SQHJU7D4.js.map} +0 -0
  405. /package/dist/{reddit-PQPA6OW6.js.map → reddit-LDKULCVD.js.map} +0 -0
  406. /package/dist/{refresh-CK4KWM7L.js.map → refresh-7KY4EVFP.js.map} +0 -0
  407. /package/dist/{refresh-BSQUG5ES.js.map → refresh-ZCKZ6RPU.js.map} +0 -0
  408. /package/dist/{release-LTANINTQ.js.map → release-AQOOYDQL.js.map} +0 -0
  409. /package/dist/{remove-R3RPAVCO.js.map → remove-MMFYOG6I.js.map} +0 -0
  410. /package/dist/{remove-3UUDDSVZ.js.map → remove-PPLOR5BM.js.map} +0 -0
  411. /package/dist/{reopen-GPCCEOW7.js.map → reopen-MEH2MLSF.js.map} +0 -0
  412. /package/dist/{rerun-GMX3MXNT.js.map → rerun-HQPYU22S.js.map} +0 -0
  413. /package/dist/{research-CZNU2TPL.js.map → research-F4GTVF3J.js.map} +0 -0
  414. /package/dist/{research-CFTKGJJE.js.map → research-I7PGG23J.js.map} +0 -0
  415. /package/dist/{reset-LGTW4LMQ.js.map → reset-2V7TDDOL.js.map} +0 -0
  416. /package/dist/{reset-KOB2UPTO.js.map → reset-BRDUWVSE.js.map} +0 -0
  417. /package/dist/{resolve-VP6ZXGR4.js.map → resolve-IJCE2ITP.js.map} +0 -0
  418. /package/dist/{retry-LJT5VXTP.js.map → retry-AYSAFT57.js.map} +0 -0
  419. /package/dist/{retry-3YKKY5FV.js.map → retry-FNCL5A7B.js.map} +0 -0
  420. /package/dist/{revenue-QACBLUVF.js.map → revenue-NEUL7AWO.js.map} +0 -0
  421. /package/dist/{rules-E6LT44LB.js.map → rules-PMLZCOA5.js.map} +0 -0
  422. /package/dist/{rules-add-O5IIJQG5.js.map → rules-add-776T2BP7.js.map} +0 -0
  423. /package/dist/{run-NEFURGDJ.js.map → run-EHVEZSB2.js.map} +0 -0
  424. /package/dist/{run-KDKVNEFU.js.map → run-WFV5RIGG.js.map} +0 -0
  425. /package/dist/{schedule-5U2KLUVV.js.map → schedule-JZLFA3NT.js.map} +0 -0
  426. /package/dist/{schedule-XT4QNSEJ.js.map → schedule-N5NXFCIW.js.map} +0 -0
  427. /package/dist/{scheduled-agents-RGI6FOGL.js.map → scheduled-agents-A5OLKMAB.js.map} +0 -0
  428. /package/dist/{schema-6HQWNWNX.js.map → schema-K5XBEGPU.js.map} +0 -0
  429. /package/dist/{search-TBR2OQAQ.js.map → search-SQGZEEDU.js.map} +0 -0
  430. /package/dist/{search-5HHN5SCT.js.map → search-ZWQJCYAB.js.map} +0 -0
  431. /package/dist/{select-MCI7YOAT.js.map → select-SLJIHO2B.js.map} +0 -0
  432. /package/dist/{set-prompt-QLFAWUYT.js.map → set-prompt-5ABLKNZ7.js.map} +0 -0
  433. /package/dist/{setup-links-I4UIEK3F.js.map → setup-links-5PAHBVRM.js.map} +0 -0
  434. /package/dist/{shopify-GLRBIUQU.js.map → shopify-3KNP5U4O.js.map} +0 -0
  435. /package/dist/{site-UXH2ERL6.js.map → site-5NCEJBUK.js.map} +0 -0
  436. /package/dist/{sources-G7YJZMKO.js.map → sources-N4Z3FCPT.js.map} +0 -0
  437. /package/dist/{sources-DHLKS662.js.map → sources-WGXHR7SO.js.map} +0 -0
  438. /package/dist/{stale-5JJDXRJQ.js.map → stale-C26V6JYZ.js.map} +0 -0
  439. /package/dist/{status-BLBU3WLF.js.map → status-DLMR6XYY.js.map} +0 -0
  440. /package/dist/{suggest-22OK4TOU.js.map → suggest-6DLRLGOR.js.map} +0 -0
  441. /package/dist/{sync-F7YKBFD6.js.map → sync-2CFDRWNM.js.map} +0 -0
  442. /package/dist/{sync-5MR3S6EN.js.map → sync-EFIN4VNC.js.map} +0 -0
  443. /package/dist/{sync-definition-KZBTYXTT.js.map → sync-definition-JVRNC2AY.js.map} +0 -0
  444. /package/dist/{tag-4XJRM5EK.js.map → tag-VIE22YTB.js.map} +0 -0
  445. /package/dist/{tags-PWNRJVD7.js.map → tags-BRKXMMY5.js.map} +0 -0
  446. /package/dist/{tags-TZWQUVL4.js.map → tags-BYZLOSKY.js.map} +0 -0
  447. /package/dist/{tags-LMXKB2OL.js.map → tags-IJQ2E7EM.js.map} +0 -0
  448. /package/dist/{tags-TXLWDBWF.js.map → tags-SZM7BZEN.js.map} +0 -0
  449. /package/dist/{tags-6CUL5VHX.js.map → tags-UZ7CS5M6.js.map} +0 -0
  450. /package/dist/{targeting-criteria-QJUZ2WYD.js.map → targeting-criteria-XPISQ4CC.js.map} +0 -0
  451. /package/dist/{targets-G2IGX3OZ.js.map → targets-QBV4Q3FV.js.map} +0 -0
  452. /package/dist/{testimonials-OT6NY7SS.js.map → testimonials-Q3HZ7CW5.js.map} +0 -0
  453. /package/dist/{top-companies-VBBCBOUH.js.map → top-companies-AEVG3GM2.js.map} +0 -0
  454. /package/dist/{transcript-B3M5EOBO.js.map → transcript-D46W3YS6.js.map} +0 -0
  455. /package/dist/{triggers-JBJ2B25H.js.map → triggers-2PMG3CTE.js.map} +0 -0
  456. /package/dist/{unlink-HFWMJ54N.js.map → unlink-B6SXOKUJ.js.map} +0 -0
  457. /package/dist/{unstage-NEQ4LBVA.js.map → unstage-MXZHQWMJ.js.map} +0 -0
  458. /package/dist/{update-O53IK7IO.js.map → update-4NQN2INR.js.map} +0 -0
  459. /package/dist/{update-MPXQIFBV.js.map → update-EM6EZQ73.js.map} +0 -0
  460. /package/dist/{update-OC4AXD37.js.map → update-G3JCKMAY.js.map} +0 -0
  461. /package/dist/{update-UZAR3XHC.js.map → update-HCKZL5MK.js.map} +0 -0
  462. /package/dist/{update-AQ7PNMDT.js.map → update-TAQAF735.js.map} +0 -0
  463. /package/dist/{upload-ZZRTKYOD.js.map → upload-FNKD3HFW.js.map} +0 -0
  464. /package/dist/{url-params-T52VQBSO.js.map → url-params-JTFJAWSC.js.map} +0 -0
  465. /package/dist/{validate-6WVFHIHO.js.map → validate-SSW2W7Z7.js.map} +0 -0
  466. /package/dist/{videos-2TBZRY5V.js.map → videos-RYCPYL5P.js.map} +0 -0
  467. /package/dist/{viewer-check-SRNQRROA.js.map → viewer-check-ZPGWIUNI.js.map} +0 -0
  468. /package/dist/{web-DRPZSSB7.js.map → web-HUBEV7L6.js.map} +0 -0
  469. /package/dist/{winning-ads-HSUV7XN3.js.map → winning-ads-YIBTH2Q5.js.map} +0 -0
  470. /package/dist/{write-commands-MZTHQWQL.js.map → write-commands-DEQGPWQM.js.map} +0 -0
  471. /package/dist/{x-MLGIU2JN.js.map → x-AIP6SGS3.js.map} +0 -0
@@ -20,7 +20,7 @@ import {
20
20
  suggestFamilies,
21
21
  unresolvedBrandFamilies,
22
22
  upsertFontFaceCss
23
- } from "./chunk-YBNE6UFA.js";
23
+ } from "./chunk-D7PCSTXL.js";
24
24
  import {
25
25
  registerSchema,
26
26
  writeJson
@@ -491,4 +491,4 @@ export {
491
491
  fontsAdoptCommand,
492
492
  fontsCommand
493
493
  };
494
- //# sourceMappingURL=chunk-3Q2CF6PN.js.map
494
+ //# sourceMappingURL=chunk-QDWQDWZ6.js.map
@@ -2,11 +2,11 @@ import {
2
2
  heldRules,
3
3
  readAdWords,
4
4
  ruleGate
5
- } from "./chunk-UWLXAQOR.js";
5
+ } from "./chunk-ZGXRX7VQ.js";
6
6
  import {
7
7
  avatarRelation,
8
8
  castCompany
9
- } from "./chunk-REN4YI4L.js";
9
+ } from "./chunk-6ZHVCUHZ.js";
10
10
  import {
11
11
  readAvatars
12
12
  } from "./chunk-UTFSUMLU.js";
@@ -24,7 +24,7 @@ import {
24
24
  import {
25
25
  GENERIC_FAMILIES,
26
26
  resolveBrandFaces
27
- } from "./chunk-YBNE6UFA.js";
27
+ } from "./chunk-D7PCSTXL.js";
28
28
  import {
29
29
  LOGO_FILE,
30
30
  readWorkspaceBrandDoc
@@ -200,7 +200,7 @@ import {
200
200
  } from "./chunk-WTLNH34U.js";
201
201
  import {
202
202
  brandTokensSchema
203
- } from "./chunk-PC3FJEZH.js";
203
+ } from "./chunk-PR45G3SV.js";
204
204
  import {
205
205
  apiPost
206
206
  } from "./chunk-4U7HXXSA.js";
@@ -8951,4 +8951,4 @@ export {
8951
8951
  prepareCanvas,
8952
8952
  exitOnPrepareError
8953
8953
  };
8954
- //# sourceMappingURL=chunk-XNTQDAAM.js.map
8954
+ //# sourceMappingURL=chunk-QJL5DYCP.js.map
@@ -6,7 +6,7 @@ import {
6
6
  FLOW_SECRET_FIELDS,
7
7
  flowCatalogEntry,
8
8
  isFlowOauthSideEffect
9
- } from "./chunk-PC3FJEZH.js";
9
+ } from "./chunk-PR45G3SV.js";
10
10
  import {
11
11
  apiPost
12
12
  } from "./chunk-4U7HXXSA.js";
@@ -272,4 +272,4 @@ export {
272
272
  isUsableStepNameKey,
273
273
  readSettings
274
274
  };
275
- //# sourceMappingURL=chunk-SUYJG7YR.js.map
275
+ //# sourceMappingURL=chunk-QQQGMSGL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  socialPersonRoleSchema
3
- } from "./chunk-NZS3KEQ2.js";
3
+ } from "./chunk-WCU362Z6.js";
4
4
 
5
5
  // ../api/src/media-sources.ts
6
6
  import { z } from "zod";
@@ -89,4 +89,4 @@ export {
89
89
  mediaSourcesRemoveRequestSchema,
90
90
  mediaSourcesScheduleRequestSchema
91
91
  };
92
- //# sourceMappingURL=chunk-CAZGM2NX.js.map
92
+ //# sourceMappingURL=chunk-QV6AST5T.js.map
@@ -8,7 +8,7 @@ import {
8
8
  calendarDaySchema,
9
9
  todayUtc,
10
10
  windowTooLong
11
- } from "./chunk-PC3FJEZH.js";
11
+ } from "./chunk-PR45G3SV.js";
12
12
 
13
13
  // ../api/src/accounts/crm-columns.ts
14
14
  var COLUMN_HELD = 0.7;
@@ -384,4 +384,4 @@ export {
384
384
  accountsCampaignsRequestSchema,
385
385
  ACCOUNTS_NO_SETTINGS_MESSAGE
386
386
  };
387
- //# sourceMappingURL=chunk-ARBXT73X.js.map
387
+ //# sourceMappingURL=chunk-RCDEKWP7.js.map
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-MF3BTAT6.js";
19
19
  import {
20
20
  CREATIVE_FEEDBACK_REASON_LABELS
21
- } from "./chunk-PC3FJEZH.js";
21
+ } from "./chunk-PR45G3SV.js";
22
22
  import {
23
23
  apiPost
24
24
  } from "./chunk-4U7HXXSA.js";
@@ -341,4 +341,4 @@ export {
341
341
  workspaceOfCreative,
342
342
  avoidOf
343
343
  };
344
- //# sourceMappingURL=chunk-VGMTVZG7.js.map
344
+ //# sourceMappingURL=chunk-RDYS7Z5Y.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  heldRules
3
- } from "./chunk-UWLXAQOR.js";
3
+ } from "./chunk-ZGXRX7VQ.js";
4
4
  import {
5
5
  companyLine,
6
6
  readCompanyReading
7
- } from "./chunk-VGMTVZG7.js";
7
+ } from "./chunk-RDYS7Z5Y.js";
8
8
  import {
9
9
  adSetViewerRows,
10
10
  audienceNamesOf,
@@ -828,4 +828,4 @@ export {
828
828
  viewerCheckBeforeRender,
829
829
  viewerCheckCommand
830
830
  };
831
- //# sourceMappingURL=chunk-HI3PLCOQ.js.map
831
+ //# sourceMappingURL=chunk-RMVESPXL.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  handleLinkedinError,
3
3
  resolveAccountIdArg
4
- } from "./chunk-IUWCDYAK.js";
4
+ } from "./chunk-JOKLBSDV.js";
5
5
  import {
6
6
  adCopyHints,
7
7
  booleanWordPositionalError,
@@ -17,7 +17,7 @@ import {
17
17
  LINKEDIN_DRAFT_BATCH_MAX,
18
18
  linkedinDraftOpInputSchema,
19
19
  listColumnField
20
- } from "./chunk-PC3FJEZH.js";
20
+ } from "./chunk-PR45G3SV.js";
21
21
  import {
22
22
  maskPersonValue
23
23
  } from "./chunk-SOPVIIUW.js";
@@ -31,6 +31,17 @@ import {
31
31
  // src/commands/ads/linkedin/write-shared.ts
32
32
  import { createHash } from "crypto";
33
33
  import { readFileSync } from "fs";
34
+
35
+ // src/commands/ads/linkedin/approval-hint.ts
36
+ function approvalHints(op, staged) {
37
+ if (!staged.authorApprovalPending) return [];
38
+ const postId = staged.sponsoredPostId ?? op.payload.content?.bakerPostId ?? "<post id>";
39
+ return [
40
+ `If the user says the author already approved this post for this ad account, record it \u2014 \`baker posts approved ${postId} --account-id ${op.accountId}\` \u2014 and the reminder stops. Don't record it on a guess.`
41
+ ];
42
+ }
43
+
44
+ // src/commands/ads/linkedin/write-shared.ts
34
45
  var TOTAL_BUDGET_HELP = "Lifetime budget \u2014 on something already running it must exceed spend to date, or LinkedIn rejects it";
35
46
  function bareAccountId(args) {
36
47
  const raw = resolveAccountIdArg(args);
@@ -245,7 +256,12 @@ async function stageOp(raw, hints) {
245
256
  chatId,
246
257
  op: preflight.data
247
258
  });
248
- const allHints = [...batchNudge(response.data), ...hints ?? [], ...await adCopyHints(preflight.data)];
259
+ const allHints = [
260
+ ...batchNudge(response.data),
261
+ ...hints ?? [],
262
+ ...approvalHints(preflight.data, response.data),
263
+ ...await adCopyHints(preflight.data)
264
+ ];
249
265
  writeJsonEnvelope(withHints(response, allHints));
250
266
  } catch (err) {
251
267
  handleLinkedinError(err);
@@ -355,4 +371,4 @@ export {
355
371
  requireTarget,
356
372
  requireTargets
357
373
  };
358
- //# sourceMappingURL=chunk-52KZOLJU.js.map
374
+ //# sourceMappingURL=chunk-RP6EPH7U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/linkedin/write-shared.ts","../src/commands/ads/linkedin/approval-hint.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { readFileSync } from \"node:fs\";\nimport {\n LINKEDIN_DRAFT_BATCH_MAX,\n type LinkedinDraftStageBatchResponse,\n type LinkedinDraftStageResponse,\n linkedinDraftOpInputSchema,\n listColumnField,\n} from \"@baker/api\";\nimport { maskPersonValue } from \"@baker/api/ads-common/people\";\nimport { apiPost } from \"../../../client.ts\";\nimport { requireChatId } from \"../../../env.ts\";\nimport { capabilityFix } from \"../../capabilities/fix.ts\";\nimport { booleanWordPositionalError } from \"../boolean-word-positional.ts\";\nimport { adCopyHints } from \"../copy-hints.ts\";\nimport { withHints } from \"../hints.ts\";\nimport { writeJsonEnvelope } from \"../output.ts\";\nimport { approvalHints } from \"./approval-hint.ts\";\nimport { handleLinkedinError, resolveAccountIdArg } from \"./shared.ts\";\n\n/**\n * Shared plumbing for the staged write commands. Writes NEVER hit LinkedIn\n * directly: every command stages an op against this chat's draft\n * (`/api/ads/linkedin/draft/stage`), the dashboard shows it as a pending\n * LinkedIn change, and it applies when the chat is published.\n */\n\n/**\n * LinkedIn rejects a lifetime budget at or below what the entity has already\n * spent, so the flag needs the constraint wherever it is offered — the same\n * text on every surface (`--help` and `baker schema`) so the two can't drift.\n */\nexport const TOTAL_BUDGET_HELP =\n \"Lifetime budget — on something already running it must exceed spend to date, or LinkedIn rejects it\";\n\nexport function bareAccountId(args: Record<string, unknown>): string {\n const raw = resolveAccountIdArg(args);\n return raw.replace(/^urn:li:sponsoredAccount:/, \"\").replace(/^sponsoredAccount:/, \"\");\n}\n\nexport function failWriteValidation(message: string): never {\n writeJsonEnvelope({ ok: false, error: { code: \"VALIDATION_ERROR\", message } });\n process.exit(1);\n}\n\nexport function loadJsonFileArg(path: unknown): Record<string, unknown> {\n if (typeof path !== \"string\" || path.length === 0) {\n return {};\n }\n try {\n const parsed = JSON.parse(readFileSync(path, \"utf8\")) as unknown;\n if (parsed === null || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n failWriteValidation(`${path} must contain a JSON object`);\n }\n return parsed as Record<string, unknown>;\n } catch (err) {\n if (err instanceof SyntaxError) {\n failWriteValidation(`${path} is not valid JSON: ${err.message}`);\n }\n throw err;\n }\n}\n\n/** Flags override file keys — the file is the base, flags are the overrides. */\nexport function mergePayload(file: Record<string, unknown>, flags: Record<string, unknown>): Record<string, unknown> {\n const merged: Record<string, unknown> = { ...file };\n for (const [key, value] of Object.entries(flags)) {\n if (value !== undefined) {\n merged[key] = value;\n }\n }\n return merged;\n}\n\n/**\n * The `draft amend` patch: exactly one of `--file <path>` (JSON file) or `--patch '<json>'`\n * (inline string), and it must parse to a JSON object — RFC-7386 merge-patch needs an object to\n * merge, and a stray array/scalar would silently no-op or replace the whole payload.\n */\nexport function loadPatchArg(args: Record<string, unknown>): Record<string, unknown> {\n const file = typeof args.file === \"string\" && args.file.length > 0 ? args.file : undefined;\n const inline = typeof args.patch === \"string\" && args.patch.length > 0 ? args.patch : undefined;\n if (Boolean(file) === Boolean(inline)) {\n failWriteValidation(\"pass exactly one of --file <patch.json> or --patch '<json>'\");\n }\n if (file) {\n return loadJsonFileArg(file);\n }\n try {\n const parsed = JSON.parse(inline as string) as unknown;\n if (parsed === null || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n failWriteValidation(\"--patch must be a JSON object\");\n }\n return parsed as Record<string, unknown>;\n } catch (err) {\n if (err instanceof SyntaxError) {\n failWriteValidation(`--patch is not valid JSON: ${err.message}`);\n }\n throw err;\n }\n}\n\nexport function parseMoneyFlag(\n amount: unknown,\n currency: unknown,\n flag: string,\n): { amount: string; currencyCode?: string } | undefined {\n if (amount === undefined || amount === null || amount === \"\") {\n return undefined;\n }\n if (currency === undefined || currency === null || currency === \"\") {\n // LinkedIn ad accounts are single-currency — the backend fills it in.\n return { amount: String(amount) };\n }\n if (typeof currency !== \"string\" || currency.length !== 3) {\n failWriteValidation(`${flag} got an invalid --currency (expected a 3-letter code like EUR)`);\n }\n return { amount: String(amount), currencyCode: currency.toUpperCase() };\n}\n\n/** Accepts ISO dates (2026-07-10), ISO datetimes, or epoch millis. */\nexport function parseDateFlag(value: unknown, flag: string): number | undefined {\n if (value === undefined || value === null || value === \"\") {\n return undefined;\n }\n const raw = String(value);\n if (/^\\d{10,}$/.test(raw)) {\n return Number(raw);\n }\n const parsed = Date.parse(raw);\n if (Number.isNaN(parsed)) {\n failWriteValidation(`${flag} must be an ISO date (2026-07-10) or epoch milliseconds`);\n }\n return parsed;\n}\n\nexport function parseOnOffFlag(value: unknown, flag: string): boolean | undefined {\n if (value === undefined || value === null || value === \"\") {\n return undefined;\n }\n const raw = String(value).toLowerCase();\n if (raw === \"on\" || raw === \"true\") {\n return true;\n }\n if (raw === \"off\" || raw === \"false\") {\n return false;\n }\n failWriteValidation(`${flag} must be on|off`);\n}\n\nexport function parseLocaleFlag(value: unknown): { country: string; language: string } | undefined {\n if (value === undefined || value === null || value === \"\") {\n return undefined;\n }\n const match = /^([a-z]{2})[_-]([A-Za-z]{2})$/.exec(String(value));\n if (!match) {\n failWriteValidation(\"--locale must look like en_US (language_COUNTRY)\");\n }\n return { language: match[1] as string, country: (match[2] as string).toUpperCase() };\n}\n\nexport function loadTargetingFileArg(path: unknown): Record<string, unknown> | undefined {\n if (typeof path !== \"string\" || path.length === 0) {\n return undefined;\n }\n const parsed = loadJsonFileArg(path);\n // Accept either the bare criteria object or a { targetingCriteria } wrapper.\n const criteria = (parsed.targetingCriteria as Record<string, unknown> | undefined) ?? parsed;\n if (!criteria.include) {\n failWriteValidation(\n `${path} must contain targeting criteria with an \"include\" block (see baker schema ads.linkedin.campaigns.create)`,\n );\n }\n return criteria;\n}\n\nconst SHA256_HEX = /^[0-9a-f]{64}$/i;\n\n/** An email the export already hashed is kept as it is: hashing it again would match nobody. */\nfunction sha256Lower(value: string): string {\n const email = value.trim().toLowerCase();\n return SHA256_HEX.test(email) ? email : createHash(\"sha256\").update(email).digest(\"hex\");\n}\n\n/** An email masked for the review; an address the export already hashed has nothing left to show. */\nfunction emailPreview(email: string): string {\n return email === \"\" || SHA256_HEX.test(email.trim()) ? \"\" : maskPersonValue(\"email\", email);\n}\n\nfunction parseCsvLine(line: string): string[] {\n const cells: string[] = [];\n let current = \"\";\n let inQuotes = false;\n for (let i = 0; i < line.length; i++) {\n const char = line[i];\n if (inQuotes) {\n if (char === '\"' && line[i + 1] === '\"') {\n current += '\"';\n i++;\n } else if (char === '\"') {\n inQuotes = false;\n } else {\n current += char;\n }\n } else if (char === '\"') {\n inQuotes = true;\n } else if (char === \",\") {\n cells.push(current);\n current = \"\";\n } else {\n current += char;\n }\n }\n cells.push(current);\n return cells.map((cell) => cell.trim());\n}\n\nexport interface ParsedList {\n columns: string[];\n rows: Array<Record<string, string>>;\n /** Each row's email masked for the review (`l***@empresa.com`), in the rows' order; \"\" where there is none to show. */\n emailPreviews?: string[];\n}\n\n/**\n * Parses a header-first CSV into row objects. Email columns (any header\n * `listColumnField` reads as email) are SHA-256 hashed here, unless already hashed, so raw addresses never leave the machine or sit in the draft.\n */\nexport function parseListFileArg(path: unknown, maxRows: number): ParsedList | undefined {\n if (typeof path !== \"string\" || path.length === 0) {\n return undefined;\n }\n const raw = readFileSync(path, \"utf8\");\n const lines = raw.split(/\\r?\\n/).filter((line) => line.trim().length > 0);\n if (lines.length < 2) {\n failWriteValidation(`${path} needs a header row and at least one data row`);\n }\n const columns = parseCsvLine(lines[0] as string).map((column) => column.trim());\n const rows: Array<Record<string, string>> = [];\n const emailPreviews: string[] = [];\n const emailColumn = columns.findIndex((column) => listColumnField(column) === \"email\");\n for (const line of lines.slice(1)) {\n const cells = parseCsvLine(line);\n const row: Record<string, string> = {};\n columns.forEach((column, index) => {\n const value = cells[index] ?? \"\";\n if (!value) {\n return;\n }\n row[column] = listColumnField(column) === \"email\" ? sha256Lower(value) : value;\n });\n if (Object.keys(row).length > 0) {\n rows.push(row);\n emailPreviews.push(emailPreview(emailColumn >= 0 ? (cells[emailColumn] ?? \"\") : \"\"));\n }\n }\n if (rows.length > maxRows) {\n failWriteValidation(`${path} has ${rows.length} rows — the inline limit is ${maxRows}. Split the list.`);\n }\n return { columns, rows, ...(emailColumn >= 0 ? { emailPreviews } : {}) };\n}\n\ninterface StageEnvelope extends Record<string, unknown> {\n ok: true;\n data: LinkedinDraftStageResponse;\n}\n\n/** Structured preflight failure — the agent learns WHICH field (and, in a batch, which op) is wrong. */\nfunction failPreflight(fields: Array<{ path: string; message: string }>): never {\n writeJsonEnvelope({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: fields.map((field) => (field.path ? `${field.path}: ${field.message}` : field.message)).join(\"; \"),\n fields,\n fix: capabilityFix(\"linkedin-ads\"),\n },\n });\n process.exit(1);\n}\n\n/**\n * The agent is staging one id per call for a kind it has already staged in this\n * draft — the exact loop these commands' id lists exist to replace.\n */\nconst BATCH_NUDGE =\n \"This command takes several ids at once — pass them comma-separated or with --ids-file instead of one call per id.\";\n\nfunction batchNudge(data: LinkedinDraftStageResponse): string[] {\n return data.sameKindStaged === undefined ? [] : [BATCH_NUDGE];\n}\n\n/**\n * Preflight-validates the op against the shared `@baker/api` contract (same\n * schema the backend enforces), then stages it. Prints the staged envelope —\n * ref, mode (always `live`: publishing reaches the real ad account), summary,\n * warnings.\n */\nexport async function stageOp(raw: Record<string, unknown>, hints?: string[]): Promise<void> {\n const preflight = linkedinDraftOpInputSchema.safeParse(raw);\n if (!preflight.success) {\n failPreflight(preflight.error.issues.map((issue) => ({ path: issue.path.join(\".\"), message: issue.message })));\n }\n try {\n const chatId = requireChatId();\n const response = await apiPost<StageEnvelope>(\"/api/ads/linkedin/draft/stage\", {\n chatId,\n op: preflight.data,\n });\n const allHints = [\n ...batchNudge(response.data),\n ...(hints ?? []),\n ...approvalHints(preflight.data, response.data),\n ...(await adCopyHints(preflight.data)),\n ];\n writeJsonEnvelope(withHints(response, allHints));\n } catch (err) {\n handleLinkedinError(err);\n }\n}\n\ninterface StageBatchEnvelope extends Record<string, unknown> {\n ok: true;\n data: LinkedinDraftStageBatchResponse;\n}\n\n/**\n * Stage several ops as ONE request (`/stage-batch`) — all-or-nothing on the\n * backend, one rate-limit hit instead of one per id. A single op falls through to\n * the plain stage path so its envelope, its amend behaviour and its hints stay\n * exactly as before.\n */\nexport async function stageLinkedinOps(rawOps: Array<Record<string, unknown>>, hints?: string[]): Promise<void> {\n if (rawOps.length === 1 && rawOps[0]) {\n await stageOp(rawOps[0], hints);\n return;\n }\n const ops: unknown[] = [];\n for (const [index, raw] of rawOps.entries()) {\n const preflight = linkedinDraftOpInputSchema.safeParse(raw);\n if (!preflight.success) {\n failPreflight(\n preflight.error.issues.map((issue) => ({\n path: `ops[${index}]${issue.path.length > 0 ? `.${issue.path.join(\".\")}` : \"\"}`,\n message: issue.message,\n })),\n );\n }\n ops.push(preflight.data);\n }\n try {\n const chatId = requireChatId();\n const response = await apiPost<StageBatchEnvelope>(\"/api/ads/linkedin/draft/stage-batch\", { chatId, ops });\n const allHints = [...(hints ?? []), ...(await adCopyHints(ops))];\n writeJsonEnvelope(withHints(response, allHints));\n } catch (err) {\n handleLinkedinError(err);\n }\n}\n\nexport async function stageStatusChange(input: {\n kind: \"campaignGroup.update\" | \"campaign.update\" | \"creative.update\";\n accountId: string;\n targets: string[];\n status: \"ACTIVE\" | \"PAUSED\" | \"ARCHIVED\";\n}): Promise<void> {\n const payload = input.kind === \"creative.update\" ? { intendedStatus: input.status } : { status: input.status };\n await stageLinkedinOps(\n input.targets.map((target) => ({ kind: input.kind, accountId: input.accountId, target, payload })),\n );\n}\n\n/**\n * Reads the target from whichever positional the command declared. Commands\n * name it `id` (entity writes) or `ref` (draft show/amend), and citty also\n * leaves every positional in `args._` — so we accept all three rather than\n * making the receipt depend on one command's arg name.\n *\n * `--flag false` is refused BEFORE the one-id check below, which would otherwise\n * blame the stray word on a second id: on `campaigns url-params 123456 --clear\n * false` that sends the agent back with `--clear` alone, which is TRUE again and\n * wipes every tracking parameter on a live ad set.\n */\nexport function requireTarget(args: Record<string, unknown>, entity: string): string {\n const inverted = booleanWordPositionalError(args, entity);\n if (inverted !== undefined) {\n failWriteValidation(inverted);\n }\n const positionals = readPositionals(args);\n const target = args.id ?? args.target ?? args.ref ?? positionals[0];\n if (typeof target !== \"string\" || target.length === 0) {\n failWriteValidation(`pass the ${entity} id or URN as the positional argument`);\n }\n // This command applies one payload to one id. Accepting the first of several and\n // dropping the rest would report success for work it never staged, so say so.\n if (positionals.length > 1 || splitIdList(target).length > 1) {\n failWriteValidation(\n `this command takes one ${entity} id — run it once per id. Only pause/resume/archive/delete and 'creatives update' accept several ids in one call.`,\n );\n }\n return target;\n}\n\n/** Every positional citty left in `_`, as strings. Numeric ids arrive as strings via `node:util parseArgs`. */\nfunction readPositionals(args: Record<string, unknown>): string[] {\n if (!Array.isArray(args._)) {\n return [];\n }\n return args._.filter((value): value is string => typeof value === \"string\" && value.length > 0);\n}\n\n/** Ids in the positional: `123,456` or `urn:li:sponsoredCreative:1, urn:…:2` (URNs never contain commas). */\nfunction splitIdList(raw: string): string[] {\n return raw\n .split(\",\")\n .map((id) => id.trim())\n .filter(Boolean);\n}\n\n/**\n * `--ids-file` lines: one id per line, or comma-separated on a line — the agent\n * writes whichever is convenient. Blank lines and `#` comments are skipped.\n */\nfunction idsFileEntries(path: unknown): string[] {\n if (typeof path !== \"string\" || path.length === 0) {\n return [];\n }\n return readFileSync(path, \"utf8\")\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0 && !line.startsWith(\"#\"))\n .flatMap(splitIdList);\n}\n\n/**\n * Every id a write command was invoked with: **all** positionals (each of which may\n * itself be comma-separated) plus `--ids-file` lines, deduped in first-seen order.\n * One id stages exactly as before; several stage as one batch.\n *\n * All positionals, not just the first: an agent writing `creatives pause 111 222 333`\n * — space-separated, as most CLIs accept — used to stage one op and be told `ok: true`,\n * so it believed three ads were paused.\n */\nexport function requireTargets(args: Record<string, unknown>, entity: string): string[] {\n // `args._` is the superset: citty copies the FIRST positional into the declared\n // arg (`id`/`ref`) but leaves every positional in `_`. Reading the named arg alone\n // is what dropped ids 2..n. The named arg is the fallback for a command that ever\n // declares its id as a flag instead, where `_` would be empty.\n const positionals = readPositionals(args);\n const named = [args.id, args.target, args.ref].filter(\n (value): value is string => typeof value === \"string\" && value.length > 0,\n );\n const fromArgs = positionals.length > 0 ? positionals : named;\n const targets = [...new Set([...fromArgs.flatMap(splitIdList), ...idsFileEntries(args[\"ids-file\"])])];\n if (targets.length === 0) {\n failWriteValidation(\n `pass the ${entity} id or URN as the positional argument (comma-separated for several), or --ids-file <path>`,\n );\n }\n if (targets.length > LINKEDIN_DRAFT_BATCH_MAX) {\n failWriteValidation(\n `${targets.length} ids exceeds the batch limit of ${LINKEDIN_DRAFT_BATCH_MAX} — split the list`,\n );\n }\n return targets;\n}\n","/**\n * When staging reminded the user that the post's author has to approve it, the\n * one way to stop the reminder is the user's word — say how to record it.\n */\nexport function approvalHints(\n op: { accountId: string; payload: unknown },\n staged: { authorApprovalPending?: boolean; sponsoredPostId?: string },\n): string[] {\n if (!staged.authorApprovalPending) return [];\n const postId =\n staged.sponsoredPostId ??\n (op.payload as { content?: { bakerPostId?: string } }).content?.bakerPostId ??\n \"<post id>\";\n return [\n `If the user says the author already approved this post for this ad account, record it — \\`baker posts approved ${postId} --account-id ${op.accountId}\\` — and the reminder stops. Don't record it on a guess.`,\n ];\n}\n"],"mappings":"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","names":[]}
@@ -2,7 +2,7 @@ import {
2
2
  mediaTagsCreateRequestSchema,
3
3
  mediaTagsDeleteRequestSchema,
4
4
  mediaTagsUpdateRequestSchema
5
- } from "./chunk-PC3FJEZH.js";
5
+ } from "./chunk-PR45G3SV.js";
6
6
  import {
7
7
  ApiError,
8
8
  apiGet,
@@ -194,4 +194,4 @@ Examples:
194
194
  export {
195
195
  makeTagsCommand
196
196
  };
197
- //# sourceMappingURL=chunk-HO3SFL4V.js.map
197
+ //# sourceMappingURL=chunk-TQR2TL2X.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RESEARCH_GOOGLE_ADS_MAX_COPY
3
- } from "./chunk-PC3FJEZH.js";
3
+ } from "./chunk-PR45G3SV.js";
4
4
 
5
5
  // src/commands/research/hints.ts
6
6
  var AD_COPY_ROUTE = 'This returns competing domains and their SERP economics \u2014 no ad copy, no headlines, no creative. For a competitor\'s Google ads and their copy: `baker research google-ads <competitor.com> --copy` (Google\'s Ads Transparency Center: every ad, how long it has run, and the text ads\' headline and description). For Meta and LinkedIn: `baker winning-ads advertisers "<brand>"` \u2192 `baker winning-ads search "<brief>" --advertiser-id <id>` \u2192 `baker winning-ads content <adId>` (`primary_text` / `headline` / `cta`, plus the spoken transcript and on-screen text for video). Do not keep querying this command for copy.';
@@ -316,4 +316,4 @@ export {
316
316
  companySearchHints,
317
317
  unknownIndustriesFix
318
318
  };
319
- //# sourceMappingURL=chunk-AQRXXC6E.js.map
319
+ //# sourceMappingURL=chunk-UXJSZ74Q.js.map
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-MF3BTAT6.js";
13
13
  import {
14
14
  CREATIVE_FEEDBACK_REASON_LABELS
15
- } from "./chunk-PC3FJEZH.js";
15
+ } from "./chunk-PR45G3SV.js";
16
16
 
17
17
  // src/commands/creatives/rule-candidate.ts
18
18
  import { createHash } from "crypto";
@@ -153,4 +153,4 @@ export {
153
153
  repeatedReasons,
154
154
  ruleCandidateHints
155
155
  };
156
- //# sourceMappingURL=chunk-LGT5QIDH.js.map
156
+ //# sourceMappingURL=chunk-VU6UJXPW.js.map
@@ -64,6 +64,11 @@ var postsSuggestRequestSchema = z.object({
64
64
  verdict: adUseVerdictSchema,
65
65
  note: z.string().trim().min(1, "Say why, in a sentence a marketer reads").max(SOCIAL_POST_NOTE_MAX, `Keep the note under ${SOCIAL_POST_NOTE_MAX} characters`)
66
66
  });
67
+ var postsApprovedRequestSchema = z.object({
68
+ id: socialPostIdSchema,
69
+ /** The LinkedIn ad account the author approved the post for. */
70
+ accountId: z.string().trim().regex(/^(urn:li:sponsoredAccount:)?\d+$/, "Pass the LinkedIn ad account id, e.g. 513852526")
71
+ });
67
72
  var socialPostTagSchema = z.string().trim().min(1).max(SOCIAL_POST_TAG_MAX_CHARS, `Keep each tag under ${SOCIAL_POST_TAG_MAX_CHARS} characters`);
68
73
  var postsTagRequestSchema = z.object({
69
74
  id: socialPostIdSchema,
@@ -91,7 +96,8 @@ export {
91
96
  postsListQuerySchema,
92
97
  postsAddRequestSchema,
93
98
  postsSuggestRequestSchema,
99
+ postsApprovedRequestSchema,
94
100
  postsTagRequestSchema,
95
101
  socialAccountUpdateRequestSchema
96
102
  };
97
- //# sourceMappingURL=chunk-NZS3KEQ2.js.map
103
+ //# sourceMappingURL=chunk-WCU362Z6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../api/src/social-posts.ts"],"sourcesContent":["/**\n * Contract for `/api/posts/...` — the posts the company's followed accounts\n * published (its own pages and its key people: CEO, CTO, head of sales…), and\n * whether each one can run as a paid ad.\n *\n * Mirrors `convex/socialPosts/validators.ts` and `convex/lib/sourcePost.ts`.\n */\nimport { z } from \"zod\";\n\nexport const SOCIAL_POST_PLATFORMS = [\"instagram\", \"tiktok\", \"youtube\", \"linkedin\", \"facebook\"] as const;\nexport const socialPostPlatformSchema = z.enum(SOCIAL_POST_PLATFORMS);\nexport type SocialPostPlatform = z.infer<typeof socialPostPlatformSchema>;\n\nexport const SOCIAL_POST_PLATFORM_LABELS: Record<SocialPostPlatform, string> = {\n instagram: \"Instagram\",\n tiktok: \"TikTok\",\n youtube: \"YouTube\",\n linkedin: \"LinkedIn\",\n facebook: \"Facebook\",\n};\n\nexport const SOCIAL_PERSON_ROLES = [\n \"ceo\",\n \"founder\",\n \"cto\",\n \"cmo\",\n \"head_of_sales\",\n \"sales\",\n \"marketing\",\n \"employee\",\n \"creator\",\n \"other\",\n] as const;\nexport const socialPersonRoleSchema = z.enum(SOCIAL_PERSON_ROLES);\nexport type SocialPersonRole = z.infer<typeof socialPersonRoleSchema>;\n\nexport const SOCIAL_ROLE_LABELS: Record<SocialPersonRole, string> = {\n ceo: \"CEO\",\n founder: \"Founder\",\n cto: \"CTO\",\n cmo: \"CMO\",\n head_of_sales: \"Head of sales\",\n sales: \"Sales\",\n marketing: \"Marketing\",\n employee: \"Employee\",\n creator: \"Creator\",\n other: \"Other\",\n};\n\nexport const AD_USE_VERDICTS = [\"usable\", \"needs_approval\", \"not_usable\"] as const;\nexport const adUseVerdictSchema = z.enum(AD_USE_VERDICTS);\nexport type AdUseVerdict = z.infer<typeof adUseVerdictSchema>;\n\nexport const AD_USE_LABELS: Record<AdUseVerdict, string> = {\n usable: \"Usable in ads\",\n needs_approval: \"Needs the author's OK\",\n not_usable: \"Can't run as an ad\",\n};\n\nexport const SOCIAL_POST_FORMATS = [\n \"text\",\n \"image\",\n \"multi_image\",\n \"carousel\",\n \"video\",\n \"document\",\n \"article\",\n \"poll\",\n \"event\",\n \"reel\",\n \"short\",\n] as const;\nexport const socialPostFormatSchema = z.enum(SOCIAL_POST_FORMATS);\n\n/** The longest note on a \"Usable in ads\" answer or suggestion: a sentence or two a marketer reads. */\nexport const SOCIAL_POST_NOTE_MAX = 500;\n/** Tags are short labels, and a post keeps a handful. */\nexport const SOCIAL_POST_TAG_MAX_CHARS = 40;\nexport const SOCIAL_POST_TAGS_MAX = 20;\n\n/** A Baker post id — what `baker posts list` prints and `--post` takes. */\nexport const socialPostIdSchema = z.string().trim().min(1, \"Pass a post id from `baker posts list`\");\n\n// --- GET /api/posts/list ---\nexport const postsListQuerySchema = z.object({\n /** A followed account's key (`linkedin:in/jacintofleta`). */\n account: z.string().trim().optional(),\n role: socialPersonRoleSchema.optional(),\n platform: socialPostPlatformSchema.optional(),\n usable: adUseVerdictSchema.optional(),\n \"about-company\": z.enum([\"true\", \"false\"]).optional(),\n /** ISO date: only posts published on or after it. */\n since: z.string().trim().optional(),\n sort: z.enum([\"date\", \"engagement\"]).optional(),\n limit: z.coerce.number().int().min(1).max(200).optional(),\n});\nexport type PostsListQuery = z.infer<typeof postsListQuerySchema>;\n\n// --- GET /api/posts/search ---\nexport const postsSearchQuerySchema = z.object({\n q: z.string().trim().min(1, \"Pass what to look for\"),\n platform: socialPostPlatformSchema.optional(),\n limit: z.coerce.number().int().min(1).max(100).optional(),\n});\n\n// --- GET /api/posts/get ---\nexport const postsGetQuerySchema = z.object({ id: socialPostIdSchema });\n\n// --- POST /api/posts/add ---\nexport const postsAddRequestSchema = z.object({\n /** The post's link — a normal one is fine, the embed link is not needed. */\n url: z.string().trim().url(\"Pass the post's link\"),\n /** Import its images and videos into the libraries too (default). */\n media: z.boolean().optional(),\n});\nexport type PostsAddRequest = z.infer<typeof postsAddRequestSchema>;\n\n// --- POST /api/posts/suggest ---\nexport const postsSuggestRequestSchema = z.object({\n id: socialPostIdSchema,\n verdict: adUseVerdictSchema,\n note: z\n .string()\n .trim()\n .min(1, \"Say why, in a sentence a marketer reads\")\n .max(SOCIAL_POST_NOTE_MAX, `Keep the note under ${SOCIAL_POST_NOTE_MAX} characters`),\n});\nexport type PostsSuggestRequest = z.infer<typeof postsSuggestRequestSchema>;\n\n// --- POST /api/posts/approved ---\nexport const postsApprovedRequestSchema = z.object({\n id: socialPostIdSchema,\n /** The LinkedIn ad account the author approved the post for. */\n accountId: z\n .string()\n .trim()\n .regex(/^(urn:li:sponsoredAccount:)?\\d+$/, \"Pass the LinkedIn ad account id, e.g. 513852526\"),\n});\nexport type PostsApprovedRequest = z.infer<typeof postsApprovedRequestSchema>;\n\n// --- POST /api/posts/tag ---\nconst socialPostTagSchema = z\n .string()\n .trim()\n .min(1)\n .max(SOCIAL_POST_TAG_MAX_CHARS, `Keep each tag under ${SOCIAL_POST_TAG_MAX_CHARS} characters`);\n\nexport const postsTagRequestSchema = z\n .object({\n id: socialPostIdSchema,\n add: z\n .array(socialPostTagSchema)\n .max(SOCIAL_POST_TAGS_MAX, `A post keeps at most ${SOCIAL_POST_TAGS_MAX} tags`)\n .default([]),\n remove: z.array(socialPostTagSchema).max(SOCIAL_POST_TAGS_MAX).default([]),\n })\n .refine((value) => value.add.length + value.remove.length > 0, \"Pass a tag to add or remove\");\n\n// --- POST /api/posts/refresh ---\nexport const postsRefreshRequestSchema = z.object({ id: socialPostIdSchema });\n\n// --- POST /api/media-sources/update (who an account is) ---\nexport const socialAccountUpdateRequestSchema = z\n .object({\n key: z.string().trim().min(1),\n /** Marks the account as a person and names them. */\n person: z.string().trim().min(1).optional(),\n role: socialPersonRoleSchema.optional(),\n title: z.string().trim().min(1).optional(),\n /** False for a partner, a creator or another brand. */\n own: z.boolean().optional(),\n })\n .refine(\n (value) =>\n value.person !== undefined || value.role !== undefined || value.title !== undefined || value.own !== undefined,\n \"Pass --person, --role, --title or --own/--not-own\",\n );\nexport type SocialAccountUpdateRequest = z.infer<typeof socialAccountUpdateRequestSchema>;\n\n/** One post, compact: what the agent needs to choose one. */\nexport type SocialPostRow = {\n id: string;\n platform: SocialPostPlatform;\n account?: string;\n author?: string;\n role?: SocialPersonRole;\n format: string;\n publishedAt?: string;\n excerpt?: string;\n url: string;\n likes?: number;\n comments?: number;\n views?: number;\n usable: AdUseVerdict;\n aboutCompany: boolean;\n};\n"],"mappings":"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","names":[]}
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  failApi
3
- } from "./chunk-S63QUIAF.js";
3
+ } from "./chunk-PPKQTNY7.js";
4
4
  import {
5
5
  CREATIVE_PERFORMANCE_DEFAULT_DAYS,
6
6
  CREATIVE_PERFORMANCE_MAX_DAYS
7
- } from "./chunk-PC3FJEZH.js";
7
+ } from "./chunk-PR45G3SV.js";
8
8
  import {
9
9
  apiPost
10
10
  } from "./chunk-4U7HXXSA.js";
@@ -160,4 +160,4 @@ export {
160
160
  parseDays,
161
161
  performanceCommand
162
162
  };
163
- //# sourceMappingURL=chunk-QGT2B6IK.js.map
163
+ //# sourceMappingURL=chunk-WNX5RQCM.js.map
@@ -12,7 +12,7 @@ import {
12
12
  onlyCondition,
13
13
  triggerProblem,
14
14
  validateEventName
15
- } from "./chunk-PC3FJEZH.js";
15
+ } from "./chunk-PR45G3SV.js";
16
16
 
17
17
  // ../api/src/event-sources/hubspot.ts
18
18
  var HUBSPOT_CONTACT_ID_VARIABLE = "id";
@@ -389,4 +389,4 @@ export {
389
389
  hubspotDefaultMapping,
390
390
  hubspotTriggerInputSchema
391
391
  };
392
- //# sourceMappingURL=chunk-6HJXLGDV.js.map
392
+ //# sourceMappingURL=chunk-XEJMY2NG.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-JOE42ZW6.js";
4
4
  import {
5
5
  flowNodeTriggers
6
- } from "./chunk-PC3FJEZH.js";
6
+ } from "./chunk-PR45G3SV.js";
7
7
 
8
8
  // ../api/src/analytics/flowEventKeys.ts
9
9
  function flowNodes(node, acc = []) {
@@ -54,4 +54,4 @@ export {
54
54
  flowNodes,
55
55
  flowEventKeys
56
56
  };
57
- //# sourceMappingURL=chunk-K6NULQN7.js.map
57
+ //# sourceMappingURL=chunk-YQWJBAA6.js.map
@@ -25,7 +25,7 @@ function nextStepHints(post) {
25
25
  }
26
26
  if (post.usable === "needs_approval") {
27
27
  return [
28
- `It can run as a Thought Leader ad once its author approves it (Campaign Manager \u2192 Thought leader ad \u2192 find the post \u2192 request permission; they can turn on auto-approval for the page). Stage it now with \`baker ads linkedin creatives create --format tla --post ${post.id} --campaign <ad set>\` \u2014 LinkedIn refuses it at publish until they have.`
28
+ `It can run as a Thought Leader ad once its author approves it (Campaign Manager \u2192 Thought leader ad \u2192 find the post \u2192 request permission; they can turn on auto-approval for the page). Stage it now with \`baker ads linkedin creatives create --format tla --post ${post.id} --campaign <ad set>\` \u2014 LinkedIn refuses it at publish until they have. If the user says the author already approved it, record it with \`baker posts approved ${post.id} --account-id <ad account>\` and Baker stops reminding them for that ad account.`
29
29
  ];
30
30
  }
31
31
  return [];
@@ -36,4 +36,4 @@ export {
36
36
  validationError,
37
37
  nextStepHints
38
38
  };
39
- //# sourceMappingURL=chunk-P33YBON4.js.map
39
+ //# sourceMappingURL=chunk-Z7MOJPTA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/posts/shared.ts"],"sourcesContent":["import { ApiError } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\n\n/** Emit the `{ ok: false, error }` envelope and exit non-zero. */\nexport function reportError(err: unknown): never {\n if (err instanceof ApiError) {\n writeJson({ ok: false, error: { code: err.code, message: err.message } });\n process.exit(1);\n }\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n}\n\nexport function validationError(message: string): never {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message } });\n process.exit(1);\n}\n\n/** What to do with a post next, given whether it can run as an ad. */\nexport function nextStepHints(post: { id: string; platform: string; usable: string }): string[] {\n if (post.platform !== \"linkedin\") return [];\n if (post.usable === \"usable\") {\n return [`Boost it: \\`baker ads linkedin creatives create --format tla --post ${post.id} --campaign <ad set>\\`.`];\n }\n if (post.usable === \"needs_approval\") {\n return [\n `It can run as a Thought Leader ad once its author approves it (Campaign Manager → Thought leader ad → find the post → request permission; they can turn on auto-approval for the page). Stage it now with \\`baker ads linkedin creatives create --format tla --post ${post.id} --campaign <ad set>\\` — LinkedIn refuses it at publish until they have.`,\n ];\n }\n return [];\n}\n"],"mappings":";;;;;;;;AAIO,SAAS,YAAY,KAAqB;AAC/C,MAAI,eAAe,UAAU;AAC3B,cAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,IAAI,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;AACxE,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,YAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,SAAS,mBAAmB,EAAE,CAAC;AACvF,UAAQ,KAAK,CAAC;AAChB;AAEO,SAAS,gBAAgB,SAAwB;AACtD,YAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,oBAAoB,QAAQ,EAAE,CAAC;AACrE,UAAQ,KAAK,CAAC;AAChB;AAGO,SAAS,cAAc,MAAkE;AAC9F,MAAI,KAAK,aAAa,WAAY,QAAO,CAAC;AAC1C,MAAI,KAAK,WAAW,UAAU;AAC5B,WAAO,CAAC,uEAAuE,KAAK,EAAE,yBAAyB;AAAA,EACjH;AACA,MAAI,KAAK,WAAW,kBAAkB;AACpC,WAAO;AAAA,MACL,sRAAuQ,KAAK,EAAE;AAAA,IAChR;AAAA,EACF;AACA,SAAO,CAAC;AACV;","names":[]}
1
+ {"version":3,"sources":["../src/commands/posts/shared.ts"],"sourcesContent":["import { ApiError } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\n\n/** Emit the `{ ok: false, error }` envelope and exit non-zero. */\nexport function reportError(err: unknown): never {\n if (err instanceof ApiError) {\n writeJson({ ok: false, error: { code: err.code, message: err.message } });\n process.exit(1);\n }\n writeJson({ ok: false, error: { code: \"INTERNAL_ERROR\", message: \"Unexpected error\" } });\n process.exit(1);\n}\n\nexport function validationError(message: string): never {\n writeJson({ ok: false, error: { code: \"VALIDATION_ERROR\", message } });\n process.exit(1);\n}\n\n/** What to do with a post next, given whether it can run as an ad. */\nexport function nextStepHints(post: { id: string; platform: string; usable: string }): string[] {\n if (post.platform !== \"linkedin\") return [];\n if (post.usable === \"usable\") {\n return [`Boost it: \\`baker ads linkedin creatives create --format tla --post ${post.id} --campaign <ad set>\\`.`];\n }\n if (post.usable === \"needs_approval\") {\n return [\n `It can run as a Thought Leader ad once its author approves it (Campaign Manager → Thought leader ad → find the post → request permission; they can turn on auto-approval for the page). Stage it now with \\`baker ads linkedin creatives create --format tla --post ${post.id} --campaign <ad set>\\` — LinkedIn refuses it at publish until they have. If the user says the author already approved it, record it with \\`baker posts approved ${post.id} --account-id <ad account>\\` and Baker stops reminding them for that ad account.`,\n ];\n }\n return [];\n}\n"],"mappings":";;;;;;;;AAIO,SAAS,YAAY,KAAqB;AAC/C,MAAI,eAAe,UAAU;AAC3B,cAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,IAAI,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;AACxE,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,YAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,kBAAkB,SAAS,mBAAmB,EAAE,CAAC;AACvF,UAAQ,KAAK,CAAC;AAChB;AAEO,SAAS,gBAAgB,SAAwB;AACtD,YAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,oBAAoB,QAAQ,EAAE,CAAC;AACrE,UAAQ,KAAK,CAAC;AAChB;AAGO,SAAS,cAAc,MAAkE;AAC9F,MAAI,KAAK,aAAa,WAAY,QAAO,CAAC;AAC1C,MAAI,KAAK,WAAW,UAAU;AAC5B,WAAO,CAAC,uEAAuE,KAAK,EAAE,yBAAyB;AAAA,EACjH;AACA,MAAI,KAAK,WAAW,kBAAkB;AACpC,WAAO;AAAA,MACL,sRAAuQ,KAAK,EAAE,wKAAmK,KAAK,EAAE;AAAA,IAC1b;AAAA,EACF;AACA,SAAO,CAAC;AACV;","names":[]}
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  avatarsOf
3
- } from "./chunk-REN4YI4L.js";
3
+ } from "./chunk-6ZHVCUHZ.js";
4
4
  import {
5
5
  readAvatars
6
6
  } from "./chunk-UTFSUMLU.js";
7
7
  import {
8
8
  readCreativeContext,
9
9
  workspaceOfCreative
10
- } from "./chunk-VGMTVZG7.js";
10
+ } from "./chunk-RDYS7Z5Y.js";
11
11
  import {
12
12
  frontmatterOf,
13
13
  ruleTells
@@ -139,4 +139,4 @@ export {
139
139
  heldRules,
140
140
  ruleGate
141
141
  };
142
- //# sourceMappingURL=chunk-UWLXAQOR.js.map
142
+ //# sourceMappingURL=chunk-ZGXRX7VQ.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  failApi,
3
3
  failValidation
4
- } from "./chunk-S63QUIAF.js";
5
- import "./chunk-PC3FJEZH.js";
6
- import "./chunk-CAZGM2NX.js";
7
- import "./chunk-NZS3KEQ2.js";
4
+ } from "./chunk-PPKQTNY7.js";
5
+ import "./chunk-PR45G3SV.js";
6
+ import "./chunk-QV6AST5T.js";
7
+ import "./chunk-WCU362Z6.js";
8
8
  import "./chunk-GIWHHCD6.js";
9
9
  import "./chunk-SOPVIIUW.js";
10
10
  import "./chunk-G4FG5EQO.js";
@@ -197,4 +197,4 @@ var claimCommand = defineCommand({
197
197
  export {
198
198
  claimCommand
199
199
  };
200
- //# sourceMappingURL=claim-GVEBBGR3.js.map
200
+ //# sourceMappingURL=claim-UUYFZYQX.js.map
package/dist/cli.js CHANGED
@@ -166,43 +166,43 @@ Formats: --output json works on every command that prints the envelope. --output
166
166
  Introspection: Run 'baker schema <command>' to inspect argument schemas.`
167
167
  },
168
168
  subCommands: {
169
- capabilities: () => import("./capabilities-P6P3PCN4.js").then((m) => m.capabilitiesCommand),
170
- actions: () => import("./actions-6LP4UN4U.js").then((m) => m.actionsCommand),
171
- "scheduled-agents": () => import("./scheduled-agents-RGI6FOGL.js").then((m) => m.scheduledAgentsCommand),
172
- ads: () => import("./ads-PA4DUVVT.js").then((m) => m.adsCommand),
173
- brand: () => import("./brand-NXNIHPZT.js").then((m) => m.brandCommand),
174
- analytics: () => import("./analytics-SB42GKIT.js").then((m) => m.analyticsCommand),
169
+ capabilities: () => import("./capabilities-IV3TIY5P.js").then((m) => m.capabilitiesCommand),
170
+ actions: () => import("./actions-WQBRBRQM.js").then((m) => m.actionsCommand),
171
+ "scheduled-agents": () => import("./scheduled-agents-A5OLKMAB.js").then((m) => m.scheduledAgentsCommand),
172
+ ads: () => import("./ads-Y7WZPGER.js").then((m) => m.adsCommand),
173
+ brand: () => import("./brand-XPLJH74A.js").then((m) => m.brandCommand),
174
+ analytics: () => import("./analytics-OBXOCY64.js").then((m) => m.analyticsCommand),
175
175
  experiment: () => import("./experiment-XNEYJVLH.js").then((m) => m.experimentCommand),
176
176
  ga4: () => import("./ga4-G5NKZI3Y.js").then((m) => m.ga4Command),
177
177
  gsc: () => import("./gsc-7D62WFOR.js").then((m) => m.gscCommand),
178
- research: () => import("./research-CZNU2TPL.js").then((m) => m.researchCommand),
178
+ research: () => import("./research-F4GTVF3J.js").then((m) => m.researchCommand),
179
179
  decide: () => import("./decide-HTTX2ZIT.js").then((m) => m.decideCommand),
180
- creatives: () => import("./creatives-HS4USKWX.js").then((m) => m.creativesCommand),
181
- flows: () => import("./flows-QQ5XRGFL.js").then((m) => m.flowsCommand),
182
- funnel: () => import("./funnel-TLKZNW3H.js").then((m) => m.funnelCommand),
183
- images: () => import("./images-6674KEOT.js").then((m) => m.imagesCommand),
180
+ creatives: () => import("./creatives-BVDFEUGW.js").then((m) => m.creativesCommand),
181
+ flows: () => import("./flows-77TYO56Q.js").then((m) => m.flowsCommand),
182
+ funnel: () => import("./funnel-EKW64M7Z.js").then((m) => m.funnelCommand),
183
+ images: () => import("./images-JEC7LTTJ.js").then((m) => m.imagesCommand),
184
184
  studio: () => import("./studio-FJL2TIZK.js").then((m) => m.studioCommand),
185
- avatars: () => import("./avatars-RZVFKOV5.js").then((m) => m.avatarsCommand),
186
- landing: () => import("./landing-NBY7W4TC.js").then((m) => m.landingCommand),
187
- videos: () => import("./videos-2TBZRY5V.js").then((m) => m.videosCommand),
188
- testimonials: () => import("./testimonials-OT6NY7SS.js").then((m) => m.testimonialsCommand),
189
- canvas: () => import("./canvas-7AW3JWDK.js").then((m) => m.canvasCommand),
190
- tags: () => import("./tags-TXLWDBWF.js").then((m) => m.tagsCommand),
185
+ avatars: () => import("./avatars-KU4DN7VX.js").then((m) => m.avatarsCommand),
186
+ landing: () => import("./landing-L6KGKU4P.js").then((m) => m.landingCommand),
187
+ videos: () => import("./videos-RYCPYL5P.js").then((m) => m.videosCommand),
188
+ testimonials: () => import("./testimonials-Q3HZ7CW5.js").then((m) => m.testimonialsCommand),
189
+ canvas: () => import("./canvas-DE2DVGQT.js").then((m) => m.canvasCommand),
190
+ tags: () => import("./tags-SZM7BZEN.js").then((m) => m.tagsCommand),
191
191
  "tag-manager": () => import("./tag-manager-M2Z6TEV6.js").then((m) => m.tagManagerCommand),
192
- chats: () => import("./chats-AFKZYIVE.js").then((m) => m.chatsCommand),
193
- history: () => import("./history-EJEC3M6F.js").then((m) => m.historyCommand),
194
- credentials: () => import("./credentials-OQGLIQJG.js").then((m) => m.credentialsCommand),
195
- hubspot: () => import("./hubspot-6K37PW65.js").then((m) => m.hubspotCommand),
196
- activecampaign: () => import("./activecampaign-FVOQZVBM.js").then((m) => m.activecampaignCommand),
197
- accounts: () => import("./accounts-5ZFFDJIL.js").then((m) => m.accountsCommand),
198
- shopify: () => import("./shopify-GLRBIUQU.js").then((m) => m.shopifyCommand),
199
- "winning-ads": () => import("./winning-ads-HSUV7XN3.js").then((m) => m.winningAdsCommand),
200
- "media-sources": () => import("./media-sources-6Y4SLLKU.js").then((m) => m.mediaSourcesCommand),
201
- posts: () => import("./posts-5EHNIOBK.js").then((m) => m.postsCommand),
202
- site: () => import("./site-UXH2ERL6.js").then((m) => m.siteCommand),
203
- mcp: () => import("./mcp-DNQSMHCT.js").then((m) => m.mcpCommand),
204
- "setup-links": () => import("./setup-links-I4UIEK3F.js").then((m) => m.setupLinksCommand),
205
- organization: () => import("./organization-36Q5KWP4.js").then((m) => m.organizationCommand),
192
+ chats: () => import("./chats-O3KS5FRK.js").then((m) => m.chatsCommand),
193
+ history: () => import("./history-CXVGFR2N.js").then((m) => m.historyCommand),
194
+ credentials: () => import("./credentials-RBVXAYGB.js").then((m) => m.credentialsCommand),
195
+ hubspot: () => import("./hubspot-FHJHMYJI.js").then((m) => m.hubspotCommand),
196
+ activecampaign: () => import("./activecampaign-GJ4QHU5I.js").then((m) => m.activecampaignCommand),
197
+ accounts: () => import("./accounts-X6OS6LFQ.js").then((m) => m.accountsCommand),
198
+ shopify: () => import("./shopify-3KNP5U4O.js").then((m) => m.shopifyCommand),
199
+ "winning-ads": () => import("./winning-ads-YIBTH2Q5.js").then((m) => m.winningAdsCommand),
200
+ "media-sources": () => import("./media-sources-WZJ67OP7.js").then((m) => m.mediaSourcesCommand),
201
+ posts: () => import("./posts-PPSQ726T.js").then((m) => m.postsCommand),
202
+ site: () => import("./site-5NCEJBUK.js").then((m) => m.siteCommand),
203
+ mcp: () => import("./mcp-FFODYTJ2.js").then((m) => m.mcpCommand),
204
+ "setup-links": () => import("./setup-links-5PAHBVRM.js").then((m) => m.setupLinksCommand),
205
+ organization: () => import("./organization-I2DXVVIE.js").then((m) => m.organizationCommand),
206
206
  schema: () => import("./schema-YO5VLVDS.js").then((m) => m.schemaCommand)
207
207
  }
208
208
  });
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  csvOrJson,
3
3
  handleLinkedinError
4
- } from "./chunk-IUWCDYAK.js";
4
+ } from "./chunk-JOKLBSDV.js";
5
5
  import {
6
6
  TABLE_OUTPUT_FORMATS,
7
7
  outputFormatRefusal,
@@ -14,9 +14,9 @@ import {
14
14
  } from "./chunk-7PMGAOHZ.js";
15
15
  import {
16
16
  linkedinCompaniesRequestSchema
17
- } from "./chunk-PC3FJEZH.js";
18
- import "./chunk-CAZGM2NX.js";
19
- import "./chunk-NZS3KEQ2.js";
17
+ } from "./chunk-PR45G3SV.js";
18
+ import "./chunk-QV6AST5T.js";
19
+ import "./chunk-WCU362Z6.js";
20
20
  import "./chunk-GIWHHCD6.js";
21
21
  import "./chunk-SOPVIIUW.js";
22
22
  import "./chunk-G4FG5EQO.js";
@@ -195,4 +195,4 @@ export {
195
195
  companiesCommand,
196
196
  companiesHints
197
197
  };
198
- //# sourceMappingURL=companies-WSH35EDY.js.map
198
+ //# sourceMappingURL=companies-SJPRPNZW.js.map
@@ -2,7 +2,7 @@ import {
2
2
  companyHints,
3
3
  companySearchHints,
4
4
  unknownIndustriesFix
5
- } from "./chunk-AQRXXC6E.js";
5
+ } from "./chunk-UXJSZ74Q.js";
6
6
  import {
7
7
  handleResearchError,
8
8
  writeResearchJson
@@ -12,9 +12,9 @@ import {
12
12
  RESEARCH_COMPANY_SEARCH_MAX_LIMIT,
13
13
  RESEARCH_COMPANY_SIZES,
14
14
  researchCompanySearchRequestSchema
15
- } from "./chunk-PC3FJEZH.js";
16
- import "./chunk-CAZGM2NX.js";
17
- import "./chunk-NZS3KEQ2.js";
15
+ } from "./chunk-PR45G3SV.js";
16
+ import "./chunk-QV6AST5T.js";
17
+ import "./chunk-WCU362Z6.js";
18
18
  import "./chunk-GIWHHCD6.js";
19
19
  import "./chunk-SOPVIIUW.js";
20
20
  import "./chunk-G4FG5EQO.js";
@@ -305,4 +305,4 @@ Examples:
305
305
  export {
306
306
  companyCommand
307
307
  };
308
- //# sourceMappingURL=company-CTERVQSX.js.map
308
+ //# sourceMappingURL=company-DNWA3VBT.js.map