@koda-sl/baker-cli 0.447.0-dev.f5788a631 → 0.448.0-dev.0d67e41b9

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 (500) hide show
  1. package/README.md +12 -8
  2. package/dist/{account-PCEZQUK7.js → account-DTHGTZCN.js} +6 -6
  3. package/dist/{accounts-5AXLYU7P.js → accounts-5RLG6BBA.js} +5 -5
  4. package/dist/{accounts-OSXDZZLY.js → accounts-6LSBBXKA.js} +7 -7
  5. package/dist/{actions-HM4VVTGW.js → actions-WH5C6Q7I.js} +18 -18
  6. package/dist/{add-4J2EF54O.js → add-BZ4QPLK4.js} +4 -4
  7. package/dist/{add-VZAY57M4.js → add-TRSKOIO6.js} +32 -7
  8. package/dist/add-TRSKOIO6.js.map +1 -0
  9. package/dist/{ads-NUME2UXH.js → ads-6UG66KA5.js} +4 -4
  10. package/dist/{advertisers-WSNHNCBQ.js → advertisers-OABQDELT.js} +12 -8
  11. package/dist/advertisers-OABQDELT.js.map +1 -0
  12. package/dist/{analytics-QTR2ZITZ.js → analytics-3YAWQF5K.js} +8 -8
  13. package/dist/{analytics-PHU7H5VY.js → analytics-BCZGSSXP.js} +5 -5
  14. package/dist/{animate-3Z7HXOLE.js → animate-AIZ3GS4J.js} +4 -4
  15. package/dist/{assign-IIAVNATI.js → assign-O6QNAZD5.js} +5 -5
  16. package/dist/{audience-size-2L7XMYJL.js → audience-size-CXPWERR3.js} +5 -5
  17. package/dist/{audit-ZCUFJLUG.js → audit-MNOQK3U4.js} +5 -5
  18. package/dist/{autocomplete-6PYFCOMX.js → autocomplete-TRCMPNW4.js} +10 -6
  19. package/dist/{autocomplete-6PYFCOMX.js.map → autocomplete-TRCMPNW4.js.map} +1 -1
  20. package/dist/{avatars-OEK3FYKK.js → avatars-P3WX5TQP.js} +4 -4
  21. package/dist/{bid-pricing-FDW3IY6G.js → bid-pricing-6XXSM7C2.js} +5 -5
  22. package/dist/{brand-OXYFSNA5.js → brand-LXU7YNCF.js} +2 -2
  23. package/dist/{brief-TBSXPEXI.js → brief-Y4F37TH5.js} +21 -22
  24. package/dist/{brief-TBSXPEXI.js.map → brief-Y4F37TH5.js.map} +1 -1
  25. package/dist/{campaign-groups-5GCFQT2W.js → campaign-groups-CEAM3WRO.js} +10 -10
  26. package/dist/{campaign-writes-3SJQSCUK.js → campaign-writes-D6BJAULL.js} +5 -5
  27. package/dist/{campaigns-SYEOFKFV.js → campaigns-CXOKBCPS.js} +13 -13
  28. package/dist/{campaigns-7QDDWZ76.js → campaigns-V3SWBM4E.js} +5 -5
  29. package/dist/{canvas-B6DPRQGN.js → canvas-VH3Q26TK.js} +14 -14
  30. package/dist/{capabilities-GVHPHH2G.js → capabilities-NZPSSS6T.js} +5 -5
  31. package/dist/{catalog-TNNG66MH.js → catalog-GWN3WT7J.js} +6 -7
  32. package/dist/{catalog-TNNG66MH.js.map → catalog-GWN3WT7J.js.map} +1 -1
  33. package/dist/{changes-6QBJMGJC.js → changes-TP7ZZHB3.js} +4 -4
  34. package/dist/{chats-54CWM7DL.js → chats-GN3PBFX4.js} +5 -5
  35. package/dist/{chunk-SKT3SAHG.js → chunk-2BKVVCCV.js} +2 -2
  36. package/dist/{chunk-YUPRCOEN.js → chunk-2GTYAHDN.js} +2 -2
  37. package/dist/{chunk-E5IFTZJ3.js → chunk-3OFVFHKT.js} +2 -2
  38. package/dist/{chunk-5EEDEVOR.js → chunk-4QEY2L6U.js} +2 -2
  39. package/dist/{chunk-7JUUKYKG.js → chunk-4Z7DEN75.js} +2 -2
  40. package/dist/{chunk-RCQJHKK5.js → chunk-6Y7SIP2D.js} +33 -24
  41. package/dist/chunk-6Y7SIP2D.js.map +1 -0
  42. package/dist/{chunk-GTK46DE3.js → chunk-7ED5TAFP.js} +3 -3
  43. package/dist/{chunk-654U6NU6.js → chunk-BNCW67EM.js} +2 -2
  44. package/dist/{chunk-OBDAYP2P.js → chunk-CAMX6OHF.js} +30 -3
  45. package/dist/chunk-CAMX6OHF.js.map +1 -0
  46. package/dist/{chunk-J5IU4OX2.js → chunk-CFHIW5QZ.js} +4 -4
  47. package/dist/{chunk-V2X3KK52.js → chunk-D6744YSX.js} +26 -6
  48. package/dist/chunk-D6744YSX.js.map +1 -0
  49. package/dist/{chunk-FGH4Z5K5.js → chunk-DQMZXK27.js} +2 -2
  50. package/dist/{chunk-XV6XCFF7.js → chunk-E4NCRGY3.js} +2 -2
  51. package/dist/{chunk-IH4UQ2OK.js → chunk-EAEOPERX.js} +18 -19
  52. package/dist/chunk-EAEOPERX.js.map +1 -0
  53. package/dist/{chunk-7FVWIZHM.js → chunk-ESB5DLIP.js} +2 -2
  54. package/dist/{chunk-NK2UFFVH.js → chunk-FVF5SXTZ.js} +2 -2
  55. package/dist/{chunk-KWAOTV7F.js → chunk-GX6VAHY7.js} +2 -2
  56. package/dist/{chunk-6TCDQSM7.js → chunk-GYU7BWEN.js} +3 -3
  57. package/dist/{chunk-HYCIBVDW.js → chunk-HZUDRKGR.js} +2 -2
  58. package/dist/{chunk-FYQPB2SS.js → chunk-IGQZ5U3C.js} +6 -6
  59. package/dist/{chunk-OAQPHP6V.js → chunk-IYU4X5A7.js} +3 -3
  60. package/dist/{chunk-HYUUH4BE.js → chunk-JVLAV62J.js} +27 -29
  61. package/dist/{chunk-HYUUH4BE.js.map → chunk-JVLAV62J.js.map} +1 -1
  62. package/dist/{chunk-6HJAHLLA.js → chunk-K6WVV74H.js} +96 -4
  63. package/dist/chunk-K6WVV74H.js.map +1 -0
  64. package/dist/{chunk-EPMN4BK7.js → chunk-L5J3S6B6.js} +47 -4
  65. package/dist/chunk-L5J3S6B6.js.map +1 -0
  66. package/dist/{chunk-2SCPDSFN.js → chunk-LIQ4SQ2T.js} +2 -2
  67. package/dist/{chunk-KMEMA7AZ.js → chunk-LLOOWRBB.js} +2 -2
  68. package/dist/{chunk-NSA6HRG6.js → chunk-ND5MJ3AA.js} +2 -2
  69. package/dist/{chunk-XML7AJM3.js → chunk-NE4F3FHN.js} +1 -1
  70. package/dist/chunk-NE4F3FHN.js.map +1 -0
  71. package/dist/{chunk-PIWMNKWI.js → chunk-NECTN6N7.js} +45 -3
  72. package/dist/{chunk-PIWMNKWI.js.map → chunk-NECTN6N7.js.map} +1 -1
  73. package/dist/{chunk-ACFWVULZ.js → chunk-NIJSXVFT.js} +3 -3
  74. package/dist/{chunk-H2QNBOPS.js → chunk-NJXNU2G6.js} +3 -3
  75. package/dist/{chunk-XDNEG2H6.js → chunk-OKJWBB2K.js} +11 -11
  76. package/dist/{chunk-XDNEG2H6.js.map → chunk-OKJWBB2K.js.map} +1 -1
  77. package/dist/{chunk-AO5UQQLJ.js → chunk-ORO7VAXB.js} +2 -2
  78. package/dist/{chunk-V5WSJP5A.js → chunk-OUTF5JFG.js} +3 -3
  79. package/dist/{chunk-XG3XCHN6.js → chunk-P5T7OZKV.js} +2 -2
  80. package/dist/{chunk-DE6ANJLU.js → chunk-PTCIM35Y.js} +2 -2
  81. package/dist/{chunk-VJZHVOA4.js → chunk-PVUZWHNQ.js} +7 -7
  82. package/dist/{chunk-CLMM6P6B.js → chunk-PZXCWSKV.js} +85 -6
  83. package/dist/chunk-PZXCWSKV.js.map +1 -0
  84. package/dist/{chunk-CKU4WYTF.js → chunk-QVJDPOEB.js} +2 -2
  85. package/dist/{chunk-KV5BCSUR.js → chunk-R5RIH3N5.js} +2 -2
  86. package/dist/{chunk-RB5DB3WN.js → chunk-RB5CVIK6.js} +2 -2
  87. package/dist/{chunk-EAHP7L2R.js → chunk-RZT263H7.js} +2 -2
  88. package/dist/{chunk-WYCVJIHD.js → chunk-TEINLN64.js} +13 -2
  89. package/dist/{chunk-WYCVJIHD.js.map → chunk-TEINLN64.js.map} +1 -1
  90. package/dist/{chunk-HDWKLFF5.js → chunk-TUB34FVS.js} +4 -4
  91. package/dist/{chunk-4SJDDGPV.js → chunk-TX7LZWZD.js} +3 -3
  92. package/dist/{chunk-6YYEBLYI.js → chunk-V7CTQOHG.js} +4 -4
  93. package/dist/{chunk-IKYNOT57.js → chunk-VNUNE5AB.js} +36 -7
  94. package/dist/chunk-VNUNE5AB.js.map +1 -0
  95. package/dist/{chunk-TBEUMOEL.js → chunk-WNFIJAUO.js} +5 -2
  96. package/dist/chunk-WNFIJAUO.js.map +1 -0
  97. package/dist/{chunk-EVYXTT7V.js → chunk-XCM6XWOB.js} +2 -2
  98. package/dist/{chunk-ZNBDKK4Y.js → chunk-XFGAUP5B.js} +2 -2
  99. package/dist/{chunk-4SNOWJV7.js → chunk-XQIKDODN.js} +2 -2
  100. package/dist/{chunk-WRIC2RPQ.js → chunk-XTRAI6CL.js} +2 -2
  101. package/dist/{chunk-3X3446TG.js → chunk-XVOI4BIS.js} +2 -2
  102. package/dist/{chunk-NTPXZU3V.js → chunk-ZDNOCKKY.js} +12 -3
  103. package/dist/{chunk-NTPXZU3V.js.map → chunk-ZDNOCKKY.js.map} +1 -1
  104. package/dist/{chunk-F46KAIBS.js → chunk-ZGTCZ6H4.js} +3 -3
  105. package/dist/{chunk-5VC6IK7B.js → chunk-ZJLETAOO.js} +106 -12
  106. package/dist/chunk-ZJLETAOO.js.map +1 -0
  107. package/dist/{claim-CIASHKMC.js → claim-25JJM4AG.js} +5 -5
  108. package/dist/cli.js +29 -29
  109. package/dist/{companies-ECVMO24S.js → companies-VR5M5PAN.js} +5 -5
  110. package/dist/{complete-32CPBFIG.js → complete-DRMOTC2W.js} +5 -5
  111. package/dist/{connect-OJSOM6PY.js → connect-WUDJR2GH.js} +12 -8
  112. package/dist/{conversation-7FHN5ESN.js → conversation-K6LYF2ZP.js} +5 -5
  113. package/dist/{conversion-upload-command-BBUXLFT3.js → conversion-upload-command-AUF3LNTH.js} +4 -4
  114. package/dist/{conversions-7YJDNZ7Y.js → conversions-GF32XOWY.js} +9 -9
  115. package/dist/{countries-FYHM3IMJ.js → countries-ESAKTQAE.js} +2 -2
  116. package/dist/{create-OYT76OMJ.js → create-2D7AIFJI.js} +5 -5
  117. package/dist/{create-ZGRL7YCV.js → create-4TFAD6HY.js} +5 -5
  118. package/dist/{create-FE5QLW7V.js → create-IXYXYLLE.js} +4 -4
  119. package/dist/{create-2TBDXHAM.js → create-PKJVFJMO.js} +5 -5
  120. package/dist/{creatives-IUB57I3T.js → creatives-OHCFHRZ5.js} +10 -10
  121. package/dist/{creatives-5MUTX4DQ.js → creatives-QLSZFOMB.js} +10 -10
  122. package/dist/{credentials-AETHKP5T.js → credentials-WSLR5VU4.js} +5 -5
  123. package/dist/{critique-T7HJ42D4.js → critique-5PCQ2CJH.js} +5 -5
  124. package/dist/{critique-C53EJDPA.js → critique-WDO6SKK2.js} +13 -14
  125. package/dist/{critique-C53EJDPA.js.map → critique-WDO6SKK2.js.map} +1 -1
  126. package/dist/{crm-KH6XX2TT.js → crm-HNUOHXAN.js} +6 -6
  127. package/dist/{crm-JP4UOPMN.js → crm-SNIUADNK.js} +6 -6
  128. package/dist/{currency-DJDVIR3C.js → currency-XCGKQ7FE.js} +4 -4
  129. package/dist/{customers-7I7UY5PS.js → customers-72L2KZHO.js} +9 -9
  130. package/dist/{delete-6IOUDEWY.js → delete-EVGM5B36.js} +5 -5
  131. package/dist/{delete-ODFKNHAI.js → delete-PA2GY5EC.js} +5 -5
  132. package/dist/{delete-RAETUVO2.js → delete-YNNFTFYV.js} +4 -4
  133. package/dist/{demographics-2FTDKPBD.js → demographics-SYS2E7QC.js} +5 -5
  134. package/dist/{discard-ZX5TLFYH.js → discard-JS2YJUIM.js} +5 -5
  135. package/dist/{discover-M3ZKKFEL.js → discover-BJPZNXUQ.js} +4 -4
  136. package/dist/{domain-TH7KIC2T.js → domain-XKKH5NCL.js} +5 -5
  137. package/dist/{draft-YHUIFDDR.js → draft-4AO4YH3V.js} +6 -6
  138. package/dist/{draft-SH25PKST.js → draft-5YAYCEYY.js} +4 -4
  139. package/dist/{draft-S2FSQOJN.js → draft-GCUXNPVH.js} +5 -5
  140. package/dist/{draft-CRE2Y24G.js → draft-WWWKSEEE.js} +5 -5
  141. package/dist/engine/index.js +5 -6
  142. package/dist/{facets-6B2U4BSM.js → facets-NVBX5WDT.js} +5 -5
  143. package/dist/{feedback-QGSAJJVC.js → feedback-OGAPR45R.js} +3 -3
  144. package/dist/feedback-OGAPR45R.js.map +1 -0
  145. package/dist/{feedback-record-NUAJ6UBL.js → feedback-record-GVXGDY5Y.js} +15 -16
  146. package/dist/feedback-record-GVXGDY5Y.js.map +1 -0
  147. package/dist/{fetch-UTTJAOLC.js → fetch-U4TJIHZU.js} +8 -3
  148. package/dist/{fetch-UTTJAOLC.js.map → fetch-U4TJIHZU.js.map} +1 -1
  149. package/dist/{fit-FJ5CLQS4.js → fit-BOQL6OK3.js} +7 -5
  150. package/dist/{flows-OGGSWWGT.js → flows-XVZJ6GOI.js} +39 -19
  151. package/dist/flows-XVZJ6GOI.js.map +1 -0
  152. package/dist/{follow-DUIEGDVK.js → follow-FN7LV3WV.js} +2 -2
  153. package/dist/{follow-competitors-IT5ZVJPE.js → follow-competitors-MKXFHLXB.js} +2 -2
  154. package/dist/{fonts-GCJRLEGD.js → fonts-64T6KRZS.js} +7 -7
  155. package/dist/{forecast-2AGTFMXH.js → forecast-YIIGTHRM.js} +5 -5
  156. package/dist/{funnel-7U55LNJ4.js → funnel-XHDCXXQ5.js} +6 -6
  157. package/dist/{generate-DMQUS665.js → generate-3XYYITU6.js} +3 -3
  158. package/dist/{get-N7FR6NFX.js → get-6RQFDAIN.js} +8 -6
  159. package/dist/get-6RQFDAIN.js.map +1 -0
  160. package/dist/{get-IRJIHOQK.js → get-XJ3AZX35.js} +5 -5
  161. package/dist/{google-NYRI2NDZ.js → google-M7KEXVK5.js} +18 -18
  162. package/dist/{google-NYRI2NDZ.js.map → google-M7KEXVK5.js.map} +1 -1
  163. package/dist/google-ads-7XAGJVNJ.js +195 -0
  164. package/dist/google-ads-7XAGJVNJ.js.map +1 -0
  165. package/dist/{history-PSNJAUTW.js → history-EUG4LE44.js} +5 -5
  166. package/dist/{hubspot-2NHL47R2.js → hubspot-UULVEYVO.js} +9 -9
  167. package/dist/{ideas-22MRXKT7.js → ideas-7LXYXS5G.js} +6 -6
  168. package/dist/{images-LXFWEON7.js → images-3SOTFMJV.js} +4 -4
  169. package/dist/{ingest-W7VEDEYD.js → ingest-HQUXSBWA.js} +4 -4
  170. package/dist/{ingest-ZN3DEZHY.js → ingest-HYSZC3EX.js} +5 -5
  171. package/dist/{inspect-3LBIHMMP.js → inspect-HZQ7GSVM.js} +5 -5
  172. package/dist/{inspiration-I4MMKAWA.js → inspiration-P265QJ2H.js} +1 -1
  173. package/dist/{intent-ICKFJRT2.js → intent-E3UIVZBN.js} +5 -5
  174. package/dist/{keyword-gap-NGPH32FN.js → keyword-gap-BG6M665A.js} +5 -5
  175. package/dist/{keyword-metrics-PZXFB4NG.js → keyword-metrics-YG3K7MQZ.js} +8 -8
  176. package/dist/{keywords-for-site-RH47P4GJ.js → keywords-for-site-V4K744TF.js} +10 -6
  177. package/dist/{keywords-for-site-RH47P4GJ.js.map → keywords-for-site-V4K744TF.js.map} +1 -1
  178. package/dist/{landing-D7QS42GK.js → landing-3SSX6WK6.js} +3 -3
  179. package/dist/{languages-JDYL2N5F.js → languages-HORKPDNH.js} +4 -4
  180. package/dist/{languages-JMVNOHMG.js → languages-JSGWCC7Z.js} +2 -2
  181. package/dist/{leads-E22XFSX2.js → leads-FAHQ6KJX.js} +5 -5
  182. package/dist/{learn-Y4KIZNRF.js → learn-XNHGNQE5.js} +13 -14
  183. package/dist/{learn-Y4KIZNRF.js.map → learn-XNHGNQE5.js.map} +1 -1
  184. package/dist/{lighthouse-NQBUCHTW.js → lighthouse-6ZC45E53.js} +2 -2
  185. package/dist/{line-item-writes-KA5PVKFO.js → line-item-writes-A6BPZQPL.js} +5 -5
  186. package/dist/{line-items-3ZFFZCNH.js → line-items-J7PXJHMD.js} +5 -5
  187. package/dist/{link-AEU6BV75.js → link-4GGAQAVH.js} +5 -5
  188. package/dist/{linkedin-WCB2H5NH.js → linkedin-I6JDSTRB.js} +28 -28
  189. package/dist/{list-OLX7AI3O.js → list-22HZ2S4W.js} +5 -5
  190. package/dist/{list-TOUUGHMS.js → list-AQMGXI4N.js} +5 -5
  191. package/dist/{list-PAMYQS4X.js → list-KAJZFHMN.js} +4 -4
  192. package/dist/{locations-S4U6IJIS.js → locations-J4G5RNPH.js} +4 -4
  193. package/dist/{log-UGVWSK7Z.js → log-MUPKKYSJ.js} +5 -5
  194. package/dist/{make-3PZLTEXT.js → make-3FO76LA7.js} +131 -54
  195. package/dist/make-3FO76LA7.js.map +1 -0
  196. package/dist/{map-BW4CHSIO.js → map-F4LXTAJV.js} +6 -6
  197. package/dist/{mcp-JOXKA5HY.js → mcp-NLAQJWG6.js} +4 -4
  198. package/dist/{media-sources-SJZUOMI2.js → media-sources-W2CQFSVQ.js} +2 -2
  199. package/dist/{members-VAX6KAFN.js → members-3U6GINDF.js} +5 -5
  200. package/dist/{metrics-AY4RP54F.js → metrics-SQDJ5NQO.js} +4 -4
  201. package/dist/{models-5NTC7A5G.js → models-3Z6MDHQW.js} +2 -2
  202. package/dist/{normalize-IVQ7I54Z.js → normalize-FQ6WP5E4.js} +5 -5
  203. package/dist/{options-V7C6CU6M.js → options-K6FNT5A3.js} +8 -8
  204. package/dist/{performance-L6RJZPXX.js → performance-ZA7VCHOU.js} +6 -6
  205. package/dist/{promoted-tweet-writes-DBATH765.js → promoted-tweet-writes-4H3ZFD6O.js} +5 -5
  206. package/dist/{promoted-tweets-AU3XF3JD.js → promoted-tweets-MCMKPIHM.js} +3 -3
  207. package/dist/{publish-G6DYVT4S.js → publish-CW5YSAAL.js} +5 -5
  208. package/dist/{query-CPZZNMDY.js → query-IEZRY6HV.js} +4 -4
  209. package/dist/{reddit-S2S6C4RT.js → reddit-P7LLO4TK.js} +7 -7
  210. package/dist/{refresh-ARJ2SOMY.js → refresh-IGHEOA6Y.js} +4 -4
  211. package/dist/{release-3WCBAHPO.js → release-C74JOYDA.js} +5 -5
  212. package/dist/{relevant-pages-MTMFMBPD.js → relevant-pages-OWMNUCP7.js} +5 -5
  213. package/dist/{remove-FUAARCSC.js → remove-HPN62MPQ.js} +4 -4
  214. package/dist/{reopen-PZI5H4X2.js → reopen-XI53RP7R.js} +5 -5
  215. package/dist/{rerun-AUP4XT6T.js → rerun-2ITYGAIT.js} +21 -22
  216. package/dist/{rerun-AUP4XT6T.js.map → rerun-2ITYGAIT.js.map} +1 -1
  217. package/dist/{research-SY3QRGOC.js → research-HAHUTFVJ.js} +4 -4
  218. package/dist/{research-TISR736S.js → research-O6QXFCD7.js} +18 -15
  219. package/dist/research-O6QXFCD7.js.map +1 -0
  220. package/dist/{reset-ZWM7DDD7.js → reset-BISRUHT4.js} +4 -4
  221. package/dist/{reset-E6F5NXOI.js → reset-YMKVEOS4.js} +4 -4
  222. package/dist/{resolve-I5R5ELMZ.js → resolve-D2VESQ45.js} +5 -5
  223. package/dist/{retry-JO3JXXT2.js → retry-CGBATPQX.js} +4 -4
  224. package/dist/{retry-7CFZTKWI.js → retry-SUKRXBHX.js} +4 -4
  225. package/dist/{run-UKB647DI.js → run-BFERU46Q.js} +5 -5
  226. package/dist/{run-JR6SILHL.js → run-HSZFWRYZ.js} +21 -22
  227. package/dist/{scaffold-ad-BYGVU7MT.js → scaffold-ad-BYQYVB2C.js} +21 -22
  228. package/dist/{scaffold-ad-BYGVU7MT.js.map → scaffold-ad-BYQYVB2C.js.map} +1 -1
  229. package/dist/{scaffold-static-ad-U57V5UV3.js → scaffold-static-ad-5MXVTMEE.js} +70 -52
  230. package/dist/scaffold-static-ad-5MXVTMEE.js.map +1 -0
  231. package/dist/{scaffold-video-POZTINEV.js → scaffold-video-KEIHX3UD.js} +17 -18
  232. package/dist/{scaffold-video-POZTINEV.js.map → scaffold-video-KEIHX3UD.js.map} +1 -1
  233. package/dist/{schedule-SOAHLZZF.js → schedule-XJ24PL3K.js} +4 -4
  234. package/dist/{scheduled-agents-K5WU7SVJ.js → scheduled-agents-HWEKBANT.js} +11 -11
  235. package/dist/{schema-SOPL6GJP.js → schema-TAAAJHOJ.js} +6 -6
  236. package/dist/{search-5VUDFOHI.js → search-NVCIIGQS.js} +4 -4
  237. package/dist/{search-XUIVHGAY.js → search-UO5KJTYS.js} +3 -3
  238. package/dist/{select-T36UH4HL.js → select-K3EMTTI3.js} +14 -15
  239. package/dist/{select-T36UH4HL.js.map → select-K3EMTTI3.js.map} +1 -1
  240. package/dist/{set-prompt-Y4X7GV2Q.js → set-prompt-PY7FWYX6.js} +14 -15
  241. package/dist/{set-prompt-Y4X7GV2Q.js.map → set-prompt-PY7FWYX6.js.map} +1 -1
  242. package/dist/{setup-links-KFROCISS.js → setup-links-5ZCASHAL.js} +5 -5
  243. package/dist/{site-MXPKMRQT.js → site-7PSCHITE.js} +6 -6
  244. package/dist/{sources-MLDLMEDT.js → sources-GEB6OEGY.js} +8 -8
  245. package/dist/{sources-FFHNWVLV.js → sources-ICMUQMCJ.js} +6 -6
  246. package/dist/{stale-UXL4X4AD.js → stale-KBY5WARW.js} +13 -14
  247. package/dist/{stale-UXL4X4AD.js.map → stale-KBY5WARW.js.map} +1 -1
  248. package/dist/{status-M47G5HD4.js → status-ZX5WM5PJ.js} +5 -5
  249. package/dist/{studio-HUEBE6DS.js → studio-RA7QQH4O.js} +4 -4
  250. package/dist/{sync-HS7VZJ2H.js → sync-TZNIPZRX.js} +4 -4
  251. package/dist/{sync-definition-PY6REQ4J.js → sync-definition-ADXXWWV5.js} +16 -17
  252. package/dist/{tag-manager-HREEYGVM.js → tag-manager-DYZUOIAS.js} +1 -1
  253. package/dist/{tags-WAW6MQAY.js → tags-4OZCALA3.js} +5 -5
  254. package/dist/{tags-MRG56YOE.js → tags-4PXXFIPU.js} +4 -4
  255. package/dist/{tags-DYRZTYHD.js → tags-KFVUEPL6.js} +5 -5
  256. package/dist/{tags-DIXLYB5P.js → tags-TESETZGC.js} +4 -4
  257. package/dist/{tags-Y4HHJJGE.js → tags-WIMUIZHU.js} +5 -5
  258. package/dist/{targeting-criteria-5UUESFWC.js → targeting-criteria-VRI7V6C5.js} +3 -3
  259. package/dist/{targets-COZPVG52.js → targets-ERVS2VEU.js} +5 -5
  260. package/dist/{templates-75VFYZ3E.js → templates-TE6LBUIP.js} +5 -5
  261. package/dist/{testimonials-WJBRWLNW.js → testimonials-FV7KPAPK.js} +6 -6
  262. package/dist/{top-companies-C2R4FG6H.js → top-companies-B5M43KGJ.js} +5 -5
  263. package/dist/{translate-RYAJAFV7.js → translate-OKADZCBC.js} +19 -20
  264. package/dist/{translate-RYAJAFV7.js.map → translate-OKADZCBC.js.map} +1 -1
  265. package/dist/{triggers-5UHVJPBV.js → triggers-JLJQOSKI.js} +5 -5
  266. package/dist/{unlink-PLOOAGM3.js → unlink-KMWDKVIC.js} +5 -5
  267. package/dist/{unstage-JIIOTBTF.js → unstage-M4IQKJIO.js} +5 -5
  268. package/dist/{update-RGVNTA5X.js → update-5MBR4TPK.js} +4 -4
  269. package/dist/{update-QYM6U7LL.js → update-AHDGHOCP.js} +5 -5
  270. package/dist/{update-G6R5ZHUI.js → update-K6LFJHNI.js} +5 -5
  271. package/dist/{update-RCP7F5L5.js → update-PNRNYXUW.js} +5 -5
  272. package/dist/{upload-EEJ34Q3Y.js → upload-KAQC4AH7.js} +5 -5
  273. package/dist/{url-options-QEWKRKZ3.js → url-options-GGXAL3J4.js} +4 -4
  274. package/dist/{url-params-2G5M2B3J.js → url-params-SM32OOXZ.js} +5 -5
  275. package/dist/{validate-M33VLUG4.js → validate-NCTK5BXD.js} +14 -15
  276. package/dist/{validate-M33VLUG4.js.map → validate-NCTK5BXD.js.map} +1 -1
  277. package/dist/{videos-FVVID55J.js → videos-A32DPGHD.js} +5 -5
  278. package/dist/{viewer-check-2Q3WHSEL.js → viewer-check-L4B4LIAX.js} +4 -5
  279. package/dist/{web-WUGLSULO.js → web-TZEIFUYY.js} +8 -3
  280. package/dist/{web-WUGLSULO.js.map → web-TZEIFUYY.js.map} +1 -1
  281. package/dist/{winning-ads-OSRFHVLV.js → winning-ads-THIR7E5S.js} +6 -6
  282. package/dist/{write-commands-CLJOD2XF.js → write-commands-CE4FIQ6Y.js} +6 -6
  283. package/dist/{x-EBKLJJPJ.js → x-YXABYM5U.js} +6 -6
  284. package/package.json +1 -1
  285. package/dist/add-VZAY57M4.js.map +0 -1
  286. package/dist/advertisers-WSNHNCBQ.js.map +0 -1
  287. package/dist/chunk-5VC6IK7B.js.map +0 -1
  288. package/dist/chunk-6HJAHLLA.js.map +0 -1
  289. package/dist/chunk-CLMM6P6B.js.map +0 -1
  290. package/dist/chunk-EPMN4BK7.js.map +0 -1
  291. package/dist/chunk-HO3IUJ4K.js +0 -70
  292. package/dist/chunk-HO3IUJ4K.js.map +0 -1
  293. package/dist/chunk-IH4UQ2OK.js.map +0 -1
  294. package/dist/chunk-IKYNOT57.js.map +0 -1
  295. package/dist/chunk-OBDAYP2P.js.map +0 -1
  296. package/dist/chunk-RCQJHKK5.js.map +0 -1
  297. package/dist/chunk-TBEUMOEL.js.map +0 -1
  298. package/dist/chunk-V2X3KK52.js.map +0 -1
  299. package/dist/chunk-XML7AJM3.js.map +0 -1
  300. package/dist/feedback-QGSAJJVC.js.map +0 -1
  301. package/dist/feedback-record-NUAJ6UBL.js.map +0 -1
  302. package/dist/flows-OGGSWWGT.js.map +0 -1
  303. package/dist/get-N7FR6NFX.js.map +0 -1
  304. package/dist/make-3PZLTEXT.js.map +0 -1
  305. package/dist/research-TISR736S.js.map +0 -1
  306. package/dist/scaffold-static-ad-U57V5UV3.js.map +0 -1
  307. /package/dist/{account-PCEZQUK7.js.map → account-DTHGTZCN.js.map} +0 -0
  308. /package/dist/{accounts-5AXLYU7P.js.map → accounts-5RLG6BBA.js.map} +0 -0
  309. /package/dist/{accounts-OSXDZZLY.js.map → accounts-6LSBBXKA.js.map} +0 -0
  310. /package/dist/{actions-HM4VVTGW.js.map → actions-WH5C6Q7I.js.map} +0 -0
  311. /package/dist/{add-4J2EF54O.js.map → add-BZ4QPLK4.js.map} +0 -0
  312. /package/dist/{ads-NUME2UXH.js.map → ads-6UG66KA5.js.map} +0 -0
  313. /package/dist/{analytics-QTR2ZITZ.js.map → analytics-3YAWQF5K.js.map} +0 -0
  314. /package/dist/{analytics-PHU7H5VY.js.map → analytics-BCZGSSXP.js.map} +0 -0
  315. /package/dist/{animate-3Z7HXOLE.js.map → animate-AIZ3GS4J.js.map} +0 -0
  316. /package/dist/{assign-IIAVNATI.js.map → assign-O6QNAZD5.js.map} +0 -0
  317. /package/dist/{audience-size-2L7XMYJL.js.map → audience-size-CXPWERR3.js.map} +0 -0
  318. /package/dist/{audit-ZCUFJLUG.js.map → audit-MNOQK3U4.js.map} +0 -0
  319. /package/dist/{avatars-OEK3FYKK.js.map → avatars-P3WX5TQP.js.map} +0 -0
  320. /package/dist/{bid-pricing-FDW3IY6G.js.map → bid-pricing-6XXSM7C2.js.map} +0 -0
  321. /package/dist/{brand-OXYFSNA5.js.map → brand-LXU7YNCF.js.map} +0 -0
  322. /package/dist/{campaign-groups-5GCFQT2W.js.map → campaign-groups-CEAM3WRO.js.map} +0 -0
  323. /package/dist/{campaign-writes-3SJQSCUK.js.map → campaign-writes-D6BJAULL.js.map} +0 -0
  324. /package/dist/{campaigns-SYEOFKFV.js.map → campaigns-CXOKBCPS.js.map} +0 -0
  325. /package/dist/{campaigns-7QDDWZ76.js.map → campaigns-V3SWBM4E.js.map} +0 -0
  326. /package/dist/{canvas-B6DPRQGN.js.map → canvas-VH3Q26TK.js.map} +0 -0
  327. /package/dist/{capabilities-GVHPHH2G.js.map → capabilities-NZPSSS6T.js.map} +0 -0
  328. /package/dist/{changes-6QBJMGJC.js.map → changes-TP7ZZHB3.js.map} +0 -0
  329. /package/dist/{chats-54CWM7DL.js.map → chats-GN3PBFX4.js.map} +0 -0
  330. /package/dist/{chunk-SKT3SAHG.js.map → chunk-2BKVVCCV.js.map} +0 -0
  331. /package/dist/{chunk-YUPRCOEN.js.map → chunk-2GTYAHDN.js.map} +0 -0
  332. /package/dist/{chunk-E5IFTZJ3.js.map → chunk-3OFVFHKT.js.map} +0 -0
  333. /package/dist/{chunk-5EEDEVOR.js.map → chunk-4QEY2L6U.js.map} +0 -0
  334. /package/dist/{chunk-7JUUKYKG.js.map → chunk-4Z7DEN75.js.map} +0 -0
  335. /package/dist/{chunk-GTK46DE3.js.map → chunk-7ED5TAFP.js.map} +0 -0
  336. /package/dist/{chunk-654U6NU6.js.map → chunk-BNCW67EM.js.map} +0 -0
  337. /package/dist/{chunk-J5IU4OX2.js.map → chunk-CFHIW5QZ.js.map} +0 -0
  338. /package/dist/{chunk-FGH4Z5K5.js.map → chunk-DQMZXK27.js.map} +0 -0
  339. /package/dist/{chunk-XV6XCFF7.js.map → chunk-E4NCRGY3.js.map} +0 -0
  340. /package/dist/{chunk-7FVWIZHM.js.map → chunk-ESB5DLIP.js.map} +0 -0
  341. /package/dist/{chunk-NK2UFFVH.js.map → chunk-FVF5SXTZ.js.map} +0 -0
  342. /package/dist/{chunk-KWAOTV7F.js.map → chunk-GX6VAHY7.js.map} +0 -0
  343. /package/dist/{chunk-6TCDQSM7.js.map → chunk-GYU7BWEN.js.map} +0 -0
  344. /package/dist/{chunk-HYCIBVDW.js.map → chunk-HZUDRKGR.js.map} +0 -0
  345. /package/dist/{chunk-FYQPB2SS.js.map → chunk-IGQZ5U3C.js.map} +0 -0
  346. /package/dist/{chunk-OAQPHP6V.js.map → chunk-IYU4X5A7.js.map} +0 -0
  347. /package/dist/{chunk-2SCPDSFN.js.map → chunk-LIQ4SQ2T.js.map} +0 -0
  348. /package/dist/{chunk-KMEMA7AZ.js.map → chunk-LLOOWRBB.js.map} +0 -0
  349. /package/dist/{chunk-NSA6HRG6.js.map → chunk-ND5MJ3AA.js.map} +0 -0
  350. /package/dist/{chunk-ACFWVULZ.js.map → chunk-NIJSXVFT.js.map} +0 -0
  351. /package/dist/{chunk-H2QNBOPS.js.map → chunk-NJXNU2G6.js.map} +0 -0
  352. /package/dist/{chunk-AO5UQQLJ.js.map → chunk-ORO7VAXB.js.map} +0 -0
  353. /package/dist/{chunk-V5WSJP5A.js.map → chunk-OUTF5JFG.js.map} +0 -0
  354. /package/dist/{chunk-XG3XCHN6.js.map → chunk-P5T7OZKV.js.map} +0 -0
  355. /package/dist/{chunk-DE6ANJLU.js.map → chunk-PTCIM35Y.js.map} +0 -0
  356. /package/dist/{chunk-VJZHVOA4.js.map → chunk-PVUZWHNQ.js.map} +0 -0
  357. /package/dist/{chunk-CKU4WYTF.js.map → chunk-QVJDPOEB.js.map} +0 -0
  358. /package/dist/{chunk-KV5BCSUR.js.map → chunk-R5RIH3N5.js.map} +0 -0
  359. /package/dist/{chunk-RB5DB3WN.js.map → chunk-RB5CVIK6.js.map} +0 -0
  360. /package/dist/{chunk-EAHP7L2R.js.map → chunk-RZT263H7.js.map} +0 -0
  361. /package/dist/{chunk-HDWKLFF5.js.map → chunk-TUB34FVS.js.map} +0 -0
  362. /package/dist/{chunk-4SJDDGPV.js.map → chunk-TX7LZWZD.js.map} +0 -0
  363. /package/dist/{chunk-6YYEBLYI.js.map → chunk-V7CTQOHG.js.map} +0 -0
  364. /package/dist/{chunk-EVYXTT7V.js.map → chunk-XCM6XWOB.js.map} +0 -0
  365. /package/dist/{chunk-ZNBDKK4Y.js.map → chunk-XFGAUP5B.js.map} +0 -0
  366. /package/dist/{chunk-4SNOWJV7.js.map → chunk-XQIKDODN.js.map} +0 -0
  367. /package/dist/{chunk-WRIC2RPQ.js.map → chunk-XTRAI6CL.js.map} +0 -0
  368. /package/dist/{chunk-3X3446TG.js.map → chunk-XVOI4BIS.js.map} +0 -0
  369. /package/dist/{chunk-F46KAIBS.js.map → chunk-ZGTCZ6H4.js.map} +0 -0
  370. /package/dist/{claim-CIASHKMC.js.map → claim-25JJM4AG.js.map} +0 -0
  371. /package/dist/{companies-ECVMO24S.js.map → companies-VR5M5PAN.js.map} +0 -0
  372. /package/dist/{complete-32CPBFIG.js.map → complete-DRMOTC2W.js.map} +0 -0
  373. /package/dist/{connect-OJSOM6PY.js.map → connect-WUDJR2GH.js.map} +0 -0
  374. /package/dist/{conversation-7FHN5ESN.js.map → conversation-K6LYF2ZP.js.map} +0 -0
  375. /package/dist/{conversion-upload-command-BBUXLFT3.js.map → conversion-upload-command-AUF3LNTH.js.map} +0 -0
  376. /package/dist/{conversions-7YJDNZ7Y.js.map → conversions-GF32XOWY.js.map} +0 -0
  377. /package/dist/{countries-FYHM3IMJ.js.map → countries-ESAKTQAE.js.map} +0 -0
  378. /package/dist/{create-OYT76OMJ.js.map → create-2D7AIFJI.js.map} +0 -0
  379. /package/dist/{create-ZGRL7YCV.js.map → create-4TFAD6HY.js.map} +0 -0
  380. /package/dist/{create-FE5QLW7V.js.map → create-IXYXYLLE.js.map} +0 -0
  381. /package/dist/{create-2TBDXHAM.js.map → create-PKJVFJMO.js.map} +0 -0
  382. /package/dist/{creatives-IUB57I3T.js.map → creatives-OHCFHRZ5.js.map} +0 -0
  383. /package/dist/{creatives-5MUTX4DQ.js.map → creatives-QLSZFOMB.js.map} +0 -0
  384. /package/dist/{credentials-AETHKP5T.js.map → credentials-WSLR5VU4.js.map} +0 -0
  385. /package/dist/{critique-T7HJ42D4.js.map → critique-5PCQ2CJH.js.map} +0 -0
  386. /package/dist/{crm-KH6XX2TT.js.map → crm-HNUOHXAN.js.map} +0 -0
  387. /package/dist/{crm-JP4UOPMN.js.map → crm-SNIUADNK.js.map} +0 -0
  388. /package/dist/{currency-DJDVIR3C.js.map → currency-XCGKQ7FE.js.map} +0 -0
  389. /package/dist/{customers-7I7UY5PS.js.map → customers-72L2KZHO.js.map} +0 -0
  390. /package/dist/{delete-6IOUDEWY.js.map → delete-EVGM5B36.js.map} +0 -0
  391. /package/dist/{delete-ODFKNHAI.js.map → delete-PA2GY5EC.js.map} +0 -0
  392. /package/dist/{delete-RAETUVO2.js.map → delete-YNNFTFYV.js.map} +0 -0
  393. /package/dist/{demographics-2FTDKPBD.js.map → demographics-SYS2E7QC.js.map} +0 -0
  394. /package/dist/{discard-ZX5TLFYH.js.map → discard-JS2YJUIM.js.map} +0 -0
  395. /package/dist/{discover-M3ZKKFEL.js.map → discover-BJPZNXUQ.js.map} +0 -0
  396. /package/dist/{domain-TH7KIC2T.js.map → domain-XKKH5NCL.js.map} +0 -0
  397. /package/dist/{draft-YHUIFDDR.js.map → draft-4AO4YH3V.js.map} +0 -0
  398. /package/dist/{draft-SH25PKST.js.map → draft-5YAYCEYY.js.map} +0 -0
  399. /package/dist/{draft-S2FSQOJN.js.map → draft-GCUXNPVH.js.map} +0 -0
  400. /package/dist/{draft-CRE2Y24G.js.map → draft-WWWKSEEE.js.map} +0 -0
  401. /package/dist/{facets-6B2U4BSM.js.map → facets-NVBX5WDT.js.map} +0 -0
  402. /package/dist/{fit-FJ5CLQS4.js.map → fit-BOQL6OK3.js.map} +0 -0
  403. /package/dist/{follow-DUIEGDVK.js.map → follow-FN7LV3WV.js.map} +0 -0
  404. /package/dist/{follow-competitors-IT5ZVJPE.js.map → follow-competitors-MKXFHLXB.js.map} +0 -0
  405. /package/dist/{fonts-GCJRLEGD.js.map → fonts-64T6KRZS.js.map} +0 -0
  406. /package/dist/{forecast-2AGTFMXH.js.map → forecast-YIIGTHRM.js.map} +0 -0
  407. /package/dist/{funnel-7U55LNJ4.js.map → funnel-XHDCXXQ5.js.map} +0 -0
  408. /package/dist/{generate-DMQUS665.js.map → generate-3XYYITU6.js.map} +0 -0
  409. /package/dist/{get-IRJIHOQK.js.map → get-XJ3AZX35.js.map} +0 -0
  410. /package/dist/{history-PSNJAUTW.js.map → history-EUG4LE44.js.map} +0 -0
  411. /package/dist/{hubspot-2NHL47R2.js.map → hubspot-UULVEYVO.js.map} +0 -0
  412. /package/dist/{ideas-22MRXKT7.js.map → ideas-7LXYXS5G.js.map} +0 -0
  413. /package/dist/{images-LXFWEON7.js.map → images-3SOTFMJV.js.map} +0 -0
  414. /package/dist/{ingest-W7VEDEYD.js.map → ingest-HQUXSBWA.js.map} +0 -0
  415. /package/dist/{ingest-ZN3DEZHY.js.map → ingest-HYSZC3EX.js.map} +0 -0
  416. /package/dist/{inspect-3LBIHMMP.js.map → inspect-HZQ7GSVM.js.map} +0 -0
  417. /package/dist/{inspiration-I4MMKAWA.js.map → inspiration-P265QJ2H.js.map} +0 -0
  418. /package/dist/{intent-ICKFJRT2.js.map → intent-E3UIVZBN.js.map} +0 -0
  419. /package/dist/{keyword-gap-NGPH32FN.js.map → keyword-gap-BG6M665A.js.map} +0 -0
  420. /package/dist/{keyword-metrics-PZXFB4NG.js.map → keyword-metrics-YG3K7MQZ.js.map} +0 -0
  421. /package/dist/{landing-D7QS42GK.js.map → landing-3SSX6WK6.js.map} +0 -0
  422. /package/dist/{languages-JDYL2N5F.js.map → languages-HORKPDNH.js.map} +0 -0
  423. /package/dist/{languages-JMVNOHMG.js.map → languages-JSGWCC7Z.js.map} +0 -0
  424. /package/dist/{leads-E22XFSX2.js.map → leads-FAHQ6KJX.js.map} +0 -0
  425. /package/dist/{lighthouse-NQBUCHTW.js.map → lighthouse-6ZC45E53.js.map} +0 -0
  426. /package/dist/{line-item-writes-KA5PVKFO.js.map → line-item-writes-A6BPZQPL.js.map} +0 -0
  427. /package/dist/{line-items-3ZFFZCNH.js.map → line-items-J7PXJHMD.js.map} +0 -0
  428. /package/dist/{link-AEU6BV75.js.map → link-4GGAQAVH.js.map} +0 -0
  429. /package/dist/{linkedin-WCB2H5NH.js.map → linkedin-I6JDSTRB.js.map} +0 -0
  430. /package/dist/{list-OLX7AI3O.js.map → list-22HZ2S4W.js.map} +0 -0
  431. /package/dist/{list-TOUUGHMS.js.map → list-AQMGXI4N.js.map} +0 -0
  432. /package/dist/{list-PAMYQS4X.js.map → list-KAJZFHMN.js.map} +0 -0
  433. /package/dist/{locations-S4U6IJIS.js.map → locations-J4G5RNPH.js.map} +0 -0
  434. /package/dist/{log-UGVWSK7Z.js.map → log-MUPKKYSJ.js.map} +0 -0
  435. /package/dist/{map-BW4CHSIO.js.map → map-F4LXTAJV.js.map} +0 -0
  436. /package/dist/{mcp-JOXKA5HY.js.map → mcp-NLAQJWG6.js.map} +0 -0
  437. /package/dist/{media-sources-SJZUOMI2.js.map → media-sources-W2CQFSVQ.js.map} +0 -0
  438. /package/dist/{members-VAX6KAFN.js.map → members-3U6GINDF.js.map} +0 -0
  439. /package/dist/{metrics-AY4RP54F.js.map → metrics-SQDJ5NQO.js.map} +0 -0
  440. /package/dist/{models-5NTC7A5G.js.map → models-3Z6MDHQW.js.map} +0 -0
  441. /package/dist/{normalize-IVQ7I54Z.js.map → normalize-FQ6WP5E4.js.map} +0 -0
  442. /package/dist/{options-V7C6CU6M.js.map → options-K6FNT5A3.js.map} +0 -0
  443. /package/dist/{performance-L6RJZPXX.js.map → performance-ZA7VCHOU.js.map} +0 -0
  444. /package/dist/{promoted-tweet-writes-DBATH765.js.map → promoted-tweet-writes-4H3ZFD6O.js.map} +0 -0
  445. /package/dist/{promoted-tweets-AU3XF3JD.js.map → promoted-tweets-MCMKPIHM.js.map} +0 -0
  446. /package/dist/{publish-G6DYVT4S.js.map → publish-CW5YSAAL.js.map} +0 -0
  447. /package/dist/{query-CPZZNMDY.js.map → query-IEZRY6HV.js.map} +0 -0
  448. /package/dist/{reddit-S2S6C4RT.js.map → reddit-P7LLO4TK.js.map} +0 -0
  449. /package/dist/{refresh-ARJ2SOMY.js.map → refresh-IGHEOA6Y.js.map} +0 -0
  450. /package/dist/{release-3WCBAHPO.js.map → release-C74JOYDA.js.map} +0 -0
  451. /package/dist/{relevant-pages-MTMFMBPD.js.map → relevant-pages-OWMNUCP7.js.map} +0 -0
  452. /package/dist/{remove-FUAARCSC.js.map → remove-HPN62MPQ.js.map} +0 -0
  453. /package/dist/{reopen-PZI5H4X2.js.map → reopen-XI53RP7R.js.map} +0 -0
  454. /package/dist/{research-SY3QRGOC.js.map → research-HAHUTFVJ.js.map} +0 -0
  455. /package/dist/{reset-ZWM7DDD7.js.map → reset-BISRUHT4.js.map} +0 -0
  456. /package/dist/{reset-E6F5NXOI.js.map → reset-YMKVEOS4.js.map} +0 -0
  457. /package/dist/{resolve-I5R5ELMZ.js.map → resolve-D2VESQ45.js.map} +0 -0
  458. /package/dist/{retry-JO3JXXT2.js.map → retry-CGBATPQX.js.map} +0 -0
  459. /package/dist/{retry-7CFZTKWI.js.map → retry-SUKRXBHX.js.map} +0 -0
  460. /package/dist/{run-UKB647DI.js.map → run-BFERU46Q.js.map} +0 -0
  461. /package/dist/{run-JR6SILHL.js.map → run-HSZFWRYZ.js.map} +0 -0
  462. /package/dist/{schedule-SOAHLZZF.js.map → schedule-XJ24PL3K.js.map} +0 -0
  463. /package/dist/{scheduled-agents-K5WU7SVJ.js.map → scheduled-agents-HWEKBANT.js.map} +0 -0
  464. /package/dist/{schema-SOPL6GJP.js.map → schema-TAAAJHOJ.js.map} +0 -0
  465. /package/dist/{search-5VUDFOHI.js.map → search-NVCIIGQS.js.map} +0 -0
  466. /package/dist/{search-XUIVHGAY.js.map → search-UO5KJTYS.js.map} +0 -0
  467. /package/dist/{setup-links-KFROCISS.js.map → setup-links-5ZCASHAL.js.map} +0 -0
  468. /package/dist/{site-MXPKMRQT.js.map → site-7PSCHITE.js.map} +0 -0
  469. /package/dist/{sources-MLDLMEDT.js.map → sources-GEB6OEGY.js.map} +0 -0
  470. /package/dist/{sources-FFHNWVLV.js.map → sources-ICMUQMCJ.js.map} +0 -0
  471. /package/dist/{status-M47G5HD4.js.map → status-ZX5WM5PJ.js.map} +0 -0
  472. /package/dist/{studio-HUEBE6DS.js.map → studio-RA7QQH4O.js.map} +0 -0
  473. /package/dist/{sync-HS7VZJ2H.js.map → sync-TZNIPZRX.js.map} +0 -0
  474. /package/dist/{sync-definition-PY6REQ4J.js.map → sync-definition-ADXXWWV5.js.map} +0 -0
  475. /package/dist/{tag-manager-HREEYGVM.js.map → tag-manager-DYZUOIAS.js.map} +0 -0
  476. /package/dist/{tags-WAW6MQAY.js.map → tags-4OZCALA3.js.map} +0 -0
  477. /package/dist/{tags-MRG56YOE.js.map → tags-4PXXFIPU.js.map} +0 -0
  478. /package/dist/{tags-DYRZTYHD.js.map → tags-KFVUEPL6.js.map} +0 -0
  479. /package/dist/{tags-DIXLYB5P.js.map → tags-TESETZGC.js.map} +0 -0
  480. /package/dist/{tags-Y4HHJJGE.js.map → tags-WIMUIZHU.js.map} +0 -0
  481. /package/dist/{targeting-criteria-5UUESFWC.js.map → targeting-criteria-VRI7V6C5.js.map} +0 -0
  482. /package/dist/{targets-COZPVG52.js.map → targets-ERVS2VEU.js.map} +0 -0
  483. /package/dist/{templates-75VFYZ3E.js.map → templates-TE6LBUIP.js.map} +0 -0
  484. /package/dist/{testimonials-WJBRWLNW.js.map → testimonials-FV7KPAPK.js.map} +0 -0
  485. /package/dist/{top-companies-C2R4FG6H.js.map → top-companies-B5M43KGJ.js.map} +0 -0
  486. /package/dist/{triggers-5UHVJPBV.js.map → triggers-JLJQOSKI.js.map} +0 -0
  487. /package/dist/{unlink-PLOOAGM3.js.map → unlink-KMWDKVIC.js.map} +0 -0
  488. /package/dist/{unstage-JIIOTBTF.js.map → unstage-M4IQKJIO.js.map} +0 -0
  489. /package/dist/{update-RGVNTA5X.js.map → update-5MBR4TPK.js.map} +0 -0
  490. /package/dist/{update-QYM6U7LL.js.map → update-AHDGHOCP.js.map} +0 -0
  491. /package/dist/{update-G6R5ZHUI.js.map → update-K6LFJHNI.js.map} +0 -0
  492. /package/dist/{update-RCP7F5L5.js.map → update-PNRNYXUW.js.map} +0 -0
  493. /package/dist/{upload-EEJ34Q3Y.js.map → upload-KAQC4AH7.js.map} +0 -0
  494. /package/dist/{url-options-QEWKRKZ3.js.map → url-options-GGXAL3J4.js.map} +0 -0
  495. /package/dist/{url-params-2G5M2B3J.js.map → url-params-SM32OOXZ.js.map} +0 -0
  496. /package/dist/{videos-FVVID55J.js.map → videos-A32DPGHD.js.map} +0 -0
  497. /package/dist/{viewer-check-2Q3WHSEL.js.map → viewer-check-L4B4LIAX.js.map} +0 -0
  498. /package/dist/{winning-ads-OSRFHVLV.js.map → winning-ads-THIR7E5S.js.map} +0 -0
  499. /package/dist/{write-commands-CLJOD2XF.js.map → write-commands-CE4FIQ6Y.js.map} +0 -0
  500. /package/dist/{x-EBKLJJPJ.js.map → x-YXABYM5U.js.map} +0 -0
@@ -6,12 +6,12 @@ import {
6
6
  parsePriority,
7
7
  parseTagList,
8
8
  writeOk
9
- } from "./chunk-NTPXZU3V.js";
10
- import "./chunk-6HJAHLLA.js";
9
+ } from "./chunk-ZDNOCKKY.js";
10
+ import "./chunk-K6WVV74H.js";
11
11
  import "./chunk-GXDLWBOY.js";
12
- import "./chunk-WYCVJIHD.js";
12
+ import "./chunk-TEINLN64.js";
13
13
  import "./chunk-ZJWUBJYQ.js";
14
- import "./chunk-XML7AJM3.js";
14
+ import "./chunk-NE4F3FHN.js";
15
15
  import {
16
16
  apiPost,
17
17
  validateConvexId
@@ -95,4 +95,4 @@ var updateCommand = defineCommand({
95
95
  export {
96
96
  updateCommand
97
97
  };
98
- //# sourceMappingURL=update-RCP7F5L5.js.map
98
+ //# sourceMappingURL=update-PNRNYXUW.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  runVideoIngest
3
- } from "./chunk-EAHP7L2R.js";
3
+ } from "./chunk-RZT263H7.js";
4
4
  import "./chunk-FKOECEVC.js";
5
5
  import {
6
6
  detectVideoContentType,
7
7
  uploadLocalVideo
8
8
  } from "./chunk-KNY76UGC.js";
9
9
  import "./chunk-VVZBBKRC.js";
10
- import "./chunk-6HJAHLLA.js";
10
+ import "./chunk-K6WVV74H.js";
11
11
  import "./chunk-GXDLWBOY.js";
12
- import "./chunk-WYCVJIHD.js";
12
+ import "./chunk-TEINLN64.js";
13
13
  import "./chunk-ZJWUBJYQ.js";
14
- import "./chunk-XML7AJM3.js";
14
+ import "./chunk-NE4F3FHN.js";
15
15
  import {
16
16
  ApiError
17
17
  } from "./chunk-XBOK23HI.js";
@@ -123,4 +123,4 @@ var uploadCommand = defineCommand({
123
123
  export {
124
124
  uploadCommand
125
125
  };
126
- //# sourceMappingURL=upload-EEJ34Q3Y.js.map
126
+ //# sourceMappingURL=upload-KAQC4AH7.js.map
@@ -5,17 +5,17 @@ import {
5
5
  import "./chunk-EDLZGTGN.js";
6
6
  import {
7
7
  parseApiError
8
- } from "./chunk-KWAOTV7F.js";
8
+ } from "./chunk-GX6VAHY7.js";
9
9
  import {
10
10
  urlOptionsHints
11
- } from "./chunk-EVYXTT7V.js";
11
+ } from "./chunk-XCM6XWOB.js";
12
12
  import {
13
13
  getManagerIdForCustomer,
14
14
  resolveCustomerId,
15
15
  writeAdsJson,
16
16
  writeJsonEnvelope
17
17
  } from "./chunk-VFIOJD5M.js";
18
- import "./chunk-XML7AJM3.js";
18
+ import "./chunk-NE4F3FHN.js";
19
19
  import {
20
20
  ApiError,
21
21
  apiPost
@@ -124,4 +124,4 @@ Examples:
124
124
  export {
125
125
  urlOptionsCommand
126
126
  };
127
- //# sourceMappingURL=url-options-QEWKRKZ3.js.map
127
+ //# sourceMappingURL=url-options-GGXAL3J4.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  handleLinkedinError,
3
3
  resolveAccountIdArg
4
- } from "./chunk-CKU4WYTF.js";
4
+ } from "./chunk-QVJDPOEB.js";
5
5
  import {
6
6
  writeAdsJson
7
7
  } from "./chunk-VFIOJD5M.js";
8
8
  import {
9
9
  LINKEDIN_TRACKING_PARAMS_AD_SET_MAX
10
- } from "./chunk-6HJAHLLA.js";
10
+ } from "./chunk-K6WVV74H.js";
11
11
  import "./chunk-GXDLWBOY.js";
12
- import "./chunk-WYCVJIHD.js";
12
+ import "./chunk-TEINLN64.js";
13
13
  import "./chunk-ZJWUBJYQ.js";
14
- import "./chunk-XML7AJM3.js";
14
+ import "./chunk-NE4F3FHN.js";
15
15
  import {
16
16
  apiGet
17
17
  } from "./chunk-XBOK23HI.js";
@@ -95,4 +95,4 @@ export {
95
95
  hints,
96
96
  urlParamsCommand
97
97
  };
98
- //# sourceMappingURL=url-params-2G5M2B3J.js.map
98
+ //# sourceMappingURL=url-params-SM32OOXZ.js.map
@@ -1,27 +1,26 @@
1
1
  import {
2
2
  outputRatioWarningsFor
3
- } from "./chunk-HDWKLFF5.js";
3
+ } from "./chunk-TUB34FVS.js";
4
4
  import {
5
5
  exitOnPrepareError,
6
6
  prepareCanvas
7
- } from "./chunk-IH4UQ2OK.js";
8
- import "./chunk-5EEDEVOR.js";
9
- import "./chunk-YUPRCOEN.js";
10
- import "./chunk-KV5BCSUR.js";
7
+ } from "./chunk-EAEOPERX.js";
8
+ import "./chunk-4QEY2L6U.js";
9
+ import "./chunk-2GTYAHDN.js";
10
+ import "./chunk-R5RIH3N5.js";
11
11
  import "./chunk-F2S5BLPE.js";
12
12
  import "./chunk-WTOYCUKH.js";
13
13
  import "./chunk-DZSIUEGH.js";
14
14
  import {
15
15
  defaultRegistry,
16
16
  validateCanvasDeep
17
- } from "./chunk-XDNEG2H6.js";
18
- import "./chunk-RCQJHKK5.js";
17
+ } from "./chunk-OKJWBB2K.js";
18
+ import "./chunk-6Y7SIP2D.js";
19
19
  import "./chunk-W3B4BHQU.js";
20
- import "./chunk-CLMM6P6B.js";
21
- import "./chunk-4SJDDGPV.js";
20
+ import "./chunk-TX7LZWZD.js";
22
21
  import "./chunk-DGCUPJZD.js";
23
- import "./chunk-HO3IUJ4K.js";
24
- import "./chunk-OBDAYP2P.js";
22
+ import "./chunk-PZXCWSKV.js";
23
+ import "./chunk-CAMX6OHF.js";
25
24
  import "./chunk-RX6F3GEA.js";
26
25
  import "./chunk-5HYSKH77.js";
27
26
  import "./chunk-KIGGMKAE.js";
@@ -29,11 +28,11 @@ import "./chunk-VAJBWA2U.js";
29
28
  import "./chunk-HRYOZUSK.js";
30
29
  import "./chunk-VVZBBKRC.js";
31
30
  import "./chunk-YBMVHGY3.js";
32
- import "./chunk-6HJAHLLA.js";
31
+ import "./chunk-K6WVV74H.js";
33
32
  import "./chunk-GXDLWBOY.js";
34
- import "./chunk-WYCVJIHD.js";
33
+ import "./chunk-TEINLN64.js";
35
34
  import "./chunk-ZJWUBJYQ.js";
36
- import "./chunk-XML7AJM3.js";
35
+ import "./chunk-NE4F3FHN.js";
37
36
  import "./chunk-IFWP3ZDO.js";
38
37
  import "./chunk-NAWWC5I3.js";
39
38
  import "./chunk-NU7JSWVA.js";
@@ -87,4 +86,4 @@ var validateCommand = defineCommand({
87
86
  export {
88
87
  validateCommand
89
88
  };
90
- //# sourceMappingURL=validate-M33VLUG4.js.map
89
+ //# sourceMappingURL=validate-NCTK5BXD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/canvas/validate.ts"],"sourcesContent":["import path from \"node:path\";\nimport { defineCommand } from \"citty\";\nimport { defaultRegistry, validateCanvasDeep } from \"../../engine/index.ts\";\nimport { outputRatioWarningsFor } from \"./output-ratio.ts\";\nimport { exitOnPrepareError, type PreparedCanvas, prepareCanvas } from \"./prepare-canvas.ts\";\n\nexport const validateCommand = defineCommand({\n meta: {\n name: \"validate\",\n description:\n \"Validate a canvas JSON file (no execution). Brings the canvas up to date with its prompt.json first (prompt.json and, for a video, scenes/*.json edits are written into the canvas, exactly as `run` does), then checks it: a per-node cost preview, each node's deep validators (composition meta checks for hyperframe_render/_snapshot), and each generator prompt measured with its {{slots}} filled against the model's character cap (PROMPT_OVER_MODEL_LIMIT).\",\n },\n args: { file: { type: \"positional\", required: true, description: \"Path to canvas JSON\" } },\n async run({ args }) {\n const filePath = path.resolve(String(args.file));\n let prepared: PreparedCanvas;\n try {\n prepared = await prepareCanvas(filePath, { gate: true, log: (line) => process.stderr.write(`${line}\\n`) });\n } catch (e) {\n exitOnPrepareError(e);\n }\n\n const result = await validateCanvasDeep(prepared.canvas, defaultRegistry());\n if (!result.ok) {\n process.stderr.write(`${JSON.stringify({ ok: false, error: { code: \"validation\", issues: result.issues } }, null, 2)}\\n`);\n process.exit(2);\n return;\n }\n\n // Warnings are advisory: the canvas is valid and runnable, so exit 0. They flag\n // likely-wrong-but-legal config (a missing element reference, a scene span past the\n // assigned model's cap) the operator should review before billing.\n process.stdout.write(\n `${JSON.stringify(\n {\n ok: true,\n total_nodes: result.canvas.nodes.length,\n estimated_credits: result.estimatedCredits,\n cost_preview: result.perNodeCredits ?? [],\n style_projection: prepared.projections.style,\n scene_projection: prepared.projections.scenes,\n canvas_updated: prepared.written,\n normalized_paths: prepared.rewrites,\n warnings: [...(result.warnings ?? []), ...(await outputRatioWarningsFor(prepared.canvas, filePath))],\n },\n null,\n 2,\n )}\\n`,\n );\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAKvB,IAAM,kBAAkB,cAAc;AAAA,EAC3C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,UAAU,MAAM,aAAa,sBAAsB,EAAE;AAAA,EACzF,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,UAAM,WAAW,KAAK,QAAQ,OAAO,KAAK,IAAI,CAAC;AAC/C,QAAI;AACJ,QAAI;AACF,iBAAW,MAAM,cAAc,UAAU,EAAE,MAAM,MAAM,KAAK,CAAC,SAAS,QAAQ,OAAO,MAAM,GAAG,IAAI;AAAA,CAAI,EAAE,CAAC;AAAA,IAC3G,SAAS,GAAG;AACV,yBAAmB,CAAC;AAAA,IACtB;AAEA,UAAM,SAAS,MAAM,mBAAmB,SAAS,QAAQ,gBAAgB,CAAC;AAC1E,QAAI,CAAC,OAAO,IAAI;AACd,cAAQ,OAAO,MAAM,GAAG,KAAK,UAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,cAAc,QAAQ,OAAO,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;AAAA,CAAI;AACxH,cAAQ,KAAK,CAAC;AACd;AAAA,IACF;AAKA,YAAQ,OAAO;AAAA,MACb,GAAG,KAAK;AAAA,QACN;AAAA,UACE,IAAI;AAAA,UACJ,aAAa,OAAO,OAAO,MAAM;AAAA,UACjC,mBAAmB,OAAO;AAAA,UAC1B,cAAc,OAAO,kBAAkB,CAAC;AAAA,UACxC,kBAAkB,SAAS,YAAY;AAAA,UACvC,kBAAkB,SAAS,YAAY;AAAA,UACvC,gBAAgB,SAAS;AAAA,UACzB,kBAAkB,SAAS;AAAA,UAC3B,UAAU,CAAC,GAAI,OAAO,YAAY,CAAC,GAAI,GAAI,MAAM,uBAAuB,SAAS,QAAQ,QAAQ,CAAE;AAAA,QACrG;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA;AAAA,IACH;AAAA,EACF;AACF,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/commands/canvas/validate.ts"],"sourcesContent":["import path from \"node:path\";\nimport { defineCommand } from \"citty\";\nimport { defaultRegistry, validateCanvasDeep } from \"../../engine/index.ts\";\nimport { outputRatioWarningsFor } from \"./output-ratio.ts\";\nimport { exitOnPrepareError, type PreparedCanvas, prepareCanvas } from \"./prepare-canvas.ts\";\n\nexport const validateCommand = defineCommand({\n meta: {\n name: \"validate\",\n description:\n \"Validate a canvas JSON file (no execution). Brings the canvas up to date with its prompt.json first (prompt.json and, for a video, scenes/*.json edits are written into the canvas, exactly as `run` does), then checks it: a per-node cost preview, each node's deep validators (composition meta checks for hyperframe_render/_snapshot), and each generator prompt measured with its {{slots}} filled against the model's character cap (PROMPT_OVER_MODEL_LIMIT).\",\n },\n args: { file: { type: \"positional\", required: true, description: \"Path to canvas JSON\" } },\n async run({ args }) {\n const filePath = path.resolve(String(args.file));\n let prepared: PreparedCanvas;\n try {\n prepared = await prepareCanvas(filePath, { gate: true, log: (line) => process.stderr.write(`${line}\\n`) });\n } catch (e) {\n exitOnPrepareError(e);\n }\n\n const result = await validateCanvasDeep(prepared.canvas, defaultRegistry());\n if (!result.ok) {\n process.stderr.write(`${JSON.stringify({ ok: false, error: { code: \"validation\", issues: result.issues } }, null, 2)}\\n`);\n process.exit(2);\n return;\n }\n\n // Warnings are advisory: the canvas is valid and runnable, so exit 0. They flag\n // likely-wrong-but-legal config (a missing element reference, a scene span past the\n // assigned model's cap) the operator should review before billing.\n process.stdout.write(\n `${JSON.stringify(\n {\n ok: true,\n total_nodes: result.canvas.nodes.length,\n estimated_credits: result.estimatedCredits,\n cost_preview: result.perNodeCredits ?? [],\n style_projection: prepared.projections.style,\n scene_projection: prepared.projections.scenes,\n canvas_updated: prepared.written,\n normalized_paths: prepared.rewrites,\n warnings: [...(result.warnings ?? []), ...(await outputRatioWarningsFor(prepared.canvas, filePath))],\n },\n null,\n 2,\n )}\\n`,\n );\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAKvB,IAAM,kBAAkB,cAAc;AAAA,EAC3C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aACE;AAAA,EACJ;AAAA,EACA,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,UAAU,MAAM,aAAa,sBAAsB,EAAE;AAAA,EACzF,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,UAAM,WAAW,KAAK,QAAQ,OAAO,KAAK,IAAI,CAAC;AAC/C,QAAI;AACJ,QAAI;AACF,iBAAW,MAAM,cAAc,UAAU,EAAE,MAAM,MAAM,KAAK,CAAC,SAAS,QAAQ,OAAO,MAAM,GAAG,IAAI;AAAA,CAAI,EAAE,CAAC;AAAA,IAC3G,SAAS,GAAG;AACV,yBAAmB,CAAC;AAAA,IACtB;AAEA,UAAM,SAAS,MAAM,mBAAmB,SAAS,QAAQ,gBAAgB,CAAC;AAC1E,QAAI,CAAC,OAAO,IAAI;AACd,cAAQ,OAAO,MAAM,GAAG,KAAK,UAAU,EAAE,IAAI,OAAO,OAAO,EAAE,MAAM,cAAc,QAAQ,OAAO,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;AAAA,CAAI;AACxH,cAAQ,KAAK,CAAC;AACd;AAAA,IACF;AAKA,YAAQ,OAAO;AAAA,MACb,GAAG,KAAK;AAAA,QACN;AAAA,UACE,IAAI;AAAA,UACJ,aAAa,OAAO,OAAO,MAAM;AAAA,UACjC,mBAAmB,OAAO;AAAA,UAC1B,cAAc,OAAO,kBAAkB,CAAC;AAAA,UACxC,kBAAkB,SAAS,YAAY;AAAA,UACvC,kBAAkB,SAAS,YAAY;AAAA,UACvC,gBAAgB,SAAS;AAAA,UACzB,kBAAkB,SAAS;AAAA,UAC3B,UAAU,CAAC,GAAI,OAAO,YAAY,CAAC,GAAI,GAAI,MAAM,uBAAuB,SAAS,QAAQ,QAAQ,CAAE;AAAA,QACrG;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA;AAAA,IACH;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -24,16 +24,16 @@ Full guide: __tooling__/docs/tools/baker/videos.md`
24
24
  get: () => import("./get-6WEYKOY6.js").then((m) => m.getCommand),
25
25
  group: () => import("./group-EFZ3AJIE.js").then((m) => m.groupCommand),
26
26
  search: () => import("./search-OQNGSMUH.js").then((m) => m.searchCommand),
27
- upload: () => import("./upload-EEJ34Q3Y.js").then((m) => m.uploadCommand),
28
- ingest: () => import("./ingest-ZN3DEZHY.js").then((m) => m.ingestCommand),
27
+ upload: () => import("./upload-KAQC4AH7.js").then((m) => m.uploadCommand),
28
+ ingest: () => import("./ingest-HYSZC3EX.js").then((m) => m.ingestCommand),
29
29
  fetch: () => import("./fetch-XF76JABV.js").then((m) => m.fetchCommand),
30
30
  describe: () => import("./describe-6NVOWIBE.js").then((m) => m.describeCommand),
31
31
  delete: () => import("./delete-MRM2S4Z5.js").then((m) => m.deleteCommand),
32
- retry: () => import("./retry-JO3JXXT2.js").then((m) => m.retryCommand),
33
- tags: () => import("./tags-DYRZTYHD.js").then((m) => m.tagsCommand)
32
+ retry: () => import("./retry-CGBATPQX.js").then((m) => m.retryCommand),
33
+ tags: () => import("./tags-KFVUEPL6.js").then((m) => m.tagsCommand)
34
34
  }
35
35
  });
36
36
  export {
37
37
  videosCommand
38
38
  };
39
- //# sourceMappingURL=videos-FVVID55J.js.map
39
+ //# sourceMappingURL=videos-A32DPGHD.js.map
@@ -22,15 +22,14 @@ import {
22
22
  viewerCheckCommand,
23
23
  viewerCheckFailure,
24
24
  viewerCheckSkip
25
- } from "./chunk-H2QNBOPS.js";
25
+ } from "./chunk-NJXNU2G6.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
30
  import "./chunk-W3B4BHQU.js";
31
- import "./chunk-CLMM6P6B.js";
32
- import "./chunk-HO3IUJ4K.js";
33
- import "./chunk-OBDAYP2P.js";
31
+ import "./chunk-PZXCWSKV.js";
32
+ import "./chunk-CAMX6OHF.js";
34
33
  import "./chunk-RX6F3GEA.js";
35
34
  import "./chunk-5HYSKH77.js";
36
35
  import "./chunk-KIGGMKAE.js";
@@ -67,4 +66,4 @@ export {
67
66
  viewerCheckFailure,
68
67
  viewerCheckSkip
69
68
  };
70
- //# sourceMappingURL=viewer-check-2Q3WHSEL.js.map
69
+ //# sourceMappingURL=viewer-check-L4B4LIAX.js.map
@@ -1,11 +1,16 @@
1
1
  import {
2
2
  webDepthHints
3
- } from "./chunk-PIWMNKWI.js";
3
+ } from "./chunk-NECTN6N7.js";
4
4
  import {
5
5
  handleResearchError,
6
6
  writeResearchHints,
7
7
  writeResearchJson
8
- } from "./chunk-TBEUMOEL.js";
8
+ } from "./chunk-WNFIJAUO.js";
9
+ import "./chunk-K6WVV74H.js";
10
+ import "./chunk-GXDLWBOY.js";
11
+ import "./chunk-TEINLN64.js";
12
+ import "./chunk-ZJWUBJYQ.js";
13
+ import "./chunk-NE4F3FHN.js";
9
14
  import {
10
15
  apiGet,
11
16
  apiPost
@@ -132,4 +137,4 @@ Examples:
132
137
  export {
133
138
  webCommand
134
139
  };
135
- //# sourceMappingURL=web-WUGLSULO.js.map
140
+ //# sourceMappingURL=web-TZEIFUYY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/research/web.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { apiGet, apiPost } from \"../../client.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { webDepthHints } from \"./hints.ts\";\nimport { handleResearchError, writeResearchHints, writeResearchJson } from \"./output.ts\";\n\nregisterSchema({\n command: \"research.web\",\n description:\n \"Search the web with AI to answer marketing questions — competitors, ICP, pricing, pain points, market trends. Three depth levels: medium (quick, default), high (thorough), xhigh (exhaustive deep research).\",\n args: {\n question: {\n type: \"string\",\n description: \"The research question to answer using live web data\",\n required: true,\n },\n depth: {\n type: \"string\",\n description: \"Research depth: medium (quick), high (thorough), xhigh (exhaustive). Default: medium\",\n required: false,\n enum: [\"medium\", \"high\", \"xhigh\"],\n },\n },\n});\n\ntype Depth = \"medium\" | \"high\" | \"xhigh\";\n\nconst TIMEOUT_MS: Record<Depth, number> = {\n medium: 180_000,\n high: 360_000,\n xhigh: 900_000,\n};\n\ninterface WebResult {\n answer: string;\n sources: Array<{ title: string; url: string }>;\n}\n\nconst FIELDS: Record<string, string> = {\n answer: \"AI-generated research answer (markdown)\",\n sources: \"Array of {title, url} sources used for grounding\",\n};\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nasync function runDeepResearch(question: string): Promise<WebResult> {\n const { interactionId } = await apiPost<{ interactionId: string }>(\"/api/research/deep-research/start\", { question });\n\n process.stderr.write(`Deep research started (${interactionId}). Polling...\\n`);\n\n const deadline = Date.now() + TIMEOUT_MS.xhigh;\n while (Date.now() < deadline) {\n await sleep(10_000);\n const poll = await apiGet<{ status: string; result?: WebResult }>(\"/api/research/deep-research/poll\", {\n id: interactionId,\n });\n\n if (poll.status === \"completed\" && poll.result) {\n return poll.result;\n }\n if (poll.status === \"failed\" || poll.status === \"cancelled\") {\n throw new Error(`Deep research ${poll.status}`);\n }\n process.stderr.write(` status: ${poll.status}\\n`);\n }\n\n throw new Error(\"Deep research timed out\");\n}\n\nexport const webCommand = defineCommand({\n meta: {\n name: \"web\",\n description: `Search the web with AI to answer any open-ended marketing question. Uses live internet data via Google Search.\n\nDepth levels:\n medium — Quick lookup using Gemini Flash with minimal thinking (default)\n high — Thorough answer using Gemini Flash with deep thinking\n xhigh — Exhaustive deep research using Gemini Deep Research (slow, use sparingly)\n\nExamples:\n baker research web \"Who are the main competitors of HubSpot CRM?\"\n baker research web \"What are the top pain points for SMB CRM buyers?\" --depth high\n baker research web \"Full competitive analysis of project management SaaS\" --depth xhigh`,\n },\n args: {\n question: { type: \"positional\", description: \"The research question\", required: true },\n depth: { type: \"string\", description: \"Research depth: medium|high|xhigh (default: medium)\", required: false },\n output: { type: \"string\", description: \"Format: json|md (default: json)\", required: false, default: \"json\" },\n },\n run: async ({ args }) => {\n const question = args.question as string;\n if (question.length < 5) {\n writeResearchJson({\n ok: false,\n error: { code: \"VALIDATION_ERROR\", message: \"Question must be at least 5 characters\" },\n });\n process.exit(1);\n }\n\n const depth = ((args.depth as string) || \"medium\") as Depth;\n if (![\"medium\", \"high\", \"xhigh\"].includes(depth)) {\n writeResearchJson({\n ok: false,\n error: { code: \"VALIDATION_ERROR\", message: \"Depth must be one of: medium, high, xhigh\" },\n });\n process.exit(1);\n }\n\n try {\n const data =\n depth === \"xhigh\"\n ? await runDeepResearch(question)\n : await apiPost<WebResult>(\"/api/research/explore\", { question, depth }, { timeoutMs: TIMEOUT_MS[depth] });\n\n const format = (args.output as string) || \"json\";\n const hints = webDepthHints({ answer: data.answer, sourceCount: data.sources.length, depth });\n if (format === \"md\") {\n process.stdout.write(`${data.answer}\\n`);\n if (data.sources.length > 0) {\n process.stdout.write(\"\\n## Sources\\n\");\n for (const s of data.sources) {\n process.stdout.write(`- [${s.title}](${s.url})\\n`);\n }\n }\n writeResearchHints(hints, format);\n return;\n }\n writeResearchJson({ ok: true, data, fields: FIELDS, hints });\n } catch (err) {\n handleResearchError(err);\n }\n },\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/commands/research/web.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { apiGet, apiPost } from \"../../client.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { webDepthHints } from \"./hints.ts\";\nimport { handleResearchError, writeResearchHints, writeResearchJson } from \"./output.ts\";\n\nregisterSchema({\n command: \"research.web\",\n description:\n \"Search the web with AI to answer marketing questions — competitors, ICP, pricing, pain points, market trends. Three depth levels: medium (quick, default), high (thorough), xhigh (exhaustive deep research).\",\n args: {\n question: {\n type: \"string\",\n description: \"The research question to answer using live web data\",\n required: true,\n },\n depth: {\n type: \"string\",\n description: \"Research depth: medium (quick), high (thorough), xhigh (exhaustive). Default: medium\",\n required: false,\n enum: [\"medium\", \"high\", \"xhigh\"],\n },\n },\n});\n\ntype Depth = \"medium\" | \"high\" | \"xhigh\";\n\nconst TIMEOUT_MS: Record<Depth, number> = {\n medium: 180_000,\n high: 360_000,\n xhigh: 900_000,\n};\n\ninterface WebResult {\n answer: string;\n sources: Array<{ title: string; url: string }>;\n}\n\nconst FIELDS: Record<string, string> = {\n answer: \"AI-generated research answer (markdown)\",\n sources: \"Array of {title, url} sources used for grounding\",\n};\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nasync function runDeepResearch(question: string): Promise<WebResult> {\n const { interactionId } = await apiPost<{ interactionId: string }>(\"/api/research/deep-research/start\", { question });\n\n process.stderr.write(`Deep research started (${interactionId}). Polling...\\n`);\n\n const deadline = Date.now() + TIMEOUT_MS.xhigh;\n while (Date.now() < deadline) {\n await sleep(10_000);\n const poll = await apiGet<{ status: string; result?: WebResult }>(\"/api/research/deep-research/poll\", {\n id: interactionId,\n });\n\n if (poll.status === \"completed\" && poll.result) {\n return poll.result;\n }\n if (poll.status === \"failed\" || poll.status === \"cancelled\") {\n throw new Error(`Deep research ${poll.status}`);\n }\n process.stderr.write(` status: ${poll.status}\\n`);\n }\n\n throw new Error(\"Deep research timed out\");\n}\n\nexport const webCommand = defineCommand({\n meta: {\n name: \"web\",\n description: `Search the web with AI to answer any open-ended marketing question. Uses live internet data via Google Search.\n\nDepth levels:\n medium — Quick lookup using Gemini Flash with minimal thinking (default)\n high — Thorough answer using Gemini Flash with deep thinking\n xhigh — Exhaustive deep research using Gemini Deep Research (slow, use sparingly)\n\nExamples:\n baker research web \"Who are the main competitors of HubSpot CRM?\"\n baker research web \"What are the top pain points for SMB CRM buyers?\" --depth high\n baker research web \"Full competitive analysis of project management SaaS\" --depth xhigh`,\n },\n args: {\n question: { type: \"positional\", description: \"The research question\", required: true },\n depth: { type: \"string\", description: \"Research depth: medium|high|xhigh (default: medium)\", required: false },\n output: { type: \"string\", description: \"Format: json|md (default: json)\", required: false, default: \"json\" },\n },\n run: async ({ args }) => {\n const question = args.question as string;\n if (question.length < 5) {\n writeResearchJson({\n ok: false,\n error: { code: \"VALIDATION_ERROR\", message: \"Question must be at least 5 characters\" },\n });\n process.exit(1);\n }\n\n const depth = ((args.depth as string) || \"medium\") as Depth;\n if (![\"medium\", \"high\", \"xhigh\"].includes(depth)) {\n writeResearchJson({\n ok: false,\n error: { code: \"VALIDATION_ERROR\", message: \"Depth must be one of: medium, high, xhigh\" },\n });\n process.exit(1);\n }\n\n try {\n const data =\n depth === \"xhigh\"\n ? await runDeepResearch(question)\n : await apiPost<WebResult>(\"/api/research/explore\", { question, depth }, { timeoutMs: TIMEOUT_MS[depth] });\n\n const format = (args.output as string) || \"json\";\n const hints = webDepthHints({ answer: data.answer, sourceCount: data.sources.length, depth });\n if (format === \"md\") {\n process.stdout.write(`${data.answer}\\n`);\n if (data.sources.length > 0) {\n process.stdout.write(\"\\n## Sources\\n\");\n for (const s of data.sources) {\n process.stdout.write(`- [${s.title}](${s.url})\\n`);\n }\n }\n writeResearchHints(hints, format);\n return;\n }\n writeResearchJson({ ok: true, data, fields: FIELDS, hints });\n } catch (err) {\n handleResearchError(err);\n }\n },\n});\n"],"mappings":"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","names":[]}
@@ -40,17 +40,17 @@ Examples:
40
40
  Full guide: __tooling__/docs/tools/baker/winning-ads.md`
41
41
  },
42
42
  subCommands: {
43
- search: () => import("./search-XUIVHGAY.js").then((m) => m.searchCommand),
43
+ search: () => import("./search-UO5KJTYS.js").then((m) => m.searchCommand),
44
44
  advertisers: () => import("./advertisers-YMHPZYNF.js").then((m) => m.advertisersCommand),
45
- follow: () => import("./follow-DUIEGDVK.js").then((m) => m.followCommand),
46
- "follow-competitors": () => import("./follow-competitors-IT5ZVJPE.js").then((m) => m.followCompetitorsCommand),
45
+ follow: () => import("./follow-FN7LV3WV.js").then((m) => m.followCommand),
46
+ "follow-competitors": () => import("./follow-competitors-MKXFHLXB.js").then((m) => m.followCompetitorsCommand),
47
47
  following: () => import("./following-RKC2FLHI.js").then((m) => m.followingCommand),
48
48
  feed: () => import("./feed-RV4KPPXM.js").then((m) => m.feedCommand),
49
49
  winners: () => import("./winners-I5BMATJZ.js").then((m) => m.winnersCommand),
50
50
  content: () => import("./content-3ZPP4SW2.js").then((m) => m.contentCommand),
51
- fit: () => import("./fit-FJ5CLQS4.js").then((m) => m.fitCommand),
51
+ fit: () => import("./fit-BOQL6OK3.js").then((m) => m.fitCommand),
52
52
  unfollow: () => import("./unfollow-CBVPGPF7.js").then((m) => m.unfollowCommand),
53
- refresh: () => import("./refresh-ARJ2SOMY.js").then((m) => m.refreshCommand),
53
+ refresh: () => import("./refresh-IGHEOA6Y.js").then((m) => m.refreshCommand),
54
54
  hooks: () => import("./seeds-N6FF5S4T.js").then((m) => m.hooksCommand),
55
55
  mechanisms: () => import("./seeds-N6FF5S4T.js").then((m) => m.mechanismsCommand),
56
56
  formats: () => import("./seeds-N6FF5S4T.js").then((m) => m.formatsCommand)
@@ -59,4 +59,4 @@ Full guide: __tooling__/docs/tools/baker/winning-ads.md`
59
59
  export {
60
60
  winningAdsCommand
61
61
  };
62
- //# sourceMappingURL=winning-ads-OSRFHVLV.js.map
62
+ //# sourceMappingURL=winning-ads-THIR7E5S.js.map
@@ -15,10 +15,10 @@ import {
15
15
  stageLinkedinOps,
16
16
  stageOp,
17
17
  stageStatusChange
18
- } from "./chunk-GTK46DE3.js";
18
+ } from "./chunk-7ED5TAFP.js";
19
19
  import {
20
20
  handleLinkedinError
21
- } from "./chunk-CKU4WYTF.js";
21
+ } from "./chunk-QVJDPOEB.js";
22
22
  import {
23
23
  repeatedValues
24
24
  } from "./chunk-ERSX3MKH.js";
@@ -39,11 +39,11 @@ import {
39
39
  TEMP_REF_PREFIX,
40
40
  TRACKING_PARAM_DYNAMIC_VALUES,
41
41
  campaignExcludeCompaniesSchema
42
- } from "./chunk-6HJAHLLA.js";
42
+ } from "./chunk-K6WVV74H.js";
43
43
  import "./chunk-GXDLWBOY.js";
44
- import "./chunk-WYCVJIHD.js";
44
+ import "./chunk-TEINLN64.js";
45
45
  import "./chunk-ZJWUBJYQ.js";
46
- import "./chunk-XML7AJM3.js";
46
+ import "./chunk-NE4F3FHN.js";
47
47
  import {
48
48
  apiPost
49
49
  } from "./chunk-XBOK23HI.js";
@@ -1012,4 +1012,4 @@ export {
1012
1012
  leadFormsCommand,
1013
1013
  trackingParamsPayload
1014
1014
  };
1015
- //# sourceMappingURL=write-commands-CLJOD2XF.js.map
1015
+ //# sourceMappingURL=write-commands-CE4FIQ6Y.js.map
@@ -27,15 +27,15 @@ Full guide: __tooling__/docs/tools/baker/ads-x.md`
27
27
  subCommands: {
28
28
  accounts: () => import("./accounts-5QDKBZMH.js").then((m) => m.accountsCommand),
29
29
  funding: () => import("./funding-NYO65IMT.js").then((m) => m.fundingCommand),
30
- campaigns: () => import("./campaigns-7QDDWZ76.js").then((m) => m.campaignsCommand),
31
- "line-items": () => import("./line-items-3ZFFZCNH.js").then((m) => m.lineItemsCommand),
32
- "promoted-tweets": () => import("./promoted-tweets-AU3XF3JD.js").then((m) => m.promotedTweetsCommand),
30
+ campaigns: () => import("./campaigns-V3SWBM4E.js").then((m) => m.campaignsCommand),
31
+ "line-items": () => import("./line-items-J7PXJHMD.js").then((m) => m.lineItemsCommand),
32
+ "promoted-tweets": () => import("./promoted-tweets-MCMKPIHM.js").then((m) => m.promotedTweetsCommand),
33
33
  tweets: () => import("./tweets-ATP3FQAC.js").then((m) => m.tweetsCommand),
34
34
  cards: () => import("./cards-4477BFEV.js").then((m) => m.cardsCommand),
35
- draft: () => import("./draft-CRE2Y24G.js").then((m) => m.draftCommand),
35
+ draft: () => import("./draft-WWWKSEEE.js").then((m) => m.draftCommand),
36
36
  media: () => import("./media-6CQYG4UY.js").then((m) => m.mediaCommand),
37
37
  audiences: () => import("./audiences-HFRVIE2X.js").then((m) => m.audiencesCommand),
38
- "targeting-criteria": () => import("./targeting-criteria-5UUESFWC.js").then((m) => m.targetingCriteriaCommand),
38
+ "targeting-criteria": () => import("./targeting-criteria-VRI7V6C5.js").then((m) => m.targetingCriteriaCommand),
39
39
  "targeting-constants": () => import("./targeting-constants-XJ2VOW7K.js").then((m) => m.targetingConstantsCommand),
40
40
  "active-entities": () => import("./active-entities-YUSOUR5M.js").then((m) => m.activeEntitiesCommand),
41
41
  stats: () => import("./stats-NNXZMPZR.js").then((m) => m.statsCommand)
@@ -44,4 +44,4 @@ Full guide: __tooling__/docs/tools/baker/ads-x.md`
44
44
  export {
45
45
  xCommand
46
46
  };
47
- //# sourceMappingURL=x-EBKLJJPJ.js.map
47
+ //# sourceMappingURL=x-YXABYM5U.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koda-sl/baker-cli",
3
- "version": "0.447.0-dev.f5788a631",
3
+ "version": "0.448.0-dev.0d67e41b9",
4
4
  "description": "AI-agent-first CLI for interacting with Baker, including the Baker creative canvas.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/flows/add.ts"],"sourcesContent":["/**\n * `add-node` and `add-side-effect`: emit a valid skeleton and splice it in.\n *\n * The point is not to save typing — it is that the skeleton is right. A node\n * needs a fresh UUID, an explicit `condition: null`, the correct `nodeData`\n * discriminator, and — for a widget — `form.external: null` rather than an\n * invented resource. A side effect needs `encryptedConfig: null` and no\n * `oauthProviderId` key at all. Every one of those is a rule the flow-builder\n * skill used to spend prose on, and each was a real defect when got wrong.\n *\n * Deliberately scoped to creating the skeleton. Copy, conditions, autofill and\n * the `ai` field stay hand-edited: they are judgement, and a flag-based API for\n * them would be worse than JSON.\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport { type FlowConfigStatus, flowCatalogEntry, flowCatalogTypes, flowNodeTriggers } from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport {\n flowDataPath,\n isUsableStepNameKey,\n readFlowTree,\n requestFlowInputCall,\n stepNameKey,\n walkNodes,\n writeFlowTree,\n} from \"./shared.ts\";\n\ntype AnyRecord = Record<string, unknown>;\n\nfunction unknownType(kind: \"node\" | \"side-effect\", type: string): never {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: `No ${kind} type \"${type}\".`,\n fix: `Known types: ${flowCatalogTypes(kind).join(\", \")}. See: baker flows schema ${kind}`,\n },\n });\n process.exit(1);\n}\n\n/** Replace the catalog's `<placeholder>` strings with real values where we have them. */\nfunction concrete(skeleton: AnyRecord, replacements: Record<string, unknown>): AnyRecord {\n return { ...structuredClone(skeleton), ...replacements };\n}\n\n/**\n * Whether this name can be a step in this form, and why not when it cannot.\n *\n * Both answers are about the same fact: the name becomes a constant in the\n * form's generated `_query.ts` (`export const <KEY> = \"<node id>\";`), and\n * `flow-typed.mjs` writes it without checking either that it parses or that no\n * other step already produced it. So both failures land on a generated file\n * rather than on the name that caused them — one as a syntax error, one as\n * `Duplicate flow node name` — and `_query.ts` stops regenerating for the whole\n * form. A name is minted once, here, which makes here the only cheap place to\n * say so.\n *\n * Returns `null` when the name is fine.\n */\nexport function stepNameRefusal(nodes: readonly AnyRecord[], name: string): { message: string; fix: string } | null {\n const key = stepNameKey(name);\n if (!isUsableStepNameKey(key)) {\n return {\n message: `\"${name}\" cannot be a step name: it becomes the constant \\`${key || \"(empty)\"}\\`, which is not a valid identifier.`,\n fix: 'A step name becomes `export const <NAME> = …` in the form\\'s generated code, so it must start with a letter and hold only letters, digits, spaces and dashes. Try \"Your Details\" rather than \"1. Your details\".',\n };\n }\n const clash = nodes.find((node) => typeof node.name === \"string\" && stepNameKey(node.name) === key);\n if (!clash) return null;\n return {\n message: `This form already has a step named \"${clash.name}\", which collides with \"${name}\".`,\n fix: `Both become the constant \\`${key}\\`, and the form's generated code cannot hold it twice. Pick a name that differs by more than case, spacing or punctuation.`,\n };\n}\n\nregisterSchema({\n command: \"flows.add-node\",\n description:\n \"Add a step to a form with a valid skeleton — fresh UUID, explicit condition, correct nodeData discriminator, and form.external:null for a widget. Author its copy and conditions afterwards by editing _data.json.\",\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n type: { type: \"string\", description: \"Node type (see: baker flows schema node)\", required: true },\n name: { type: \"string\", description: \"Step name — unique, Title Case\", required: true },\n parent: { type: \"string\", description: \"Parent node id. Omit to append to the root's children.\", required: false },\n },\n});\n\nexport const addNodeCommand = defineCommand({\n meta: {\n name: \"add-node\",\n description:\n 'Add a step to a form, with the skeleton its type requires. Example: baker flows add-node contact --type customForm --name \"Contact Info\"',\n },\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n type: { type: \"string\", description: \"Node type\", required: true },\n name: { type: \"string\", description: \"Step name — unique, Title Case\", required: true },\n parent: { type: \"string\", description: \"Parent node id (default: the root)\" },\n },\n run: ({ args }) => {\n const slug = String(args.slug);\n const type = String(args.type);\n // Trimmed before anything reads it, because the generator does not trim:\n // ` Contact Info ` becomes the constant `_CONTACT_INFO_`, which is legal,\n // permanent, and not what anyone typed.\n const name = String(args.name).trim();\n const entry = flowCatalogEntry(\"node\", type) ?? unknownType(\"node\", type);\n\n const tree = readFlowTree(slug);\n const nodes = walkNodes(tree);\n\n const refusal = stepNameRefusal(nodes, name);\n if (refusal) {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: refusal.message.replace(\"This form\", `\"${slug}\"`),\n fix: refusal.fix,\n },\n });\n process.exit(1);\n }\n\n const parent = args.parent ? nodes.find((node) => node.id === String(args.parent)) : tree;\n if (!parent) {\n writeJson({\n ok: false,\n error: {\n code: \"NOT_FOUND\",\n message: `No node with id \"${args.parent}\" in \"${slug}\".`,\n fix: `Nodes in this form: ${nodes.map((node) => `${node.id} (${node.name})`).join(\", \")}`,\n },\n });\n process.exit(1);\n }\n\n const node = concrete(entry.skeleton, { id: randomUUID(), name });\n if (!Array.isArray(parent.children)) parent.children = [];\n (parent.children as AnyRecord[]).push(node);\n writeFlowTree(slug, tree);\n\n writeJson({\n ok: true,\n data: { slug, nodeId: node.id, type, parentId: parent.id ?? null, path: flowDataPath(slug) },\n hints: [\n `Now fill in this step's \\`ai\\` field and its copy by editing ${flowDataPath(slug)}.`,\n // Said on every step added, because the moment a Form's shape changes\n // is the moment its outcome can move — and a Form nobody named an\n // outcome for reports zero conversions rather than an error.\n `Say what this Form counts before you finish: \\`baker analytics conversions --flow ${slug}\\` lists every ending already spelled as an event key, including this step's. Nothing in _data.json decides it.`,\n ...(entry.owners?.[\"nodeData.form.external\"] === \"request_flow_input\"\n ? [\n `Pick this ${type} step's resource: ${requestFlowInputCall(slug, pendingItem(\"node\", String(node.id), type))}.`,\n ]\n : []),\n ...(entry.gotcha ? [entry.gotcha] : []),\n ],\n });\n },\n});\n\n/**\n * The `triggerId` a side effect on this step has to carry.\n *\n * This is the one field on a side effect that is decided by its STEP rather\n * than by its own type, and getting it wrong is silent in every direction:\n * `fireSideEffects` filters on `triggerId` equality, so a mismatch means the\n * side effect never runs — no error, no log, nothing half-written. Every\n * validator in the repo passes, because the file is valid; it just does nothing.\n *\n * Taking the skeleton's default was that failure. `SIDE_EFFECT_ENVELOPE` carries\n * `customForm.onFormSubmitted`, which is right for a `customForm` step and wrong\n * for the five widget types that raise an id of their own — so the command that\n * exists to emit a skeleton the agent cannot get wrong emitted a dead side\n * effect on any booking or embedded-form step.\n */\nexport type TriggerChoice = { ok: true; triggerId: string } | { ok: false; message: string; fix: string };\n\nexport function resolveTrigger(node: AnyRecord, requested: string | undefined): TriggerChoice {\n const triggers = flowNodeTriggers(node.nodeData);\n const where = `Step \"${String(node.name ?? node.id)}\"${triggers.type ? ` (a ${triggers.type} step)` : \"\"}`;\n const raises = triggers.available.length > 0 ? `It raises: ${triggers.available.join(\", \")}.` : (triggers.why ?? \"\");\n const no = (message: string, fix: string): TriggerChoice => ({ ok: false, message, fix });\n\n // A node type the table does not cover is a table that has fallen behind, not\n // a form that is wrong — so an explicit trigger is taken at its word there.\n // Refusing instead would let a stale table reject a form the engine handles.\n if (!triggers.known) {\n return requested\n ? { ok: true, triggerId: requested }\n : no(`${where} is not a node type this command knows, so --trigger is required.`, triggers.why ?? \"\");\n }\n\n if (requested) {\n return triggers.available.includes(requested)\n ? { ok: true, triggerId: requested }\n : no(\n `${where} never raises \\`${requested}\\`, so a side effect carrying it would be written, pass every check, and never run.`,\n raises,\n );\n }\n\n return triggers.completion\n ? { ok: true, triggerId: triggers.completion }\n : no(`${where} has no trigger a side effect can answer.`, raises);\n}\n\n/**\n * The first `se-{type}-{n}` nobody is using.\n *\n * Counting the same-type side effects instead was wrong whenever the numbering\n * had a gap — a form holding `se-hubspotForm-1` and `se-hubspotForm-3`, or one\n * where `se-meta-1` was deleted and `se-meta-2` left behind. The count then\n * names an id that already exists and the command refuses, which is the one\n * outcome a skeleton-minting command should never produce for a form it can see\n * in full.\n */\nexport function freeSideEffectId(type: string, taken: ReadonlySet<string>): string {\n for (let n = 1; ; n++) {\n const candidate = `se-${type}-${n}`;\n if (!taken.has(candidate)) return candidate;\n }\n}\n\n/**\n * How the confidential half of a new side effect gets filled. HubSpot is the\n * one destination the agent can wire itself; the rest go to the user's card.\n */\n/** The one row `requestFlowInputCall` needs, for an item this command just added unconfigured. */\nfunction pendingItem(\n target: \"node\" | \"sideEffect\",\n nodeId: string,\n kind: string,\n sideEffectId?: string,\n): FlowConfigStatus {\n return {\n target,\n nodeId,\n kind,\n status: `${kind} — not configured`,\n needsInput: true,\n ...(sideEffectId ? { sideEffectId } : {}),\n };\n}\n\nfunction configureHints(slug: string, nodeId: string, id: string, type: string, needsCard: boolean): string[] {\n if (!needsCard) return [];\n return [\n `Configure it: ${requestFlowInputCall(slug, pendingItem(\"sideEffect\", nodeId, type, id))}. Read the destination off that call's result.`,\n ];\n}\n\nregisterSchema({\n command: \"flows.add-side-effect\",\n description:\n \"Add a side effect to a step with a valid skeleton — encryptedConfig:null for a CRM, a tagIds slot for a pixel, and no oauthProviderId key. Configure the confidential half with request_flow_input afterwards.\",\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n node: { type: \"string\", description: \"Id of the step that fires it\", required: true },\n type: { type: \"string\", description: \"Side-effect type (see: baker flows schema side-effect)\", required: true },\n id: { type: \"string\", description: \"Side-effect id. Defaults to se-{type}-{n}.\", required: false },\n trigger: {\n type: \"string\",\n description:\n \"triggerId. Defaults to the moment the step named by --node completes, which is a different id per node type. Pass this only for a non-completion moment (a HubSpot form's onFormReady, a Calendly page view, one of several iframe events); an id the step never raises is refused.\",\n required: false,\n },\n },\n});\n\nexport const addSideEffectCommand = defineCommand({\n meta: {\n name: \"add-side-effect\",\n description:\n \"Add a side effect to a step, with the skeleton its type requires. Example: baker flows add-side-effect contact --node <id> --type googleSpreadsheet\",\n },\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n node: { type: \"string\", description: \"Id of the step that fires it\", required: true },\n type: { type: \"string\", description: \"Side-effect type\", required: true },\n id: { type: \"string\", description: \"Side-effect id (default se-{type}-{n})\" },\n trigger: {\n type: \"string\",\n description: \"triggerId, for a non-completion moment. Default: whatever the step named by --node raises\",\n },\n },\n run: ({ args }) => {\n const slug = String(args.slug);\n const type = String(args.type);\n const entry = flowCatalogEntry(\"side-effect\", type) ?? unknownType(\"side-effect\", type);\n\n const tree = readFlowTree(slug);\n const nodes = walkNodes(tree);\n const node = nodes.find((candidate) => candidate.id === String(args.node));\n if (!node) {\n writeJson({\n ok: false,\n error: {\n code: \"NOT_FOUND\",\n message: `No node with id \"${args.node}\" in \"${slug}\".`,\n fix: `Nodes in this form: ${nodes.map((candidate) => `${candidate.id} (${candidate.name})`).join(\", \")}`,\n },\n });\n process.exit(1);\n }\n\n if (!Array.isArray(node.sideEffects)) node.sideEffects = [];\n const existing = node.sideEffects as AnyRecord[];\n const takenIds = new Set(\n nodes.flatMap((n) => ((n.sideEffects as AnyRecord[] | undefined) ?? []).map((se) => String(se?.id ?? \"\"))),\n );\n const id = args.id ? String(args.id) : freeSideEffectId(type, takenIds);\n\n // Only an id the caller chose can still collide — the generated one is free\n // by construction.\n if (takenIds.has(id)) {\n writeJson({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: `\"${slug}\" already has a side effect with id \"${id}\".`,\n fix: `Drop --id to be given a free one (${freeSideEffectId(type, takenIds)}), or pick another.`,\n },\n });\n process.exit(1);\n }\n\n const trigger = resolveTrigger(node, args.trigger ? String(args.trigger) : undefined);\n if (!trigger.ok) {\n writeJson({\n ok: false,\n error: { code: \"VALIDATION_ERROR\", message: trigger.message, ...(trigger.fix ? { fix: trigger.fix } : {}) },\n });\n process.exit(1);\n }\n const triggerId = trigger.triggerId;\n\n const sideEffect = concrete(entry.skeleton, { id, triggerId });\n existing.push(sideEffect);\n writeFlowTree(slug, tree);\n\n const needsUser = Object.entries(entry.owners ?? {}).filter(([, owner]) => owner !== \"agent\");\n writeJson({\n ok: true,\n data: { slug, nodeId: node.id, sideEffectId: id, type, triggerId, path: flowDataPath(slug) },\n hints: [\n `Fires on \\`${triggerId}\\` — the moment \"${String(node.name ?? node.id)}\" raises. A side effect only runs when its triggerId is the one its own step raises, so this is set from the step, never from the side-effect type.`,\n // A pixel side effect is the thing most often mistaken for \"setting the\n // conversion\". It tells the ad platform; it tells Baker nothing, and a\n // Form can fire every pixel it has while every Baker report says it\n // converted nobody.\n ...(needsUser.some(([, owner]) => owner === \"tags\")\n ? [\n `This reports the conversion to ${type}. It does NOT make Baker count anything: what Baker counts is a named event, set with \\`baker analytics conversions --flow ${slug}\\`. Do both — they are two different systems asked the same question.`,\n ]\n : []),\n ...configureHints(\n slug,\n String(node.id),\n id,\n type,\n needsUser.some(([, owner]) => owner === \"request_flow_input\"),\n ),\n ...(needsUser.some(([, owner]) => owner === \"tags\")\n ? [\n \"Fill `tagIds` with a real ref from `baker tags list`, or stage the tag first with the `tags` skill. Never invent one.\",\n ]\n : []),\n ...(entry.gotcha ? [entry.gotcha] : []),\n ],\n });\n },\n});\n"],"mappings":"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","names":["node"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/research/advertisers.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport { apiPost } from \"../../client.ts\";\nimport { buildResearchQueryContext, warnDefaults } from \"../../geo-context.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { advertisersHints } from \"./hints.ts\";\nimport {\n handleResearchError,\n RESEARCH_DATA_NOTE,\n writeResearchHints,\n writeResearchJson,\n writeResearchOutput,\n} from \"./output.ts\";\n\nregisterSchema({\n command: \"research.advertisers\",\n description:\n 'Returns a ranked list of domains competing for one keyword in Google, with avg SERP position, relevance rating, estimated traffic value and visibility — domain economics, not ad copy. Despite the name it returns no headlines, descriptions or creative of any kind; for a competitor\\'s actual ad copy use `baker winning-ads content <adId>` (Meta/LinkedIn only — Google SERP ad copy is not available anywhere in Baker). Start here: `baker research advertisers \"<keyword>\" --location <cc> --language <code>` to size up who owns a term. If --location and --language are omitted, defaults to United States (us) and English (en). The response includes a query_context object showing which location/language were used.',\n args: {\n keyword: {\n type: \"string\",\n description:\n \"Keyword to search (positional). One search term, not a brand or a domain — this is a SERP query, not an advertiser lookup\",\n required: true,\n },\n location: {\n type: \"string\",\n description:\n \"Country code (us, uk, es, de...) or DataForSEO location code. Defaults to us (United States) if omitted — always set this for non-US markets\",\n required: false,\n },\n language: {\n type: \"string\",\n description:\n \"Language code or name (en, es, spanish...). Defaults to en (English) if omitted — always set this for non-English markets\",\n required: false,\n },\n limit: { type: \"string\", description: \"Max results (default: 20, max: 100)\", required: false },\n \"no-cache\": { type: \"boolean\", description: \"Skip server cache, hit API directly\", required: false },\n },\n});\n\ninterface Advertiser {\n domain: string;\n avg_position: number;\n rating: number;\n etv: number;\n visibility: number;\n}\n\nconst FIELDS: Record<string, string> = {\n domain: \"Competing domain (no ad copy is returned — see hints)\",\n avg_position: \"Average SERP position (1 = top)\",\n rating: \"Domain relevance rating (0-100)\",\n etv: \"Estimated traffic value (USD)\",\n visibility: \"SERP visibility score (0-1)\",\n};\n\nexport const advertisersCommand = defineCommand({\n meta: {\n name: \"advertisers\",\n description: `Domains competing for a keyword in Google SERPs, with position, relevance, traffic value and visibility. Returns NO ad copy — for a competitor's headlines and body copy use \\`baker winning-ads content <adId>\\` (Meta/LinkedIn only).\n\nExamples:\n baker research advertisers \"running shoes\"\n baker research advertisers \"crm software\" --location uk --limit 10\n baker research advertisers \"zapatos\" --location es --language spanish`,\n },\n args: {\n keyword: { type: \"positional\", description: \"Keyword to search\", required: true },\n location: { type: \"string\", description: \"Country code or location code (default: us)\", required: false },\n language: { type: \"string\", description: \"Language code or name (default: en)\", required: false },\n limit: { type: \"string\", description: \"Max results (default: 20, max: 100)\", required: false },\n output: { type: \"string\", description: \"Format: json|csv|md|jsonl\", required: false, default: \"json\" },\n \"no-cache\": { type: \"boolean\", description: \"Skip server cache, hit API directly\", required: false },\n },\n run: async ({ args }) => {\n const keyword = args.keyword as string;\n const location = (args.location as string) || undefined;\n const language = (args.language as string) || undefined;\n const limit = args.limit ? Number(args.limit) : undefined;\n const skipCache = args[\"no-cache\"] ? true : undefined;\n const queryContext = buildResearchQueryContext(location, language);\n\n try {\n const data = await apiPost<Advertiser[]>(\"/api/research/advertisers\", {\n keyword,\n location,\n language,\n limit,\n skipCache,\n });\n\n warnDefaults(queryContext);\n const format = (args.output as string) || \"json\";\n const hints = advertisersHints(data.length, queryContext);\n if (format !== \"json\") {\n writeResearchOutput(data as unknown as Array<Record<string, unknown>>, format);\n writeResearchHints(hints, format);\n return;\n }\n writeResearchJson({\n ok: true,\n data,\n fields: FIELDS,\n note: RESEARCH_DATA_NOTE,\n query_context: queryContext,\n hints,\n });\n } catch (err) {\n handleResearchError(err);\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAa9B,eAAe;AAAA,EACb,SAAS;AAAA,EACT,aACE;AAAA,EACF,MAAM;AAAA,IACJ,SAAS;AAAA,MACP,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,IACA,OAAO,EAAE,MAAM,UAAU,aAAa,uCAAuC,UAAU,MAAM;AAAA,IAC7F,YAAY,EAAE,MAAM,WAAW,aAAa,uCAAuC,UAAU,MAAM;AAAA,EACrG;AACF,CAAC;AAUD,IAAM,SAAiC;AAAA,EACrC,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,YAAY;AACd;AAEO,IAAM,qBAAqB,cAAc;AAAA,EAC9C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMf;AAAA,EACA,MAAM;AAAA,IACJ,SAAS,EAAE,MAAM,cAAc,aAAa,qBAAqB,UAAU,KAAK;AAAA,IAChF,UAAU,EAAE,MAAM,UAAU,aAAa,+CAA+C,UAAU,MAAM;AAAA,IACxG,UAAU,EAAE,MAAM,UAAU,aAAa,uCAAuC,UAAU,MAAM;AAAA,IAChG,OAAO,EAAE,MAAM,UAAU,aAAa,uCAAuC,UAAU,MAAM;AAAA,IAC7F,QAAQ,EAAE,MAAM,UAAU,aAAa,6BAA6B,UAAU,OAAO,SAAS,OAAO;AAAA,IACrG,YAAY,EAAE,MAAM,WAAW,aAAa,uCAAuC,UAAU,MAAM;AAAA,EACrG;AAAA,EACA,KAAK,OAAO,EAAE,KAAK,MAAM;AACvB,UAAM,UAAU,KAAK;AACrB,UAAM,WAAY,KAAK,YAAuB;AAC9C,UAAM,WAAY,KAAK,YAAuB;AAC9C,UAAM,QAAQ,KAAK,QAAQ,OAAO,KAAK,KAAK,IAAI;AAChD,UAAM,YAAY,KAAK,UAAU,IAAI,OAAO;AAC5C,UAAM,eAAe,0BAA0B,UAAU,QAAQ;AAEjE,QAAI;AACF,YAAM,OAAO,MAAM,QAAsB,6BAA6B;AAAA,QACpE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAED,mBAAa,YAAY;AACzB,YAAM,SAAU,KAAK,UAAqB;AAC1C,YAAM,QAAQ,iBAAiB,KAAK,QAAQ,YAAY;AACxD,UAAI,WAAW,QAAQ;AACrB,4BAAoB,MAAmD,MAAM;AAC7E,2BAAmB,OAAO,MAAM;AAChC;AAAA,MACF;AACA,wBAAkB;AAAA,QAChB,IAAI;AAAA,QACJ;AAAA,QACA,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,eAAe;AAAA,QACf;AAAA,MACF,CAAC;AAAA,IACH,SAAS,KAAK;AACZ,0BAAoB,GAAG;AAAA,IACzB;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/flows/connect.ts"],"sourcesContent":["/**\n * `connect`: fill a Form's step or destination yourself once you know which\n * resource is meant, instead of parking the turn on the chat's picker card.\n *\n * Three sources, one write:\n * - `--hubspot-form <id>` — a HubSpot form as a `hubspotForm` destination.\n * - `--resource <id>` / `--new-sheet <title>` / nothing — Calendly, SavvyCal\n * and GoHighLevel steps; Google Sheets, Pipedrive and GoHighLevel\n * destinations. The backend reads the resource through the company's\n * connected account and answers with exactly what the card would write,\n * sealed under the flow key where it is a destination — so this command\n * writes ciphertext it cannot read.\n * - `--same-as <slug>:<id>` — the destination or step another Form already\n * has, copied as-is. No platform is asked anything.\n *\n * `request_flow_input` stays the path when nothing is connected, when a\n * spreadsheet has never been chosen, or when the agent cannot tell which\n * resource is meant.\n */\n\nimport {\n FLOW_AGENT_DESTINATION_KINDS,\n FLOW_PROVIDER_TYPE,\n type FlowAgentDestinationKind,\n type FlowsResolveResponse,\n type HubspotFormsDestinationResponse,\n} from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi } from \"../actions/shared.ts\";\nimport { hubspotRefusal } from \"../hubspot/refusal.ts\";\nimport { collectSideEffects, readFlowTree, walkNodes, writeFlowTree } from \"./shared.ts\";\n\ntype AnyRecord = Record<string, unknown>;\n\ntype Sealed = { oauthProviderId: string; encryptedConfig: string };\n\ntype Attached = { ok: true; nodeId: string; sideEffectId: string } | { ok: false; message: string; fix: string };\n\ntype Stepped = { ok: true; nodeId: string; type: string } | { ok: false; message: string; fix: string };\n\nconst STEP_KINDS = new Set([\"calendly\", \"savvycal\", \"highlevel\", \"highlevelForm\", \"hubspot\", \"hubspotMeeting\"]);\nconst OAUTH_SIDE_EFFECTS = new Set([\"hubspotForm\", \"googleSpreadsheet\", \"pipedrive\", \"goHighlevelContact\"]);\n\n/**\n * Put the sealed destination on the side effect `named` picks — or, with no\n * name, on the form's only one of `type`. Mutates `tree`; the caller writes it.\n */\nexport function attachDestination(\n tree: AnyRecord,\n named: string | undefined,\n sealed: Sealed,\n type = \"hubspotForm\",\n): Attached {\n const ofType = collectSideEffects(tree).filter((entry) => entry.sideEffect.type === type);\n const inventory = ofType.map((entry) => String(entry.sideEffect.id)).join(\", \") || \"none\";\n const chosen = named\n ? collectSideEffects(tree).find((entry) => entry.sideEffect.id === named)\n : ofType.length === 1\n ? ofType[0]\n : undefined;\n if (!chosen) {\n return {\n ok: false,\n message: named\n ? `No side effect with id \"${named}\" in this form.`\n : `This form has ${ofType.length} ${type} side effects — name one with --side-effect <id>.`,\n fix:\n ofType.length === 0\n ? `Add one first: baker flows add-side-effect <slug> --node <stepId> --type ${type}`\n : `${type} side effects in this form: ${inventory}`,\n };\n }\n if (chosen.sideEffect.type !== type) {\n return {\n ok: false,\n message: `Side effect \"${named}\" is a ${String(chosen.sideEffect.type)}, not a ${type}.`,\n fix: `${type} side effects in this form: ${inventory}`,\n };\n }\n chosen.sideEffect.oauthProviderId = sealed.oauthProviderId;\n chosen.sideEffect.encryptedConfig = sealed.encryptedConfig;\n return { ok: true, nodeId: String(chosen.node.id), sideEffectId: String(chosen.sideEffect.id) };\n}\n\nfunction isSet(value: unknown): boolean {\n return typeof value === \"string\" && value.length > 0;\n}\n\n/**\n * Every side effect of `type` that still lacks its account or its config — what\n * `--all` wires. One already wired is left alone, so re-running after a partial\n * setup never repoints a destination someone chose.\n */\nexport function unwiredSideEffects(tree: AnyRecord, type: string): string[] {\n return collectSideEffects(tree)\n .filter(({ sideEffect }) => sideEffect.type === type)\n .filter(({ sideEffect }) => !isSet(sideEffect.oauthProviderId) || !isSet(sideEffect.encryptedConfig))\n .map(({ sideEffect }) => String(sideEffect.id));\n}\n\nexport function unwiredHubspotForms(tree: AnyRecord): string[] {\n return unwiredSideEffects(tree, \"hubspotForm\");\n}\n\nfunction stepType(node: AnyRecord | undefined): string | undefined {\n const type = (node?.nodeData as AnyRecord | undefined)?.type;\n return typeof type === \"string\" ? type : undefined;\n}\n\nfunction findStep(tree: AnyRecord, nodeId: string): AnyRecord | undefined {\n return walkNodes(tree).find((node) => node.id === nodeId);\n}\n\n/** Write a picked resource into a step's `form.external`, keeping what the step autofills. */\nexport function attachStep(tree: AnyRecord, nodeId: string, external: AnyRecord): Stepped {\n const node = findStep(tree, nodeId);\n const type = stepType(node);\n if (!node || !type) {\n return {\n ok: false,\n message: `No step with id \"${nodeId}\" in this form.`,\n fix: \"Step ids: baker flows show <slug>\",\n };\n }\n if (!STEP_KINDS.has(type)) {\n return {\n ok: false,\n message: `Step \"${nodeId}\" is a ${type}, which embeds nothing from another platform.`,\n fix: \"Only calendly, savvycal, highlevel, highlevelForm, hubspot and hubspotMeeting steps take a resource.\",\n };\n }\n const nodeData = node.nodeData as AnyRecord;\n const form = (nodeData.form as AnyRecord | undefined) ?? {};\n nodeData.form = { autofilledFields: {}, ...form, external };\n return { ok: true, nodeId, type };\n}\n\n/** Steps of `type` with nothing picked yet — what `--all` fills for a step kind. */\nexport function unpickedSteps(tree: AnyRecord, type: string): string[] {\n return walkNodes(tree)\n .filter((node) => stepType(node) === type)\n .filter((node) => ((node.nodeData as AnyRecord).form as AnyRecord | undefined)?.external == null)\n .map((node) => String(node.id));\n}\n\n/**\n * Give `targetId` exactly the destination (or picked resource) `sourceId`\n * already has in another Form. Only between the same type: a sheet's sealed\n * config means nothing to Pipedrive.\n */\nexport function copyDestination(source: AnyRecord, sourceId: string, target: AnyRecord, targetId: string): Stepped {\n const from = collectSideEffects(source).find((entry) => entry.sideEffect.id === sourceId);\n if (from) {\n const type = String(from.sideEffect.type);\n if (!isSet(from.sideEffect.oauthProviderId) || !isSet(from.sideEffect.encryptedConfig)) {\n return {\n ok: false,\n message: `\"${sourceId}\" is not wired itself — nothing to copy.`,\n fix: \"Copy from one that is.\",\n };\n }\n const attached = attachDestination(\n target,\n targetId,\n {\n oauthProviderId: String(from.sideEffect.oauthProviderId),\n encryptedConfig: String(from.sideEffect.encryptedConfig),\n },\n type,\n );\n return attached.ok ? { ok: true, nodeId: attached.nodeId, type } : attached;\n }\n const step = findStep(source, sourceId);\n const external = ((step?.nodeData as AnyRecord | undefined)?.form as AnyRecord | undefined)?.external;\n if (!step || external == null || typeof external !== \"object\") {\n return {\n ok: false,\n message: `No wired side effect or picked step \"${sourceId}\" in the source form.`,\n fix: \"Ids: baker flows show <slug>\",\n };\n }\n const targetType = stepType(findStep(target, targetId));\n if (targetType !== stepType(step)) {\n return {\n ok: false,\n message: `\"${sourceId}\" is a ${String(stepType(step))} and \"${targetId}\" a ${String(targetType)} — copy only between the same type.`,\n fix: \"Pick a source of the same type.\",\n };\n }\n return attachStep(target, targetId, structuredClone(external as AnyRecord));\n}\n\nfunction refuse(\n message: string,\n fix: string | { action: string; explanation: string },\n code = \"VALIDATION_ERROR\",\n): never {\n writeJson({ ok: false, error: { code, message, fix } });\n process.exit(1);\n}\n\ntype Target = { kind: string; on: \"node\" | \"sideEffect\"; ids: string[] };\n\nfunction allTargets(tree: AnyRecord, kind: string | undefined): Target {\n if (!kind) refuse(\"--all needs --type <kind> to know what to wire.\", \"e.g. --all --type googleSpreadsheet\");\n const on = STEP_KINDS.has(kind) ? \"node\" : \"sideEffect\";\n const ids = on === \"node\" ? unpickedSteps(tree, kind) : unwiredSideEffects(tree, kind);\n if (ids.length === 0) {\n refuse(\n `Every ${kind} in this Form is already wired.`,\n \"Repoint one by naming it with --node / --side-effect instead of --all.\",\n );\n }\n return { kind, on, ids };\n}\n\nfunction onlyOfType(tree: AnyRecord, type: string): string {\n const probe = attachDestination(tree, undefined, { oauthProviderId: \"\", encryptedConfig: \"\" }, type);\n if (!probe.ok) refuse(probe.message, probe.fix);\n return probe.sideEffectId;\n}\n\nfunction stepTarget(tree: AnyRecord, node: string): Target {\n const type = stepType(findStep(tree, node));\n if (!type) refuse(`No step with id \"${node}\" in this form.`, \"Step ids: baker flows show <slug>\");\n return { kind: type, on: \"node\", ids: [node] };\n}\n\nfunction sideEffectTarget(tree: AnyRecord, named: string): Target {\n const found = collectSideEffects(tree).find((entry) => entry.sideEffect.id === named);\n if (!found) refuse(`No side effect with id \"${named}\" in this form.`, \"Side-effect ids: baker flows show <slug>\");\n return { kind: String(found.sideEffect.type), on: \"sideEffect\", ids: [named] };\n}\n\n/** Which steps or side effects this call fills, resolved before any platform is asked anything. */\nexport function targetsFor(tree: AnyRecord, args: AnyRecord): Target {\n const node = typeof args.node === \"string\" ? args.node : undefined;\n const named = typeof args[\"side-effect\"] === \"string\" ? args[\"side-effect\"] : undefined;\n if ([node, named, args.all === true ? \"all\" : undefined].filter(Boolean).length > 1) {\n refuse(\"Pass one of --node, --side-effect or --all.\", \"One target per call; --all for every unwired one.\");\n }\n if (args.all === true) {\n const kind = typeof args.type === \"string\" ? args.type : args[\"hubspot-form\"] ? \"hubspotForm\" : undefined;\n return allTargets(tree, kind);\n }\n if (node) return stepTarget(tree, node);\n if (named) return sideEffectTarget(tree, named);\n if (args[\"hubspot-form\"]) return { kind: \"hubspotForm\", on: \"sideEffect\", ids: [onlyOfType(tree, \"hubspotForm\")] };\n return refuse(\n \"Name what to fill: --node <stepId>, --side-effect <id>, or --all --type <kind>.\",\n \"Ids: baker flows show <slug>\",\n );\n}\n\nasync function sealHubspotForm(formId: string): Promise<HubspotFormsDestinationResponse[\"data\"]> {\n try {\n return (await apiPost<HubspotFormsDestinationResponse>(\"/api/hubspot/forms/destination\", { formId })).data;\n } catch (err) {\n const refusal = err instanceof ApiError ? hubspotRefusal(err.code, err.message) : null;\n if (err instanceof ApiError && refusal !== null) refuse(err.message, refusal.fix, refusal.code);\n failApi(err);\n }\n}\n\nfunction isAgentKind(kind: string): kind is FlowAgentDestinationKind {\n return (FLOW_AGENT_DESTINATION_KINDS as readonly string[]).includes(kind);\n}\n\n/**\n * The refusals only the user can clear, as the call that clears them: nothing\n * connected is the connect card; two accounts is a question only when the\n * agent cannot tell which one the user means.\n */\nexport function destinationRefusal(\n kind: FlowAgentDestinationKind,\n err: ApiError,\n): { code: string; fix: string } | null {\n if (err.code === \"NOT_FOUND\" && err.message.includes(\"is connected to this company\")) {\n return {\n code: \"NOT_CONNECTED\",\n fix: `AGENT INSTRUCTION: only the user can connect it. Call request_connection with { platform: \"${FLOW_PROVIDER_TYPE[kind]}\", reason } — reason in their words — then run this again. Keep going with the rest of the task meanwhile.`,\n };\n }\n if (err.code === \"CONFLICT\" && err.message.includes(\"--account\")) {\n return {\n code: \"SEVERAL_ACCOUNTS\",\n fix: \"Pass --account <id> when the user or the brief makes clear which one; otherwise ask them which (AskUserQuestion), naming the accounts above.\",\n };\n }\n return null;\n}\n\nfunction resolveBody(kind: FlowAgentDestinationKind, args: AnyRecord): AnyRecord {\n const columns =\n typeof args.columns === \"string\"\n ? args.columns\n .split(\",\")\n .map((column) => column.trim())\n .filter(Boolean)\n : undefined;\n return {\n kind,\n ...(typeof args.account === \"string\" ? { account: args.account } : {}),\n ...(typeof args.resource === \"string\" ? { resourceId: args.resource } : {}),\n ...(typeof args.tab === \"string\" ? { tab: args.tab } : {}),\n ...(typeof args[\"new-sheet\"] === \"string\" ? { newSheet: { title: args[\"new-sheet\"], columns } } : {}),\n };\n}\n\nasync function resolveDestination(\n kind: FlowAgentDestinationKind,\n args: AnyRecord,\n): Promise<FlowsResolveResponse[\"data\"]> {\n try {\n return (await apiPost<FlowsResolveResponse>(\"/api/flows/destinations/resolve\", resolveBody(kind, args))).data;\n } catch (err) {\n const refusal = err instanceof ApiError ? destinationRefusal(kind, err) : null;\n if (err instanceof ApiError && refusal !== null) refuse(err.message, refusal.fix, refusal.code);\n failApi(err);\n }\n}\n\ntype Wired = { wired: { nodeId: string; sideEffectId?: string }[]; destination: unknown; hints: string[] };\n\nfunction applyAll(target: Target, apply: (id: string) => Stepped | Attached): Wired[\"wired\"] {\n return target.ids.map((id) => {\n const done = apply(id);\n if (!done.ok) refuse(done.message, done.fix);\n return \"sideEffectId\" in done ? { nodeId: done.nodeId, sideEffectId: done.sideEffectId } : { nodeId: done.nodeId };\n });\n}\n\nfunction sameAs(tree: AnyRecord, target: Target, ref: string): Wired {\n const [slug, id] = ref.split(\":\");\n if (!slug || !id) refuse(`--same-as takes <slug>:<id>, got \"${ref}\".`, \"e.g. --same-as madrid:se-gsheet-1\");\n const source = readFlowTree(slug);\n const wired = applyAll(target, (targetId) => copyDestination(source, id, tree, targetId));\n return { wired, destination: { sameAs: ref }, hints: [] };\n}\n\nasync function fromHubspot(tree: AnyRecord, target: Target, formId: string, slug: string): Promise<Wired> {\n if (target.kind !== \"hubspotForm\") {\n refuse(\n `--hubspot-form wires a hubspotForm side effect, not a ${target.kind}.`,\n \"A HubSpot step takes `baker hubspot forms view <id> --as-node` (or `meetings view <slug> --as-node`).\",\n );\n }\n const sealed = await sealHubspotForm(formId);\n const wired = applyAll(target, (id) => attachDestination(tree, id, sealed));\n return {\n wired,\n destination: { formGuid: sealed.formGuid, formName: sealed.formName, portalId: sealed.portalId },\n hints: [\n `Now map each step's answers onto it: baker flows map ${slug} --side-effect <id> --hubspot-form ${sealed.formGuid} --map email=<value> … --write. Field names come from \\`baker hubspot forms view ${sealed.formGuid}\\`.`,\n ],\n };\n}\n\nfunction sheetHints(slug: string, data: Extract<FlowsResolveResponse[\"data\"], { target: \"sideEffect\" }>): string[] {\n const sheet = data.destination;\n if (!sheet)\n return [`Now map the fields: baker flows map ${slug} --side-effect <id> --map <fieldKey>=<value> … --write.`];\n const columns = sheet.columns.map((column) => `${column.letter}=${column.header}`).join(\", \");\n return [\n ...(sheet.created\n ? [\n `Created \"${sheet.name}\" in the connected Google account${sheet.url ? ` (${sheet.url})` : \"\"} — tell the user where their leads will land.`,\n ]\n : []),\n columns\n ? `Columns: ${columns}. Map by letter: baker flows map ${slug} --side-effect <id> --map A=<value> … --write.`\n : `The \"${sheet.tab}\" tab has no header row. Map by letter anyway, and say which column holds what.`,\n ];\n}\n\nasync function fromPlatform(tree: AnyRecord, target: Target, args: AnyRecord, slug: string): Promise<Wired> {\n const kind = target.kind;\n if (!isAgentKind(kind)) {\n const hubspotStep = kind === \"hubspot\" || kind === \"hubspotMeeting\";\n refuse(\n `A ${kind} ${target.on === \"node\" ? \"step\" : \"side effect\"} is not something this command can fill from a platform.`,\n hubspotStep\n ? \"Write the blob from `baker hubspot forms view <id> --as-node` (or `meetings view <slug> --as-node`) into the step's form.external.\"\n : OAUTH_SIDE_EFFECTS.has(kind)\n ? \"Pass --hubspot-form <formId>.\"\n : \"It takes typed credentials only the user has: request_flow_input.\",\n );\n }\n const data = await resolveDestination(kind, args);\n if (data.target === \"node\") {\n const wired = applyAll(target, (id) => attachStep(tree, id, data.external));\n return {\n wired,\n destination: { name: data.name, account: data.account },\n hints: [`Picked \"${data.name}\". Autofill its fields from earlier answers in the step's form.autofilledFields.`],\n };\n }\n const sealed = { oauthProviderId: data.oauthProviderId, encryptedConfig: data.encryptedConfig };\n const wired = applyAll(target, (id) => attachDestination(tree, id, sealed, kind));\n return {\n wired,\n destination: data.destination ? { ...data.destination, account: data.account } : { account: data.account },\n hints: sheetHints(slug, data),\n };\n}\n\nregisterSchema({\n command: \"flows.connect\",\n description:\n \"Fill a Form's step or destination yourself — no card for the user. Steps: Calendly, SavvyCal, GoHighLevel calendar/form (`--node <id> --resource <id>`). Destinations: HubSpot form (`--hubspot-form <id>`), Google Sheets (`--resource <spreadsheetId>` or `--new-sheet <title> --columns …`), Pipedrive and GoHighLevel contact (no resource: the connected account is the destination). `--same-as <slug>:<id>` copies what another Form already has. `--all --type <kind>` fills every unwired one of that kind at once. Ids come from `baker flows options <kind>`. Fall back to request_flow_input only when nothing is connected, the sheet was never chosen, or several resources plausibly match.\",\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n node: {\n type: \"string\",\n description: \"Step id to fill (calendly, savvycal, highlevel, highlevelForm)\",\n required: false,\n },\n \"side-effect\": { type: \"string\", description: \"Side-effect id to wire\", required: false },\n all: { type: \"boolean\", description: \"Every unwired one of --type in this Form\", required: false, default: false },\n type: { type: \"string\", description: \"The kind --all wires (e.g. googleSpreadsheet, calendly)\", required: false },\n resource: { type: \"string\", description: \"Option id from `baker flows options <kind>`\", required: false },\n \"hubspot-form\": {\n type: \"string\",\n description: \"HubSpot form id (from `baker hubspot forms list`)\",\n required: false,\n },\n \"new-sheet\": {\n type: \"string\",\n description: \"Create a Google spreadsheet with this title and wire it\",\n required: false,\n },\n columns: {\n type: \"string\",\n description: \"With --new-sheet: header row, comma-separated, from column A\",\n required: false,\n },\n tab: { type: \"string\", description: \"Google Sheets tab to append to (default: the first)\", required: false },\n \"same-as\": {\n type: \"string\",\n description: \"<slug>:<id> — copy another Form's wired destination or picked step\",\n required: false,\n },\n account: {\n type: \"string\",\n description: \"Connection id, when more than one account of the platform is connected\",\n required: false,\n },\n },\n});\n\nexport const connectCommand = defineCommand({\n meta: {\n name: \"connect\",\n description:\n 'Fill a step or destination yourself. Start here: baker flows options calendly, then baker flows connect contact --node book --resource <id>. Sheets: --side-effect se-gsheet-1 --new-sheet \"Leads\" --columns \"Name,Email\". Same as another Form: --same-as madrid:se-gsheet-1',\n },\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n node: { type: \"string\", description: \"Step id to fill\" },\n \"side-effect\": { type: \"string\", description: \"Side-effect id to wire\" },\n all: { type: \"boolean\", description: \"Every unwired one of --type\" },\n type: { type: \"string\", description: \"The kind --all wires\" },\n resource: { type: \"string\", description: \"Option id from baker flows options <kind>\" },\n \"hubspot-form\": { type: \"string\", description: \"HubSpot form id (from baker hubspot forms list)\" },\n \"new-sheet\": { type: \"string\", description: \"Create a spreadsheet with this title\" },\n columns: { type: \"string\", description: \"Header row for --new-sheet, comma-separated\" },\n tab: { type: \"string\", description: \"Sheet tab (default: the first)\" },\n \"same-as\": { type: \"string\", description: \"<slug>:<id> to copy\" },\n account: { type: \"string\", description: \"Connection id when several are connected\" },\n },\n run: async ({ args }) => {\n const slug = String(args.slug);\n const target = targetsFor(readFlowTree(slug), args);\n\n const tree = readFlowTree(slug);\n const result =\n typeof args[\"same-as\"] === \"string\"\n ? sameAs(tree, target, args[\"same-as\"])\n : typeof args[\"hubspot-form\"] === \"string\"\n ? await fromHubspot(tree, target, args[\"hubspot-form\"], slug)\n : await fromPlatform(tree, target, args, slug);\n writeFlowTree(slug, tree);\n\n writeJson({\n ok: true,\n data: {\n slug,\n kind: target.kind,\n [target.on === \"node\" ? \"steps\" : \"sideEffects\"]: result.wired,\n destination: result.destination,\n connected: true,\n },\n hints: [...result.hints, \"Staged like any other edit in this chat: it goes live when the chat is published.\"],\n });\n },\n});\n"],"mappings":"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","names":["wired"]}