@koda-sl/baker-cli 0.449.0-dev.bd86e5817 → 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 (443) hide show
  1. package/README.md +11 -6
  2. package/dist/{account-AL2ZDSR7.js → account-XQXC7BR6.js} +5 -4
  3. package/dist/{account-AL2ZDSR7.js.map → account-XQXC7BR6.js.map} +1 -1
  4. package/dist/{accounts-HAFCLSR5.js → accounts-722UY53A.js} +4 -3
  5. package/dist/{accounts-HAFCLSR5.js.map → accounts-722UY53A.js.map} +1 -1
  6. package/dist/{accounts-O5MFO3QQ.js → accounts-E67BMK7T.js} +6 -5
  7. package/dist/{accounts-O5MFO3QQ.js.map → accounts-E67BMK7T.js.map} +1 -1
  8. package/dist/{actions-P35MEMGN.js → actions-6TQMSVWD.js} +18 -18
  9. package/dist/{add-5GAN6CVO.js → add-2BEGRHUX.js} +28 -5
  10. package/dist/add-2BEGRHUX.js.map +1 -0
  11. package/dist/{add-6DTC6X5G.js → add-LEMKEOPO.js} +3 -2
  12. package/dist/{add-6DTC6X5G.js.map → add-LEMKEOPO.js.map} +1 -1
  13. package/dist/{ads-73PGA4YC.js → ads-AGYCVD62.js} +4 -4
  14. package/dist/{advertisers-AE75CGVE.js → advertisers-2VQKAYKG.js} +4 -3
  15. package/dist/{advertisers-AE75CGVE.js.map → advertisers-2VQKAYKG.js.map} +1 -1
  16. package/dist/{analytics-FKCXIMPO.js → analytics-IFELDWLL.js} +24 -20
  17. package/dist/analytics-IFELDWLL.js.map +1 -0
  18. package/dist/{analytics-FPWQQGRM.js → analytics-OH5QEH7F.js} +4 -3
  19. package/dist/{analytics-FPWQQGRM.js.map → analytics-OH5QEH7F.js.map} +1 -1
  20. package/dist/{assign-ABN2AQ4J.js → assign-PTUJUCEL.js} +4 -3
  21. package/dist/{assign-ABN2AQ4J.js.map → assign-PTUJUCEL.js.map} +1 -1
  22. package/dist/{audience-size-GNBJY35X.js → audience-size-LRI6GJRT.js} +4 -3
  23. package/dist/{audience-size-GNBJY35X.js.map → audience-size-LRI6GJRT.js.map} +1 -1
  24. package/dist/{audit-3VS63TBW.js → audit-HWP7OPB7.js} +4 -3
  25. package/dist/{audit-3VS63TBW.js.map → audit-HWP7OPB7.js.map} +1 -1
  26. package/dist/{autocomplete-VS3XG3B7.js → autocomplete-J6DHU6MR.js} +4 -3
  27. package/dist/{autocomplete-VS3XG3B7.js.map → autocomplete-J6DHU6MR.js.map} +1 -1
  28. package/dist/{avatars-EKCKHCC3.js → avatars-467OSBD6.js} +4 -4
  29. package/dist/{bid-pricing-Q72B65AY.js → bid-pricing-EO5WLHGV.js} +4 -3
  30. package/dist/{bid-pricing-Q72B65AY.js.map → bid-pricing-EO5WLHGV.js.map} +1 -1
  31. package/dist/{brand-C6PFGGQN.js → brand-YRTEPGBK.js} +2 -2
  32. package/dist/{brief-YFJHQ5VQ.js → brief-OSFJ2V7F.js} +8 -7
  33. package/dist/{brief-YFJHQ5VQ.js.map → brief-OSFJ2V7F.js.map} +1 -1
  34. package/dist/{campaign-groups-KFFYQPU3.js → campaign-groups-PQ6KSQJR.js} +9 -8
  35. package/dist/{campaign-groups-KFFYQPU3.js.map → campaign-groups-PQ6KSQJR.js.map} +1 -1
  36. package/dist/{campaign-writes-FHOS5XZY.js → campaign-writes-5OVLUD5E.js} +4 -3
  37. package/dist/{campaign-writes-FHOS5XZY.js.map → campaign-writes-5OVLUD5E.js.map} +1 -1
  38. package/dist/{campaigns-2NHWBF5C.js → campaigns-6T3NSUT2.js} +12 -11
  39. package/dist/{campaigns-2NHWBF5C.js.map → campaigns-6T3NSUT2.js.map} +1 -1
  40. package/dist/{campaigns-KZYZTXDS.js → campaigns-OYMXDGWX.js} +5 -5
  41. package/dist/{canvas-UJNSHD3B.js → canvas-YQFG52IG.js} +13 -13
  42. package/dist/{capabilities-DJFTRJKS.js → capabilities-PXBKUN2G.js} +4 -3
  43. package/dist/{capabilities-DJFTRJKS.js.map → capabilities-PXBKUN2G.js.map} +1 -1
  44. package/dist/{catalog-ZQX6BGXS.js → catalog-XLXIM7IW.js} +4 -4
  45. package/dist/{chats-D2CSDX5Q.js → chats-UK47UE7C.js} +4 -3
  46. package/dist/{chats-D2CSDX5Q.js.map → chats-UK47UE7C.js.map} +1 -1
  47. package/dist/{chunk-7YCRFMXF.js → chunk-24EB7EDR.js} +3 -3
  48. package/dist/{chunk-5ZDLTE5T.js → chunk-2AOE2MZQ.js} +3 -3
  49. package/dist/{chunk-4SG4RW2P.js → chunk-2VPBIT65.js} +8 -8
  50. package/dist/chunk-4PDHHHUJ.js +537 -0
  51. package/dist/chunk-4PDHHHUJ.js.map +1 -0
  52. package/dist/{chunk-NPY4QUMQ.js → chunk-54C6YDGJ.js} +2 -2
  53. package/dist/{chunk-LZ73CZGP.js → chunk-5WCSKQ7Z.js} +6 -6
  54. package/dist/{chunk-3G3ZDLMI.js → chunk-5ZNTADVR.js} +2 -2
  55. package/dist/{chunk-AEOSAVVL.js → chunk-6F7DVPOS.js} +3 -3
  56. package/dist/{chunk-CJCVIEJ5.js → chunk-6NY2GPR4.js} +3 -3
  57. package/dist/{chunk-CXWFX2AM.js → chunk-6Y7ZBENQ.js} +6 -6
  58. package/dist/{chunk-M242LHLX.js → chunk-7CTMH5AK.js} +3 -3
  59. package/dist/{chunk-XF4JUKVF.js → chunk-7EPXVICM.js} +38 -5
  60. package/dist/chunk-7EPXVICM.js.map +1 -0
  61. package/dist/{chunk-T2PC5AVH.js → chunk-ASI4P6X2.js} +6 -6
  62. package/dist/chunk-ASI4P6X2.js.map +1 -0
  63. package/dist/{chunk-QD7ESRLN.js → chunk-C46GUI2S.js} +2 -2
  64. package/dist/{chunk-6N6WKAJM.js → chunk-CWYAELVG.js} +2 -2
  65. package/dist/{chunk-MXYBTMKB.js → chunk-DCRPXOJJ.js} +2 -2
  66. package/dist/{chunk-GKZ2WU75.js → chunk-FPOGPFAG.js} +3 -14
  67. package/dist/chunk-FPOGPFAG.js.map +1 -0
  68. package/dist/{chunk-JQJDXPCO.js → chunk-FUHN4MFY.js} +2 -2
  69. package/dist/{chunk-S77PZVYM.js → chunk-FYGR3I2A.js} +3 -3
  70. package/dist/{chunk-OZRUJVIQ.js → chunk-H3427GPU.js} +2 -2
  71. package/dist/{chunk-RPUSTYHL.js → chunk-HDLYPC6K.js} +5 -3
  72. package/dist/{chunk-RPUSTYHL.js.map → chunk-HDLYPC6K.js.map} +1 -1
  73. package/dist/{chunk-SSJK7FEV.js → chunk-HR6IWNKE.js} +1196 -1140
  74. package/dist/chunk-HR6IWNKE.js.map +1 -0
  75. package/dist/{chunk-YRQYA2LR.js → chunk-HROZYQ5H.js} +63 -5
  76. package/dist/chunk-HROZYQ5H.js.map +1 -0
  77. package/dist/{chunk-IR6D7K4H.js → chunk-I3ZR655O.js} +2 -2
  78. package/dist/{chunk-YK32GUBN.js → chunk-KMKEYI37.js} +3 -3
  79. package/dist/{chunk-W3ZHJJVT.js → chunk-KS2QY6MK.js} +4 -4
  80. package/dist/{chunk-WNRV4QH7.js → chunk-LYQJ4PZW.js} +5 -5
  81. package/dist/{chunk-B5SCU7MJ.js → chunk-MACCF4JZ.js} +16 -22
  82. package/dist/{chunk-B5SCU7MJ.js.map → chunk-MACCF4JZ.js.map} +1 -1
  83. package/dist/{chunk-CSYSX4D2.js → chunk-N4LAYIIN.js} +2 -2
  84. package/dist/{chunk-4AUMTNVB.js → chunk-NA63BH7V.js} +3 -3
  85. package/dist/{chunk-4BQXAE7Z.js → chunk-NDEE6G2J.js} +2 -2
  86. package/dist/{chunk-EDLZGTGN.js → chunk-NYIGXDUG.js} +1 -39
  87. package/dist/chunk-NYIGXDUG.js.map +1 -0
  88. package/dist/{chunk-DWHIOO7E.js → chunk-QE7W555R.js} +163 -12
  89. package/dist/chunk-QE7W555R.js.map +1 -0
  90. package/dist/{chunk-MELOSESI.js → chunk-R25YLW6H.js} +2 -2
  91. package/dist/{chunk-Y6O7EWYY.js → chunk-RL5CP7N6.js} +5 -5
  92. package/dist/{chunk-DGUNI37S.js → chunk-RX2DKU3W.js} +2 -2
  93. package/dist/{chunk-3HJLHTWP.js → chunk-SJYEY5MV.js} +12 -3
  94. package/dist/{chunk-3HJLHTWP.js.map → chunk-SJYEY5MV.js.map} +1 -1
  95. package/dist/{chunk-VTDMKARH.js → chunk-ULG4QRTV.js} +2 -2
  96. package/dist/{chunk-QRP3PXWN.js → chunk-VL43TNIP.js} +2 -2
  97. package/dist/{chunk-SHL7LOC3.js → chunk-VLMBTPXU.js} +3 -3
  98. package/dist/{chunk-KHRXPQID.js → chunk-VYQ3QJ3C.js} +2 -2
  99. package/dist/{chunk-A4LOJ2VD.js → chunk-WGUQHAJY.js} +2 -2
  100. package/dist/{chunk-ZEYEWPK6.js → chunk-WKQG6TER.js} +2 -2
  101. package/dist/{chunk-3IBYKLXR.js → chunk-ZDMTXQ2Q.js} +2 -2
  102. package/dist/{claim-FZ5OQLMU.js → claim-W6G6VEG5.js} +4 -3
  103. package/dist/{claim-FZ5OQLMU.js.map → claim-W6G6VEG5.js.map} +1 -1
  104. package/dist/cli.js +30 -30
  105. package/dist/{companies-DNI634RC.js → companies-TS6KBATJ.js} +4 -3
  106. package/dist/{companies-DNI634RC.js.map → companies-TS6KBATJ.js.map} +1 -1
  107. package/dist/{complete-2FZMGJV5.js → complete-LYR2HMQU.js} +4 -3
  108. package/dist/{complete-2FZMGJV5.js.map → complete-LYR2HMQU.js.map} +1 -1
  109. package/dist/{connect-QCOGEPP4.js → connect-FCXNVTXG.js} +13 -6
  110. package/dist/{conversation-6IOGV7B7.js → conversation-6ZJGPCXM.js} +4 -3
  111. package/dist/{conversation-6IOGV7B7.js.map → conversation-6ZJGPCXM.js.map} +1 -1
  112. package/dist/{conversions-4SRZPBBX.js → conversions-UHB55MMQ.js} +8 -7
  113. package/dist/{conversions-4SRZPBBX.js.map → conversions-UHB55MMQ.js.map} +1 -1
  114. package/dist/{create-BJNMO6HT.js → create-EX6OWLNM.js} +3 -2
  115. package/dist/{create-BJNMO6HT.js.map → create-EX6OWLNM.js.map} +1 -1
  116. package/dist/{create-RM7HV77Y.js → create-JCA7JPLP.js} +4 -3
  117. package/dist/{create-RM7HV77Y.js.map → create-JCA7JPLP.js.map} +1 -1
  118. package/dist/{create-FX4OJ2XF.js → create-JFSK4BOP.js} +4 -3
  119. package/dist/{create-FX4OJ2XF.js.map → create-JFSK4BOP.js.map} +1 -1
  120. package/dist/{create-VXM34ZWH.js → create-WU22YYU2.js} +4 -3
  121. package/dist/{create-VXM34ZWH.js.map → create-WU22YYU2.js.map} +1 -1
  122. package/dist/{creatives-NJF2U763.js → creatives-FXUQ5WSD.js} +10 -10
  123. package/dist/{creatives-JSWBFQ5R.js → creatives-KGXUOYPE.js} +9 -8
  124. package/dist/{creatives-JSWBFQ5R.js.map → creatives-KGXUOYPE.js.map} +1 -1
  125. package/dist/{credentials-C33K6XCJ.js → credentials-MJC7PGKR.js} +4 -3
  126. package/dist/{credentials-C33K6XCJ.js.map → credentials-MJC7PGKR.js.map} +1 -1
  127. package/dist/{critique-YDKPYZLD.js → critique-GS5VV5ZC.js} +7 -6
  128. package/dist/{critique-YDKPYZLD.js.map → critique-GS5VV5ZC.js.map} +1 -1
  129. package/dist/{critique-ZS4ON3SU.js → critique-TPHR27KH.js} +4 -3
  130. package/dist/{critique-ZS4ON3SU.js.map → critique-TPHR27KH.js.map} +1 -1
  131. package/dist/{crm-R5IXIFIV.js → crm-AVCM5D4G.js} +5 -4
  132. package/dist/{crm-R5IXIFIV.js.map → crm-AVCM5D4G.js.map} +1 -1
  133. package/dist/{crm-52ROSWH5.js → crm-VK44O3ED.js} +5 -4
  134. package/dist/{crm-52ROSWH5.js.map → crm-VK44O3ED.js.map} +1 -1
  135. package/dist/{customers-A36LOZOB.js → customers-XH2DMTFH.js} +6 -5
  136. package/dist/{delete-M2GDLPYN.js → delete-E3R3TKIL.js} +3 -2
  137. package/dist/{delete-M2GDLPYN.js.map → delete-E3R3TKIL.js.map} +1 -1
  138. package/dist/{delete-HGHXY24R.js → delete-KRH2YMSZ.js} +4 -3
  139. package/dist/{delete-HGHXY24R.js.map → delete-KRH2YMSZ.js.map} +1 -1
  140. package/dist/{delete-AIGE4Y4H.js → delete-WI5E3DR3.js} +4 -3
  141. package/dist/{delete-AIGE4Y4H.js.map → delete-WI5E3DR3.js.map} +1 -1
  142. package/dist/{demographics-NTWB2IMG.js → demographics-XV5PBA77.js} +4 -3
  143. package/dist/{demographics-NTWB2IMG.js.map → demographics-XV5PBA77.js.map} +1 -1
  144. package/dist/{discard-2WWQG6OU.js → discard-HTQUUHJR.js} +4 -3
  145. package/dist/{discard-2WWQG6OU.js.map → discard-HTQUUHJR.js.map} +1 -1
  146. package/dist/{domain-Y2LT6JLT.js → domain-RECGZXJB.js} +4 -3
  147. package/dist/{domain-Y2LT6JLT.js.map → domain-RECGZXJB.js.map} +1 -1
  148. package/dist/{draft-SLHAKJ2A.js → draft-2IBSJEKC.js} +4 -3
  149. package/dist/{draft-SLHAKJ2A.js.map → draft-2IBSJEKC.js.map} +1 -1
  150. package/dist/{draft-FJ7WHIXW.js → draft-PVTX6QT6.js} +4 -3
  151. package/dist/{draft-FJ7WHIXW.js.map → draft-PVTX6QT6.js.map} +1 -1
  152. package/dist/{draft-EJXNNJ3Y.js → draft-Q546QPPU.js} +5 -4
  153. package/dist/{draft-EJXNNJ3Y.js.map → draft-Q546QPPU.js.map} +1 -1
  154. package/dist/engine/index.js +3 -3
  155. package/dist/{facets-U7AQC4H6.js → facets-7EVPJMKS.js} +4 -3
  156. package/dist/{facets-U7AQC4H6.js.map → facets-7EVPJMKS.js.map} +1 -1
  157. package/dist/{feedback-PPQMOQ46.js → feedback-EIZKS4JU.js} +2 -2
  158. package/dist/{feedback-record-V66HWVRR.js → feedback-record-TKO54BOE.js} +9 -8
  159. package/dist/{feedback-record-V66HWVRR.js.map → feedback-record-TKO54BOE.js.map} +1 -1
  160. package/dist/{fetch-W7NULDEO.js → fetch-4BY6HYUM.js} +4 -3
  161. package/dist/{fetch-W7NULDEO.js.map → fetch-4BY6HYUM.js.map} +1 -1
  162. package/dist/{find-OTDIX6V4.js → find-FRRHAPWX.js} +4 -4
  163. package/dist/{flows-KABCBS3S.js → flows-KTFAML22.js} +21 -17
  164. package/dist/flows-KTFAML22.js.map +1 -0
  165. package/dist/{fonts-EMMX3KII.js → fonts-MXR3ZKDX.js} +6 -5
  166. package/dist/{forecast-GNODEIIC.js → forecast-3QTJYVND.js} +4 -3
  167. package/dist/{forecast-GNODEIIC.js.map → forecast-3QTJYVND.js.map} +1 -1
  168. package/dist/{funnel-AAX27NH4.js → funnel-I6XIAEHG.js} +11 -455
  169. package/dist/funnel-I6XIAEHG.js.map +1 -0
  170. package/dist/{ga4-UDQ2HA2J.js → ga4-DV2AXCSL.js} +1 -1
  171. package/dist/{get-QEYJRLV3.js → get-5PKNKJ5S.js} +7 -4
  172. package/dist/get-5PKNKJ5S.js.map +1 -0
  173. package/dist/{get-RTVUZM6E.js → get-72YPHJGV.js} +4 -3
  174. package/dist/{get-RTVUZM6E.js.map → get-72YPHJGV.js.map} +1 -1
  175. package/dist/{google-M7KEXVK5.js → google-6OGZX47I.js} +2 -2
  176. package/dist/{google-KTO3PLEU.js → google-QYYYSSXI.js} +5 -5
  177. package/dist/{google-ads-OK6IG3UV.js → google-ads-QGMQKZQD.js} +4 -3
  178. package/dist/{google-ads-OK6IG3UV.js.map → google-ads-QGMQKZQD.js.map} +1 -1
  179. package/dist/{gsc-P3QYGDV2.js → gsc-TAKOF7J5.js} +1 -1
  180. package/dist/{history-PQUJKK26.js → history-6AVQX2OQ.js} +4 -3
  181. package/dist/{history-PQUJKK26.js.map → history-6AVQX2OQ.js.map} +1 -1
  182. package/dist/{hubspot-Y77VLY6Y.js → hubspot-SVEMFK5S.js} +9 -8
  183. package/dist/{hubspot-Y77VLY6Y.js.map → hubspot-SVEMFK5S.js.map} +1 -1
  184. package/dist/{icon-I43F77FV.js → icon-L4RSS6PZ.js} +4 -4
  185. package/dist/{ideas-MIDU7YOA.js → ideas-NFOW3HKJ.js} +3 -2
  186. package/dist/{images-S254MS6O.js → images-2EFFUNNV.js} +9 -9
  187. package/dist/{ingest-YV2NLDBE.js → ingest-2EIKN4QC.js} +4 -3
  188. package/dist/{ingest-J4I3HKM3.js → ingest-2SO62RRI.js} +3 -2
  189. package/dist/{ingest-J4I3HKM3.js.map → ingest-2SO62RRI.js.map} +1 -1
  190. package/dist/{inspect-Q5NHBBHX.js → inspect-4OOS4APT.js} +4 -3
  191. package/dist/{inspect-Q5NHBBHX.js.map → inspect-4OOS4APT.js.map} +1 -1
  192. package/dist/{inspiration-P265QJ2H.js → inspiration-S3DU4CMQ.js} +1 -1
  193. package/dist/{keyword-metrics-PDY4ZXSP.js → keyword-metrics-SF4CSNZ2.js} +4 -3
  194. package/dist/{keyword-metrics-PDY4ZXSP.js.map → keyword-metrics-SF4CSNZ2.js.map} +1 -1
  195. package/dist/{keywords-for-site-GALSCV77.js → keywords-for-site-WDAOPNKC.js} +4 -3
  196. package/dist/{keywords-for-site-GALSCV77.js.map → keywords-for-site-WDAOPNKC.js.map} +1 -1
  197. package/dist/{landing-CJYGWCK4.js → landing-2ZB46LXH.js} +3 -3
  198. package/dist/{leads-PHKG6CP3.js → leads-A4W5KTWB.js} +4 -3
  199. package/dist/{leads-PHKG6CP3.js.map → leads-A4W5KTWB.js.map} +1 -1
  200. package/dist/{learn-FUQSY7DN.js → learn-IPULBCOD.js} +5 -4
  201. package/dist/{learn-FUQSY7DN.js.map → learn-IPULBCOD.js.map} +1 -1
  202. package/dist/{line-item-writes-E6MZPIZZ.js → line-item-writes-EMYSOJKM.js} +4 -3
  203. package/dist/{line-item-writes-E6MZPIZZ.js.map → line-item-writes-EMYSOJKM.js.map} +1 -1
  204. package/dist/{line-items-7ZGIKEF2.js → line-items-5NECXUZT.js} +5 -5
  205. package/dist/{link-QYAW6A2W.js → link-CI45HWFN.js} +4 -3
  206. package/dist/{link-QYAW6A2W.js.map → link-CI45HWFN.js.map} +1 -1
  207. package/dist/{linkedin-FFSDSGGS.js → linkedin-B7SYR75X.js} +27 -26
  208. package/dist/{linkedin-FFSDSGGS.js.map → linkedin-B7SYR75X.js.map} +1 -1
  209. package/dist/{list-NVQC5SNY.js → list-2BARXOT5.js} +3 -2
  210. package/dist/{list-NVQC5SNY.js.map → list-2BARXOT5.js.map} +1 -1
  211. package/dist/{list-SAV3LQHY.js → list-BIEVLEHS.js} +4 -3
  212. package/dist/{list-SAV3LQHY.js.map → list-BIEVLEHS.js.map} +1 -1
  213. package/dist/{list-5IC6KIKO.js → list-ZBT3EBVZ.js} +4 -3
  214. package/dist/{list-5IC6KIKO.js.map → list-ZBT3EBVZ.js.map} +1 -1
  215. package/dist/{log-XZPVOALD.js → log-C23OOAJZ.js} +4 -3
  216. package/dist/{log-XZPVOALD.js.map → log-C23OOAJZ.js.map} +1 -1
  217. package/dist/{logo-2IP663QO.js → logo-Q5D7PZY6.js} +3 -3
  218. package/dist/{lookup-XK45W2SH.js → lookup-ETWY47F7.js} +6 -5
  219. package/dist/{make-J3WBO62B.js → make-TPKKJXGL.js} +18 -17
  220. package/dist/{make-J3WBO62B.js.map → make-TPKKJXGL.js.map} +1 -1
  221. package/dist/{map-4J5WIWIG.js → map-SYZMPHLL.js} +5 -4
  222. package/dist/{map-4J5WIWIG.js.map → map-SYZMPHLL.js.map} +1 -1
  223. package/dist/{mcp-XXD7ZQCP.js → mcp-6FQBVJ6F.js} +3 -2
  224. package/dist/{mcp-XXD7ZQCP.js.map → mcp-6FQBVJ6F.js.map} +1 -1
  225. package/dist/{media-sources-O6ZRUA3N.js → media-sources-ZXHEEP6T.js} +2 -2
  226. package/dist/{members-D5ZYLS4Y.js → members-UDY4OOJW.js} +4 -3
  227. package/dist/{members-D5ZYLS4Y.js.map → members-UDY4OOJW.js.map} +1 -1
  228. package/dist/{normalize-PCNC6E2N.js → normalize-DAKHYS3V.js} +7 -3
  229. package/dist/{normalize-PCNC6E2N.js.map → normalize-DAKHYS3V.js.map} +1 -1
  230. package/dist/{options-MQ65VEVD.js → options-QL3ULED5.js} +7 -6
  231. package/dist/{options-MQ65VEVD.js.map → options-QL3ULED5.js.map} +1 -1
  232. package/dist/{performance-6QW2KEEQ.js → performance-UF5VTY2U.js} +5 -4
  233. package/dist/plan-FT632COT.js +51 -0
  234. package/dist/plan-FT632COT.js.map +1 -0
  235. package/dist/{promoted-tweet-writes-JPLHY3GM.js → promoted-tweet-writes-7HGESJ46.js} +4 -3
  236. package/dist/{promoted-tweet-writes-JPLHY3GM.js.map → promoted-tweet-writes-7HGESJ46.js.map} +1 -1
  237. package/dist/{promoted-tweets-SURKMHFI.js → promoted-tweets-LZKS5JIF.js} +3 -3
  238. package/dist/{publish-HCQ6MXLB.js → publish-NPD3SMZL.js} +4 -3
  239. package/dist/{publish-HCQ6MXLB.js.map → publish-NPD3SMZL.js.map} +1 -1
  240. package/dist/questionnaire-JNGYJTAY.js +37 -0
  241. package/dist/questionnaire-JNGYJTAY.js.map +1 -0
  242. package/dist/{reddit-GIP3ADMS.js → reddit-NU2N3LZD.js} +5 -4
  243. package/dist/{refresh-UXQSLCR3.js → refresh-EBVJ2C6L.js} +3 -2
  244. package/dist/{refresh-UXQSLCR3.js.map → refresh-EBVJ2C6L.js.map} +1 -1
  245. package/dist/{release-5KVLXNP6.js → release-V43YB2PY.js} +4 -3
  246. package/dist/{release-5KVLXNP6.js.map → release-V43YB2PY.js.map} +1 -1
  247. package/dist/{remove-6FIVKCJI.js → remove-QPSWLFI4.js} +3 -2
  248. package/dist/{remove-6FIVKCJI.js.map → remove-QPSWLFI4.js.map} +1 -1
  249. package/dist/{reopen-YM5LNOLB.js → reopen-GQ66NMWF.js} +4 -3
  250. package/dist/{reopen-YM5LNOLB.js.map → reopen-GQ66NMWF.js.map} +1 -1
  251. package/dist/{rerun-WYDRHIUJ.js → rerun-PZK275DY.js} +18 -17
  252. package/dist/{rerun-WYDRHIUJ.js.map → rerun-PZK275DY.js.map} +1 -1
  253. package/dist/{research-2BLEISBG.js → research-FMM6AWZC.js} +10 -10
  254. package/dist/{research-YOGE7GT2.js → research-GEOCUBXB.js} +3 -2
  255. package/dist/{research-YOGE7GT2.js.map → research-GEOCUBXB.js.map} +1 -1
  256. package/dist/{reset-C4UHQ3EU.js → reset-REXJ6AUK.js} +3 -2
  257. package/dist/{reset-C4UHQ3EU.js.map → reset-REXJ6AUK.js.map} +1 -1
  258. package/dist/{reset-OLVB6AE6.js → reset-Y72IVESB.js} +3 -2
  259. package/dist/{reset-OLVB6AE6.js.map → reset-Y72IVESB.js.map} +1 -1
  260. package/dist/{resolve-XYH2GDAE.js → resolve-OGX7C4TV.js} +4 -3
  261. package/dist/{resolve-XYH2GDAE.js.map → resolve-OGX7C4TV.js.map} +1 -1
  262. package/dist/{retry-7EELDEQP.js → retry-CD6JAQ3F.js} +3 -2
  263. package/dist/{retry-7EELDEQP.js.map → retry-CD6JAQ3F.js.map} +1 -1
  264. package/dist/{retry-726GKI6V.js → retry-TCUBBFR5.js} +3 -2
  265. package/dist/{retry-726GKI6V.js.map → retry-TCUBBFR5.js.map} +1 -1
  266. package/dist/{run-P4KR2MXC.js → run-A5ZDXTOI.js} +4 -3
  267. package/dist/{run-P4KR2MXC.js.map → run-A5ZDXTOI.js.map} +1 -1
  268. package/dist/{run-MODGUNGT.js → run-EUO34T2J.js} +18 -17
  269. package/dist/{scaffold-ad-5ZE7KE62.js → scaffold-ad-SW2HEWM3.js} +13 -12
  270. package/dist/{scaffold-ad-5ZE7KE62.js.map → scaffold-ad-SW2HEWM3.js.map} +1 -1
  271. package/dist/{scaffold-static-ad-HJY5HFDL.js → scaffold-static-ad-ECTJL54Y.js} +37 -36
  272. package/dist/scaffold-static-ad-ECTJL54Y.js.map +1 -0
  273. package/dist/{scaffold-video-P2PYPWG2.js → scaffold-video-EI7U7RBK.js} +12 -11
  274. package/dist/{scaffold-video-P2PYPWG2.js.map → scaffold-video-EI7U7RBK.js.map} +1 -1
  275. package/dist/{schedule-RDK4GEPI.js → schedule-S5YZJZ5U.js} +3 -2
  276. package/dist/{schedule-RDK4GEPI.js.map → schedule-S5YZJZ5U.js.map} +1 -1
  277. package/dist/{scheduled-agents-6U44QE76.js → scheduled-agents-N4LJRM4C.js} +11 -11
  278. package/dist/{schema-CHJDC7GQ.js → schema-R7JWWOF4.js} +8 -4
  279. package/dist/{schema-CHJDC7GQ.js.map → schema-R7JWWOF4.js.map} +1 -1
  280. package/dist/{search-PMJRU3C4.js → search-KHMQH3AT.js} +3 -2
  281. package/dist/{search-PMJRU3C4.js.map → search-KHMQH3AT.js.map} +1 -1
  282. package/dist/{select-AB2L4GAA.js → select-O2FN2JEQ.js} +9 -8
  283. package/dist/{select-AB2L4GAA.js.map → select-O2FN2JEQ.js.map} +1 -1
  284. package/dist/{sends-WGJVQUMF.js → sends-BQZM5PLS.js} +5 -4
  285. package/dist/{sends-WGJVQUMF.js.map → sends-BQZM5PLS.js.map} +1 -1
  286. package/dist/{set-prompt-DU2G2WTB.js → set-prompt-2HASHGWC.js} +9 -8
  287. package/dist/{set-prompt-DU2G2WTB.js.map → set-prompt-2HASHGWC.js.map} +1 -1
  288. package/dist/{setup-links-REPREN3C.js → setup-links-GYSE56GX.js} +4 -3
  289. package/dist/{setup-links-REPREN3C.js.map → setup-links-GYSE56GX.js.map} +1 -1
  290. package/dist/{site-WFSWIA3S.js → site-4SKM7RKG.js} +5 -4
  291. package/dist/{site-WFSWIA3S.js.map → site-4SKM7RKG.js.map} +1 -1
  292. package/dist/{sources-YBQ6KPFM.js → sources-FQ2UZTHL.js} +6 -6
  293. package/dist/{sources-AMI2AWKZ.js → sources-R2NKNC6J.js} +10 -9
  294. package/dist/{sources-AMI2AWKZ.js.map → sources-R2NKNC6J.js.map} +1 -1
  295. package/dist/{stale-6MJHVEG4.js → stale-W756ACKC.js} +8 -7
  296. package/dist/{stale-6MJHVEG4.js.map → stale-W756ACKC.js.map} +1 -1
  297. package/dist/{status-7F2KHFGA.js → status-SE2VZJJB.js} +4 -3
  298. package/dist/{status-7F2KHFGA.js.map → status-SE2VZJJB.js.map} +1 -1
  299. package/dist/{stock-2YCDN3N6.js → stock-KXJ26BY4.js} +5 -5
  300. package/dist/{studio-RA7QQH4O.js → studio-SYKOSNDB.js} +1 -1
  301. package/dist/{sync-GWTLKZTU.js → sync-LJGSODK3.js} +3 -2
  302. package/dist/{sync-GWTLKZTU.js.map → sync-LJGSODK3.js.map} +1 -1
  303. package/dist/{sync-definition-IPUFS5XS.js → sync-definition-QR2N233R.js} +12 -11
  304. package/dist/{tags-KFYLZLB3.js → tags-4BAVFH4S.js} +3 -2
  305. package/dist/{tags-KFYLZLB3.js.map → tags-4BAVFH4S.js.map} +1 -1
  306. package/dist/{tags-ABHSX6M5.js → tags-5SBMRC2A.js} +4 -3
  307. package/dist/{tags-ABHSX6M5.js.map → tags-5SBMRC2A.js.map} +1 -1
  308. package/dist/{tags-3WPW6PTV.js → tags-PYWFSBTR.js} +4 -4
  309. package/dist/{tags-6342FQEB.js → tags-QQU3OKMZ.js} +4 -3
  310. package/dist/{tags-6342FQEB.js.map → tags-QQU3OKMZ.js.map} +1 -1
  311. package/dist/{tags-FJIBBBRG.js → tags-YYLNF3PK.js} +4 -3
  312. package/dist/{tags-FJIBBBRG.js.map → tags-YYLNF3PK.js.map} +1 -1
  313. package/dist/{targeting-criteria-NR47AF5C.js → targeting-criteria-RJFLFICN.js} +3 -3
  314. package/dist/{targets-L56KOVQE.js → targets-S2MT2PNB.js} +4 -3
  315. package/dist/{targets-L56KOVQE.js.map → targets-S2MT2PNB.js.map} +1 -1
  316. package/dist/{templates-B6XGDYUF.js → templates-ZE5TOGRT.js} +4 -3
  317. package/dist/{templates-B6XGDYUF.js.map → templates-ZE5TOGRT.js.map} +1 -1
  318. package/dist/{testimonials-CVC4YIXO.js → testimonials-DII5DYLR.js} +6 -6
  319. package/dist/{top-companies-45X3DT7Z.js → top-companies-PGIAEHDF.js} +4 -3
  320. package/dist/{top-companies-45X3DT7Z.js.map → top-companies-PGIAEHDF.js.map} +1 -1
  321. package/dist/{translate-Z66FDB4K.js → translate-GXTS633J.js} +12 -11
  322. package/dist/{translate-Z66FDB4K.js.map → translate-GXTS633J.js.map} +1 -1
  323. package/dist/{triggers-22EMIVFD.js → triggers-2PTONXRU.js} +4 -3
  324. package/dist/{triggers-22EMIVFD.js.map → triggers-2PTONXRU.js.map} +1 -1
  325. package/dist/{unlink-65KUN6ID.js → unlink-XRMYJ6DB.js} +4 -3
  326. package/dist/{unlink-65KUN6ID.js.map → unlink-XRMYJ6DB.js.map} +1 -1
  327. package/dist/{unstage-2E3I5SWF.js → unstage-FY7A3YFF.js} +4 -3
  328. package/dist/{unstage-2E3I5SWF.js.map → unstage-FY7A3YFF.js.map} +1 -1
  329. package/dist/{unstage-4ZEULXEQ.js → unstage-RM2RLXKD.js} +5 -4
  330. package/dist/{unstage-4ZEULXEQ.js.map → unstage-RM2RLXKD.js.map} +1 -1
  331. package/dist/{update-KREBPGBH.js → update-E5SRBXQR.js} +4 -3
  332. package/dist/{update-KREBPGBH.js.map → update-E5SRBXQR.js.map} +1 -1
  333. package/dist/{update-D6DJC6T7.js → update-PJ67D2OG.js} +3 -2
  334. package/dist/{update-D6DJC6T7.js.map → update-PJ67D2OG.js.map} +1 -1
  335. package/dist/{update-2S7CSEAW.js → update-S4562V3O.js} +4 -3
  336. package/dist/{update-2S7CSEAW.js.map → update-S4562V3O.js.map} +1 -1
  337. package/dist/{update-7NCOTAQZ.js → update-V6YVEUI2.js} +4 -3
  338. package/dist/{update-7NCOTAQZ.js.map → update-V6YVEUI2.js.map} +1 -1
  339. package/dist/{upload-O6NHRPS7.js → upload-R6CQVLKF.js} +4 -3
  340. package/dist/{upload-O6NHRPS7.js.map → upload-R6CQVLKF.js.map} +1 -1
  341. package/dist/{url-options-GGXAL3J4.js → url-options-JOKU46F2.js} +4 -3
  342. package/dist/{url-options-GGXAL3J4.js.map → url-options-JOKU46F2.js.map} +1 -1
  343. package/dist/{url-params-3EFGVTZZ.js → url-params-7U2XMOWF.js} +4 -3
  344. package/dist/{url-params-3EFGVTZZ.js.map → url-params-7U2XMOWF.js.map} +1 -1
  345. package/dist/{validate-UMHHNTVU.js → validate-7YPOUKPB.js} +10 -9
  346. package/dist/{validate-UMHHNTVU.js.map → validate-7YPOUKPB.js.map} +1 -1
  347. package/dist/{videos-YSXYGTBM.js → videos-LICG6ACJ.js} +5 -5
  348. package/dist/{web-IGIGVEKS.js → web-BA2PGTWU.js} +4 -3
  349. package/dist/{web-IGIGVEKS.js.map → web-BA2PGTWU.js.map} +1 -1
  350. package/dist/{winning-ads-2WS7FI4E.js → winning-ads-C6S2C5VP.js} +2 -2
  351. package/dist/{write-commands-5C7FUOVN.js → write-commands-7SJ3BOW5.js} +5 -4
  352. package/dist/{write-commands-5C7FUOVN.js.map → write-commands-7SJ3BOW5.js.map} +1 -1
  353. package/dist/{x-BFSKFCZD.js → x-CZHRC6U7.js} +6 -6
  354. package/package.json +1 -1
  355. package/dist/add-5GAN6CVO.js.map +0 -1
  356. package/dist/analytics-FKCXIMPO.js.map +0 -1
  357. package/dist/chunk-DWHIOO7E.js.map +0 -1
  358. package/dist/chunk-EDLZGTGN.js.map +0 -1
  359. package/dist/chunk-GKZ2WU75.js.map +0 -1
  360. package/dist/chunk-SSJK7FEV.js.map +0 -1
  361. package/dist/chunk-T2PC5AVH.js.map +0 -1
  362. package/dist/chunk-XF4JUKVF.js.map +0 -1
  363. package/dist/chunk-YRQYA2LR.js.map +0 -1
  364. package/dist/flows-KABCBS3S.js.map +0 -1
  365. package/dist/funnel-AAX27NH4.js.map +0 -1
  366. package/dist/get-QEYJRLV3.js.map +0 -1
  367. package/dist/scaffold-static-ad-HJY5HFDL.js.map +0 -1
  368. /package/dist/{actions-P35MEMGN.js.map → actions-6TQMSVWD.js.map} +0 -0
  369. /package/dist/{ads-73PGA4YC.js.map → ads-AGYCVD62.js.map} +0 -0
  370. /package/dist/{avatars-EKCKHCC3.js.map → avatars-467OSBD6.js.map} +0 -0
  371. /package/dist/{brand-C6PFGGQN.js.map → brand-YRTEPGBK.js.map} +0 -0
  372. /package/dist/{campaigns-KZYZTXDS.js.map → campaigns-OYMXDGWX.js.map} +0 -0
  373. /package/dist/{canvas-UJNSHD3B.js.map → canvas-YQFG52IG.js.map} +0 -0
  374. /package/dist/{catalog-ZQX6BGXS.js.map → catalog-XLXIM7IW.js.map} +0 -0
  375. /package/dist/{chunk-7YCRFMXF.js.map → chunk-24EB7EDR.js.map} +0 -0
  376. /package/dist/{chunk-5ZDLTE5T.js.map → chunk-2AOE2MZQ.js.map} +0 -0
  377. /package/dist/{chunk-4SG4RW2P.js.map → chunk-2VPBIT65.js.map} +0 -0
  378. /package/dist/{chunk-NPY4QUMQ.js.map → chunk-54C6YDGJ.js.map} +0 -0
  379. /package/dist/{chunk-LZ73CZGP.js.map → chunk-5WCSKQ7Z.js.map} +0 -0
  380. /package/dist/{chunk-3G3ZDLMI.js.map → chunk-5ZNTADVR.js.map} +0 -0
  381. /package/dist/{chunk-AEOSAVVL.js.map → chunk-6F7DVPOS.js.map} +0 -0
  382. /package/dist/{chunk-CJCVIEJ5.js.map → chunk-6NY2GPR4.js.map} +0 -0
  383. /package/dist/{chunk-CXWFX2AM.js.map → chunk-6Y7ZBENQ.js.map} +0 -0
  384. /package/dist/{chunk-M242LHLX.js.map → chunk-7CTMH5AK.js.map} +0 -0
  385. /package/dist/{chunk-QD7ESRLN.js.map → chunk-C46GUI2S.js.map} +0 -0
  386. /package/dist/{chunk-6N6WKAJM.js.map → chunk-CWYAELVG.js.map} +0 -0
  387. /package/dist/{chunk-MXYBTMKB.js.map → chunk-DCRPXOJJ.js.map} +0 -0
  388. /package/dist/{chunk-JQJDXPCO.js.map → chunk-FUHN4MFY.js.map} +0 -0
  389. /package/dist/{chunk-S77PZVYM.js.map → chunk-FYGR3I2A.js.map} +0 -0
  390. /package/dist/{chunk-OZRUJVIQ.js.map → chunk-H3427GPU.js.map} +0 -0
  391. /package/dist/{chunk-IR6D7K4H.js.map → chunk-I3ZR655O.js.map} +0 -0
  392. /package/dist/{chunk-YK32GUBN.js.map → chunk-KMKEYI37.js.map} +0 -0
  393. /package/dist/{chunk-W3ZHJJVT.js.map → chunk-KS2QY6MK.js.map} +0 -0
  394. /package/dist/{chunk-WNRV4QH7.js.map → chunk-LYQJ4PZW.js.map} +0 -0
  395. /package/dist/{chunk-CSYSX4D2.js.map → chunk-N4LAYIIN.js.map} +0 -0
  396. /package/dist/{chunk-4AUMTNVB.js.map → chunk-NA63BH7V.js.map} +0 -0
  397. /package/dist/{chunk-4BQXAE7Z.js.map → chunk-NDEE6G2J.js.map} +0 -0
  398. /package/dist/{chunk-MELOSESI.js.map → chunk-R25YLW6H.js.map} +0 -0
  399. /package/dist/{chunk-Y6O7EWYY.js.map → chunk-RL5CP7N6.js.map} +0 -0
  400. /package/dist/{chunk-DGUNI37S.js.map → chunk-RX2DKU3W.js.map} +0 -0
  401. /package/dist/{chunk-VTDMKARH.js.map → chunk-ULG4QRTV.js.map} +0 -0
  402. /package/dist/{chunk-QRP3PXWN.js.map → chunk-VL43TNIP.js.map} +0 -0
  403. /package/dist/{chunk-SHL7LOC3.js.map → chunk-VLMBTPXU.js.map} +0 -0
  404. /package/dist/{chunk-KHRXPQID.js.map → chunk-VYQ3QJ3C.js.map} +0 -0
  405. /package/dist/{chunk-A4LOJ2VD.js.map → chunk-WGUQHAJY.js.map} +0 -0
  406. /package/dist/{chunk-ZEYEWPK6.js.map → chunk-WKQG6TER.js.map} +0 -0
  407. /package/dist/{chunk-3IBYKLXR.js.map → chunk-ZDMTXQ2Q.js.map} +0 -0
  408. /package/dist/{connect-QCOGEPP4.js.map → connect-FCXNVTXG.js.map} +0 -0
  409. /package/dist/{creatives-NJF2U763.js.map → creatives-FXUQ5WSD.js.map} +0 -0
  410. /package/dist/{customers-A36LOZOB.js.map → customers-XH2DMTFH.js.map} +0 -0
  411. /package/dist/{feedback-PPQMOQ46.js.map → feedback-EIZKS4JU.js.map} +0 -0
  412. /package/dist/{find-OTDIX6V4.js.map → find-FRRHAPWX.js.map} +0 -0
  413. /package/dist/{fonts-EMMX3KII.js.map → fonts-MXR3ZKDX.js.map} +0 -0
  414. /package/dist/{ga4-UDQ2HA2J.js.map → ga4-DV2AXCSL.js.map} +0 -0
  415. /package/dist/{google-M7KEXVK5.js.map → google-6OGZX47I.js.map} +0 -0
  416. /package/dist/{google-KTO3PLEU.js.map → google-QYYYSSXI.js.map} +0 -0
  417. /package/dist/{gsc-P3QYGDV2.js.map → gsc-TAKOF7J5.js.map} +0 -0
  418. /package/dist/{icon-I43F77FV.js.map → icon-L4RSS6PZ.js.map} +0 -0
  419. /package/dist/{ideas-MIDU7YOA.js.map → ideas-NFOW3HKJ.js.map} +0 -0
  420. /package/dist/{images-S254MS6O.js.map → images-2EFFUNNV.js.map} +0 -0
  421. /package/dist/{ingest-YV2NLDBE.js.map → ingest-2EIKN4QC.js.map} +0 -0
  422. /package/dist/{inspiration-P265QJ2H.js.map → inspiration-S3DU4CMQ.js.map} +0 -0
  423. /package/dist/{landing-CJYGWCK4.js.map → landing-2ZB46LXH.js.map} +0 -0
  424. /package/dist/{line-items-7ZGIKEF2.js.map → line-items-5NECXUZT.js.map} +0 -0
  425. /package/dist/{logo-2IP663QO.js.map → logo-Q5D7PZY6.js.map} +0 -0
  426. /package/dist/{lookup-XK45W2SH.js.map → lookup-ETWY47F7.js.map} +0 -0
  427. /package/dist/{media-sources-O6ZRUA3N.js.map → media-sources-ZXHEEP6T.js.map} +0 -0
  428. /package/dist/{performance-6QW2KEEQ.js.map → performance-UF5VTY2U.js.map} +0 -0
  429. /package/dist/{promoted-tweets-SURKMHFI.js.map → promoted-tweets-LZKS5JIF.js.map} +0 -0
  430. /package/dist/{reddit-GIP3ADMS.js.map → reddit-NU2N3LZD.js.map} +0 -0
  431. /package/dist/{research-2BLEISBG.js.map → research-FMM6AWZC.js.map} +0 -0
  432. /package/dist/{run-MODGUNGT.js.map → run-EUO34T2J.js.map} +0 -0
  433. /package/dist/{scheduled-agents-6U44QE76.js.map → scheduled-agents-N4LJRM4C.js.map} +0 -0
  434. /package/dist/{sources-YBQ6KPFM.js.map → sources-FQ2UZTHL.js.map} +0 -0
  435. /package/dist/{stock-2YCDN3N6.js.map → stock-KXJ26BY4.js.map} +0 -0
  436. /package/dist/{studio-RA7QQH4O.js.map → studio-SYKOSNDB.js.map} +0 -0
  437. /package/dist/{sync-definition-IPUFS5XS.js.map → sync-definition-QR2N233R.js.map} +0 -0
  438. /package/dist/{tags-3WPW6PTV.js.map → tags-PYWFSBTR.js.map} +0 -0
  439. /package/dist/{targeting-criteria-NR47AF5C.js.map → targeting-criteria-RJFLFICN.js.map} +0 -0
  440. /package/dist/{testimonials-CVC4YIXO.js.map → testimonials-DII5DYLR.js.map} +0 -0
  441. /package/dist/{videos-YSXYGTBM.js.map → videos-LICG6ACJ.js.map} +0 -0
  442. /package/dist/{winning-ads-2WS7FI4E.js.map → winning-ads-C6S2C5VP.js.map} +0 -0
  443. /package/dist/{x-BFSKFCZD.js.map → x-CZHRC6U7.js.map} +0 -0
@@ -1,34 +1,34 @@
1
1
  import {
2
2
  executeCanvasRun
3
- } from "./chunk-B5SCU7MJ.js";
4
- import "./chunk-6N6WKAJM.js";
5
- import "./chunk-YK32GUBN.js";
3
+ } from "./chunk-MACCF4JZ.js";
4
+ import "./chunk-CWYAELVG.js";
5
+ import "./chunk-KMKEYI37.js";
6
6
  import "./chunk-WN4KX7GE.js";
7
7
  import "./chunk-PWGWMIIJ.js";
8
- import "./chunk-W3ZHJJVT.js";
8
+ import "./chunk-KS2QY6MK.js";
9
9
  import "./chunk-IVIJJXXT.js";
10
10
  import "./chunk-WS2GMOSG.js";
11
- import "./chunk-Q6ULQMWG.js";
12
11
  import "./chunk-KKJ4KJCW.js";
13
- import "./chunk-4SG4RW2P.js";
14
- import "./chunk-CJCVIEJ5.js";
15
- import "./chunk-M242LHLX.js";
16
- import "./chunk-T2PC5AVH.js";
12
+ import "./chunk-Q6ULQMWG.js";
17
13
  import "./chunk-3ACMDRSE.js";
18
- import "./chunk-A4LOJ2VD.js";
14
+ import "./chunk-2VPBIT65.js";
15
+ import "./chunk-6NY2GPR4.js";
16
+ import "./chunk-WGUQHAJY.js";
17
+ import "./chunk-7CTMH5AK.js";
18
+ import "./chunk-ASI4P6X2.js";
19
19
  import "./chunk-NJXNU2G6.js";
20
20
  import "./chunk-4QEY2L6U.js";
21
- import "./chunk-QRP3PXWN.js";
22
- import "./chunk-3IBYKLXR.js";
21
+ import "./chunk-VL43TNIP.js";
22
+ import "./chunk-ZDMTXQ2Q.js";
23
23
  import "./chunk-NFSLRRIE.js";
24
24
  import "./chunk-F2S5BLPE.js";
25
25
  import "./chunk-WTOYCUKH.js";
26
26
  import "./chunk-DZSIUEGH.js";
27
- import "./chunk-WNRV4QH7.js";
28
- import "./chunk-GKZ2WU75.js";
29
- import "./chunk-W3B4BHQU.js";
27
+ import "./chunk-LYQJ4PZW.js";
28
+ import "./chunk-FPOGPFAG.js";
30
29
  import "./chunk-NCWCZY5P.js";
31
30
  import "./chunk-DGCUPJZD.js";
31
+ import "./chunk-W3B4BHQU.js";
32
32
  import "./chunk-PZXCWSKV.js";
33
33
  import "./chunk-CAMX6OHF.js";
34
34
  import "./chunk-RX6F3GEA.js";
@@ -38,10 +38,11 @@ import "./chunk-VAJBWA2U.js";
38
38
  import "./chunk-HRYOZUSK.js";
39
39
  import "./chunk-VVZBBKRC.js";
40
40
  import "./chunk-YBMVHGY3.js";
41
- import "./chunk-XF4JUKVF.js";
41
+ import "./chunk-7EPXVICM.js";
42
42
  import "./chunk-GXDLWBOY.js";
43
43
  import "./chunk-TEINLN64.js";
44
44
  import "./chunk-ZJWUBJYQ.js";
45
+ import "./chunk-HR6IWNKE.js";
45
46
  import "./chunk-NE4F3FHN.js";
46
47
  import "./chunk-XBOK23HI.js";
47
48
  import "./chunk-IFWP3ZDO.js";
@@ -82,4 +83,4 @@ var rerunCommand = defineCommand({
82
83
  export {
83
84
  rerunCommand
84
85
  };
85
- //# sourceMappingURL=rerun-WYDRHIUJ.js.map
86
+ //# sourceMappingURL=rerun-PZK275DY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/canvas/rerun.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { executeCanvasRun } from \"./run.ts\";\n\n/**\n * Deprecated spelling of `baker canvas run --slug <slug>`, kept for one release so client\n * agents and docs that still say `rerun` keep working. Hidden from help; delete once the\n * scaffold docs and hooks have shipped the new spelling everywhere.\n */\nexport const rerunCommand = defineCommand({\n meta: {\n name: \"rerun\",\n hidden: true,\n description: \"Deprecated: use `baker canvas run --slug <slug>`, which does the same.\",\n },\n args: {\n slug: { type: \"positional\", required: true, description: \"Creative slug (src/creatives/<slug>)\" },\n \"force-remote\": {\n type: \"boolean\",\n default: false,\n description: \"Overwrite local files whose content differs from the recorded snapshot\",\n },\n fresh: { type: \"boolean\", default: false, description: \"Start a new run id instead of resuming an interrupted one\" },\n regenerate: { type: \"string\", description: \"Comma-separated node ids to force fresh this run\" },\n concurrency: { type: \"string\", description: \"Max nodes running at once\" },\n },\n async run({ args }) {\n process.stderr.write(\"[deprecated] `baker canvas rerun <slug>` is now `baker canvas run --slug <slug>`.\\n\");\n await executeCanvasRun({\n slug: String(args.slug),\n forceRemote: args[\"force-remote\"] === true,\n fresh: args.fresh === true,\n regenerate: args.regenerate !== undefined ? String(args.regenerate) : undefined,\n concurrency: args.concurrency !== undefined ? String(args.concurrency) : undefined,\n });\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAQvB,IAAM,eAAe,cAAc;AAAA,EACxC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,MAAM,EAAE,MAAM,cAAc,UAAU,MAAM,aAAa,uCAAuC;AAAA,IAChG,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,IACA,OAAO,EAAE,MAAM,WAAW,SAAS,OAAO,aAAa,4DAA4D;AAAA,IACnH,YAAY,EAAE,MAAM,UAAU,aAAa,mDAAmD;AAAA,IAC9F,aAAa,EAAE,MAAM,UAAU,aAAa,4BAA4B;AAAA,EAC1E;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,YAAQ,OAAO,MAAM,qFAAqF;AAC1G,UAAM,iBAAiB;AAAA,MACrB,MAAM,OAAO,KAAK,IAAI;AAAA,MACtB,aAAa,KAAK,cAAc,MAAM;AAAA,MACtC,OAAO,KAAK,UAAU;AAAA,MACtB,YAAY,KAAK,eAAe,SAAY,OAAO,KAAK,UAAU,IAAI;AAAA,MACtE,aAAa,KAAK,gBAAgB,SAAY,OAAO,KAAK,WAAW,IAAI;AAAA,IAC3E,CAAC;AAAA,EACH;AACF,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/commands/canvas/rerun.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { executeCanvasRun } from \"./run.ts\";\n\n/**\n * Deprecated spelling of `baker canvas run --slug <slug>`, kept for one release so client\n * agents and docs that still say `rerun` keep working. Hidden from help; delete once the\n * scaffold docs and hooks have shipped the new spelling everywhere.\n */\nexport const rerunCommand = defineCommand({\n meta: {\n name: \"rerun\",\n hidden: true,\n description: \"Deprecated: use `baker canvas run --slug <slug>`, which does the same.\",\n },\n args: {\n slug: { type: \"positional\", required: true, description: \"Creative slug (src/creatives/<slug>)\" },\n \"force-remote\": {\n type: \"boolean\",\n default: false,\n description: \"Overwrite local files whose content differs from the recorded snapshot\",\n },\n fresh: { type: \"boolean\", default: false, description: \"Start a new run id instead of resuming an interrupted one\" },\n regenerate: { type: \"string\", description: \"Comma-separated node ids to force fresh this run\" },\n concurrency: { type: \"string\", description: \"Max nodes running at once\" },\n },\n async run({ args }) {\n process.stderr.write(\"[deprecated] `baker canvas rerun <slug>` is now `baker canvas run --slug <slug>`.\\n\");\n await executeCanvasRun({\n slug: String(args.slug),\n forceRemote: args[\"force-remote\"] === true,\n fresh: args.fresh === true,\n regenerate: args.regenerate !== undefined ? String(args.regenerate) : undefined,\n concurrency: args.concurrency !== undefined ? String(args.concurrency) : undefined,\n });\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAQvB,IAAM,eAAe,cAAc;AAAA,EACxC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,MAAM,EAAE,MAAM,cAAc,UAAU,MAAM,aAAa,uCAAuC;AAAA,IAChG,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,IACA,OAAO,EAAE,MAAM,WAAW,SAAS,OAAO,aAAa,4DAA4D;AAAA,IACnH,YAAY,EAAE,MAAM,UAAU,aAAa,mDAAmD;AAAA,IAC9F,aAAa,EAAE,MAAM,UAAU,aAAa,4BAA4B;AAAA,EAC1E;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,YAAQ,OAAO,MAAM,qFAAqF;AAC1G,UAAM,iBAAiB;AAAA,MACrB,MAAM,OAAO,KAAK,IAAI;AAAA,MACtB,aAAa,KAAK,cAAc,MAAM;AAAA,MACtC,OAAO,KAAK,UAAU;AAAA,MACtB,YAAY,KAAK,eAAe,SAAY,OAAO,KAAK,UAAU,IAAI;AAAA,MACtE,aAAa,KAAK,gBAAgB,SAAY,OAAO,KAAK,WAAW,IAAI;AAAA,IAC3E,CAAC;AAAA,EACH;AACF,CAAC;","names":[]}
@@ -39,17 +39,17 @@ Examples:
39
39
  Full guide: __tooling__/docs/tools/baker/research.md`
40
40
  },
41
41
  subCommands: {
42
- web: () => import("./web-IGIGVEKS.js").then((m) => m.webCommand),
43
- fetch: () => import("./fetch-W7NULDEO.js").then((m) => m.fetchCommand),
44
- "google-ads": () => import("./google-ads-OK6IG3UV.js").then((m) => m.googleAdsCommand),
45
- reddit: () => import("./reddit-GIP3ADMS.js").then((m) => m.redditCommand),
46
- customers: () => import("./customers-A36LOZOB.js").then((m) => m.customersCommand),
47
- advertisers: () => import("./advertisers-AE75CGVE.js").then((m) => m.advertisersCommand),
48
- autocomplete: () => import("./autocomplete-VS3XG3B7.js").then((m) => m.autocompleteCommand),
42
+ web: () => import("./web-BA2PGTWU.js").then((m) => m.webCommand),
43
+ fetch: () => import("./fetch-4BY6HYUM.js").then((m) => m.fetchCommand),
44
+ "google-ads": () => import("./google-ads-QGMQKZQD.js").then((m) => m.googleAdsCommand),
45
+ reddit: () => import("./reddit-NU2N3LZD.js").then((m) => m.redditCommand),
46
+ customers: () => import("./customers-XH2DMTFH.js").then((m) => m.customersCommand),
47
+ advertisers: () => import("./advertisers-2VQKAYKG.js").then((m) => m.advertisersCommand),
48
+ autocomplete: () => import("./autocomplete-J6DHU6MR.js").then((m) => m.autocompleteCommand),
49
49
  countries: () => import("./countries-ESAKTQAE.js").then((m) => m.countriesCommand),
50
50
  intent: () => import("./intent-E3UIVZBN.js").then((m) => m.intentCommand),
51
- "keyword-metrics": () => import("./keyword-metrics-PDY4ZXSP.js").then((m) => m.keywordMetricsCommand),
52
- "keywords-for-site": () => import("./keywords-for-site-GALSCV77.js").then((m) => m.keywordsForSiteCommand),
51
+ "keyword-metrics": () => import("./keyword-metrics-SF4CSNZ2.js").then((m) => m.keywordMetricsCommand),
52
+ "keywords-for-site": () => import("./keywords-for-site-WDAOPNKC.js").then((m) => m.keywordsForSiteCommand),
53
53
  "keyword-gap": () => import("./keyword-gap-BG6M665A.js").then((m) => m.keywordGapCommand),
54
54
  languages: () => import("./languages-JSGWCC7Z.js").then((m) => m.languagesCommand),
55
55
  lighthouse: () => import("./lighthouse-6ZC45E53.js").then((m) => m.lighthouseCommand),
@@ -59,4 +59,4 @@ Full guide: __tooling__/docs/tools/baker/research.md`
59
59
  export {
60
60
  researchCommand
61
61
  };
62
- //# sourceMappingURL=research-2BLEISBG.js.map
62
+ //# sourceMappingURL=research-FMM6AWZC.js.map
@@ -8,10 +8,11 @@ import {
8
8
  } from "./chunk-PWGWMIIJ.js";
9
9
  import {
10
10
  AVATAR_HANDLE_PATTERN
11
- } from "./chunk-XF4JUKVF.js";
11
+ } from "./chunk-7EPXVICM.js";
12
12
  import "./chunk-GXDLWBOY.js";
13
13
  import "./chunk-TEINLN64.js";
14
14
  import "./chunk-ZJWUBJYQ.js";
15
+ import "./chunk-HR6IWNKE.js";
15
16
  import "./chunk-NE4F3FHN.js";
16
17
  import "./chunk-XBOK23HI.js";
17
18
  import "./chunk-IFWP3ZDO.js";
@@ -259,4 +260,4 @@ function callOf(text, create) {
259
260
  export {
260
261
  researchCommand
261
262
  };
262
- //# sourceMappingURL=research-YOGE7GT2.js.map
263
+ //# sourceMappingURL=research-GEOCUBXB.js.map
@@ -1 +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":"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","names":[]}
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":"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","names":[]}
@@ -3,10 +3,11 @@ import {
3
3
  } from "./chunk-TD2P4HBP.js";
4
4
  import {
5
5
  mediaSourcesResetRequestSchema
6
- } from "./chunk-XF4JUKVF.js";
6
+ } from "./chunk-7EPXVICM.js";
7
7
  import "./chunk-GXDLWBOY.js";
8
8
  import "./chunk-TEINLN64.js";
9
9
  import "./chunk-ZJWUBJYQ.js";
10
+ import "./chunk-HR6IWNKE.js";
10
11
  import "./chunk-NE4F3FHN.js";
11
12
  import {
12
13
  apiPost
@@ -51,4 +52,4 @@ var resetCommand = defineCommand({
51
52
  export {
52
53
  resetCommand
53
54
  };
54
- //# sourceMappingURL=reset-C4UHQ3EU.js.map
55
+ //# sourceMappingURL=reset-REXJ6AUK.js.map
@@ -1 +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":[]}
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":[]}
@@ -4,10 +4,11 @@ import {
4
4
  } from "./chunk-6G5K6ZC6.js";
5
5
  import {
6
6
  testimonialSourcesResetRequestSchema
7
- } from "./chunk-XF4JUKVF.js";
7
+ } from "./chunk-7EPXVICM.js";
8
8
  import "./chunk-GXDLWBOY.js";
9
9
  import "./chunk-TEINLN64.js";
10
10
  import "./chunk-ZJWUBJYQ.js";
11
+ import "./chunk-HR6IWNKE.js";
11
12
  import "./chunk-NE4F3FHN.js";
12
13
  import {
13
14
  apiPost
@@ -51,4 +52,4 @@ var resetCommand = defineCommand({
51
52
  export {
52
53
  resetCommand
53
54
  };
54
- //# sourceMappingURL=reset-OLVB6AE6.js.map
55
+ //# sourceMappingURL=reset-Y72IVESB.js.map
@@ -1 +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":[]}
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":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  csvOrJson,
3
3
  handleLinkedinError
4
- } from "./chunk-CSYSX4D2.js";
4
+ } from "./chunk-N4LAYIIN.js";
5
5
  import {
6
6
  writeAdsJson,
7
7
  writeAdsOutput,
@@ -10,10 +10,11 @@ import {
10
10
  import {
11
11
  NO_CACHE_ARG
12
12
  } from "./chunk-X7ZODEXJ.js";
13
- import "./chunk-XF4JUKVF.js";
13
+ import "./chunk-7EPXVICM.js";
14
14
  import "./chunk-GXDLWBOY.js";
15
15
  import "./chunk-TEINLN64.js";
16
16
  import "./chunk-ZJWUBJYQ.js";
17
+ import "./chunk-HR6IWNKE.js";
17
18
  import "./chunk-NE4F3FHN.js";
18
19
  import {
19
20
  apiPost
@@ -118,4 +119,4 @@ doesn't know land in errors; the rest still resolve. Cached 7 days.`
118
119
  export {
119
120
  resolveCommand
120
121
  };
121
- //# sourceMappingURL=resolve-XYH2GDAE.js.map
122
+ //# sourceMappingURL=resolve-OGX7C4TV.js.map
@@ -1 +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"]}
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"]}
@@ -1,9 +1,10 @@
1
1
  import {
2
2
  libraryAssetIdRequestSchema
3
- } from "./chunk-XF4JUKVF.js";
3
+ } from "./chunk-7EPXVICM.js";
4
4
  import "./chunk-GXDLWBOY.js";
5
5
  import "./chunk-TEINLN64.js";
6
6
  import "./chunk-ZJWUBJYQ.js";
7
+ import "./chunk-HR6IWNKE.js";
7
8
  import "./chunk-NE4F3FHN.js";
8
9
  import {
9
10
  ApiError,
@@ -57,4 +58,4 @@ var retryCommand = defineCommand({
57
58
  export {
58
59
  retryCommand
59
60
  };
60
- //# sourceMappingURL=retry-7EELDEQP.js.map
61
+ //# sourceMappingURL=retry-CD6JAQ3F.js.map
@@ -1 +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":[]}
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":[]}
@@ -1,9 +1,10 @@
1
1
  import {
2
2
  libraryAssetIdRequestSchema
3
- } from "./chunk-XF4JUKVF.js";
3
+ } from "./chunk-7EPXVICM.js";
4
4
  import "./chunk-GXDLWBOY.js";
5
5
  import "./chunk-TEINLN64.js";
6
6
  import "./chunk-ZJWUBJYQ.js";
7
+ import "./chunk-HR6IWNKE.js";
7
8
  import "./chunk-NE4F3FHN.js";
8
9
  import {
9
10
  ApiError,
@@ -59,4 +60,4 @@ var retryCommand = defineCommand({
59
60
  export {
60
61
  retryCommand
61
62
  };
62
- //# sourceMappingURL=retry-726GKI6V.js.map
63
+ //# sourceMappingURL=retry-TCUBBFR5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/videos/retry.ts"],"sourcesContent":["import { libraryAssetIdRequestSchema, type VideosRetryResponse } 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: \"videos.retry\",\n description:\n \"Process a library video that failed (status 'error') again. Works when the upload itself finished; when it did not, says so and the video has to be uploaded again.\",\n args: { id: { type: \"string\", description: \"Video ID with status 'error'\", required: true } },\n});\n\nexport const retryCommand = defineCommand({\n meta: {\n name: \"retry\",\n description:\n \"Process a failed library video again. If the upload never finished, it reports that and the video has to be uploaded again.\\n\\nExample: baker videos retry j571abc123def\",\n },\n args: { id: { type: \"positional\", description: \"Video 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<VideosRetryResponse>(\"/api/videos/retry\", parsed.data);\n writeJson({\n ok: true,\n data,\n hints: [\n data.status === \"processing\"\n ? `Check it with \\`baker videos get ${data.id}\\` in a few minutes; it is ready when status is 'ready'.`\n : \"This video cannot be processed as it is — tell the user why (`message`) and, if the upload was lost, ask for the file again. Carry on without it.\",\n ],\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;AAAA,UACL,KAAK,WAAW,eACZ,oCAAoC,KAAK,EAAE,6DAC3C;AAAA,QACN;AAAA,MACF,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":[]}
1
+ {"version":3,"sources":["../src/commands/videos/retry.ts"],"sourcesContent":["import { libraryAssetIdRequestSchema, type VideosRetryResponse } 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: \"videos.retry\",\n description:\n \"Process a library video that failed (status 'error') again. Works when the upload itself finished; when it did not, says so and the video has to be uploaded again.\",\n args: { id: { type: \"string\", description: \"Video ID with status 'error'\", required: true } },\n});\n\nexport const retryCommand = defineCommand({\n meta: {\n name: \"retry\",\n description:\n \"Process a failed library video again. If the upload never finished, it reports that and the video has to be uploaded again.\\n\\nExample: baker videos retry j571abc123def\",\n },\n args: { id: { type: \"positional\", description: \"Video 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<VideosRetryResponse>(\"/api/videos/retry\", parsed.data);\n writeJson({\n ok: true,\n data,\n hints: [\n data.status === \"processing\"\n ? `Check it with \\`baker videos get ${data.id}\\` in a few minutes; it is ready when status is 'ready'.`\n : \"This video cannot be processed as it is — tell the user why (`message`) and, if the upload was lost, ask for the file again. Carry on without it.\",\n ],\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;AAAA,UACL,KAAK,WAAW,eACZ,oCAAoC,KAAK,EAAE,6DAC3C;AAAA,QACN;AAAA,MACF,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":[]}
@@ -2,11 +2,12 @@ import {
2
2
  failApi,
3
3
  failValidation,
4
4
  isTempScheduledAgentId
5
- } from "./chunk-IR6D7K4H.js";
6
- import "./chunk-XF4JUKVF.js";
5
+ } from "./chunk-I3ZR655O.js";
6
+ import "./chunk-7EPXVICM.js";
7
7
  import "./chunk-GXDLWBOY.js";
8
8
  import "./chunk-TEINLN64.js";
9
9
  import "./chunk-ZJWUBJYQ.js";
10
+ import "./chunk-HR6IWNKE.js";
10
11
  import "./chunk-NE4F3FHN.js";
11
12
  import {
12
13
  apiPost,
@@ -62,4 +63,4 @@ var runCommand = defineCommand({
62
63
  export {
63
64
  runCommand
64
65
  };
65
- //# sourceMappingURL=run-P4KR2MXC.js.map
66
+ //# sourceMappingURL=run-A5ZDXTOI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/scheduled-agents/run.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { apiPost, validateConvexId } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi, failValidation, isTempScheduledAgentId } from \"./shared.ts\";\n\nregisterSchema({\n command: \"scheduled-agents.run\",\n description:\n \"Run a published scheduled agent now, whatever its trigger says. Opens a Session immediately and returns its chatId. Does not need BAKER_CHAT_ID, and refuses a temp_agent_* id — a staged item has to be published before it can run.\",\n args: {\n id: { type: \"string\", description: \"Published scheduled agent ID\", required: true },\n },\n});\n\nexport const runCommand = defineCommand({\n meta: {\n name: \"run\",\n description: \"Run a published scheduled agent now. Example: baker scheduled-agents run <id>\",\n },\n args: {\n id: { type: \"positional\", description: \"Published scheduled agent ID\", required: false },\n \"scheduled-agent-id\": {\n type: \"string\",\n description: \"Scheduled agent ID (alternative to positional)\",\n required: false,\n },\n },\n run: async ({ args }) => {\n try {\n const id = (args.id as string | undefined) || (args[\"scheduled-agent-id\"] as string | undefined);\n if (!id) {\n failValidation(\"Scheduled agent ID is required.\");\n }\n if (isTempScheduledAgentId(id)) {\n failValidation(\"run needs a published scheduled agent ID, not temp_agent_*. Publish this chat first.\");\n }\n validateConvexId(id);\n const response = await apiPost<{ ok: true; data: { chatId: string } }>(\"/api/scheduled-agents/run\", { id });\n writeJson(response);\n } catch (err) {\n failApi(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAM9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,IAAI,EAAE,MAAM,UAAU,aAAa,gCAAgC,UAAU,KAAK;AAAA,EACpF;AACF,CAAC;AAEM,IAAM,aAAa,cAAc;AAAA,EACtC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,IAAI,EAAE,MAAM,cAAc,aAAa,gCAAgC,UAAU,MAAM;AAAA,IACvF,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,KAAM,KAAK,MAA8B,KAAK,oBAAoB;AACxE,UAAI,CAAC,IAAI;AACP,uBAAe,iCAAiC;AAAA,MAClD;AACA,UAAI,uBAAuB,EAAE,GAAG;AAC9B,uBAAe,sFAAsF;AAAA,MACvG;AACA,uBAAiB,EAAE;AACnB,YAAM,WAAW,MAAM,QAAgD,6BAA6B,EAAE,GAAG,CAAC;AAC1G,gBAAU,QAAQ;AAAA,IACpB,SAAS,KAAK;AACZ,cAAQ,GAAG;AAAA,IACb;AAAA,EACF;AACF,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/commands/scheduled-agents/run.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { apiPost, validateConvexId } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi, failValidation, isTempScheduledAgentId } from \"./shared.ts\";\n\nregisterSchema({\n command: \"scheduled-agents.run\",\n description:\n \"Run a published scheduled agent now, whatever its trigger says. Opens a Session immediately and returns its chatId. Does not need BAKER_CHAT_ID, and refuses a temp_agent_* id — a staged item has to be published before it can run.\",\n args: {\n id: { type: \"string\", description: \"Published scheduled agent ID\", required: true },\n },\n});\n\nexport const runCommand = defineCommand({\n meta: {\n name: \"run\",\n description: \"Run a published scheduled agent now. Example: baker scheduled-agents run <id>\",\n },\n args: {\n id: { type: \"positional\", description: \"Published scheduled agent ID\", required: false },\n \"scheduled-agent-id\": {\n type: \"string\",\n description: \"Scheduled agent ID (alternative to positional)\",\n required: false,\n },\n },\n run: async ({ args }) => {\n try {\n const id = (args.id as string | undefined) || (args[\"scheduled-agent-id\"] as string | undefined);\n if (!id) {\n failValidation(\"Scheduled agent ID is required.\");\n }\n if (isTempScheduledAgentId(id)) {\n failValidation(\"run needs a published scheduled agent ID, not temp_agent_*. Publish this chat first.\");\n }\n validateConvexId(id);\n const response = await apiPost<{ ok: true; data: { chatId: string } }>(\"/api/scheduled-agents/run\", { id });\n writeJson(response);\n } catch (err) {\n failApi(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAM9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,IAAI,EAAE,MAAM,UAAU,aAAa,gCAAgC,UAAU,KAAK;AAAA,EACpF;AACF,CAAC;AAEM,IAAM,aAAa,cAAc;AAAA,EACtC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,IAAI,EAAE,MAAM,cAAc,aAAa,gCAAgC,UAAU,MAAM;AAAA,IACvF,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,QAAI;AACF,YAAM,KAAM,KAAK,MAA8B,KAAK,oBAAoB;AACxE,UAAI,CAAC,IAAI;AACP,uBAAe,iCAAiC;AAAA,MAClD;AACA,UAAI,uBAAuB,EAAE,GAAG;AAC9B,uBAAe,sFAAsF;AAAA,MACvG;AACA,uBAAiB,EAAE;AACnB,YAAM,WAAW,MAAM,QAAgD,6BAA6B,EAAE,GAAG,CAAC;AAC1G,gBAAU,QAAQ;AAAA,IACpB,SAAS,KAAK;AACZ,cAAQ,GAAG;AAAA,IACb;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -3,35 +3,35 @@ import {
3
3
  executeCanvasRun,
4
4
  runCommand,
5
5
  stopBeforeKinds
6
- } from "./chunk-B5SCU7MJ.js";
7
- import "./chunk-6N6WKAJM.js";
8
- import "./chunk-YK32GUBN.js";
6
+ } from "./chunk-MACCF4JZ.js";
7
+ import "./chunk-CWYAELVG.js";
8
+ import "./chunk-KMKEYI37.js";
9
9
  import "./chunk-WN4KX7GE.js";
10
10
  import "./chunk-PWGWMIIJ.js";
11
- import "./chunk-W3ZHJJVT.js";
11
+ import "./chunk-KS2QY6MK.js";
12
12
  import "./chunk-IVIJJXXT.js";
13
13
  import "./chunk-WS2GMOSG.js";
14
- import "./chunk-Q6ULQMWG.js";
15
14
  import "./chunk-KKJ4KJCW.js";
16
- import "./chunk-4SG4RW2P.js";
17
- import "./chunk-CJCVIEJ5.js";
18
- import "./chunk-M242LHLX.js";
19
- import "./chunk-T2PC5AVH.js";
15
+ import "./chunk-Q6ULQMWG.js";
20
16
  import "./chunk-3ACMDRSE.js";
21
- import "./chunk-A4LOJ2VD.js";
17
+ import "./chunk-2VPBIT65.js";
18
+ import "./chunk-6NY2GPR4.js";
19
+ import "./chunk-WGUQHAJY.js";
20
+ import "./chunk-7CTMH5AK.js";
21
+ import "./chunk-ASI4P6X2.js";
22
22
  import "./chunk-NJXNU2G6.js";
23
23
  import "./chunk-4QEY2L6U.js";
24
- import "./chunk-QRP3PXWN.js";
25
- import "./chunk-3IBYKLXR.js";
24
+ import "./chunk-VL43TNIP.js";
25
+ import "./chunk-ZDMTXQ2Q.js";
26
26
  import "./chunk-NFSLRRIE.js";
27
27
  import "./chunk-F2S5BLPE.js";
28
28
  import "./chunk-WTOYCUKH.js";
29
29
  import "./chunk-DZSIUEGH.js";
30
- import "./chunk-WNRV4QH7.js";
31
- import "./chunk-GKZ2WU75.js";
32
- import "./chunk-W3B4BHQU.js";
30
+ import "./chunk-LYQJ4PZW.js";
31
+ import "./chunk-FPOGPFAG.js";
33
32
  import "./chunk-NCWCZY5P.js";
34
33
  import "./chunk-DGCUPJZD.js";
34
+ import "./chunk-W3B4BHQU.js";
35
35
  import "./chunk-PZXCWSKV.js";
36
36
  import "./chunk-CAMX6OHF.js";
37
37
  import "./chunk-RX6F3GEA.js";
@@ -41,10 +41,11 @@ import "./chunk-VAJBWA2U.js";
41
41
  import "./chunk-HRYOZUSK.js";
42
42
  import "./chunk-VVZBBKRC.js";
43
43
  import "./chunk-YBMVHGY3.js";
44
- import "./chunk-XF4JUKVF.js";
44
+ import "./chunk-7EPXVICM.js";
45
45
  import "./chunk-GXDLWBOY.js";
46
46
  import "./chunk-TEINLN64.js";
47
47
  import "./chunk-ZJWUBJYQ.js";
48
+ import "./chunk-HR6IWNKE.js";
48
49
  import "./chunk-NE4F3FHN.js";
49
50
  import "./chunk-XBOK23HI.js";
50
51
  import "./chunk-IFWP3ZDO.js";
@@ -57,4 +58,4 @@ export {
57
58
  runCommand,
58
59
  stopBeforeKinds
59
60
  };
60
- //# sourceMappingURL=run-MODGUNGT.js.map
61
+ //# sourceMappingURL=run-EUO34T2J.js.map