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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. package/dist/{account-DTHGTZCN.js → account-AL2ZDSR7.js} +4 -4
  2. package/dist/{account-4H7QVBRK.js → account-F6MHQ64I.js} +3 -3
  3. package/dist/{account-writes-AK42HGRM.js → account-writes-ISE4U2FQ.js} +3 -3
  4. package/dist/{accounts-5RLG6BBA.js → accounts-HAFCLSR5.js} +3 -3
  5. package/dist/{accounts-6LSBBXKA.js → accounts-O5MFO3QQ.js} +5 -5
  6. package/dist/{actions-WH5C6Q7I.js → actions-P35MEMGN.js} +18 -18
  7. package/dist/{ad-group-writes-QQS4223F.js → ad-group-writes-UU5NNKSO.js} +3 -3
  8. package/dist/{ad-groups-WGPDPUI2.js → ad-groups-CGFXZNIA.js} +7 -7
  9. package/dist/{ad-writes-XE2IE4DS.js → ad-writes-NALDYWOR.js} +3 -3
  10. package/dist/{add-TRSKOIO6.js → add-5GAN6CVO.js} +5 -30
  11. package/dist/add-5GAN6CVO.js.map +1 -0
  12. package/dist/{add-BZ4QPLK4.js → add-6DTC6X5G.js} +2 -2
  13. package/dist/{ads-6UG66KA5.js → ads-C47NA2HH.js} +4 -4
  14. package/dist/{ads-BCOSQALY.js → ads-PV7GZXPR.js} +8 -8
  15. package/dist/{advertisers-OABQDELT.js → advertisers-AE75CGVE.js} +3 -3
  16. package/dist/{analytics-3YAWQF5K.js → analytics-FKCXIMPO.js} +6 -6
  17. package/dist/{analytics-BCZGSSXP.js → analytics-FPWQQGRM.js} +3 -3
  18. package/dist/{animate-AIZ3GS4J.js → animate-FWWHSYPL.js} +4 -4
  19. package/dist/{assign-O6QNAZD5.js → assign-ABN2AQ4J.js} +3 -3
  20. package/dist/{audience-size-CXPWERR3.js → audience-size-GNBJY35X.js} +3 -3
  21. package/dist/{audiences-TGD5US2M.js → audiences-VEKGLWBG.js} +3 -3
  22. package/dist/{audit-MNOQK3U4.js → audit-3VS63TBW.js} +3 -3
  23. package/dist/{autocomplete-TRCMPNW4.js → autocomplete-VS3XG3B7.js} +3 -3
  24. package/dist/{avatars-P3WX5TQP.js → avatars-EKCKHCC3.js} +4 -4
  25. package/dist/{bid-pricing-6XXSM7C2.js → bid-pricing-Q72B65AY.js} +3 -3
  26. package/dist/{brand-LXU7YNCF.js → brand-C6PFGGQN.js} +2 -2
  27. package/dist/{brief-Y4F37TH5.js → brief-UO52ZHFI.js} +10 -10
  28. package/dist/{campaign-groups-CEAM3WRO.js → campaign-groups-KFFYQPU3.js} +8 -8
  29. package/dist/{campaign-writes-D6BJAULL.js → campaign-writes-FHOS5XZY.js} +3 -3
  30. package/dist/{campaign-writes-SXLZFYF6.js → campaign-writes-SX52CJYW.js} +3 -3
  31. package/dist/{campaigns-CXOKBCPS.js → campaigns-2NHWBF5C.js} +11 -11
  32. package/dist/{campaigns-V3SWBM4E.js → campaigns-KZYZTXDS.js} +5 -5
  33. package/dist/{campaigns-YS3OGQXO.js → campaigns-X3DPCCSN.js} +7 -7
  34. package/dist/{canvas-VH3Q26TK.js → canvas-KTALW6HY.js} +14 -14
  35. package/dist/{capabilities-NZPSSS6T.js → capabilities-DJFTRJKS.js} +3 -3
  36. package/dist/{catalog-GWN3WT7J.js → catalog-Y3XADCSY.js} +6 -6
  37. package/dist/{catalogs-BRXEDE56.js → catalogs-G3YEVG6S.js} +3 -3
  38. package/dist/{chatgpt-7W75X3ER.js → chatgpt-QNUN63YS.js} +13 -13
  39. package/dist/{chats-GN3PBFX4.js → chats-D2CSDX5Q.js} +3 -3
  40. package/dist/{chunk-7J6EHOH6.js → chunk-35XWJEWH.js} +2 -2
  41. package/dist/{chunk-ORO7VAXB.js → chunk-3G3ZDLMI.js} +2 -2
  42. package/dist/{chunk-ZDNOCKKY.js → chunk-3HJLHTWP.js} +3 -12
  43. package/dist/{chunk-ZDNOCKKY.js.map → chunk-3HJLHTWP.js.map} +1 -1
  44. package/dist/{chunk-R5RIH3N5.js → chunk-3IBYKLXR.js} +2 -2
  45. package/dist/{chunk-7ED5TAFP.js → chunk-4AUMTNVB.js} +3 -3
  46. package/dist/{chunk-E4NCRGY3.js → chunk-4BQXAE7Z.js} +2 -2
  47. package/dist/{chunk-GYU7BWEN.js → chunk-4D7UBVSG.js} +3 -3
  48. package/dist/{chunk-6Y7SIP2D.js → chunk-5QGMMZFQ.js} +4 -4
  49. package/dist/{chunk-ZGTCZ6H4.js → chunk-5ZDLTE5T.js} +3 -3
  50. package/dist/{chunk-DQMZXK27.js → chunk-7YCRFMXF.js} +2 -2
  51. package/dist/{chunk-NJXNU2G6.js → chunk-7ZHMGXE2.js} +3 -3
  52. package/dist/{chunk-XTRAI6CL.js → chunk-A4LOJ2VD.js} +2 -2
  53. package/dist/{chunk-PTCIM35Y.js → chunk-AEOSAVVL.js} +2 -2
  54. package/dist/{chunk-D6744YSX.js → chunk-BAVBLIAD.js} +4 -4
  55. package/dist/{chunk-JVLAV62J.js → chunk-BY6M3TE5.js} +13 -13
  56. package/dist/{chunk-CAMX6OHF.js → chunk-CHSNHVYF.js} +4 -4
  57. package/dist/chunk-CHSNHVYF.js.map +1 -0
  58. package/dist/{chunk-QVJDPOEB.js → chunk-CSYSX4D2.js} +2 -2
  59. package/dist/{chunk-ZJLETAOO.js → chunk-DWHIOO7E.js} +12 -106
  60. package/dist/chunk-DWHIOO7E.js.map +1 -0
  61. package/dist/{chunk-IYU4X5A7.js → chunk-HBTF25YG.js} +3 -3
  62. package/dist/{chunk-P5T7OZKV.js → chunk-HQSCJYZO.js} +2 -2
  63. package/dist/{chunk-ESB5DLIP.js → chunk-IR6D7K4H.js} +2 -2
  64. package/dist/{chunk-PVUZWHNQ.js → chunk-J4LSFZCF.js} +7 -7
  65. package/dist/{chunk-XQIKDODN.js → chunk-JQJDXPCO.js} +2 -2
  66. package/dist/{chunk-FVF5SXTZ.js → chunk-JWI6GIFJ.js} +2 -2
  67. package/dist/{chunk-XVOI4BIS.js → chunk-KHRXPQID.js} +2 -2
  68. package/dist/{chunk-FTWJFDIN.js → chunk-KLBTXETO.js} +169 -169
  69. package/dist/chunk-KLBTXETO.js.map +1 -0
  70. package/dist/{chunk-HZUDRKGR.js → chunk-KQTYTCKQ.js} +2 -2
  71. package/dist/{chunk-VNUNE5AB.js → chunk-LYBXCXJB.js} +2 -2
  72. package/dist/{chunk-RZT263H7.js → chunk-MXYBTMKB.js} +2 -2
  73. package/dist/{chunk-3OFVFHKT.js → chunk-NPY4QUMQ.js} +2 -2
  74. package/dist/{chunk-NIJSXVFT.js → chunk-OJ5R2OFK.js} +3 -3
  75. package/dist/{chunk-NECTN6N7.js → chunk-OZRUJVIQ.js} +2 -2
  76. package/dist/{chunk-OKJWBB2K.js → chunk-PN4WWIHS.js} +5 -5
  77. package/dist/{chunk-EAEOPERX.js → chunk-Q43MLYXE.js} +7 -7
  78. package/dist/{chunk-2GTYAHDN.js → chunk-QRP3PXWN.js} +2 -2
  79. package/dist/{chunk-CFHIW5QZ.js → chunk-S77PZVYM.js} +3 -3
  80. package/dist/{chunk-OUTF5JFG.js → chunk-SHL7LOC3.js} +3 -3
  81. package/dist/{chunk-TUB34FVS.js → chunk-TD2CL5FE.js} +4 -4
  82. package/dist/{chunk-XFGAUP5B.js → chunk-ULJ5RFOV.js} +2 -2
  83. package/dist/{chunk-V7CTQOHG.js → chunk-UQ4QIV56.js} +3 -3
  84. package/dist/{chunk-PZXCWSKV.js → chunk-VB6WJJR3.js} +2 -2
  85. package/dist/{chunk-ND5MJ3AA.js → chunk-W4VS475D.js} +2 -2
  86. package/dist/{chunk-K6WVV74H.js → chunk-XF4JUKVF.js} +3 -30
  87. package/dist/chunk-XF4JUKVF.js.map +1 -0
  88. package/dist/{chunk-IGQZ5U3C.js → chunk-Y5YBNAIS.js} +6 -6
  89. package/dist/{chunk-4Z7DEN75.js → chunk-Y6O7EWYY.js} +2 -2
  90. package/dist/{chunk-TX7LZWZD.js → chunk-Y6QAJNKP.js} +3 -3
  91. package/dist/{chunk-L5J3S6B6.js → chunk-YRQYA2LR.js} +4 -47
  92. package/dist/chunk-YRQYA2LR.js.map +1 -0
  93. package/dist/{chunk-RB5CVIK6.js → chunk-ZEYEWPK6.js} +2 -2
  94. package/dist/{claim-25JJM4AG.js → claim-FZ5OQLMU.js} +3 -3
  95. package/dist/cli.js +28 -28
  96. package/dist/{companies-VR5M5PAN.js → companies-DNI634RC.js} +3 -3
  97. package/dist/{complete-DRMOTC2W.js → complete-2FZMGJV5.js} +3 -3
  98. package/dist/{connect-WUDJR2GH.js → connect-QCOGEPP4.js} +6 -10
  99. package/dist/{conversation-K6LYF2ZP.js → conversation-6IOGV7B7.js} +3 -3
  100. package/dist/{conversion-report-XQBJ6LG4.js → conversion-report-N4HANYOB.js} +2 -2
  101. package/dist/{conversion-writes-UBCVXP2E.js → conversion-writes-LW4HQKK5.js} +3 -3
  102. package/dist/{conversions-GF32XOWY.js → conversions-4SRZPBBX.js} +7 -7
  103. package/dist/{conversions-D236RTUK.js → conversions-TS723AZV.js} +5 -5
  104. package/dist/{create-IXYXYLLE.js → create-BJNMO6HT.js} +2 -2
  105. package/dist/{create-4TFAD6HY.js → create-FX4OJ2XF.js} +3 -3
  106. package/dist/{create-PKJVFJMO.js → create-RM7HV77Y.js} +3 -3
  107. package/dist/{create-2D7AIFJI.js → create-VXM34ZWH.js} +3 -3
  108. package/dist/{creatives-QLSZFOMB.js → creatives-AG6FCCHY.js} +10 -10
  109. package/dist/{creatives-OHCFHRZ5.js → creatives-JSWBFQ5R.js} +8 -8
  110. package/dist/{credentials-WSLR5VU4.js → credentials-VOZTILFO.js} +16 -16
  111. package/dist/credentials-VOZTILFO.js.map +1 -0
  112. package/dist/{critique-WDO6SKK2.js → critique-D74VSOGJ.js} +9 -9
  113. package/dist/{critique-5PCQ2CJH.js → critique-ZS4ON3SU.js} +3 -3
  114. package/dist/{crm-HNUOHXAN.js → crm-52ROSWH5.js} +4 -4
  115. package/dist/{crm-SNIUADNK.js → crm-R5IXIFIV.js} +4 -4
  116. package/dist/{customers-72L2KZHO.js → customers-4AWBFDUF.js} +6 -6
  117. package/dist/{delete-PA2GY5EC.js → delete-AIGE4Y4H.js} +3 -3
  118. package/dist/{delete-EVGM5B36.js → delete-HGHXY24R.js} +3 -3
  119. package/dist/{delete-YNNFTFYV.js → delete-M2GDLPYN.js} +2 -2
  120. package/dist/{demographics-SYS2E7QC.js → demographics-NTWB2IMG.js} +3 -3
  121. package/dist/{discard-JS2YJUIM.js → discard-2WWQG6OU.js} +3 -3
  122. package/dist/{domain-XKKH5NCL.js → domain-Y2LT6JLT.js} +3 -3
  123. package/dist/{draft-4AO4YH3V.js → draft-EJXNNJ3Y.js} +4 -4
  124. package/dist/{draft-WWWKSEEE.js → draft-FJ7WHIXW.js} +3 -3
  125. package/dist/{draft-GCUXNPVH.js → draft-SLHAKJ2A.js} +3 -3
  126. package/dist/{draft-MNFJ4G3C.js → draft-THPZFASM.js} +3 -3
  127. package/dist/engine/index.js +5 -5
  128. package/dist/{facets-NVBX5WDT.js → facets-U7AQC4H6.js} +3 -3
  129. package/dist/{feedback-OGAPR45R.js → feedback-FFF3KELE.js} +2 -2
  130. package/dist/{feedback-record-GVXGDY5Y.js → feedback-record-DTCSUXRO.js} +11 -11
  131. package/dist/{fetch-U4TJIHZU.js → fetch-W7NULDEO.js} +3 -3
  132. package/dist/{fit-BOQL6OK3.js → fit-PXZSHQRM.js} +5 -5
  133. package/dist/{flows-XVZJ6GOI.js → flows-KABCBS3S.js} +17 -37
  134. package/dist/flows-KABCBS3S.js.map +1 -0
  135. package/dist/{fonts-64T6KRZS.js → fonts-EMMX3KII.js} +5 -5
  136. package/dist/{forecast-YIIGTHRM.js → forecast-GNODEIIC.js} +3 -3
  137. package/dist/{funnel-XHDCXXQ5.js → funnel-AAX27NH4.js} +4 -4
  138. package/dist/{generate-3XYYITU6.js → generate-MMBYB44G.js} +3 -3
  139. package/dist/{get-6RQFDAIN.js → get-QEYJRLV3.js} +4 -6
  140. package/dist/get-QEYJRLV3.js.map +1 -0
  141. package/dist/{get-XJ3AZX35.js → get-RTVUZM6E.js} +3 -3
  142. package/dist/{google-ads-7XAGJVNJ.js → google-ads-OK6IG3UV.js} +3 -3
  143. package/dist/{history-Q3QCT64S.js → history-DBIEYQHY.js} +3 -3
  144. package/dist/{history-EUG4LE44.js → history-PQUJKK26.js} +3 -3
  145. package/dist/{hubspot-UULVEYVO.js → hubspot-Y77VLY6Y.js} +7 -7
  146. package/dist/{ideas-7LXYXS5G.js → ideas-MIDU7YOA.js} +2 -2
  147. package/dist/{images-3SOTFMJV.js → images-S254MS6O.js} +4 -4
  148. package/dist/{ingest-HQUXSBWA.js → ingest-J4I3HKM3.js} +2 -2
  149. package/dist/{ingest-HYSZC3EX.js → ingest-YV2NLDBE.js} +3 -3
  150. package/dist/{insights-LNAXV2CG.js → insights-ZIU6FJMS.js} +2 -2
  151. package/dist/{inspect-HZQ7GSVM.js → inspect-Q5NHBBHX.js} +3 -3
  152. package/dist/{keyword-metrics-YG3K7MQZ.js → keyword-metrics-PDY4ZXSP.js} +3 -3
  153. package/dist/{keywords-for-site-V4K744TF.js → keywords-for-site-GALSCV77.js} +3 -3
  154. package/dist/{landing-3SSX6WK6.js → landing-CJYGWCK4.js} +2 -2
  155. package/dist/{leads-FAHQ6KJX.js → leads-PHKG6CP3.js} +3 -3
  156. package/dist/{learn-XNHGNQE5.js → learn-3VO6DXUX.js} +7 -7
  157. package/dist/{line-item-writes-A6BPZQPL.js → line-item-writes-E6MZPIZZ.js} +3 -3
  158. package/dist/{line-items-J7PXJHMD.js → line-items-7ZGIKEF2.js} +5 -5
  159. package/dist/{link-4GGAQAVH.js → link-QYAW6A2W.js} +3 -3
  160. package/dist/{linkedin-I6JDSTRB.js → linkedin-FFSDSGGS.js} +26 -26
  161. package/dist/{list-22HZ2S4W.js → list-5IC6KIKO.js} +3 -3
  162. package/dist/{list-KAJZFHMN.js → list-NVQC5SNY.js} +2 -2
  163. package/dist/{list-AQMGXI4N.js → list-SAV3LQHY.js} +3 -3
  164. package/dist/{locations-2NKBJKBT.js → locations-74TPQWAT.js} +2 -2
  165. package/dist/{log-MUPKKYSJ.js → log-XZPVOALD.js} +3 -3
  166. package/dist/{make-3FO76LA7.js → make-NHZAHTV4.js} +17 -17
  167. package/dist/{map-F4LXTAJV.js → map-4J5WIWIG.js} +4 -4
  168. package/dist/{mcp-NLAQJWG6.js → mcp-XXD7ZQCP.js} +2 -2
  169. package/dist/{media-sources-W2CQFSVQ.js → media-sources-O6ZRUA3N.js} +2 -2
  170. package/dist/{members-3U6GINDF.js → members-D5ZYLS4Y.js} +3 -3
  171. package/dist/{models-3Z6MDHQW.js → models-7U3GRYHF.js} +2 -2
  172. package/dist/{normalize-FQ6WP5E4.js → normalize-PCNC6E2N.js} +3 -3
  173. package/dist/{options-K6FNT5A3.js → options-MQ65VEVD.js} +6 -6
  174. package/dist/{performance-ZA7VCHOU.js → performance-6QW2KEEQ.js} +4 -4
  175. package/dist/{pixels-TZPF746S.js → pixels-45A55MOP.js} +3 -3
  176. package/dist/{promoted-tweet-writes-4H3ZFD6O.js → promoted-tweet-writes-JPLHY3GM.js} +3 -3
  177. package/dist/{promoted-tweets-MCMKPIHM.js → promoted-tweets-SURKMHFI.js} +3 -3
  178. package/dist/{publish-CW5YSAAL.js → publish-HCQ6MXLB.js} +3 -3
  179. package/dist/{reddit-P7LLO4TK.js → reddit-GIP3ADMS.js} +4 -4
  180. package/dist/{refresh-IGHEOA6Y.js → refresh-UXQSLCR3.js} +2 -2
  181. package/dist/{release-C74JOYDA.js → release-5KVLXNP6.js} +3 -3
  182. package/dist/{remove-HPN62MPQ.js → remove-6FIVKCJI.js} +2 -2
  183. package/dist/{reopen-XI53RP7R.js → reopen-YM5LNOLB.js} +3 -3
  184. package/dist/{rerun-2ITYGAIT.js → rerun-NTDXIB4E.js} +18 -18
  185. package/dist/{research-O6QXFCD7.js → research-EY7C7JJY.js} +10 -10
  186. package/dist/{research-HAHUTFVJ.js → research-YOGE7GT2.js} +2 -2
  187. package/dist/{reset-YMKVEOS4.js → reset-C4UHQ3EU.js} +2 -2
  188. package/dist/{reset-BISRUHT4.js → reset-OLVB6AE6.js} +2 -2
  189. package/dist/{resolve-D2VESQ45.js → resolve-XYH2GDAE.js} +3 -3
  190. package/dist/{retry-CGBATPQX.js → retry-726GKI6V.js} +2 -2
  191. package/dist/{retry-SUKRXBHX.js → retry-7EELDEQP.js} +2 -2
  192. package/dist/{run-HSZFWRYZ.js → run-MZ7JLI75.js} +18 -18
  193. package/dist/{run-BFERU46Q.js → run-P4KR2MXC.js} +3 -3
  194. package/dist/{scaffold-ad-BYQYVB2C.js → scaffold-ad-M5CWSLZ4.js} +16 -16
  195. package/dist/{scaffold-static-ad-5MXVTMEE.js → scaffold-static-ad-QW3JWMXA.js} +22 -22
  196. package/dist/{scaffold-video-KEIHX3UD.js → scaffold-video-EVRMU6WP.js} +14 -14
  197. package/dist/{schedule-XJ24PL3K.js → schedule-RDK4GEPI.js} +2 -2
  198. package/dist/{scheduled-agents-HWEKBANT.js → scheduled-agents-6U44QE76.js} +11 -11
  199. package/dist/{schema-TAAAJHOJ.js → schema-CHJDC7GQ.js} +4 -4
  200. package/dist/{search-NVCIIGQS.js → search-PMJRU3C4.js} +2 -2
  201. package/dist/{select-K3EMTTI3.js → select-VYPVEO5J.js} +11 -11
  202. package/dist/{set-prompt-PY7FWYX6.js → set-prompt-VH3S47Z7.js} +10 -10
  203. package/dist/{setup-links-5ZCASHAL.js → setup-links-REPREN3C.js} +3 -3
  204. package/dist/{site-7PSCHITE.js → site-WFSWIA3S.js} +4 -4
  205. package/dist/{sources-GEB6OEGY.js → sources-AMI2AWKZ.js} +6 -6
  206. package/dist/{sources-ICMUQMCJ.js → sources-YBQ6KPFM.js} +6 -6
  207. package/dist/{stale-KBY5WARW.js → stale-LTRROC3C.js} +10 -10
  208. package/dist/{status-ZX5WM5PJ.js → status-7F2KHFGA.js} +3 -3
  209. package/dist/{studio-RA7QQH4O.js → studio-C5K3YX3P.js} +4 -4
  210. package/dist/{sync-TZNIPZRX.js → sync-GWTLKZTU.js} +2 -2
  211. package/dist/{sync-definition-ADXXWWV5.js → sync-definition-TQDIRIR5.js} +13 -13
  212. package/dist/{tags-4PXXFIPU.js → tags-3WPW6PTV.js} +4 -4
  213. package/dist/{tags-WIMUIZHU.js → tags-6342FQEB.js} +3 -3
  214. package/dist/{tags-4OZCALA3.js → tags-ABHSX6M5.js} +3 -3
  215. package/dist/{tags-KFVUEPL6.js → tags-FJIBBBRG.js} +3 -3
  216. package/dist/{tags-TESETZGC.js → tags-KFYLZLB3.js} +2 -2
  217. package/dist/{targeting-criteria-VRI7V6C5.js → targeting-criteria-NR47AF5C.js} +3 -3
  218. package/dist/{targets-ERVS2VEU.js → targets-L56KOVQE.js} +3 -3
  219. package/dist/{templates-TE6LBUIP.js → templates-B6XGDYUF.js} +3 -3
  220. package/dist/{testimonials-FV7KPAPK.js → testimonials-CVC4YIXO.js} +6 -6
  221. package/dist/{top-companies-B5M43KGJ.js → top-companies-45X3DT7Z.js} +3 -3
  222. package/dist/{translate-OKADZCBC.js → translate-IHRONQW3.js} +15 -15
  223. package/dist/{triggers-JLJQOSKI.js → triggers-22EMIVFD.js} +3 -3
  224. package/dist/{unlink-KMWDKVIC.js → unlink-65KUN6ID.js} +3 -3
  225. package/dist/{unstage-M4IQKJIO.js → unstage-2E3I5SWF.js} +3 -3
  226. package/dist/{update-K6LFJHNI.js → update-2S7CSEAW.js} +3 -3
  227. package/dist/{update-PNRNYXUW.js → update-7NCOTAQZ.js} +3 -3
  228. package/dist/{update-5MBR4TPK.js → update-D6DJC6T7.js} +2 -2
  229. package/dist/{update-AHDGHOCP.js → update-KREBPGBH.js} +3 -3
  230. package/dist/{upload-KAQC4AH7.js → upload-O6NHRPS7.js} +3 -3
  231. package/dist/{url-params-SM32OOXZ.js → url-params-3EFGVTZZ.js} +3 -3
  232. package/dist/{validate-NCTK5BXD.js → validate-5MDFJ76K.js} +11 -11
  233. package/dist/{videos-A32DPGHD.js → videos-YSXYGTBM.js} +5 -5
  234. package/dist/{viewer-check-L4B4LIAX.js → viewer-check-45T2HLAH.js} +4 -4
  235. package/dist/{web-TZEIFUYY.js → web-IGIGVEKS.js} +3 -3
  236. package/dist/{winning-ads-THIR7E5S.js → winning-ads-BXRQ7SBY.js} +3 -3
  237. package/dist/{write-commands-CE4FIQ6Y.js → write-commands-5C7FUOVN.js} +4 -4
  238. package/dist/{x-YXABYM5U.js → x-BFSKFCZD.js} +6 -6
  239. package/package.json +1 -1
  240. package/dist/add-TRSKOIO6.js.map +0 -1
  241. package/dist/chunk-CAMX6OHF.js.map +0 -1
  242. package/dist/chunk-FTWJFDIN.js.map +0 -1
  243. package/dist/chunk-K6WVV74H.js.map +0 -1
  244. package/dist/chunk-L5J3S6B6.js.map +0 -1
  245. package/dist/chunk-ZJLETAOO.js.map +0 -1
  246. package/dist/credentials-WSLR5VU4.js.map +0 -1
  247. package/dist/flows-XVZJ6GOI.js.map +0 -1
  248. package/dist/get-6RQFDAIN.js.map +0 -1
  249. /package/dist/{account-DTHGTZCN.js.map → account-AL2ZDSR7.js.map} +0 -0
  250. /package/dist/{account-4H7QVBRK.js.map → account-F6MHQ64I.js.map} +0 -0
  251. /package/dist/{account-writes-AK42HGRM.js.map → account-writes-ISE4U2FQ.js.map} +0 -0
  252. /package/dist/{accounts-5RLG6BBA.js.map → accounts-HAFCLSR5.js.map} +0 -0
  253. /package/dist/{accounts-6LSBBXKA.js.map → accounts-O5MFO3QQ.js.map} +0 -0
  254. /package/dist/{actions-WH5C6Q7I.js.map → actions-P35MEMGN.js.map} +0 -0
  255. /package/dist/{ad-group-writes-QQS4223F.js.map → ad-group-writes-UU5NNKSO.js.map} +0 -0
  256. /package/dist/{ad-groups-WGPDPUI2.js.map → ad-groups-CGFXZNIA.js.map} +0 -0
  257. /package/dist/{ad-writes-XE2IE4DS.js.map → ad-writes-NALDYWOR.js.map} +0 -0
  258. /package/dist/{add-BZ4QPLK4.js.map → add-6DTC6X5G.js.map} +0 -0
  259. /package/dist/{ads-6UG66KA5.js.map → ads-C47NA2HH.js.map} +0 -0
  260. /package/dist/{ads-BCOSQALY.js.map → ads-PV7GZXPR.js.map} +0 -0
  261. /package/dist/{advertisers-OABQDELT.js.map → advertisers-AE75CGVE.js.map} +0 -0
  262. /package/dist/{analytics-3YAWQF5K.js.map → analytics-FKCXIMPO.js.map} +0 -0
  263. /package/dist/{analytics-BCZGSSXP.js.map → analytics-FPWQQGRM.js.map} +0 -0
  264. /package/dist/{animate-AIZ3GS4J.js.map → animate-FWWHSYPL.js.map} +0 -0
  265. /package/dist/{assign-O6QNAZD5.js.map → assign-ABN2AQ4J.js.map} +0 -0
  266. /package/dist/{audience-size-CXPWERR3.js.map → audience-size-GNBJY35X.js.map} +0 -0
  267. /package/dist/{audiences-TGD5US2M.js.map → audiences-VEKGLWBG.js.map} +0 -0
  268. /package/dist/{audit-MNOQK3U4.js.map → audit-3VS63TBW.js.map} +0 -0
  269. /package/dist/{autocomplete-TRCMPNW4.js.map → autocomplete-VS3XG3B7.js.map} +0 -0
  270. /package/dist/{avatars-P3WX5TQP.js.map → avatars-EKCKHCC3.js.map} +0 -0
  271. /package/dist/{bid-pricing-6XXSM7C2.js.map → bid-pricing-Q72B65AY.js.map} +0 -0
  272. /package/dist/{brand-LXU7YNCF.js.map → brand-C6PFGGQN.js.map} +0 -0
  273. /package/dist/{brief-Y4F37TH5.js.map → brief-UO52ZHFI.js.map} +0 -0
  274. /package/dist/{campaign-groups-CEAM3WRO.js.map → campaign-groups-KFFYQPU3.js.map} +0 -0
  275. /package/dist/{campaign-writes-D6BJAULL.js.map → campaign-writes-FHOS5XZY.js.map} +0 -0
  276. /package/dist/{campaign-writes-SXLZFYF6.js.map → campaign-writes-SX52CJYW.js.map} +0 -0
  277. /package/dist/{campaigns-CXOKBCPS.js.map → campaigns-2NHWBF5C.js.map} +0 -0
  278. /package/dist/{campaigns-V3SWBM4E.js.map → campaigns-KZYZTXDS.js.map} +0 -0
  279. /package/dist/{campaigns-YS3OGQXO.js.map → campaigns-X3DPCCSN.js.map} +0 -0
  280. /package/dist/{canvas-VH3Q26TK.js.map → canvas-KTALW6HY.js.map} +0 -0
  281. /package/dist/{capabilities-NZPSSS6T.js.map → capabilities-DJFTRJKS.js.map} +0 -0
  282. /package/dist/{catalog-GWN3WT7J.js.map → catalog-Y3XADCSY.js.map} +0 -0
  283. /package/dist/{catalogs-BRXEDE56.js.map → catalogs-G3YEVG6S.js.map} +0 -0
  284. /package/dist/{chatgpt-7W75X3ER.js.map → chatgpt-QNUN63YS.js.map} +0 -0
  285. /package/dist/{chats-GN3PBFX4.js.map → chats-D2CSDX5Q.js.map} +0 -0
  286. /package/dist/{chunk-7J6EHOH6.js.map → chunk-35XWJEWH.js.map} +0 -0
  287. /package/dist/{chunk-ORO7VAXB.js.map → chunk-3G3ZDLMI.js.map} +0 -0
  288. /package/dist/{chunk-R5RIH3N5.js.map → chunk-3IBYKLXR.js.map} +0 -0
  289. /package/dist/{chunk-7ED5TAFP.js.map → chunk-4AUMTNVB.js.map} +0 -0
  290. /package/dist/{chunk-E4NCRGY3.js.map → chunk-4BQXAE7Z.js.map} +0 -0
  291. /package/dist/{chunk-GYU7BWEN.js.map → chunk-4D7UBVSG.js.map} +0 -0
  292. /package/dist/{chunk-6Y7SIP2D.js.map → chunk-5QGMMZFQ.js.map} +0 -0
  293. /package/dist/{chunk-ZGTCZ6H4.js.map → chunk-5ZDLTE5T.js.map} +0 -0
  294. /package/dist/{chunk-DQMZXK27.js.map → chunk-7YCRFMXF.js.map} +0 -0
  295. /package/dist/{chunk-NJXNU2G6.js.map → chunk-7ZHMGXE2.js.map} +0 -0
  296. /package/dist/{chunk-XTRAI6CL.js.map → chunk-A4LOJ2VD.js.map} +0 -0
  297. /package/dist/{chunk-PTCIM35Y.js.map → chunk-AEOSAVVL.js.map} +0 -0
  298. /package/dist/{chunk-D6744YSX.js.map → chunk-BAVBLIAD.js.map} +0 -0
  299. /package/dist/{chunk-JVLAV62J.js.map → chunk-BY6M3TE5.js.map} +0 -0
  300. /package/dist/{chunk-QVJDPOEB.js.map → chunk-CSYSX4D2.js.map} +0 -0
  301. /package/dist/{chunk-IYU4X5A7.js.map → chunk-HBTF25YG.js.map} +0 -0
  302. /package/dist/{chunk-P5T7OZKV.js.map → chunk-HQSCJYZO.js.map} +0 -0
  303. /package/dist/{chunk-ESB5DLIP.js.map → chunk-IR6D7K4H.js.map} +0 -0
  304. /package/dist/{chunk-PVUZWHNQ.js.map → chunk-J4LSFZCF.js.map} +0 -0
  305. /package/dist/{chunk-XQIKDODN.js.map → chunk-JQJDXPCO.js.map} +0 -0
  306. /package/dist/{chunk-FVF5SXTZ.js.map → chunk-JWI6GIFJ.js.map} +0 -0
  307. /package/dist/{chunk-XVOI4BIS.js.map → chunk-KHRXPQID.js.map} +0 -0
  308. /package/dist/{chunk-HZUDRKGR.js.map → chunk-KQTYTCKQ.js.map} +0 -0
  309. /package/dist/{chunk-VNUNE5AB.js.map → chunk-LYBXCXJB.js.map} +0 -0
  310. /package/dist/{chunk-RZT263H7.js.map → chunk-MXYBTMKB.js.map} +0 -0
  311. /package/dist/{chunk-3OFVFHKT.js.map → chunk-NPY4QUMQ.js.map} +0 -0
  312. /package/dist/{chunk-NIJSXVFT.js.map → chunk-OJ5R2OFK.js.map} +0 -0
  313. /package/dist/{chunk-NECTN6N7.js.map → chunk-OZRUJVIQ.js.map} +0 -0
  314. /package/dist/{chunk-OKJWBB2K.js.map → chunk-PN4WWIHS.js.map} +0 -0
  315. /package/dist/{chunk-EAEOPERX.js.map → chunk-Q43MLYXE.js.map} +0 -0
  316. /package/dist/{chunk-2GTYAHDN.js.map → chunk-QRP3PXWN.js.map} +0 -0
  317. /package/dist/{chunk-CFHIW5QZ.js.map → chunk-S77PZVYM.js.map} +0 -0
  318. /package/dist/{chunk-OUTF5JFG.js.map → chunk-SHL7LOC3.js.map} +0 -0
  319. /package/dist/{chunk-TUB34FVS.js.map → chunk-TD2CL5FE.js.map} +0 -0
  320. /package/dist/{chunk-XFGAUP5B.js.map → chunk-ULJ5RFOV.js.map} +0 -0
  321. /package/dist/{chunk-V7CTQOHG.js.map → chunk-UQ4QIV56.js.map} +0 -0
  322. /package/dist/{chunk-PZXCWSKV.js.map → chunk-VB6WJJR3.js.map} +0 -0
  323. /package/dist/{chunk-ND5MJ3AA.js.map → chunk-W4VS475D.js.map} +0 -0
  324. /package/dist/{chunk-IGQZ5U3C.js.map → chunk-Y5YBNAIS.js.map} +0 -0
  325. /package/dist/{chunk-4Z7DEN75.js.map → chunk-Y6O7EWYY.js.map} +0 -0
  326. /package/dist/{chunk-TX7LZWZD.js.map → chunk-Y6QAJNKP.js.map} +0 -0
  327. /package/dist/{chunk-RB5CVIK6.js.map → chunk-ZEYEWPK6.js.map} +0 -0
  328. /package/dist/{claim-25JJM4AG.js.map → claim-FZ5OQLMU.js.map} +0 -0
  329. /package/dist/{companies-VR5M5PAN.js.map → companies-DNI634RC.js.map} +0 -0
  330. /package/dist/{complete-DRMOTC2W.js.map → complete-2FZMGJV5.js.map} +0 -0
  331. /package/dist/{connect-WUDJR2GH.js.map → connect-QCOGEPP4.js.map} +0 -0
  332. /package/dist/{conversation-K6LYF2ZP.js.map → conversation-6IOGV7B7.js.map} +0 -0
  333. /package/dist/{conversion-report-XQBJ6LG4.js.map → conversion-report-N4HANYOB.js.map} +0 -0
  334. /package/dist/{conversion-writes-UBCVXP2E.js.map → conversion-writes-LW4HQKK5.js.map} +0 -0
  335. /package/dist/{conversions-GF32XOWY.js.map → conversions-4SRZPBBX.js.map} +0 -0
  336. /package/dist/{conversions-D236RTUK.js.map → conversions-TS723AZV.js.map} +0 -0
  337. /package/dist/{create-IXYXYLLE.js.map → create-BJNMO6HT.js.map} +0 -0
  338. /package/dist/{create-4TFAD6HY.js.map → create-FX4OJ2XF.js.map} +0 -0
  339. /package/dist/{create-PKJVFJMO.js.map → create-RM7HV77Y.js.map} +0 -0
  340. /package/dist/{create-2D7AIFJI.js.map → create-VXM34ZWH.js.map} +0 -0
  341. /package/dist/{creatives-QLSZFOMB.js.map → creatives-AG6FCCHY.js.map} +0 -0
  342. /package/dist/{creatives-OHCFHRZ5.js.map → creatives-JSWBFQ5R.js.map} +0 -0
  343. /package/dist/{critique-WDO6SKK2.js.map → critique-D74VSOGJ.js.map} +0 -0
  344. /package/dist/{critique-5PCQ2CJH.js.map → critique-ZS4ON3SU.js.map} +0 -0
  345. /package/dist/{crm-HNUOHXAN.js.map → crm-52ROSWH5.js.map} +0 -0
  346. /package/dist/{crm-SNIUADNK.js.map → crm-R5IXIFIV.js.map} +0 -0
  347. /package/dist/{customers-72L2KZHO.js.map → customers-4AWBFDUF.js.map} +0 -0
  348. /package/dist/{delete-PA2GY5EC.js.map → delete-AIGE4Y4H.js.map} +0 -0
  349. /package/dist/{delete-EVGM5B36.js.map → delete-HGHXY24R.js.map} +0 -0
  350. /package/dist/{delete-YNNFTFYV.js.map → delete-M2GDLPYN.js.map} +0 -0
  351. /package/dist/{demographics-SYS2E7QC.js.map → demographics-NTWB2IMG.js.map} +0 -0
  352. /package/dist/{discard-JS2YJUIM.js.map → discard-2WWQG6OU.js.map} +0 -0
  353. /package/dist/{domain-XKKH5NCL.js.map → domain-Y2LT6JLT.js.map} +0 -0
  354. /package/dist/{draft-4AO4YH3V.js.map → draft-EJXNNJ3Y.js.map} +0 -0
  355. /package/dist/{draft-WWWKSEEE.js.map → draft-FJ7WHIXW.js.map} +0 -0
  356. /package/dist/{draft-GCUXNPVH.js.map → draft-SLHAKJ2A.js.map} +0 -0
  357. /package/dist/{draft-MNFJ4G3C.js.map → draft-THPZFASM.js.map} +0 -0
  358. /package/dist/{facets-NVBX5WDT.js.map → facets-U7AQC4H6.js.map} +0 -0
  359. /package/dist/{feedback-OGAPR45R.js.map → feedback-FFF3KELE.js.map} +0 -0
  360. /package/dist/{feedback-record-GVXGDY5Y.js.map → feedback-record-DTCSUXRO.js.map} +0 -0
  361. /package/dist/{fetch-U4TJIHZU.js.map → fetch-W7NULDEO.js.map} +0 -0
  362. /package/dist/{fit-BOQL6OK3.js.map → fit-PXZSHQRM.js.map} +0 -0
  363. /package/dist/{fonts-64T6KRZS.js.map → fonts-EMMX3KII.js.map} +0 -0
  364. /package/dist/{forecast-YIIGTHRM.js.map → forecast-GNODEIIC.js.map} +0 -0
  365. /package/dist/{funnel-XHDCXXQ5.js.map → funnel-AAX27NH4.js.map} +0 -0
  366. /package/dist/{generate-3XYYITU6.js.map → generate-MMBYB44G.js.map} +0 -0
  367. /package/dist/{get-XJ3AZX35.js.map → get-RTVUZM6E.js.map} +0 -0
  368. /package/dist/{google-ads-7XAGJVNJ.js.map → google-ads-OK6IG3UV.js.map} +0 -0
  369. /package/dist/{history-Q3QCT64S.js.map → history-DBIEYQHY.js.map} +0 -0
  370. /package/dist/{history-EUG4LE44.js.map → history-PQUJKK26.js.map} +0 -0
  371. /package/dist/{hubspot-UULVEYVO.js.map → hubspot-Y77VLY6Y.js.map} +0 -0
  372. /package/dist/{ideas-7LXYXS5G.js.map → ideas-MIDU7YOA.js.map} +0 -0
  373. /package/dist/{images-3SOTFMJV.js.map → images-S254MS6O.js.map} +0 -0
  374. /package/dist/{ingest-HQUXSBWA.js.map → ingest-J4I3HKM3.js.map} +0 -0
  375. /package/dist/{ingest-HYSZC3EX.js.map → ingest-YV2NLDBE.js.map} +0 -0
  376. /package/dist/{insights-LNAXV2CG.js.map → insights-ZIU6FJMS.js.map} +0 -0
  377. /package/dist/{inspect-HZQ7GSVM.js.map → inspect-Q5NHBBHX.js.map} +0 -0
  378. /package/dist/{keyword-metrics-YG3K7MQZ.js.map → keyword-metrics-PDY4ZXSP.js.map} +0 -0
  379. /package/dist/{keywords-for-site-V4K744TF.js.map → keywords-for-site-GALSCV77.js.map} +0 -0
  380. /package/dist/{landing-3SSX6WK6.js.map → landing-CJYGWCK4.js.map} +0 -0
  381. /package/dist/{leads-FAHQ6KJX.js.map → leads-PHKG6CP3.js.map} +0 -0
  382. /package/dist/{learn-XNHGNQE5.js.map → learn-3VO6DXUX.js.map} +0 -0
  383. /package/dist/{line-item-writes-A6BPZQPL.js.map → line-item-writes-E6MZPIZZ.js.map} +0 -0
  384. /package/dist/{line-items-J7PXJHMD.js.map → line-items-7ZGIKEF2.js.map} +0 -0
  385. /package/dist/{link-4GGAQAVH.js.map → link-QYAW6A2W.js.map} +0 -0
  386. /package/dist/{linkedin-I6JDSTRB.js.map → linkedin-FFSDSGGS.js.map} +0 -0
  387. /package/dist/{list-22HZ2S4W.js.map → list-5IC6KIKO.js.map} +0 -0
  388. /package/dist/{list-KAJZFHMN.js.map → list-NVQC5SNY.js.map} +0 -0
  389. /package/dist/{list-AQMGXI4N.js.map → list-SAV3LQHY.js.map} +0 -0
  390. /package/dist/{locations-2NKBJKBT.js.map → locations-74TPQWAT.js.map} +0 -0
  391. /package/dist/{log-MUPKKYSJ.js.map → log-XZPVOALD.js.map} +0 -0
  392. /package/dist/{make-3FO76LA7.js.map → make-NHZAHTV4.js.map} +0 -0
  393. /package/dist/{map-F4LXTAJV.js.map → map-4J5WIWIG.js.map} +0 -0
  394. /package/dist/{mcp-NLAQJWG6.js.map → mcp-XXD7ZQCP.js.map} +0 -0
  395. /package/dist/{media-sources-W2CQFSVQ.js.map → media-sources-O6ZRUA3N.js.map} +0 -0
  396. /package/dist/{members-3U6GINDF.js.map → members-D5ZYLS4Y.js.map} +0 -0
  397. /package/dist/{models-3Z6MDHQW.js.map → models-7U3GRYHF.js.map} +0 -0
  398. /package/dist/{normalize-FQ6WP5E4.js.map → normalize-PCNC6E2N.js.map} +0 -0
  399. /package/dist/{options-K6FNT5A3.js.map → options-MQ65VEVD.js.map} +0 -0
  400. /package/dist/{performance-ZA7VCHOU.js.map → performance-6QW2KEEQ.js.map} +0 -0
  401. /package/dist/{pixels-TZPF746S.js.map → pixels-45A55MOP.js.map} +0 -0
  402. /package/dist/{promoted-tweet-writes-4H3ZFD6O.js.map → promoted-tweet-writes-JPLHY3GM.js.map} +0 -0
  403. /package/dist/{promoted-tweets-MCMKPIHM.js.map → promoted-tweets-SURKMHFI.js.map} +0 -0
  404. /package/dist/{publish-CW5YSAAL.js.map → publish-HCQ6MXLB.js.map} +0 -0
  405. /package/dist/{reddit-P7LLO4TK.js.map → reddit-GIP3ADMS.js.map} +0 -0
  406. /package/dist/{refresh-IGHEOA6Y.js.map → refresh-UXQSLCR3.js.map} +0 -0
  407. /package/dist/{release-C74JOYDA.js.map → release-5KVLXNP6.js.map} +0 -0
  408. /package/dist/{remove-HPN62MPQ.js.map → remove-6FIVKCJI.js.map} +0 -0
  409. /package/dist/{reopen-XI53RP7R.js.map → reopen-YM5LNOLB.js.map} +0 -0
  410. /package/dist/{rerun-2ITYGAIT.js.map → rerun-NTDXIB4E.js.map} +0 -0
  411. /package/dist/{research-O6QXFCD7.js.map → research-EY7C7JJY.js.map} +0 -0
  412. /package/dist/{research-HAHUTFVJ.js.map → research-YOGE7GT2.js.map} +0 -0
  413. /package/dist/{reset-YMKVEOS4.js.map → reset-C4UHQ3EU.js.map} +0 -0
  414. /package/dist/{reset-BISRUHT4.js.map → reset-OLVB6AE6.js.map} +0 -0
  415. /package/dist/{resolve-D2VESQ45.js.map → resolve-XYH2GDAE.js.map} +0 -0
  416. /package/dist/{retry-CGBATPQX.js.map → retry-726GKI6V.js.map} +0 -0
  417. /package/dist/{retry-SUKRXBHX.js.map → retry-7EELDEQP.js.map} +0 -0
  418. /package/dist/{run-HSZFWRYZ.js.map → run-MZ7JLI75.js.map} +0 -0
  419. /package/dist/{run-BFERU46Q.js.map → run-P4KR2MXC.js.map} +0 -0
  420. /package/dist/{scaffold-ad-BYQYVB2C.js.map → scaffold-ad-M5CWSLZ4.js.map} +0 -0
  421. /package/dist/{scaffold-static-ad-5MXVTMEE.js.map → scaffold-static-ad-QW3JWMXA.js.map} +0 -0
  422. /package/dist/{scaffold-video-KEIHX3UD.js.map → scaffold-video-EVRMU6WP.js.map} +0 -0
  423. /package/dist/{schedule-XJ24PL3K.js.map → schedule-RDK4GEPI.js.map} +0 -0
  424. /package/dist/{scheduled-agents-HWEKBANT.js.map → scheduled-agents-6U44QE76.js.map} +0 -0
  425. /package/dist/{schema-TAAAJHOJ.js.map → schema-CHJDC7GQ.js.map} +0 -0
  426. /package/dist/{search-NVCIIGQS.js.map → search-PMJRU3C4.js.map} +0 -0
  427. /package/dist/{select-K3EMTTI3.js.map → select-VYPVEO5J.js.map} +0 -0
  428. /package/dist/{set-prompt-PY7FWYX6.js.map → set-prompt-VH3S47Z7.js.map} +0 -0
  429. /package/dist/{setup-links-5ZCASHAL.js.map → setup-links-REPREN3C.js.map} +0 -0
  430. /package/dist/{site-7PSCHITE.js.map → site-WFSWIA3S.js.map} +0 -0
  431. /package/dist/{sources-GEB6OEGY.js.map → sources-AMI2AWKZ.js.map} +0 -0
  432. /package/dist/{sources-ICMUQMCJ.js.map → sources-YBQ6KPFM.js.map} +0 -0
  433. /package/dist/{stale-KBY5WARW.js.map → stale-LTRROC3C.js.map} +0 -0
  434. /package/dist/{status-ZX5WM5PJ.js.map → status-7F2KHFGA.js.map} +0 -0
  435. /package/dist/{studio-RA7QQH4O.js.map → studio-C5K3YX3P.js.map} +0 -0
  436. /package/dist/{sync-TZNIPZRX.js.map → sync-GWTLKZTU.js.map} +0 -0
  437. /package/dist/{sync-definition-ADXXWWV5.js.map → sync-definition-TQDIRIR5.js.map} +0 -0
  438. /package/dist/{tags-4PXXFIPU.js.map → tags-3WPW6PTV.js.map} +0 -0
  439. /package/dist/{tags-WIMUIZHU.js.map → tags-6342FQEB.js.map} +0 -0
  440. /package/dist/{tags-4OZCALA3.js.map → tags-ABHSX6M5.js.map} +0 -0
  441. /package/dist/{tags-KFVUEPL6.js.map → tags-FJIBBBRG.js.map} +0 -0
  442. /package/dist/{tags-TESETZGC.js.map → tags-KFYLZLB3.js.map} +0 -0
  443. /package/dist/{targeting-criteria-VRI7V6C5.js.map → targeting-criteria-NR47AF5C.js.map} +0 -0
  444. /package/dist/{targets-ERVS2VEU.js.map → targets-L56KOVQE.js.map} +0 -0
  445. /package/dist/{templates-TE6LBUIP.js.map → templates-B6XGDYUF.js.map} +0 -0
  446. /package/dist/{testimonials-FV7KPAPK.js.map → testimonials-CVC4YIXO.js.map} +0 -0
  447. /package/dist/{top-companies-B5M43KGJ.js.map → top-companies-45X3DT7Z.js.map} +0 -0
  448. /package/dist/{translate-OKADZCBC.js.map → translate-IHRONQW3.js.map} +0 -0
  449. /package/dist/{triggers-JLJQOSKI.js.map → triggers-22EMIVFD.js.map} +0 -0
  450. /package/dist/{unlink-KMWDKVIC.js.map → unlink-65KUN6ID.js.map} +0 -0
  451. /package/dist/{unstage-M4IQKJIO.js.map → unstage-2E3I5SWF.js.map} +0 -0
  452. /package/dist/{update-K6LFJHNI.js.map → update-2S7CSEAW.js.map} +0 -0
  453. /package/dist/{update-PNRNYXUW.js.map → update-7NCOTAQZ.js.map} +0 -0
  454. /package/dist/{update-5MBR4TPK.js.map → update-D6DJC6T7.js.map} +0 -0
  455. /package/dist/{update-AHDGHOCP.js.map → update-KREBPGBH.js.map} +0 -0
  456. /package/dist/{upload-KAQC4AH7.js.map → upload-O6NHRPS7.js.map} +0 -0
  457. /package/dist/{url-params-SM32OOXZ.js.map → url-params-3EFGVTZZ.js.map} +0 -0
  458. /package/dist/{validate-NCTK5BXD.js.map → validate-5MDFJ76K.js.map} +0 -0
  459. /package/dist/{videos-A32DPGHD.js.map → videos-YSXYGTBM.js.map} +0 -0
  460. /package/dist/{viewer-check-L4B4LIAX.js.map → viewer-check-45T2HLAH.js.map} +0 -0
  461. /package/dist/{web-TZEIFUYY.js.map → web-IGIGVEKS.js.map} +0 -0
  462. /package/dist/{winning-ads-THIR7E5S.js.map → winning-ads-BXRQ7SBY.js.map} +0 -0
  463. /package/dist/{write-commands-CE4FIQ6Y.js.map → write-commands-5C7FUOVN.js.map} +0 -0
  464. /package/dist/{x-YXABYM5U.js.map → x-BFSKFCZD.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/flows/shared.ts"],"sourcesContent":["import { existsSync, readdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport {\n FLOW_ACCOUNT_ONLY_KINDS,\n FLOW_AGENT_DESTINATION_KINDS,\n FLOW_RESOURCE_NODE_TYPES,\n FLOW_SECRET_FIELDS,\n FLOW_SECRET_SIDE_EFFECT_TYPES,\n type FlowConfigStatus,\n type FlowSideEffectType,\n flowCatalogEntry,\n isFlowOauthSideEffect,\n} from \"@baker/api\";\nimport { writeJson } from \"../../output.ts\";\n\nconst FLOWS_DIR = \"src/lib/flow-engine/flows\";\n\n/** Resolve the flows directory from cwd (walk up a few levels to find the repo root). */\nexport function flowsDir(): string {\n let dir = process.cwd();\n for (let i = 0; i < 6; i++) {\n const candidate = join(dir, FLOWS_DIR);\n if (existsSync(candidate)) {\n return candidate;\n }\n const parent = join(dir, \"..\");\n if (parent === dir) {\n break;\n }\n dir = parent;\n }\n return join(process.cwd(), FLOWS_DIR);\n}\n\nexport function failLocal(message: string): never {\n writeJson({ ok: false, error: { code: \"NOT_FOUND\", message } });\n process.exit(1);\n}\n\nexport function listFlowSlugs(): string[] {\n const dir = flowsDir();\n if (!existsSync(dir)) {\n return [];\n }\n return readdirSync(dir, { withFileTypes: true })\n .filter((entry) => entry.isDirectory() && !entry.name.startsWith(\"_\") && entry.name !== \".gitkeep\")\n .map((entry) => entry.name)\n .sort();\n}\n\ntype AnyRecord = Record<string, unknown>;\n\n/** Absolute path to a form's `_data.json` — the one file the agent may edit. */\nexport function flowDataPath(slug: string): string {\n return join(flowsDir(), slug, \"_data.json\");\n}\n\n/**\n * Write a form tree back. Two-space JSON with a trailing newline, matching what\n * the scaffolder and the repo's markdown/JSON formatting already produce — a\n * write in any other shape turns a one-field edit into a whole-file diff.\n */\nexport function writeFlowTree(slug: string, tree: AnyRecord): void {\n writeFileSync(flowDataPath(slug), `${JSON.stringify(tree, null, 2)}\\n`, \"utf-8\");\n}\n\n/**\n * Every node in the tree, depth-first, parents before children.\n *\n * `Array.isArray`, not `?? []`: `_data.json` is hand-authored, so `children`\n * can be an object or a string, and `??` only guards null. These walkers are\n * what `flows show` and the pre-commit `normalize` run over, which are the two\n * things reached for when a form file is already wrong — throwing there would\n * take out the diagnosis along with the form.\n */\nexport function walkNodes(node: AnyRecord, acc: AnyRecord[] = []): AnyRecord[] {\n if (!node || typeof node !== \"object\") return acc;\n acc.push(node);\n if (Array.isArray(node.children)) {\n for (const child of node.children as AnyRecord[]) walkNodes(child, acc);\n }\n return acc;\n}\n\n/**\n * Every side effect in the tree, with the node that owns it.\n *\n * Walked rather than read off the root: side effects hang off whichever node\n * fires them, so a multi-step form keeps them on a child step. Reading\n * `tree.sideEffects` alone reports \"no side effects\" for a form that plainly\n * has one.\n */\nexport function collectSideEffects(tree: AnyRecord): Array<{ node: AnyRecord; sideEffect: AnyRecord }> {\n return walkNodes(tree).flatMap((node) =>\n Array.isArray(node.sideEffects)\n ? (node.sideEffects as AnyRecord[])\n .filter((sideEffect): sideEffect is AnyRecord => Boolean(sideEffect) && typeof sideEffect === \"object\")\n .map((sideEffect) => ({ node, sideEffect }))\n : [],\n );\n}\n\n/** A destination with something sealed in it, as `/api/flows/destinations/reveal` takes it. */\nexport type SealedSideEffect = { sideEffectId: string; type: FlowSideEffectType; encryptedConfig: string };\n\nexport function sealedSideEffects(tree: AnyRecord): SealedSideEffect[] {\n return collectSideEffects(tree).flatMap(({ sideEffect }) => {\n const { id, type, encryptedConfig } = sideEffect;\n const sealed =\n typeof id === \"string\" &&\n typeof type === \"string\" &&\n (FLOW_SECRET_SIDE_EFFECT_TYPES as readonly string[]).includes(type) &&\n typeof encryptedConfig === \"string\" &&\n encryptedConfig.length > 0;\n return sealed\n ? [{ sideEffectId: id as string, type: type as FlowSideEffectType, encryptedConfig: encryptedConfig as string }]\n : [];\n });\n}\n\nfunction describeSettings(settings: Record<string, unknown>): string {\n if (typeof settings.email === \"string\") {\n return `to ${settings.email}${typeof settings.subject === \"string\" ? ` · subject \"${settings.subject}\"` : \"\"}`;\n }\n return Object.entries(settings)\n .filter(([, value]) => typeof value === \"string\" || typeof value === \"number\")\n .map(([key, value]) => `${key}: ${String(value)}`)\n .join(\" · \");\n}\n\n/** Each sealed destination's row, saying where it sends — credentials never included (the backend strips them). */\nexport function withSettings(\n rows: FlowConfigStatus[],\n settingsById: Record<string, Record<string, unknown>>,\n): FlowConfigStatus[] {\n return rows.map((row) => {\n const settings = row.sideEffectId ? settingsById[row.sideEffectId] : undefined;\n const described = settings ? describeSettings(settings) : \"\";\n return described ? { ...row, status: `${row.status} → ${described}` } : row;\n });\n}\n\n/** Whether this workspace holds a Form by that slug. Never exits. */\nexport function flowExists(slug: string): boolean {\n return existsSync(join(flowsDir(), slug, \"_data.json\"));\n}\n\nexport function readFlowTree(slug: string): AnyRecord {\n const path = join(flowsDir(), slug, \"_data.json\");\n if (!existsSync(path)) {\n failLocal(`No form \"${slug}\". Run \"baker flows list\" to see the forms in this workspace.`);\n }\n try {\n return JSON.parse(readFileSync(path, \"utf-8\")) as AnyRecord;\n } catch (error) {\n failLocal(`Could not read form \"${slug}\": ${error instanceof Error ? error.message : String(error)}`);\n }\n}\n\nfunction isConfigured(value: unknown): boolean {\n return typeof value === \"string\" && value.length > 0;\n}\n\ntype NodeMeta = { nodeId: string; nodeName?: string };\n\nfunction nodeMeta(record: AnyRecord): NodeMeta {\n const nodeId = typeof record.id === \"string\" ? record.id : \"\";\n const nodeName = typeof record.name === \"string\" ? record.name : undefined;\n return { nodeId, ...(nodeName ? { nodeName } : {}) };\n}\n\nfunction widgetNodeStatus(record: AnyRecord, meta: NodeMeta): FlowConfigStatus | null {\n const nodeData = record.nodeData as AnyRecord | undefined;\n const nodeType = nodeData?.type;\n if (typeof nodeType !== \"string\" || !(FLOW_RESOURCE_NODE_TYPES as readonly string[]).includes(nodeType)) {\n return null;\n }\n const external = (nodeData?.form as AnyRecord | undefined)?.external;\n const selected = external != null && typeof external === \"object\";\n const name = selected ? (external as AnyRecord).name : undefined;\n return {\n ...meta,\n target: \"node\",\n kind: nodeType,\n status: selected\n ? `${nodeType} — selected${typeof name === \"string\" ? ` \"${name}\"` : \"\"}`\n : `${nodeType} — not selected`,\n needsInput: !selected,\n };\n}\n\n/**\n * Whether this side effect still needs something only the user can give.\n *\n * `false` for a type that has no confidential half at all (a pixel takes a tag\n * ref and nothing else), so a caller can ask the question of any side effect\n * without first checking whether the question applies.\n */\nexport function sideEffectNeedsInput(raw: unknown): boolean {\n const effect = raw as AnyRecord | null;\n const type = effect?.type;\n if (typeof type !== \"string\" || !(FLOW_SECRET_SIDE_EFFECT_TYPES as readonly string[]).includes(type)) {\n return false;\n }\n const configured = isConfigured(effect?.encryptedConfig);\n if (!isFlowOauthSideEffect(type as FlowSideEffectType)) return !configured;\n return !isConfigured(effect?.oauthProviderId) || !configured;\n}\n\n/** A pixel has no confidential half; it is listed so a form's tracking is visible before anyone adds to it. */\nfunction trackingStatus(effect: AnyRecord, type: string, meta: NodeMeta): FlowConfigStatus | null {\n if (flowCatalogEntry(\"side-effect\", type)?.owners?.tagIds !== \"tags\") return null;\n const tags = Array.isArray(effect.tagIds) ? effect.tagIds.length : 0;\n const event = typeof effect.eventName === \"string\" ? ` \"${effect.eventName}\"` : \"\";\n return {\n ...meta,\n target: \"sideEffect\",\n ...(typeof effect.id === \"string\" ? { sideEffectId: effect.id } : {}),\n kind: type,\n status: `${type}${event} — ${tags > 0 ? `[${tags} tag${tags === 1 ? \"\" : \"s\"}]` : \"[no tag]\"}`,\n needsInput: false,\n };\n}\n\nfunction sideEffectStatus(raw: unknown, meta: NodeMeta): FlowConfigStatus | null {\n const effect = raw as AnyRecord | null;\n const type = effect?.type;\n if (typeof type !== \"string\") return null;\n if (!(FLOW_SECRET_SIDE_EFFECT_TYPES as readonly string[]).includes(type)) {\n return effect ? trackingStatus(effect, type, meta) : null;\n }\n const configured = isConfigured(effect?.encryptedConfig);\n const oauth = isFlowOauthSideEffect(type as FlowSideEffectType);\n const connected = isConfigured(effect?.oauthProviderId);\n const needs = FLOW_SECRET_FIELDS[type as FlowSideEffectType];\n const status = oauth\n ? `${type} — connection ${connected ? \"[connected]\" : \"[needs connection]\"}, config ${configured ? \"[set]\" : \"[missing]\"}`\n : configured\n ? `${type} — [configured]`\n : `${type} — [missing]${needs.length > 0 ? ` (needs: ${needs.join(\", \")})` : \"\"}`;\n return {\n ...meta,\n target: \"sideEffect\",\n ...(typeof effect?.id === \"string\" ? { sideEffectId: effect.id } : {}),\n kind: type,\n status,\n needsInput: sideEffectNeedsInput(effect),\n };\n}\n\n/**\n * The exact call that fills a still-unconfigured item — `baker flows connect`\n * for anything the agent can wire itself, `request_flow_input` for the rest\n * and as the fallback.\n *\n * Emitted as a ready-to-issue call rather than a reminder that one exists. The\n * argument set is not guessable — it needs the node id, and for a side effect\n * the side-effect id too — so a hint that only named the tool would still cost\n * the agent a `flows show --full` to assemble.\n */\nexport function requestFlowInputCall(slug: string, status: FlowConfigStatus): string {\n const args =\n status.target === \"node\"\n ? `{ target: \"node\", flowSlug: \"${slug}\", nodeId: \"${status.nodeId}\", nodeType: \"${status.kind}\" }`\n : `{ target: \"sideEffect\", flowSlug: \"${slug}\", nodeId: \"${status.nodeId}\", sideEffectId: \"${status.sideEffectId}\", sideEffectType: \"${status.kind}\" }`;\n const card = `request_flow_input with ${args}`;\n const target = status.target === \"node\" ? `--node ${status.nodeId}` : `--side-effect ${status.sideEffectId}`;\n const fallback = \"only if nothing is connected or several could be meant\";\n // Nothing in an email is confidential: you state it, and the user is never handed a card for it.\n if (status.kind === \"email\") {\n return `baker flows connect ${slug} ${target} --email \"<who receives each lead, comma-separated>\" --subject \"<New lead — the Form's name>\"`;\n }\n if (status.kind === \"httpWebhook\") {\n return `baker flows connect ${slug} ${target} --url <https address> — only a webhook that needs a token or password goes to the user: ${card}`;\n }\n if (status.kind === \"hubspotForm\") {\n return `baker flows connect ${slug} ${target} --hubspot-form <formId from baker hubspot forms list> — ${fallback}: ${card}`;\n }\n if (status.kind === \"hubspot\" || status.kind === \"hubspotMeeting\") {\n const list = status.kind === \"hubspot\" ? \"forms view <id>\" : \"meetings view <slug>\";\n return `write \\`baker hubspot ${list} --as-node\\` into the step's form.external — ${fallback}: ${card}`;\n }\n if ((FLOW_ACCOUNT_ONLY_KINDS as readonly string[]).includes(status.kind)) {\n return `baker flows connect ${slug} ${target} — ${fallback}: ${card}`;\n }\n if ((FLOW_AGENT_DESTINATION_KINDS as readonly string[]).includes(status.kind)) {\n const sheet = status.kind === \"googleSpreadsheet\" ? ' (or --new-sheet \"<title>\" --columns \"…\")' : \"\";\n return `baker flows connect ${slug} ${target} --resource <id from baker flows options ${status.kind}>${sheet} — ${fallback}: ${card}`;\n }\n return card;\n}\n\n/**\n * Walk a local flow tree collecting the configuration status of every\n * confidential field — WITHOUT decrypting anything. A present `encryptedConfig`\n * string / `oauthProviderId` / `form.external` object means \"configured\"; null /\n * absent means the agent still needs to run `request_flow_input` for it.\n */\nexport function collectConfigStatus(node: unknown, acc: FlowConfigStatus[]): void {\n if (!node || typeof node !== \"object\") {\n return;\n }\n const record = node as AnyRecord;\n const meta = nodeMeta(record);\n\n const widget = widgetNodeStatus(record, meta);\n if (widget) {\n acc.push(widget);\n }\n if (Array.isArray(record.sideEffects)) {\n for (const raw of record.sideEffects) {\n const status = sideEffectStatus(raw, meta);\n if (status) {\n acc.push(status);\n }\n }\n }\n if (Array.isArray(record.children)) {\n for (const child of record.children) {\n collectConfigStatus(child, acc);\n }\n }\n}\n\n/** Replace opaque ciphertext with a status marker so `--full` stays readable and never leaks noise. */\nexport function redactTree(node: unknown): unknown {\n if (Array.isArray(node)) {\n return node.map(redactTree);\n }\n if (!node || typeof node !== \"object\") {\n return node;\n }\n const out: AnyRecord = {};\n for (const [key, value] of Object.entries(node as AnyRecord)) {\n if (key === \"encryptedConfig\") {\n out[key] = isConfigured(value) ? \"[configured]\" : value;\n } else {\n out[key] = redactTree(value);\n }\n }\n return out;\n}\n\n/**\n * The constant a step's name becomes in the generated `_query.ts`.\n *\n * Byte-for-byte the scaffold's own `toScreamingSnake`\n * (`__tooling__/checks/base/flow-typed/flow-typed.mjs`), which is the only implementation\n * that decides anything: the watcher writes `export const <key> = \"<node id>\";`\n * for every step and throws `Duplicate flow node name` when two steps produce\n * the same one. `flows-step-name-key.test.ts` pins the two together.\n *\n * It is copied rather than imported because the CLI ships as a binary into a\n * Session Runtime and the scaffold ships as files — there is no module boundary\n * they share. The copy that was here before was NOT this rule: it uppercased and\n * squashed every non-alphanumeric run, which agrees on `Contact Info` and\n * disagrees on `contactInfo` (`CONTACTINFO` here, `CONTACT_INFO` there). So\n * `add-node` waved through a name that collided in the generator, the watcher\n * then threw, and `_query.ts` stopped regenerating for the whole form.\n */\nexport function stepNameKey(name: string): string {\n return name\n .replace(/([a-z])([A-Z])/g, \"$1_$2\")\n .replace(/[-\\s]+/g, \"_\")\n .toUpperCase();\n}\n\n/**\n * Whether that constant is one TypeScript will accept.\n *\n * `flow-typed.mjs` interpolates the key straight into `export const <key> = …`\n * without checking, so a step called \"1. Your details\" or \"Thanks!\" writes a\n * `_query.ts` that is a syntax error, and the whole workspace stops building —\n * a failure whose message names the generated file rather than the step that\n * caused it. `add-node` is where a name is minted, so it is where this is worth\n * catching.\n *\n * The real identifier grammar, not `[A-Z0-9_]`: this product is Spanish-first\n * and `INFORMACIÓN_DE_CONTACTO` is both a legal identifier and an ordinary step\n * name. Rejecting it would be the check being wrong, not the name.\n */\nexport function isUsableStepNameKey(key: string): boolean {\n return /^[\\p{ID_Start}$_][\\p{ID_Continue}$‌‍]*$/u.test(key);\n}\n"],"mappings":"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","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 FlowsSealRequest,\n type FlowsSealResponse,\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(\n ({ sideEffect }) =>\n (OAUTH_SIDE_EFFECTS.has(type) && !isSet(sideEffect.oauthProviderId)) || !isSet(sideEffect.encryptedConfig),\n )\n .map(({ sideEffect }) => String(sideEffect.id));\n}\n\nexport function unwiredHubspotForms(tree: AnyRecord): string[] {\n return unwiredSideEffects(tree, \"hubspotForm\");\n}\n\n/** Destinations with nothing confidential in them: the agent states them, no card. */\nconst STATED_KINDS = new Set([\"email\", \"httpWebhook\"]);\n\n/** The stated kind an `--email` / `--subject` / `--url` call is about. */\nfunction statedKind(args: AnyRecord): string | undefined {\n if (typeof args.email === \"string\" || typeof args.subject === \"string\") return \"email\";\n if (typeof args.url === \"string\") return \"httpWebhook\";\n return undefined;\n}\n\ntype SealPlan = { ok: true; request: FlowsSealRequest } | { ok: false; message: string; fix: string };\n\n/** What `--email/--subject` or `--url` say, as the request the backend seals — or why not. */\nexport function sealRequestFor(kind: string, args: AnyRecord): SealPlan {\n const text = (key: string) => (typeof args[key] === \"string\" && args[key].trim() ? args[key].trim() : undefined);\n if (kind === \"email\") {\n const email = text(\"email\");\n const subject = text(\"subject\");\n if (!email || !subject) {\n return {\n ok: false,\n message: \"An email destination needs both who receives it and its subject.\",\n fix: 'Pass --email \"a@x.com, b@x.com\" --subject \"New lead — <Form name>\". Write the subject yourself from the Form; ask the user only for an address you were not given.',\n };\n }\n return { ok: true, request: { type: \"email\", email, subject } };\n }\n if (kind === \"httpWebhook\") {\n const apiUrl = text(\"url\");\n if (!apiUrl) {\n return { ok: false, message: \"A webhook destination needs its address.\", fix: \"Pass --url https://…\" };\n }\n return { ok: true, request: { type: \"httpWebhook\", apiUrl } };\n }\n return {\n ok: false,\n message: `A ${kind} destination holds a credential, so it is not one you can state.`,\n fix: \"Its token or URL is the user's to enter: request_flow_input.\",\n };\n}\n\n/** Write sealed settings onto a destination that has no account (email, webhook). Mutates `tree`. */\nexport function attachSettings(tree: AnyRecord, id: string, encryptedConfig: string, type: string): Attached {\n const chosen = collectSideEffects(tree).find((entry) => entry.sideEffect.id === id);\n if (!chosen || chosen.sideEffect.type !== type) {\n const ofType = collectSideEffects(tree).filter((entry) => entry.sideEffect.type === type);\n return {\n ok: false,\n message: chosen\n ? `Side effect \"${id}\" is a ${String(chosen.sideEffect.type)}, not a ${type}.`\n : `No side effect with id \"${id}\" in this form.`,\n fix: `${type} side effects in this form: ${ofType.map((entry) => String(entry.sideEffect.id)).join(\", \") || \"none\"}`,\n };\n }\n chosen.sideEffect.encryptedConfig = encryptedConfig;\n return { ok: true, nodeId: String(chosen.node.id), sideEffectId: id };\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 // A stated destination is restated whole (\"every lead to Vicente and Fran\"), set or not.\n const ids = STATED_KINDS.has(kind)\n ? collectSideEffects(tree)\n .filter(({ sideEffect }) => sideEffect.type === kind)\n .map(({ sideEffect }) => String(sideEffect.id))\n : on === \"node\"\n ? unpickedSteps(tree, kind)\n : unwiredSideEffects(tree, kind);\n if (ids.length === 0 && STATED_KINDS.has(kind)) {\n refuse(\n `This Form has no ${kind} destination.`,\n `Add one: baker flows add-side-effect <slug> --node <stepId> --type ${kind}`,\n );\n }\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\" : statedKind(args);\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 const stated = statedKind(args);\n if (stated) return { kind: stated, on: \"sideEffect\", ids: [onlyOfType(tree, stated)] };\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 fromStated(tree: AnyRecord, target: Target, args: AnyRecord): Promise<Wired> {\n const plan = sealRequestFor(target.kind, args);\n if (!plan.ok) refuse(plan.message, plan.fix);\n let sealed: FlowsSealResponse[\"data\"];\n try {\n sealed = (await apiPost<FlowsSealResponse>(\"/api/flows/destinations/seal\", plan.request)).data;\n } catch (err) {\n failApi(err);\n }\n const wired = applyAll(target, (id) => attachSettings(tree, id, sealed.encryptedConfig, target.kind));\n return {\n wired,\n destination: sealed.settings,\n hints: [\n target.kind === \"email\"\n ? `Leads from these steps now go to ${String(sealed.settings.email)} with the subject \"${String(sealed.settings.subject)}\". Tell the user in those words.`\n : `Submissions now go to ${String(sealed.settings.apiUrl)}.`,\n ],\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), email (`--email \"a@x.com, b@x.com\" --subject \"New lead — <Form>\"`, never a card), webhook without a credential (`--url`). `--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 email: {\n type: \"string\",\n description:\n 'Email destination: who receives each lead, comma-separated for several (--email \"ana@x.com, luis@x.com\"). Never a card: you state it.',\n required: false,\n },\n subject: {\n type: \"string\",\n description:\n 'Email destination: the subject line. Write it yourself from the Form (\"New lead — Private events\").',\n required: false,\n },\n url: {\n type: \"string\",\n description:\n \"Webhook destination with no credential: its https address. One that needs a token goes to request_flow_input.\",\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>. Email: --side-effect se-email-1 --email \"ana@x.com, luis@x.com\" --subject \"New lead — Contact\". 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 email: { type: \"string\", description: \"Email destination: recipients, comma-separated\" },\n subject: { type: \"string\", description: \"Email destination: subject line\" },\n url: { type: \"string\", description: \"Webhook destination with no credential: its address\" },\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 : STATED_KINDS.has(target.kind)\n ? await fromStated(tree, target, args)\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"]}