@koda-sl/baker-cli 0.514.0-dev.555f7007e → 0.515.0-dev.14a31186e

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 (375) hide show
  1. package/README.md +1 -18
  2. package/dist/{account-ZY655BIU.js → account-BA3IO3AN.js} +3 -3
  3. package/dist/{account-UFYZS3K6.js → account-JNBDG6PB.js} +4 -4
  4. package/dist/{account-QX4G4BJ7.js → account-PISI6UMC.js} +4 -4
  5. package/dist/{account-assets-J5Z4URLQ.js → account-assets-T3VVNBUG.js} +8 -8
  6. package/dist/{account-level-4SBYYHRS.js → account-level-MPFWRPEK.js} +5 -5
  7. package/dist/{account-reads-FOEVPWDP.js → account-reads-ATFFFKV4.js} +4 -4
  8. package/dist/{account-users-UTIF7MIT.js → account-users-FBA7PDBK.js} +4 -4
  9. package/dist/{account-writes-QAQXRIEY.js → account-writes-R5T3F5QT.js} +4 -4
  10. package/dist/{accounts-FT2SRKMD.js → accounts-4R3MBNJG.js} +4 -4
  11. package/dist/{accounts-SNB65ZEW.js → accounts-5WF7VE7J.js} +4 -4
  12. package/dist/{accounts-JK3OAS5U.js → accounts-JNVS3HEX.js} +2 -2
  13. package/dist/{accounts-OE33CKWD.js → accounts-KELFJVQM.js} +4 -4
  14. package/dist/{accounts-K5XLEO6W.js → accounts-VPWCLF6X.js} +3 -3
  15. package/dist/{active-entities-3BAPHE4P.js → active-entities-WDPW7652.js} +3 -3
  16. package/dist/{activities-LKLPORDI.js → activities-WGPHYSFU.js} +4 -4
  17. package/dist/{ad-group-writes-XY5JYTKT.js → ad-group-writes-4OCFZI33.js} +4 -4
  18. package/dist/{ad-groups-YEO5ZS5U.js → ad-groups-7NE3A255.js} +8 -8
  19. package/dist/{ad-writes-XRCPK4SP.js → ad-writes-FWUMC6AE.js} +4 -4
  20. package/dist/{ads-MAOI7S6V.js → ads-F7AUJWK7.js} +13 -13
  21. package/dist/{ads-H7H7H2CM.js → ads-ITEUGEUV.js} +9 -9
  22. package/dist/{ads-AYJAYLFR.js → ads-MUFH7FLP.js} +7 -7
  23. package/dist/{adsets-QRKICEFD.js → adsets-XH2ULWPM.js} +12 -12
  24. package/dist/{analytics-XB6FRNVJ.js → analytics-TPI27PJL.js} +3 -3
  25. package/dist/{analytics-ADIWEM6G.js → analytics-ZFWZ5YD5.js} +10 -10
  26. package/dist/{asset-writes-JLVUAVUZ.js → asset-writes-4X3AJQ4Q.js} +5 -5
  27. package/dist/{audience-size-P5L6MZ4C.js → audience-size-4JPP222L.js} +3 -3
  28. package/dist/{audience-writes-CDKQB3SM.js → audience-writes-TXWPDJ2F.js} +4 -4
  29. package/dist/{audiences-XKERWKKE.js → audiences-5QFAMXWP.js} +4 -4
  30. package/dist/{audiences-CDDI5HR5.js → audiences-MBBXWEOI.js} +8 -8
  31. package/dist/{audiences-34IQKOGS.js → audiences-YUG5JLL4.js} +3 -3
  32. package/dist/{audit-SEADLC6F.js → audit-QQAM5QJ2.js} +3 -3
  33. package/dist/{audit-7ED6CUTQ.js → audit-WFXS5ELM.js} +3 -3
  34. package/dist/{bid-pricing-NWSUO3VM.js → bid-pricing-JKUFSCZG.js} +3 -3
  35. package/dist/{businesses-MGP2YCEU.js → businesses-24JNY46Z.js} +3 -3
  36. package/dist/{campaign-groups-PH64UXZJ.js → campaign-groups-QUEKAHHT.js} +9 -9
  37. package/dist/{campaign-writes-BN3EGDK5.js → campaign-writes-GZ5MKJ63.js} +4 -4
  38. package/dist/{campaign-writes-CLV5ZSUK.js → campaign-writes-UO5P7OD7.js} +4 -4
  39. package/dist/{campaigns-5XRY27JZ.js → campaigns-7V7PYIHJ.js} +8 -8
  40. package/dist/{campaigns-ZYU4BXDP.js → campaigns-G24AEUCM.js} +8 -8
  41. package/dist/{campaigns-HES5MDUG.js → campaigns-KXYGSH27.js} +12 -12
  42. package/dist/{campaigns-JF4TYYUP.js → campaigns-QNBBQTMU.js} +12 -12
  43. package/dist/{cards-A7GQVC7B.js → cards-NSNAFTEB.js} +3 -3
  44. package/dist/{catalogs-6XLBWAUS.js → catalogs-I4WWTCIZ.js} +4 -4
  45. package/dist/{catalogs-TGLSJEK5.js → catalogs-VZYAATUR.js} +4 -4
  46. package/dist/{changes-OOUVQDBY.js → changes-BPC2O52H.js} +3 -3
  47. package/dist/{chatgpt-NAXIFWXV.js → chatgpt-WFGSWJ5N.js} +13 -13
  48. package/dist/{chunk-KUY26RCF.js → chunk-2F4DELSV.js} +2 -2
  49. package/dist/{chunk-ZRP7Y2DM.js → chunk-6DPSWLGY.js} +7 -3
  50. package/dist/chunk-6DPSWLGY.js.map +1 -0
  51. package/dist/{chunk-GAYRBIEF.js → chunk-ASRS37QE.js} +1 -3
  52. package/dist/chunk-ASRS37QE.js.map +1 -0
  53. package/dist/{chunk-EW7JSTRZ.js → chunk-C3IO4R4B.js} +2 -2
  54. package/dist/{chunk-4LF4AYPT.js → chunk-DHVFI7AE.js} +2 -2
  55. package/dist/{chunk-DMJUIUAL.js → chunk-DN6ZZTQE.js} +2 -2
  56. package/dist/{chunk-DM3Q6F5F.js → chunk-FCHZ5TNG.js} +2 -2
  57. package/dist/{chunk-7I6ZVBLM.js → chunk-GX5333QH.js} +3 -3
  58. package/dist/{chunk-HMIROUFV.js → chunk-HCQJYI6X.js} +2 -2
  59. package/dist/{chunk-GU5MXV2Y.js → chunk-HHVWV5BJ.js} +2 -2
  60. package/dist/{chunk-HGUYC5K6.js → chunk-I3WGTSDY.js} +2 -2
  61. package/dist/{chunk-7NF73SCB.js → chunk-IDSDJHRS.js} +2 -2
  62. package/dist/{chunk-QDQZ62FL.js → chunk-ILPHIYAL.js} +3 -3
  63. package/dist/{chunk-TGPGQTZA.js → chunk-IPO33JRU.js} +3 -3
  64. package/dist/{chunk-3G3GC5N4.js → chunk-KGYTIPS2.js} +2 -2
  65. package/dist/{chunk-3GAR4AZK.js → chunk-LNODLR7W.js} +2 -2
  66. package/dist/{chunk-B2POVFR2.js → chunk-M7QZSEHF.js} +2 -2
  67. package/dist/{chunk-K7IE6UYV.js → chunk-SBNBYRGZ.js} +3 -3
  68. package/dist/{chunk-RCJKABOS.js → chunk-TU5LQUJM.js} +2 -2
  69. package/dist/{chunk-TLQOMWLQ.js → chunk-TU7DWSTW.js} +2 -2
  70. package/dist/{chunk-7BUIOP36.js → chunk-TYXZ2SRW.js} +2 -2
  71. package/dist/{chunk-NWF2LRKO.js → chunk-VPABGAN4.js} +2 -2
  72. package/dist/{chunk-BJOK7QD4.js → chunk-VXWG4ZS2.js} +2 -2
  73. package/dist/{chunk-4UQRXKYJ.js → chunk-Z35KUMBW.js} +2 -2
  74. package/dist/{chunk-3M45PYU7.js → chunk-Z53DY5HT.js} +3 -3
  75. package/dist/cli.js +14 -15
  76. package/dist/cli.js.map +1 -1
  77. package/dist/{companies-KMMV6EJW.js → companies-NVQJ5EBX.js} +3 -3
  78. package/dist/{config-SMVIY6RW.js → config-55WGRLY3.js} +3 -3
  79. package/dist/{conversation-KHTZBGX2.js → conversation-A3ROPGFG.js} +3 -3
  80. package/dist/{conversion-report-U66HW6JM.js → conversion-report-BN4Q27MI.js} +3 -3
  81. package/dist/{conversion-upload-command-IHFKVX2M.js → conversion-upload-command-S4DGGI7K.js} +3 -3
  82. package/dist/{conversion-writes-RSGDOAET.js → conversion-writes-IZ7WLCYM.js} +4 -4
  83. package/dist/{conversions-BVOL43W4.js → conversions-RFJM3YRJ.js} +6 -6
  84. package/dist/{conversions-SUMZAV2T.js → conversions-YFIVZRLB.js} +8 -8
  85. package/dist/{copy-writes-CIHIFLY6.js → copy-writes-E3V5TUVU.js} +5 -5
  86. package/dist/{create-UL2OYXOA.js → create-HXGBZAOM.js} +3 -3
  87. package/dist/{creatives-FU3YELGU.js → creatives-6XGPDWCK.js} +9 -9
  88. package/dist/{creatives-BB6S2OF6.js → creatives-DUR5Z5AN.js} +6 -6
  89. package/dist/{crm-MQQRBITZ.js → crm-MFI4NZA3.js} +2 -2
  90. package/dist/{currency-CGKO5GKH.js → currency-5ED5P4JQ.js} +3 -3
  91. package/dist/{custom-conversions-HAGG72LF.js → custom-conversions-OIA5Y2GX.js} +6 -6
  92. package/dist/{delete-UIKB5ZXS.js → delete-CUFKAGJF.js} +3 -3
  93. package/dist/{demographics-ABZODD45.js → demographics-JHKN3EOT.js} +3 -3
  94. package/dist/{discover-VM3O7CQM.js → discover-BSQ35XIS.js} +2 -2
  95. package/dist/{draft-RIR2V6A2.js → draft-2ZX73IRO.js} +3 -3
  96. package/dist/{draft-5UUJC675.js → draft-6XYWFCIO.js} +4 -4
  97. package/dist/{draft-CRDBU6LF.js → draft-EK5PKBUR.js} +3 -3
  98. package/dist/{draft-BATA5CVI.js → draft-KB6WX63J.js} +4 -4
  99. package/dist/{draft-ZCL7FVBH.js → draft-L5Q6KEER.js} +3 -3
  100. package/dist/{draft-DJIYEMZU.js → draft-MJRMZGMP.js} +3 -3
  101. package/dist/{draft-P7IDMXWR.js → draft-ZRFZJ7Z3.js} +4 -4
  102. package/dist/{experiment-I5CRLOVN.js → experiment-3VRHCQN5.js} +2 -2
  103. package/dist/{experiments-MLLTHMMS.js → experiments-WOZFSKVI.js} +4 -4
  104. package/dist/{facets-KSHR3MBE.js → facets-2YXLHG4K.js} +3 -3
  105. package/dist/{forecast-ONVS2QAI.js → forecast-3NKGNWV3.js} +4 -4
  106. package/dist/{forecast-HT46MFL4.js → forecast-EX5IXM7C.js} +3 -3
  107. package/dist/{funding-5W4LX6DU.js → funding-TCEPQXRQ.js} +3 -3
  108. package/dist/{funnel-76BAD64Q.js → funnel-AX43MHB7.js} +2 -2
  109. package/dist/{ga4-BWVCDVIR.js → ga4-JE3HS36B.js} +15 -15
  110. package/dist/{get-4KFAO475.js → get-2RITKOGH.js} +3 -3
  111. package/dist/{google-7EZP7I6J.js → google-6KIKJCY7.js} +22 -22
  112. package/dist/{gsc-2MPE4N32.js → gsc-RMVOYIM3.js} +4 -4
  113. package/dist/{history-RDVV7KBN.js → history-KUC4KEYO.js} +3 -3
  114. package/dist/{history-FEBJHFHJ.js → history-VDZEOXQ4.js} +4 -4
  115. package/dist/{hubspot-A3RQNMYN.js → hubspot-FEKXKUAR.js} +3 -3
  116. package/dist/{insights-XZL2EM53.js → insights-HATH3IC6.js} +3 -3
  117. package/dist/{insights-UTCMSWSC.js → insights-UJGQ6WCQ.js} +3 -3
  118. package/dist/{instant-experiences-RM4MLJTL.js → instant-experiences-A2SIQNB5.js} +4 -4
  119. package/dist/{job-DRFCQ27M.js → job-SM2OQ2LO.js} +3 -3
  120. package/dist/{job-create-2EC25Y3J.js → job-create-ECZHPVKH.js} +3 -3
  121. package/dist/{job-status-UNVZRPIA.js → job-status-QSYDKIIV.js} +3 -3
  122. package/dist/{languages-DIQ3OG3E.js → languages-2JLPFE6B.js} +2 -2
  123. package/dist/{leads-LAATTW5G.js → leads-57S7XBRP.js} +3 -3
  124. package/dist/{leads-ULYHTG22.js → leads-QAYS7AJO.js} +4 -4
  125. package/dist/{line-item-writes-XJTTA3X5.js → line-item-writes-ONK72SG7.js} +4 -4
  126. package/dist/{line-items-JR25T2C5.js → line-items-L4HQHJP3.js} +8 -8
  127. package/dist/{linkedin-W5BJ6HEH.js → linkedin-YEAXKAG6.js} +30 -30
  128. package/dist/{list-3653DIYB.js → list-KHWFCIBV.js} +3 -3
  129. package/dist/{locations-HTVYJSDJ.js → locations-FB5RGOA4.js} +2 -2
  130. package/dist/{locations-M2B5XDU4.js → locations-ZVEU3XNW.js} +3 -3
  131. package/dist/{lookup-S5VG7AWH.js → lookup-MELV3RUL.js} +3 -3
  132. package/dist/{mcp-TFQTME4P.js → mcp-6T4PEZ5R.js} +15 -3
  133. package/dist/mcp-6T4PEZ5R.js.map +1 -0
  134. package/dist/{media-XCTZJIW4.js → media-BPI2VE6A.js} +3 -3
  135. package/dist/{media-P4T4ZBNS.js → media-EEWZZU3P.js} +3 -3
  136. package/dist/{meta-IPLWNYC7.js → meta-SMJUQP37.js} +38 -38
  137. package/dist/{metrics-WYWUX6Y5.js → metrics-S45EIREU.js} +2 -2
  138. package/dist/{output-WTEPRUPE.js → output-4QBQEM4C.js} +2 -2
  139. package/dist/{page-photos-OQ5QATQH.js → page-photos-HRKPDQBM.js} +4 -4
  140. package/dist/{pages-J6AF5NDU.js → pages-DTQWQUKP.js} +3 -3
  141. package/dist/{pixels-ZZTB6NWF.js → pixels-2BKADWE6.js} +3 -3
  142. package/dist/{pixels-THEGYRXT.js → pixels-ISHV4JZD.js} +4 -4
  143. package/dist/{plan-7UF76Q6U.js → plan-A6VC3ZO7.js} +3 -3
  144. package/dist/{preview-LRJOQ7LM.js → preview-GGIGXPJW.js} +3 -3
  145. package/dist/{promoted-tweet-writes-SBXWKO23.js → promoted-tweet-writes-WDSUBZ6D.js} +4 -4
  146. package/dist/{promoted-tweets-W42FNWS7.js → promoted-tweets-UFWAFTKD.js} +5 -5
  147. package/dist/{properties-RBLJCVSG.js → properties-VWKO3AAK.js} +3 -3
  148. package/dist/{query-IQICLABN.js → query-EG7R6MIA.js} +4 -4
  149. package/dist/{query-KQ675KJZ.js → query-OOP63DJF.js} +3 -3
  150. package/dist/{query-BJJYUGQZ.js → query-RBZFAIDK.js} +3 -3
  151. package/dist/{questionnaire-DWEH5II4.js → questionnaire-7SHYRTMJ.js} +2 -2
  152. package/dist/{read-QME7JYVF.js → read-GOULD7YL.js} +4 -4
  153. package/dist/{resolve-KRKIJKT7.js → resolve-5IWZBGO2.js} +3 -3
  154. package/dist/{revenue-UBZUTSXN.js → revenue-E5RDAGBU.js} +4 -4
  155. package/dist/{rule-writes-UAVWT4XS.js → rule-writes-K4P3XBJW.js} +4 -4
  156. package/dist/{rules-ZVS2MWED.js → rules-HY7S2YTD.js} +9 -9
  157. package/dist/{run-K2DOMOAN.js → run-GQEZCRPX.js} +3 -3
  158. package/dist/{scheduled-agents-ZGCUZ6SB.js → scheduled-agents-3J3B5O3T.js} +11 -11
  159. package/dist/{schema-D6BMZAPB.js → schema-6Y3IXFDC.js} +2 -2
  160. package/dist/{sends-LAY5C74B.js → sends-WBYTALR7.js} +2 -2
  161. package/dist/{shared-ZFULUOPQ.js → shared-CGEJI2RB.js} +3 -3
  162. package/dist/{shopify-LXSR37XI.js → shopify-SL7L364P.js} +3 -3
  163. package/dist/{sitemaps-F3HYH5ZP.js → sitemaps-5SP7PVQ6.js} +3 -3
  164. package/dist/{sites-JSMF72BY.js → sites-YZDPHBST.js} +3 -3
  165. package/dist/{sources-AOF2YDYX.js → sources-SRV7RSHI.js} +2 -2
  166. package/dist/{stats-QP4LFQZJ.js → stats-EGGNFTKI.js} +5 -5
  167. package/dist/{studies-EPO2AM4M.js → studies-6VUUOMZD.js} +7 -7
  168. package/dist/{study-writes-7FP443QQ.js → study-writes-IR7RSSTK.js} +4 -4
  169. package/dist/{sync-PHH65JFS.js → sync-SCM6JGJP.js} +3 -3
  170. package/dist/{tag-manager-F7PVTDBB.js → tag-manager-REKD4WGU.js} +9 -9
  171. package/dist/{targeting-NKZFEZD7.js → targeting-BQUD54MF.js} +4 -4
  172. package/dist/{targeting-constants-236ES5HE.js → targeting-constants-MRQB4N5I.js} +3 -3
  173. package/dist/{targeting-criteria-AU5CSMAU.js → targeting-criteria-3RSGL4PU.js} +5 -5
  174. package/dist/{targets-IOIH5JYS.js → targets-EQ6PS7BY.js} +3 -3
  175. package/dist/{terms-O6ODXEOK.js → terms-D2KAFHKJ.js} +2 -2
  176. package/dist/{themes-PGPIAKAO.js → themes-IAJPT5Y7.js} +4 -4
  177. package/dist/{top-companies-FSITN3ZR.js → top-companies-P33JBCQI.js} +3 -3
  178. package/dist/{triggers-MONMZSKT.js → triggers-J42TLW7M.js} +3 -3
  179. package/dist/{tweets-IUINLOXF.js → tweets-JN6ARKF6.js} +3 -3
  180. package/dist/{unstage-ZA3WQBEA.js → unstage-5C27F2LZ.js} +2 -2
  181. package/dist/{unstage-JXG5AU5Q.js → unstage-F73JVWEC.js} +3 -3
  182. package/dist/{update-RZSV4NYP.js → update-G7QXDY74.js} +3 -3
  183. package/dist/{url-options-63DED6CR.js → url-options-VI76IGTY.js} +3 -3
  184. package/dist/{url-params-TRFI2PMD.js → url-params-4H2EZWWH.js} +3 -3
  185. package/dist/{write-commands-OTWH6BKZ.js → write-commands-B25W4FP5.js} +3 -3
  186. package/dist/{write-commands-5J47ZNO4.js → write-commands-GNNEUVDW.js} +3 -3
  187. package/dist/{write-commands-NVCX7IAU.js → write-commands-KWO3X6OW.js} +4 -4
  188. package/dist/{write-commands-OGVDWWBV.js → write-commands-NXJQQ62W.js} +10 -10
  189. package/dist/{x-ZQNHYIDU.js → x-4GPADHQR.js} +15 -15
  190. package/package.json +1 -1
  191. package/dist/chunk-GAYRBIEF.js.map +0 -1
  192. package/dist/chunk-ZRP7Y2DM.js.map +0 -1
  193. package/dist/lead-routes-XBO2GOBL.js +0 -608
  194. package/dist/lead-routes-XBO2GOBL.js.map +0 -1
  195. package/dist/mcp-TFQTME4P.js.map +0 -1
  196. /package/dist/{account-ZY655BIU.js.map → account-BA3IO3AN.js.map} +0 -0
  197. /package/dist/{account-UFYZS3K6.js.map → account-JNBDG6PB.js.map} +0 -0
  198. /package/dist/{account-QX4G4BJ7.js.map → account-PISI6UMC.js.map} +0 -0
  199. /package/dist/{account-assets-J5Z4URLQ.js.map → account-assets-T3VVNBUG.js.map} +0 -0
  200. /package/dist/{account-level-4SBYYHRS.js.map → account-level-MPFWRPEK.js.map} +0 -0
  201. /package/dist/{account-reads-FOEVPWDP.js.map → account-reads-ATFFFKV4.js.map} +0 -0
  202. /package/dist/{account-users-UTIF7MIT.js.map → account-users-FBA7PDBK.js.map} +0 -0
  203. /package/dist/{account-writes-QAQXRIEY.js.map → account-writes-R5T3F5QT.js.map} +0 -0
  204. /package/dist/{accounts-FT2SRKMD.js.map → accounts-4R3MBNJG.js.map} +0 -0
  205. /package/dist/{accounts-SNB65ZEW.js.map → accounts-5WF7VE7J.js.map} +0 -0
  206. /package/dist/{accounts-JK3OAS5U.js.map → accounts-JNVS3HEX.js.map} +0 -0
  207. /package/dist/{accounts-OE33CKWD.js.map → accounts-KELFJVQM.js.map} +0 -0
  208. /package/dist/{accounts-K5XLEO6W.js.map → accounts-VPWCLF6X.js.map} +0 -0
  209. /package/dist/{active-entities-3BAPHE4P.js.map → active-entities-WDPW7652.js.map} +0 -0
  210. /package/dist/{activities-LKLPORDI.js.map → activities-WGPHYSFU.js.map} +0 -0
  211. /package/dist/{ad-group-writes-XY5JYTKT.js.map → ad-group-writes-4OCFZI33.js.map} +0 -0
  212. /package/dist/{ad-groups-YEO5ZS5U.js.map → ad-groups-7NE3A255.js.map} +0 -0
  213. /package/dist/{ad-writes-XRCPK4SP.js.map → ad-writes-FWUMC6AE.js.map} +0 -0
  214. /package/dist/{ads-MAOI7S6V.js.map → ads-F7AUJWK7.js.map} +0 -0
  215. /package/dist/{ads-H7H7H2CM.js.map → ads-ITEUGEUV.js.map} +0 -0
  216. /package/dist/{ads-AYJAYLFR.js.map → ads-MUFH7FLP.js.map} +0 -0
  217. /package/dist/{adsets-QRKICEFD.js.map → adsets-XH2ULWPM.js.map} +0 -0
  218. /package/dist/{analytics-XB6FRNVJ.js.map → analytics-TPI27PJL.js.map} +0 -0
  219. /package/dist/{analytics-ADIWEM6G.js.map → analytics-ZFWZ5YD5.js.map} +0 -0
  220. /package/dist/{asset-writes-JLVUAVUZ.js.map → asset-writes-4X3AJQ4Q.js.map} +0 -0
  221. /package/dist/{audience-size-P5L6MZ4C.js.map → audience-size-4JPP222L.js.map} +0 -0
  222. /package/dist/{audience-writes-CDKQB3SM.js.map → audience-writes-TXWPDJ2F.js.map} +0 -0
  223. /package/dist/{audiences-XKERWKKE.js.map → audiences-5QFAMXWP.js.map} +0 -0
  224. /package/dist/{audiences-CDDI5HR5.js.map → audiences-MBBXWEOI.js.map} +0 -0
  225. /package/dist/{audiences-34IQKOGS.js.map → audiences-YUG5JLL4.js.map} +0 -0
  226. /package/dist/{audit-SEADLC6F.js.map → audit-QQAM5QJ2.js.map} +0 -0
  227. /package/dist/{audit-7ED6CUTQ.js.map → audit-WFXS5ELM.js.map} +0 -0
  228. /package/dist/{bid-pricing-NWSUO3VM.js.map → bid-pricing-JKUFSCZG.js.map} +0 -0
  229. /package/dist/{businesses-MGP2YCEU.js.map → businesses-24JNY46Z.js.map} +0 -0
  230. /package/dist/{campaign-groups-PH64UXZJ.js.map → campaign-groups-QUEKAHHT.js.map} +0 -0
  231. /package/dist/{campaign-writes-BN3EGDK5.js.map → campaign-writes-GZ5MKJ63.js.map} +0 -0
  232. /package/dist/{campaign-writes-CLV5ZSUK.js.map → campaign-writes-UO5P7OD7.js.map} +0 -0
  233. /package/dist/{campaigns-5XRY27JZ.js.map → campaigns-7V7PYIHJ.js.map} +0 -0
  234. /package/dist/{campaigns-ZYU4BXDP.js.map → campaigns-G24AEUCM.js.map} +0 -0
  235. /package/dist/{campaigns-HES5MDUG.js.map → campaigns-KXYGSH27.js.map} +0 -0
  236. /package/dist/{campaigns-JF4TYYUP.js.map → campaigns-QNBBQTMU.js.map} +0 -0
  237. /package/dist/{cards-A7GQVC7B.js.map → cards-NSNAFTEB.js.map} +0 -0
  238. /package/dist/{catalogs-6XLBWAUS.js.map → catalogs-I4WWTCIZ.js.map} +0 -0
  239. /package/dist/{catalogs-TGLSJEK5.js.map → catalogs-VZYAATUR.js.map} +0 -0
  240. /package/dist/{changes-OOUVQDBY.js.map → changes-BPC2O52H.js.map} +0 -0
  241. /package/dist/{chatgpt-NAXIFWXV.js.map → chatgpt-WFGSWJ5N.js.map} +0 -0
  242. /package/dist/{chunk-KUY26RCF.js.map → chunk-2F4DELSV.js.map} +0 -0
  243. /package/dist/{chunk-EW7JSTRZ.js.map → chunk-C3IO4R4B.js.map} +0 -0
  244. /package/dist/{chunk-4LF4AYPT.js.map → chunk-DHVFI7AE.js.map} +0 -0
  245. /package/dist/{chunk-DMJUIUAL.js.map → chunk-DN6ZZTQE.js.map} +0 -0
  246. /package/dist/{chunk-DM3Q6F5F.js.map → chunk-FCHZ5TNG.js.map} +0 -0
  247. /package/dist/{chunk-7I6ZVBLM.js.map → chunk-GX5333QH.js.map} +0 -0
  248. /package/dist/{chunk-HMIROUFV.js.map → chunk-HCQJYI6X.js.map} +0 -0
  249. /package/dist/{chunk-GU5MXV2Y.js.map → chunk-HHVWV5BJ.js.map} +0 -0
  250. /package/dist/{chunk-HGUYC5K6.js.map → chunk-I3WGTSDY.js.map} +0 -0
  251. /package/dist/{chunk-7NF73SCB.js.map → chunk-IDSDJHRS.js.map} +0 -0
  252. /package/dist/{chunk-QDQZ62FL.js.map → chunk-ILPHIYAL.js.map} +0 -0
  253. /package/dist/{chunk-TGPGQTZA.js.map → chunk-IPO33JRU.js.map} +0 -0
  254. /package/dist/{chunk-3G3GC5N4.js.map → chunk-KGYTIPS2.js.map} +0 -0
  255. /package/dist/{chunk-3GAR4AZK.js.map → chunk-LNODLR7W.js.map} +0 -0
  256. /package/dist/{chunk-B2POVFR2.js.map → chunk-M7QZSEHF.js.map} +0 -0
  257. /package/dist/{chunk-K7IE6UYV.js.map → chunk-SBNBYRGZ.js.map} +0 -0
  258. /package/dist/{chunk-RCJKABOS.js.map → chunk-TU5LQUJM.js.map} +0 -0
  259. /package/dist/{chunk-TLQOMWLQ.js.map → chunk-TU7DWSTW.js.map} +0 -0
  260. /package/dist/{chunk-7BUIOP36.js.map → chunk-TYXZ2SRW.js.map} +0 -0
  261. /package/dist/{chunk-NWF2LRKO.js.map → chunk-VPABGAN4.js.map} +0 -0
  262. /package/dist/{chunk-BJOK7QD4.js.map → chunk-VXWG4ZS2.js.map} +0 -0
  263. /package/dist/{chunk-4UQRXKYJ.js.map → chunk-Z35KUMBW.js.map} +0 -0
  264. /package/dist/{chunk-3M45PYU7.js.map → chunk-Z53DY5HT.js.map} +0 -0
  265. /package/dist/{companies-KMMV6EJW.js.map → companies-NVQJ5EBX.js.map} +0 -0
  266. /package/dist/{config-SMVIY6RW.js.map → config-55WGRLY3.js.map} +0 -0
  267. /package/dist/{conversation-KHTZBGX2.js.map → conversation-A3ROPGFG.js.map} +0 -0
  268. /package/dist/{conversion-report-U66HW6JM.js.map → conversion-report-BN4Q27MI.js.map} +0 -0
  269. /package/dist/{conversion-upload-command-IHFKVX2M.js.map → conversion-upload-command-S4DGGI7K.js.map} +0 -0
  270. /package/dist/{conversion-writes-RSGDOAET.js.map → conversion-writes-IZ7WLCYM.js.map} +0 -0
  271. /package/dist/{conversions-BVOL43W4.js.map → conversions-RFJM3YRJ.js.map} +0 -0
  272. /package/dist/{conversions-SUMZAV2T.js.map → conversions-YFIVZRLB.js.map} +0 -0
  273. /package/dist/{copy-writes-CIHIFLY6.js.map → copy-writes-E3V5TUVU.js.map} +0 -0
  274. /package/dist/{create-UL2OYXOA.js.map → create-HXGBZAOM.js.map} +0 -0
  275. /package/dist/{creatives-FU3YELGU.js.map → creatives-6XGPDWCK.js.map} +0 -0
  276. /package/dist/{creatives-BB6S2OF6.js.map → creatives-DUR5Z5AN.js.map} +0 -0
  277. /package/dist/{crm-MQQRBITZ.js.map → crm-MFI4NZA3.js.map} +0 -0
  278. /package/dist/{currency-CGKO5GKH.js.map → currency-5ED5P4JQ.js.map} +0 -0
  279. /package/dist/{custom-conversions-HAGG72LF.js.map → custom-conversions-OIA5Y2GX.js.map} +0 -0
  280. /package/dist/{delete-UIKB5ZXS.js.map → delete-CUFKAGJF.js.map} +0 -0
  281. /package/dist/{demographics-ABZODD45.js.map → demographics-JHKN3EOT.js.map} +0 -0
  282. /package/dist/{discover-VM3O7CQM.js.map → discover-BSQ35XIS.js.map} +0 -0
  283. /package/dist/{draft-RIR2V6A2.js.map → draft-2ZX73IRO.js.map} +0 -0
  284. /package/dist/{draft-5UUJC675.js.map → draft-6XYWFCIO.js.map} +0 -0
  285. /package/dist/{draft-CRDBU6LF.js.map → draft-EK5PKBUR.js.map} +0 -0
  286. /package/dist/{draft-BATA5CVI.js.map → draft-KB6WX63J.js.map} +0 -0
  287. /package/dist/{draft-ZCL7FVBH.js.map → draft-L5Q6KEER.js.map} +0 -0
  288. /package/dist/{draft-DJIYEMZU.js.map → draft-MJRMZGMP.js.map} +0 -0
  289. /package/dist/{draft-P7IDMXWR.js.map → draft-ZRFZJ7Z3.js.map} +0 -0
  290. /package/dist/{experiment-I5CRLOVN.js.map → experiment-3VRHCQN5.js.map} +0 -0
  291. /package/dist/{experiments-MLLTHMMS.js.map → experiments-WOZFSKVI.js.map} +0 -0
  292. /package/dist/{facets-KSHR3MBE.js.map → facets-2YXLHG4K.js.map} +0 -0
  293. /package/dist/{forecast-ONVS2QAI.js.map → forecast-3NKGNWV3.js.map} +0 -0
  294. /package/dist/{forecast-HT46MFL4.js.map → forecast-EX5IXM7C.js.map} +0 -0
  295. /package/dist/{funding-5W4LX6DU.js.map → funding-TCEPQXRQ.js.map} +0 -0
  296. /package/dist/{funnel-76BAD64Q.js.map → funnel-AX43MHB7.js.map} +0 -0
  297. /package/dist/{ga4-BWVCDVIR.js.map → ga4-JE3HS36B.js.map} +0 -0
  298. /package/dist/{get-4KFAO475.js.map → get-2RITKOGH.js.map} +0 -0
  299. /package/dist/{google-7EZP7I6J.js.map → google-6KIKJCY7.js.map} +0 -0
  300. /package/dist/{gsc-2MPE4N32.js.map → gsc-RMVOYIM3.js.map} +0 -0
  301. /package/dist/{history-RDVV7KBN.js.map → history-KUC4KEYO.js.map} +0 -0
  302. /package/dist/{history-FEBJHFHJ.js.map → history-VDZEOXQ4.js.map} +0 -0
  303. /package/dist/{hubspot-A3RQNMYN.js.map → hubspot-FEKXKUAR.js.map} +0 -0
  304. /package/dist/{insights-XZL2EM53.js.map → insights-HATH3IC6.js.map} +0 -0
  305. /package/dist/{insights-UTCMSWSC.js.map → insights-UJGQ6WCQ.js.map} +0 -0
  306. /package/dist/{instant-experiences-RM4MLJTL.js.map → instant-experiences-A2SIQNB5.js.map} +0 -0
  307. /package/dist/{job-DRFCQ27M.js.map → job-SM2OQ2LO.js.map} +0 -0
  308. /package/dist/{job-create-2EC25Y3J.js.map → job-create-ECZHPVKH.js.map} +0 -0
  309. /package/dist/{job-status-UNVZRPIA.js.map → job-status-QSYDKIIV.js.map} +0 -0
  310. /package/dist/{languages-DIQ3OG3E.js.map → languages-2JLPFE6B.js.map} +0 -0
  311. /package/dist/{leads-LAATTW5G.js.map → leads-57S7XBRP.js.map} +0 -0
  312. /package/dist/{leads-ULYHTG22.js.map → leads-QAYS7AJO.js.map} +0 -0
  313. /package/dist/{line-item-writes-XJTTA3X5.js.map → line-item-writes-ONK72SG7.js.map} +0 -0
  314. /package/dist/{line-items-JR25T2C5.js.map → line-items-L4HQHJP3.js.map} +0 -0
  315. /package/dist/{linkedin-W5BJ6HEH.js.map → linkedin-YEAXKAG6.js.map} +0 -0
  316. /package/dist/{list-3653DIYB.js.map → list-KHWFCIBV.js.map} +0 -0
  317. /package/dist/{locations-HTVYJSDJ.js.map → locations-FB5RGOA4.js.map} +0 -0
  318. /package/dist/{locations-M2B5XDU4.js.map → locations-ZVEU3XNW.js.map} +0 -0
  319. /package/dist/{lookup-S5VG7AWH.js.map → lookup-MELV3RUL.js.map} +0 -0
  320. /package/dist/{media-XCTZJIW4.js.map → media-BPI2VE6A.js.map} +0 -0
  321. /package/dist/{media-P4T4ZBNS.js.map → media-EEWZZU3P.js.map} +0 -0
  322. /package/dist/{meta-IPLWNYC7.js.map → meta-SMJUQP37.js.map} +0 -0
  323. /package/dist/{metrics-WYWUX6Y5.js.map → metrics-S45EIREU.js.map} +0 -0
  324. /package/dist/{output-WTEPRUPE.js.map → output-4QBQEM4C.js.map} +0 -0
  325. /package/dist/{page-photos-OQ5QATQH.js.map → page-photos-HRKPDQBM.js.map} +0 -0
  326. /package/dist/{pages-J6AF5NDU.js.map → pages-DTQWQUKP.js.map} +0 -0
  327. /package/dist/{pixels-ZZTB6NWF.js.map → pixels-2BKADWE6.js.map} +0 -0
  328. /package/dist/{pixels-THEGYRXT.js.map → pixels-ISHV4JZD.js.map} +0 -0
  329. /package/dist/{plan-7UF76Q6U.js.map → plan-A6VC3ZO7.js.map} +0 -0
  330. /package/dist/{preview-LRJOQ7LM.js.map → preview-GGIGXPJW.js.map} +0 -0
  331. /package/dist/{promoted-tweet-writes-SBXWKO23.js.map → promoted-tweet-writes-WDSUBZ6D.js.map} +0 -0
  332. /package/dist/{promoted-tweets-W42FNWS7.js.map → promoted-tweets-UFWAFTKD.js.map} +0 -0
  333. /package/dist/{properties-RBLJCVSG.js.map → properties-VWKO3AAK.js.map} +0 -0
  334. /package/dist/{query-IQICLABN.js.map → query-EG7R6MIA.js.map} +0 -0
  335. /package/dist/{query-KQ675KJZ.js.map → query-OOP63DJF.js.map} +0 -0
  336. /package/dist/{query-BJJYUGQZ.js.map → query-RBZFAIDK.js.map} +0 -0
  337. /package/dist/{questionnaire-DWEH5II4.js.map → questionnaire-7SHYRTMJ.js.map} +0 -0
  338. /package/dist/{read-QME7JYVF.js.map → read-GOULD7YL.js.map} +0 -0
  339. /package/dist/{resolve-KRKIJKT7.js.map → resolve-5IWZBGO2.js.map} +0 -0
  340. /package/dist/{revenue-UBZUTSXN.js.map → revenue-E5RDAGBU.js.map} +0 -0
  341. /package/dist/{rule-writes-UAVWT4XS.js.map → rule-writes-K4P3XBJW.js.map} +0 -0
  342. /package/dist/{rules-ZVS2MWED.js.map → rules-HY7S2YTD.js.map} +0 -0
  343. /package/dist/{run-K2DOMOAN.js.map → run-GQEZCRPX.js.map} +0 -0
  344. /package/dist/{scheduled-agents-ZGCUZ6SB.js.map → scheduled-agents-3J3B5O3T.js.map} +0 -0
  345. /package/dist/{schema-D6BMZAPB.js.map → schema-6Y3IXFDC.js.map} +0 -0
  346. /package/dist/{sends-LAY5C74B.js.map → sends-WBYTALR7.js.map} +0 -0
  347. /package/dist/{shared-ZFULUOPQ.js.map → shared-CGEJI2RB.js.map} +0 -0
  348. /package/dist/{shopify-LXSR37XI.js.map → shopify-SL7L364P.js.map} +0 -0
  349. /package/dist/{sitemaps-F3HYH5ZP.js.map → sitemaps-5SP7PVQ6.js.map} +0 -0
  350. /package/dist/{sites-JSMF72BY.js.map → sites-YZDPHBST.js.map} +0 -0
  351. /package/dist/{sources-AOF2YDYX.js.map → sources-SRV7RSHI.js.map} +0 -0
  352. /package/dist/{stats-QP4LFQZJ.js.map → stats-EGGNFTKI.js.map} +0 -0
  353. /package/dist/{studies-EPO2AM4M.js.map → studies-6VUUOMZD.js.map} +0 -0
  354. /package/dist/{study-writes-7FP443QQ.js.map → study-writes-IR7RSSTK.js.map} +0 -0
  355. /package/dist/{sync-PHH65JFS.js.map → sync-SCM6JGJP.js.map} +0 -0
  356. /package/dist/{tag-manager-F7PVTDBB.js.map → tag-manager-REKD4WGU.js.map} +0 -0
  357. /package/dist/{targeting-NKZFEZD7.js.map → targeting-BQUD54MF.js.map} +0 -0
  358. /package/dist/{targeting-constants-236ES5HE.js.map → targeting-constants-MRQB4N5I.js.map} +0 -0
  359. /package/dist/{targeting-criteria-AU5CSMAU.js.map → targeting-criteria-3RSGL4PU.js.map} +0 -0
  360. /package/dist/{targets-IOIH5JYS.js.map → targets-EQ6PS7BY.js.map} +0 -0
  361. /package/dist/{terms-O6ODXEOK.js.map → terms-D2KAFHKJ.js.map} +0 -0
  362. /package/dist/{themes-PGPIAKAO.js.map → themes-IAJPT5Y7.js.map} +0 -0
  363. /package/dist/{top-companies-FSITN3ZR.js.map → top-companies-P33JBCQI.js.map} +0 -0
  364. /package/dist/{triggers-MONMZSKT.js.map → triggers-J42TLW7M.js.map} +0 -0
  365. /package/dist/{tweets-IUINLOXF.js.map → tweets-JN6ARKF6.js.map} +0 -0
  366. /package/dist/{unstage-ZA3WQBEA.js.map → unstage-5C27F2LZ.js.map} +0 -0
  367. /package/dist/{unstage-JXG5AU5Q.js.map → unstage-F73JVWEC.js.map} +0 -0
  368. /package/dist/{update-RZSV4NYP.js.map → update-G7QXDY74.js.map} +0 -0
  369. /package/dist/{url-options-63DED6CR.js.map → url-options-VI76IGTY.js.map} +0 -0
  370. /package/dist/{url-params-TRFI2PMD.js.map → url-params-4H2EZWWH.js.map} +0 -0
  371. /package/dist/{write-commands-OTWH6BKZ.js.map → write-commands-B25W4FP5.js.map} +0 -0
  372. /package/dist/{write-commands-5J47ZNO4.js.map → write-commands-GNNEUVDW.js.map} +0 -0
  373. /package/dist/{write-commands-NVCX7IAU.js.map → write-commands-KWO3X6OW.js.map} +0 -0
  374. /package/dist/{write-commands-OGVDWWBV.js.map → write-commands-NXJQQ62W.js.map} +0 -0
  375. /package/dist/{x-ZQNHYIDU.js.map → x-4GPADHQR.js.map} +0 -0
@@ -7,7 +7,7 @@ import {
7
7
  import "./chunk-NKQWDEB7.js";
8
8
  import {
9
9
  writeJsonEnvelope
10
- } from "./chunk-ZRP7Y2DM.js";
10
+ } from "./chunk-6DPSWLGY.js";
11
11
  import "./chunk-G4FG5EQO.js";
12
12
  import {
13
13
  apiPost
@@ -93,4 +93,4 @@ export {
93
93
  unstageBody,
94
94
  unstageCommand
95
95
  };
96
- //# sourceMappingURL=unstage-ZA3WQBEA.js.map
96
+ //# sourceMappingURL=unstage-5C27F2LZ.js.map
@@ -2,8 +2,8 @@ import {
2
2
  failApi,
3
3
  failValidation,
4
4
  validateScheduledAgentRef
5
- } from "./chunk-3G3GC5N4.js";
6
- import "./chunk-GAYRBIEF.js";
5
+ } from "./chunk-KGYTIPS2.js";
6
+ import "./chunk-ASRS37QE.js";
7
7
  import "./chunk-NZ34KM46.js";
8
8
  import "./chunk-CAZGM2NX.js";
9
9
  import "./chunk-NZS3KEQ2.js";
@@ -85,4 +85,4 @@ export {
85
85
  unstageBody,
86
86
  unstageCommand
87
87
  };
88
- //# sourceMappingURL=unstage-JXG5AU5Q.js.map
88
+ //# sourceMappingURL=unstage-F73JVWEC.js.map
@@ -16,8 +16,8 @@ import {
16
16
  slackBody,
17
17
  validateScheduledAgentRef,
18
18
  writeOk
19
- } from "./chunk-3G3GC5N4.js";
20
- import "./chunk-GAYRBIEF.js";
19
+ } from "./chunk-KGYTIPS2.js";
20
+ import "./chunk-ASRS37QE.js";
21
21
  import "./chunk-NZ34KM46.js";
22
22
  import "./chunk-CAZGM2NX.js";
23
23
  import "./chunk-NZS3KEQ2.js";
@@ -152,4 +152,4 @@ var updateCommand = defineCommand({
152
152
  export {
153
153
  updateCommand
154
154
  };
155
- //# sourceMappingURL=update-RZSV4NYP.js.map
155
+ //# sourceMappingURL=update-G7QXDY74.js.map
@@ -5,7 +5,7 @@ import {
5
5
  import "./chunk-NKQWDEB7.js";
6
6
  import {
7
7
  parseApiError
8
- } from "./chunk-4LF4AYPT.js";
8
+ } from "./chunk-DHVFI7AE.js";
9
9
  import {
10
10
  urlOptionsHints
11
11
  } from "./chunk-IZABTTW5.js";
@@ -14,7 +14,7 @@ import {
14
14
  resolveCustomerId,
15
15
  writeAdsJson,
16
16
  writeJsonEnvelope
17
- } from "./chunk-ZRP7Y2DM.js";
17
+ } from "./chunk-6DPSWLGY.js";
18
18
  import "./chunk-G4FG5EQO.js";
19
19
  import "./chunk-MUS2UTWU.js";
20
20
  import {
@@ -128,4 +128,4 @@ Examples:
128
128
  export {
129
129
  urlOptionsCommand
130
130
  };
131
- //# sourceMappingURL=url-options-63DED6CR.js.map
131
+ //# sourceMappingURL=url-options-VI76IGTY.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  handleLinkedinError,
3
3
  resolveAccountIdArg
4
- } from "./chunk-BJOK7QD4.js";
4
+ } from "./chunk-VXWG4ZS2.js";
5
5
  import {
6
6
  writeAdsJson
7
- } from "./chunk-ZRP7Y2DM.js";
7
+ } from "./chunk-6DPSWLGY.js";
8
8
  import {
9
9
  LINKEDIN_TRACKING_PARAMS_AD_SET_MAX
10
10
  } from "./chunk-NZ34KM46.js";
@@ -98,4 +98,4 @@ export {
98
98
  hints,
99
99
  urlParamsCommand
100
100
  };
101
- //# sourceMappingURL=url-params-TRFI2PMD.js.map
101
+ //# sourceMappingURL=url-params-4H2EZWWH.js.map
@@ -5,9 +5,9 @@ import {
5
5
  requireTarget,
6
6
  stageOp,
7
7
  stageOps
8
- } from "./chunk-GU5MXV2Y.js";
8
+ } from "./chunk-HHVWV5BJ.js";
9
9
  import "./chunk-D5FY4FAK.js";
10
- import "./chunk-ZRP7Y2DM.js";
10
+ import "./chunk-6DPSWLGY.js";
11
11
  import "./chunk-X7VQFLHI.js";
12
12
  import "./chunk-LU4HI4KI.js";
13
13
  import "./chunk-LGK7UWBN.js";
@@ -710,4 +710,4 @@ export {
710
710
  propertyCommand,
711
711
  retentionValue
712
712
  };
713
- //# sourceMappingURL=write-commands-OTWH6BKZ.js.map
713
+ //# sourceMappingURL=write-commands-B25W4FP5.js.map
@@ -2,9 +2,9 @@ import {
2
2
  loadJsonArg,
3
3
  requireTarget,
4
4
  stageOp
5
- } from "./chunk-3GAR4AZK.js";
5
+ } from "./chunk-LNODLR7W.js";
6
6
  import "./chunk-D5FY4FAK.js";
7
- import "./chunk-ZRP7Y2DM.js";
7
+ import "./chunk-6DPSWLGY.js";
8
8
  import "./chunk-X7VQFLHI.js";
9
9
  import "./chunk-LU4HI4KI.js";
10
10
  import "./chunk-LGK7UWBN.js";
@@ -203,4 +203,4 @@ export {
203
203
  triggerCommand,
204
204
  variableCommand
205
205
  };
206
- //# sourceMappingURL=write-commands-5J47ZNO4.js.map
206
+ //# sourceMappingURL=write-commands-GNNEUVDW.js.map
@@ -15,10 +15,10 @@ import {
15
15
  stageLinkedinOps,
16
16
  stageOp,
17
17
  stageStatusChange
18
- } from "./chunk-7I6ZVBLM.js";
18
+ } from "./chunk-GX5333QH.js";
19
19
  import {
20
20
  handleLinkedinError
21
- } from "./chunk-BJOK7QD4.js";
21
+ } from "./chunk-VXWG4ZS2.js";
22
22
  import {
23
23
  repeatedValues
24
24
  } from "./chunk-ERSX3MKH.js";
@@ -28,7 +28,7 @@ import "./chunk-D5FY4FAK.js";
28
28
  import "./chunk-QPESDKZC.js";
29
29
  import {
30
30
  writeJsonEnvelope
31
- } from "./chunk-ZRP7Y2DM.js";
31
+ } from "./chunk-6DPSWLGY.js";
32
32
  import "./chunk-E44NXCTL.js";
33
33
  import "./chunk-EJGAJHLB.js";
34
34
  import "./chunk-LNNTHEL7.js";
@@ -1499,4 +1499,4 @@ export {
1499
1499
  sponsoredPostArgs,
1500
1500
  trackingParamsPayload
1501
1501
  };
1502
- //# sourceMappingURL=write-commands-NVCX7IAU.js.map
1502
+ //# sourceMappingURL=write-commands-KWO3X6OW.js.map
@@ -7,7 +7,7 @@ import {
7
7
  budgetBoostsFromFlags,
8
8
  clearArg,
9
9
  clearFromFlags
10
- } from "./chunk-7BUIOP36.js";
10
+ } from "./chunk-TYXZ2SRW.js";
11
11
  import {
12
12
  bareAccountId,
13
13
  failWriteValidation,
@@ -23,14 +23,14 @@ import {
23
23
  stageOp,
24
24
  stageStatusChange,
25
25
  upper
26
- } from "./chunk-QDQZ62FL.js";
26
+ } from "./chunk-ILPHIYAL.js";
27
27
  import {
28
28
  buildCustomConversionRule
29
29
  } from "./chunk-Q3GSVLE5.js";
30
30
  import {
31
31
  VISUAL_ENHANCEMENT_FEATURES
32
32
  } from "./chunk-GDFJOCDO.js";
33
- import "./chunk-B2POVFR2.js";
33
+ import "./chunk-M7QZSEHF.js";
34
34
  import {
35
35
  repeatedValues
36
36
  } from "./chunk-ERSX3MKH.js";
@@ -39,7 +39,7 @@ import "./chunk-4NZ47VXO.js";
39
39
  import "./chunk-D5FY4FAK.js";
40
40
  import "./chunk-QPESDKZC.js";
41
41
  import "./chunk-Y2JZX6JB.js";
42
- import "./chunk-ZRP7Y2DM.js";
42
+ import "./chunk-6DPSWLGY.js";
43
43
  import "./chunk-E44NXCTL.js";
44
44
  import "./chunk-EJGAJHLB.js";
45
45
  import "./chunk-LNNTHEL7.js";
@@ -461,7 +461,7 @@ Example: baker ads meta adsets create --campaign 6123 --name "Reach ES" --optimi
461
461
  const file = loadJsonFileArg(args.file);
462
462
  const payload = mergePayload(file, adSetPayloadFromFlags(args, rawArgs, file));
463
463
  if (args["saved-audience"]) {
464
- const { savedAudienceTargeting, targetingFromSavedAudience } = await import("./audience-writes-CDKQB3SM.js");
464
+ const { savedAudienceTargeting, targetingFromSavedAudience } = await import("./audience-writes-TXWPDJ2F.js");
465
465
  const saved = await savedAudienceTargeting(accountId, String(args["saved-audience"]));
466
466
  const merged = targetingFromSavedAudience(saved, payload.targeting);
467
467
  if ("refusal" in merged) failWriteValidation(merged.refusal);
@@ -872,8 +872,8 @@ Example: baker ads meta ads retag 120252158038400247 --url-tags "utm_source={{si
872
872
  run: async ({ args, rawArgs }) => {
873
873
  const { apiPost } = await import("./client-EYPNMTBH.js");
874
874
  const { requireChatId } = await import("./env-ABXQWHDO.js");
875
- const { writeJsonEnvelope } = await import("./output-WTEPRUPE.js");
876
- const { handleMetaError } = await import("./shared-ZFULUOPQ.js");
875
+ const { writeJsonEnvelope } = await import("./output-4QBQEM4C.js");
876
+ const { handleMetaError } = await import("./shared-CGEJI2RB.js");
877
877
  try {
878
878
  const accountId = bareAccountId(args);
879
879
  const urlTags = typeof args["url-tags"] === "string" ? args["url-tags"] : void 0;
@@ -1095,8 +1095,8 @@ function duplicateCommand(entity, label) {
1095
1095
  run: async ({ args }) => {
1096
1096
  const { apiPost } = await import("./client-EYPNMTBH.js");
1097
1097
  const { requireChatId } = await import("./env-ABXQWHDO.js");
1098
- const { writeJsonEnvelope } = await import("./output-WTEPRUPE.js");
1099
- const { handleMetaError } = await import("./shared-ZFULUOPQ.js");
1098
+ const { writeJsonEnvelope } = await import("./output-4QBQEM4C.js");
1099
+ const { handleMetaError } = await import("./shared-CGEJI2RB.js");
1100
1100
  try {
1101
1101
  const accountId = bareAccountId(args);
1102
1102
  const chatId = requireChatId();
@@ -1169,4 +1169,4 @@ export {
1169
1169
  retagSetPairs,
1170
1170
  targetingFromFlags
1171
1171
  };
1172
- //# sourceMappingURL=write-commands-OGVDWWBV.js.map
1172
+ //# sourceMappingURL=write-commands-NXJQQ62W.js.map
@@ -25,23 +25,23 @@ The CLI auto-detects --account-id when exactly one X Ads account is connected, o
25
25
  Full guide: __tooling__/docs/tools/baker/ads-x.md`
26
26
  },
27
27
  subCommands: {
28
- accounts: () => import("./accounts-SNB65ZEW.js").then((m) => m.accountsCommand),
29
- funding: () => import("./funding-5W4LX6DU.js").then((m) => m.fundingCommand),
30
- campaigns: () => import("./campaigns-ZYU4BXDP.js").then((m) => m.campaignsCommand),
31
- "line-items": () => import("./line-items-JR25T2C5.js").then((m) => m.lineItemsCommand),
32
- "promoted-tweets": () => import("./promoted-tweets-W42FNWS7.js").then((m) => m.promotedTweetsCommand),
33
- tweets: () => import("./tweets-IUINLOXF.js").then((m) => m.tweetsCommand),
34
- cards: () => import("./cards-A7GQVC7B.js").then((m) => m.cardsCommand),
35
- draft: () => import("./draft-5UUJC675.js").then((m) => m.draftCommand),
36
- media: () => import("./media-XCTZJIW4.js").then((m) => m.mediaCommand),
37
- audiences: () => import("./audiences-34IQKOGS.js").then((m) => m.audiencesCommand),
38
- "targeting-criteria": () => import("./targeting-criteria-AU5CSMAU.js").then((m) => m.targetingCriteriaCommand),
39
- "targeting-constants": () => import("./targeting-constants-236ES5HE.js").then((m) => m.targetingConstantsCommand),
40
- "active-entities": () => import("./active-entities-3BAPHE4P.js").then((m) => m.activeEntitiesCommand),
41
- stats: () => import("./stats-QP4LFQZJ.js").then((m) => m.statsCommand)
28
+ accounts: () => import("./accounts-5WF7VE7J.js").then((m) => m.accountsCommand),
29
+ funding: () => import("./funding-TCEPQXRQ.js").then((m) => m.fundingCommand),
30
+ campaigns: () => import("./campaigns-G24AEUCM.js").then((m) => m.campaignsCommand),
31
+ "line-items": () => import("./line-items-L4HQHJP3.js").then((m) => m.lineItemsCommand),
32
+ "promoted-tweets": () => import("./promoted-tweets-UFWAFTKD.js").then((m) => m.promotedTweetsCommand),
33
+ tweets: () => import("./tweets-JN6ARKF6.js").then((m) => m.tweetsCommand),
34
+ cards: () => import("./cards-NSNAFTEB.js").then((m) => m.cardsCommand),
35
+ draft: () => import("./draft-6XYWFCIO.js").then((m) => m.draftCommand),
36
+ media: () => import("./media-BPI2VE6A.js").then((m) => m.mediaCommand),
37
+ audiences: () => import("./audiences-YUG5JLL4.js").then((m) => m.audiencesCommand),
38
+ "targeting-criteria": () => import("./targeting-criteria-3RSGL4PU.js").then((m) => m.targetingCriteriaCommand),
39
+ "targeting-constants": () => import("./targeting-constants-MRQB4N5I.js").then((m) => m.targetingConstantsCommand),
40
+ "active-entities": () => import("./active-entities-WDPW7652.js").then((m) => m.activeEntitiesCommand),
41
+ stats: () => import("./stats-EGGNFTKI.js").then((m) => m.statsCommand)
42
42
  }
43
43
  });
44
44
  export {
45
45
  xCommand
46
46
  };
47
- //# sourceMappingURL=x-ZQNHYIDU.js.map
47
+ //# sourceMappingURL=x-4GPADHQR.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koda-sl/baker-cli",
3
- "version": "0.514.0-dev.555f7007e",
3
+ "version": "0.515.0-dev.14a31186e",
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/command-loading.ts","../src/profile-help.ts","../src/agent-profile.ts"],"sourcesContent":["import type { Resolvable, SubCommandsDef } from \"citty\";\n\n/**\n * Which command families one `baker` invocation has to load.\n *\n * Loading every family is what made each `baker` process hold ~135 MB of heap\n * while it waited on one HTTP call: twenty parallel agents ran sixty of them and\n * filled an 8 GB Runtime. A command needs its own family and nothing else.\n */\nexport function familiesToLoad(argv: readonly string[], families: readonly string[]): string[] | \"all\" {\n const first = argv.find((token) => !token.startsWith(\"-\"));\n // `schema` reads the registry every family fills as it loads.\n if (first !== undefined && first !== \"schema\" && families.includes(first)) return [first];\n return \"all\";\n}\n\nexport type LoadableCommand = { meta?: Resolvable<unknown>; subCommands?: Resolvable<SubCommandsDef> };\n\nasync function resolved<T>(value: Resolvable<T>): Promise<T> {\n return typeof value === \"function\" ? await (value as () => T | Promise<T>)() : await value;\n}\n\n/** The command's subcommands, loaded in place if they were declared lazily. */\nasync function subCommandsOf(command: LoadableCommand): Promise<SubCommandsDef | undefined> {\n if (command.subCommands === undefined) return undefined;\n const subCommands = await resolved(command.subCommands);\n command.subCommands = subCommands;\n return subCommands;\n}\n\n/**\n * The subcommand of `command` that `token` names, by its name or an alias, as\n * citty finds it — loaded in place. An alias lives in the subcommand's own\n * meta, so a token that is no name loads the siblings to read theirs.\n */\nexport async function loadSubCommandNamed(\n command: LoadableCommand,\n token: string,\n): Promise<[string, LoadableCommand] | null> {\n const subCommands = await subCommandsOf(command);\n if (!subCommands) return null;\n const named = subCommands[token];\n if (named !== undefined) {\n const loaded = await resolved(named);\n subCommands[token] = loaded;\n return [token, loaded];\n }\n for (const [name, sub] of Object.entries(subCommands)) {\n const loaded = await resolved(sub);\n subCommands[name] = loaded;\n const meta = (await resolved(loaded.meta ?? {})) as { alias?: unknown };\n const aliases = Array.isArray(meta.alias) ? meta.alias : meta.alias === undefined ? [] : [meta.alias];\n if (aliases.includes(token)) return [name, loaded];\n }\n return null;\n}\n\n/** Loads, in place, every command at every depth. */\nexport async function loadAllCommands(command: LoadableCommand): Promise<void> {\n const subCommands = await subCommandsOf(command);\n if (!subCommands) return;\n for (const [name, sub] of Object.entries(subCommands)) {\n const loaded = await resolved(sub);\n subCommands[name] = loaded;\n await loadAllCommands(loaded);\n }\n}\n\n/**\n * Loads, in place, the command `argv` names and every parent on the way — and\n * nothing else, so the flag guards in `cli.ts` see the command they judge while\n * its siblings stay unloaded. Everything loads for `schema` and an unknown\n * name, which need the whole tree. It stops at the first flag: the organization\n * guard (`agent-profile.ts`) walks on past one itself, and loads the subtree a\n * `--help` lists.\n */\nexport async function loadCommands<T extends LoadableCommand>(root: T, argv: readonly string[]): Promise<T> {\n const families = Object.keys((await subCommandsOf(root)) ?? {});\n if (familiesToLoad(argv, families) === \"all\") {\n await loadAllCommands(root);\n return root;\n }\n let command: LoadableCommand = root;\n for (const token of argv) {\n if (token === \"--\" || token.startsWith(\"-\")) break;\n const subCommands = await subCommandsOf(command);\n const sub = subCommands?.[token];\n if (!subCommands || sub === undefined) break;\n const loaded = await resolved(sub);\n subCommands[token] = loaded;\n command = loaded;\n }\n return root;\n}\n","/**\n * What a command's help says, for the agent reading it.\n *\n * Descriptions are written for a company's agent, which may run every command:\n * they cite writes as examples (`baker ads meta campaigns create …`) and say a\n * family \"lists campaigns, or stages writes\". Read by the organization's agent,\n * which may only read, each is a call it would make and be refused. So a line\n * that names a command the reader may not run leaves its help, and where a\n * family holds commands the reader may not run, so does the talk of staging\n * them. A family the reader may change whole (the organization's own Scheduled\n * agents) keeps its staging, because it is how that family works.\n */\n\nimport type { AgentProfile } from \"./agent-profile.ts\";\n\ntype HelpNode = { meta?: unknown; subCommands?: unknown };\ntype Offers = (path: string) => boolean;\n\nfunction loadedSubCommands(node: HelpNode): Array<[string, HelpNode]> {\n const subCommands = node.subCommands;\n if (typeof subCommands !== \"object\" || subCommands === null) return [];\n return Object.entries(subCommands as Record<string, unknown>).flatMap(([name, sub]) =>\n typeof sub === \"object\" && sub !== null ? [[name, sub as HelpNode] as [string, HelpNode]] : [],\n );\n}\n\nfunction subCommandNames(node: HelpNode): string[] {\n const subCommands = node.subCommands;\n return typeof subCommands === \"object\" && subCommands !== null ? Object.keys(subCommands) : [];\n}\n\n/**\n * The command words name (`baker <words>`, or a family's command in backticks),\n * as far as the tree reaches; none when the first is no family. Where the tree\n * is not loaded this far (another family, a sibling this call never needed),\n * the words as written stand for the command: `offers` reads a command by its\n * leading words, so an argument after them changes nothing.\n */\nfunction commandOf(root: HelpNode, mention: string): string[] {\n const words = mention.trim().split(/\\s+/);\n let node: HelpNode = root;\n const path: string[] = [];\n for (const word of words) {\n const loaded = loadedSubCommands(node).find(([name]) => name === word)?.[1];\n if (!loaded) {\n // Not loaded is not \"not there\": a lazy entry of that name stands for the words written.\n return subCommandNames(node).includes(word) ? [words.join(\" \")] : path.length > 0 ? [path.join(\" \")] : [];\n }\n node = loaded;\n path.push(word);\n }\n return [path.join(\" \")];\n}\n\nfunction indentOf(line: string): number {\n return line.length - line.trimStart().length;\n}\n\n/**\n * The lines without those `drops` says go, each taken with what continues it:\n * the lines indented under it, the next line after a trailing `\\`, and the rest\n * of a sentence wrapped onto the lines below. `drops` returns the kept text of\n * a line, or null to drop it.\n */\nfunction dropping(lines: string[], drops: (line: string) => string | null): string[] {\n const kept: string[] = [];\n let carried: ((line: string) => boolean) | null = null;\n for (const line of lines) {\n if (carried?.(line)) continue;\n carried = null;\n const rest = drops(line);\n if (rest !== null) {\n kept.push(rest);\n continue;\n }\n const indent = indentOf(line);\n if (/\\\\\\s*$/.test(line)) {\n let open = true;\n carried = (next) => {\n const continues = open;\n open = /\\\\\\s*$/.test(next);\n return continues;\n };\n } else if (indent === 0 && !/[.:!?)]\\s*$/.test(line)) {\n let open = true;\n carried = (next) => {\n const continues = open && next.trim() !== \"\" && indentOf(next) === 0;\n open = continues && !/[.:!?)]\\s*$/.test(next);\n return continues;\n };\n } else if (indent > 0) {\n carried = (next) => next.trim() !== \"\" && indentOf(next) > indent;\n }\n }\n return kept;\n}\n\n/** A line that stands alone — an example, a table row, a \"Label: …\" entry — goes whole. */\nconst STANDALONE_LINE = /^(?:\\s|baker\\b|[A-Z][\\w ]{0,30}:\\s)/;\n\nfunction balanced(text: string): boolean {\n return (text.match(/\\(/g)?.length ?? 0) === (text.match(/\\)/g)?.length ?? 0);\n}\n\n/** Each command the text names, at where it names it: `baker <words>`, or a family's `<words>` in backticks. */\nfunction commandMentions(root: HelpNode, text: string): Array<{ at: number; words: string }> {\n const families = new Set(subCommandNames(root));\n const quoted = [...text.matchAll(/`([a-z][\\w-]*(?:[ \\t][a-z][\\w-]*)*)(?=[`\\s<])/g)].filter((match) =>\n families.has((match[1] ?? \"\").split(/\\s+/)[0] ?? \"\"),\n );\n return [...text.matchAll(/`?\\bbaker ((?:[a-z][\\w-]*[ \\t]?)+)/g), ...quoted].map((match) => ({\n at: match.index,\n words: match[1] ?? \"\",\n }));\n}\n\n/**\n * Where the text first mentions something the reader may not use — a command\n * it is not offered, or a flag it is refused (`--add-trigger`) — or -1.\n */\nfunction firstUnusable(root: HelpNode, text: string, offered: Offers, refusedFlags: readonly string[]): number {\n const commands = commandMentions(root, text)\n .filter(({ words }) => commandOf(root, words).some((path) => !offered(path)))\n .map(({ at }) => at);\n const flags = refusedFlags.flatMap((flag) => {\n const match = new RegExp(`--${flag}(?![\\\\w-])`).exec(text);\n return match ? [match.index] : [];\n });\n const at = [...commands, ...flags];\n return at.length > 0 ? Math.min(...at) : -1;\n}\n\n/**\n * The sentence without what it says about something the reader may not use:\n * cut back to the clause before the mention when one stands on its own, else\n * dropped.\n */\nfunction sentenceWithout(sentence: string, unusableAt: number): string {\n if (unusableAt === -1) return sentence;\n const before = sentence.slice(0, unusableAt).replace(/`$/, \"\");\n const cut = Math.max(before.lastIndexOf(\", \"), before.lastIndexOf(\" — \"), before.lastIndexOf(\"; \"));\n const clause = cut === -1 ? \"\" : before.slice(0, cut).trim();\n // \"To undo one, `baker …`\" only led to the command.\n const leadsIn = /^(?:to|use|run|call|for|with)\\b/i.test(clause);\n return clause.split(/\\s+/).length >= 3 && balanced(clause) && !leadsIn ? `${clause}.` : \"\";\n}\n\n/** A sentence that leans on the one before it (\"It never touches a live tag.\"). */\nconst LEANS_BACK = /^(?:it|they|this|that|these|those)\\b/i;\n\n/** The text without any mention of a command the reader may not run, or a flag it is refused. */\nexport function withoutUnoffered(\n root: HelpNode,\n text: string,\n offered: Offers,\n refusedFlags: readonly string[] = [],\n): string {\n const unusable = (part: string) => firstUnusable(root, part, offered, refusedFlags);\n return dropping(text.split(\"\\n\"), (line) => {\n if (unusable(line) === -1) return line;\n if (STANDALONE_LINE.test(line)) return null;\n const kept: string[] = [];\n let dropped = false;\n for (const sentence of line.split(/(?<=[.!?])\\s+/)) {\n const rest: string = dropped && LEANS_BACK.test(sentence) ? \"\" : sentenceWithout(sentence, unusable(sentence));\n dropped = rest === \"\";\n if (rest !== \"\") kept.push(rest);\n }\n return kept.length === 0 ? null : kept.join(\" \");\n }).join(\"\\n\");\n}\n\n/** Whether anything loaded under `path` is a command the reader may not run. */\nfunction holdsUnoffered(node: HelpNode, path: string[], offered: Offers): boolean {\n return loadedSubCommands(node).some(\n ([name, sub]) => !offered([...path, name].join(\" \")) || holdsUnoffered(sub, [...path, name], offered),\n );\n}\n\n/** A sentence or line that is about staging a change, from its first words. */\nconst WRITE_TALK =\n /^(?:stage\\b|staged\\b|staging\\b|write subcommands\\b|writes\\b|then stage\\b|drafts:|staged vs published\\b|lifecycle:|nothing staged\\b|on publish\\b|\\w+(?: \\/ \\w+)*\\s+—\\s+stage\\b)/i;\n\n/** The tail of a sentence offering a change: \"List campaigns, or stage writes (…)\". */\nconst WRITE_CLAUSE =\n /(?:\\s*(?:[,;]|\\s—|\\s-)\\s*(?:(?:or|plus|and)\\s+)?|\\s+(?:or|plus|and)\\s+)(?:stage[sd]?|staged)\\b[^.]*/gi;\n\n/** \"List, show, amend or clear …\": a sentence opening on a list of this command's own verbs. */\nconst VERB_LIST = /^((?:[A-Za-z]+, )*[A-Za-z]+,? (?:or|and) [a-z]+)\\b/;\n\n/** The sentence naming, of the verbs it opens on, only those the reader may run; \"\" when none. */\nfunction withOfferedVerbs(sentence: string, children: ReadonlySet<string>, unoffered: ReadonlySet<string>): string {\n const list = VERB_LIST.exec(sentence)?.[1];\n if (!list) return sentence;\n const verbs = list.split(/,\\s*(?:(?:or|and)\\s+)?|\\s+(?:or|and)\\s+/).map((verb) => verb.toLowerCase());\n if (!verbs.every((verb) => children.has(verb))) return sentence;\n const kept = verbs.filter((verb) => !unoffered.has(verb));\n if (kept.length === 0) return \"\";\n const named = kept.length === 1 ? (kept[0] ?? \"\") : `${kept.slice(0, -1).join(\", \")} or ${kept.at(-1)}`;\n return `${named.charAt(0).toUpperCase()}${named.slice(1)}${sentence.slice(list.length)}`;\n}\n\n/** Whether text opens on the name of a command here the reader may not run (\"Release if…\", \" associate-campaign / …\"). */\nfunction opensOnUnoffered(text: string, unoffered: ReadonlySet<string>): boolean {\n const first =\n text\n .trim()\n .split(/[\\s/]+/)[0]\n ?.toLowerCase() ?? \"\";\n return unoffered.has(first);\n}\n\n/** A line that is about a change: staging talk, a command it may not run, or \"Library writes (…):\" over reads. */\nfunction isWriteLine(line: string, unoffered: ReadonlySet<string>): boolean {\n if (WRITE_TALK.test(line.trim())) return true;\n if (indentOf(line) > 0) return opensOnUnoffered(line, unoffered);\n return /:\\s*$/.test(line) && /\\bwrites?\\b/i.test(line);\n}\n\nfunction withoutWriteTalk(paragraph: string, children: ReadonlySet<string>, unoffered: ReadonlySet<string>): string {\n const prose = (text: string) =>\n text\n .replace(WRITE_CLAUSE, \"\")\n .split(/(?<=[.!?])\\s+/)\n .map((sentence) => withOfferedVerbs(sentence, children, unoffered))\n .filter(\n (sentence) => sentence !== \"\" && !WRITE_TALK.test(sentence.trim()) && !opensOnUnoffered(sentence, unoffered),\n )\n .join(\" \");\n const lines = paragraph.split(\"\\n\");\n // Examples, tables and headings are kept line by line, and a line of prose among them sentence by sentence.\n if (lines.some((line) => /^\\s/.test(line) || STANDALONE_LINE.test(line) || /:\\s*$/.test(line))) {\n return dropping(lines, (line) => {\n if (isWriteLine(line, unoffered)) return null;\n if (indentOf(line) > 0 || STANDALONE_LINE.test(line) || !/[.!?]\\s*$/.test(line)) return line;\n const kept = prose(line);\n return kept === \"\" ? null : kept;\n }).join(\"\\n\");\n }\n return prose(lines.join(\" \"));\n}\n\n/** \"Subcommands: list (default), remove, clear.\" names only the ones the reader may run. */\nfunction withOfferedSubcommands(text: string, path: string[], offered: Offers): string {\n return text.replace(/Subcommands: ([^.]*)\\./g, (_whole, list: string) => {\n const kept = list.split(/,\\s*/).filter((item) => offered([...path, item.split(/\\s/)[0] ?? \"\"].join(\" \")));\n return kept.length > 0 ? `Subcommands: ${kept.join(\", \")}.` : \"\";\n });\n}\n\n/** Drops a heading whose block below it was emptied, and the blank lines left behind. */\nfunction tidy(text: string): string {\n const lines = text.split(\"\\n\");\n const kept = lines.filter((line, index) => {\n if (!/:\\s*$/.test(line)) return true;\n const next = lines.slice(index + 1).find((later) => later.trim() !== \"\");\n return next !== undefined && /^\\s/.test(next) && lines[index + 1]?.trim() !== \"\";\n });\n return kept\n .join(\"\\n\")\n .replace(/\\n{3,}/g, \"\\n\\n\")\n .replace(/^(?:[ \\t]*\\n)+/, \"\")\n .trimEnd();\n}\n\nexport function describedFor(\n root: HelpNode,\n description: string,\n path: string[],\n node: HelpNode,\n profile: AgentProfile,\n offered: Offers,\n refusedFlags: readonly string[] = [],\n): string {\n const cited = withoutUnoffered(root, description, offered, refusedFlags);\n if (profile === \"company\" || !holdsUnoffered(node, path, offered)) return tidy(cited);\n const children = new Set(subCommandNames(node));\n const unoffered = new Set([...children].filter((name) => !offered([...path, name].join(\" \"))));\n const shaped = cited\n .split(/\\n\\s*\\n/)\n .map((paragraph) => withoutWriteTalk(withOfferedSubcommands(paragraph, path, offered), children, unoffered))\n .join(\"\\n\\n\");\n const text = tidy(shaped);\n if (text !== \"\") return text;\n const reads = loadedSubCommands(node).flatMap(([name]) => (offered([...path, name].join(\" \")) ? [name] : []));\n return reads.length > 0 ? `Read: ${reads.join(\", \")}.` : \"\";\n}\n","import { type LoadableCommand, loadAllCommands, loadSubCommandNamed } from \"./command-loading.ts\";\nimport { optionalWorkspaceKind } from \"./env.ts\";\nimport { describedFor, withoutUnoffered } from \"./profile-help.ts\";\n\n/**\n * Which commands this CLI offers the agent running it.\n *\n * One CLI serves two agents. A company's agent works inside its own workspace\n * and changes it; it is offered everything, except the organization family,\n * which is for reading other companies and means nothing to it. The\n * organization workspace's agent reads every company of its organization and\n * changes none of them: it is offered the reads alone, plus the research and\n * judgment it runs as itself, and its own Scheduled agents.\n *\n * This is what the agent is shown, not what it is allowed: the backend refuses\n * a write naming a company whatever the CLI does (`readNamedCompany`). Kept as\n * an explicit list so a new command is hidden from the organization until\n * someone decides it only reads.\n */\n\nexport type AgentProfile = \"company\" | \"organization\";\n\n/** Set on the organization workspace's Runtime (`runtimeSession/nodeActions.ts`). */\nexport function agentProfile(workspaceKind: string | undefined = optionalWorkspaceKind()): AgentProfile {\n return workspaceKind === \"organization\" ? \"organization\" : \"company\";\n}\n\n/** Families only the organization workspace runs: hidden from a company's agent. */\nconst ORGANIZATION_ONLY = [\"organization\"];\n\n/**\n * Every command the organization workspace's agent is offered, as typed. An\n * entry offers that command and everything under it.\n */\nexport const ORGANIZATION_COMMANDS: readonly string[] = [\n \"schema\",\n \"capabilities\",\n \"organization\",\n // What a company did and has.\n \"chats\",\n \"history\",\n \"actions list\",\n \"actions log\",\n \"actions get\",\n \"actions status\",\n \"actions draft list\",\n \"actions tags list\",\n // The organization's own Scheduled agents, which live in this workspace:\n // staged like a company's, applied at Publish. Naming a company is still a\n // read only (`readNamedCompany`), so none of these reaches one.\n \"scheduled-agents\",\n \"experiment status\",\n \"experiment history\",\n \"flows list\",\n \"flows show\",\n \"flows schema\",\n \"testimonials get\",\n \"testimonials search\",\n \"testimonials list\",\n \"testimonials tags list\",\n \"testimonials sources list\",\n \"images get\",\n \"images search\",\n \"images library\",\n \"images tags list\",\n // A page's or a link's pictures and videos, to the workspace's own disk: a\n // client's logo, the photos on its site, the video it sent. Firecrawl reads\n // the page; nothing reaches any library (`--auto-ingest` is refused below).\n \"images download\",\n \"images extract\",\n \"videos get\",\n \"videos search\",\n \"videos tags list\",\n \"videos fetch\",\n \"studio get\",\n \"studio list\",\n \"avatars list\",\n \"avatars get\",\n \"creatives performance\",\n \"creatives feedback read\",\n \"landing export status\",\n \"landing export list\",\n \"site show\",\n \"site domain list\",\n \"lead-routes list\",\n \"lead-routes fields\",\n \"credentials list\",\n \"setup-links list\",\n \"media-sources list\",\n \"posts list\",\n \"posts get\",\n \"posts search\",\n \"mcp connected\",\n \"mcp catalog\",\n \"mcp tools\",\n \"mcp execute\",\n \"mcp list\",\n // Ads, every platform: accounts, structure, results, staged drafts.\n \"ads google accounts\",\n \"ads google currency\",\n \"ads google url-options\",\n \"ads google changes\",\n \"ads google invoices\",\n \"ads google identity-verification\",\n \"ads google previews\",\n \"ads google brands\",\n \"ads google query\",\n \"ads google keywords discover\",\n \"ads google keywords metrics\",\n \"ads google keywords forecast\",\n \"ads google keywords themes\",\n \"ads google keywords locations\",\n \"ads google keywords languages\",\n \"ads google keywords list\",\n \"ads google budgets list\",\n \"ads google campaigns list\",\n \"ads google ad-groups list\",\n \"ads google negative-keywords list\",\n \"ads google keyword-lists list\",\n \"ads google ads list\",\n \"ads google assets list\",\n \"ads google asset-groups list\",\n \"ads google audiences list\",\n \"ads google audiences targeting\",\n \"ads google conversions list\",\n \"ads google bidding-strategies list\",\n \"ads google labels list\",\n \"ads google campaign-criteria list\",\n \"ads google ad-group-criteria list\",\n \"ads google ad-group-bid-modifiers list\",\n \"ads google account-exclusions list\",\n \"ads google asset-group-signals list\",\n \"ads google merchant-center list\",\n \"ads google draft list\",\n \"ads google draft show\",\n \"ads meta accounts\",\n \"ads meta account\",\n \"ads meta businesses\",\n \"ads meta pages\",\n \"ads meta lead-forms list\",\n \"ads meta leads\",\n \"ads meta campaigns list\",\n \"ads meta adsets list\",\n \"ads meta ads list\",\n \"ads meta creatives list\",\n \"ads meta audiences list\",\n \"ads meta custom-conversions list\",\n \"ads meta pixels\",\n \"ads meta activities\",\n \"ads meta insights\",\n \"ads meta draft list\",\n \"ads meta draft show\",\n \"ads linkedin accounts\",\n \"ads linkedin account detail\",\n \"ads linkedin campaign-groups list\",\n \"ads linkedin campaigns list\",\n \"ads linkedin creatives list\",\n \"ads linkedin draft list\",\n \"ads linkedin draft show\",\n \"ads linkedin analytics\",\n \"ads linkedin demographics\",\n \"ads linkedin companies\",\n \"ads linkedin top-companies\",\n \"ads linkedin resolve\",\n \"ads linkedin facets list\",\n \"ads linkedin facets values\",\n \"ads linkedin audience-size\",\n \"ads linkedin bid-pricing\",\n \"ads linkedin forecast\",\n \"ads linkedin leads\",\n \"ads linkedin conversions list\",\n \"ads linkedin conversions health\",\n \"ads linkedin conversation\",\n \"ads linkedin audit\",\n \"ads linkedin url-params\",\n \"ads x accounts\",\n \"ads x funding\",\n \"ads x campaigns list\",\n \"ads x line-items list\",\n \"ads x promoted-tweets list\",\n \"ads x tweets\",\n \"ads x cards\",\n \"ads x draft list\",\n \"ads x draft show\",\n \"ads x media\",\n \"ads x audiences\",\n \"ads x targeting-criteria list\",\n \"ads x targeting-constants\",\n \"ads x active-entities\",\n \"ads x stats job-status\",\n \"ads chatgpt account show\",\n \"ads chatgpt campaigns list\",\n \"ads chatgpt ad-groups list\",\n \"ads chatgpt ads list\",\n \"ads chatgpt conversions list\",\n \"ads chatgpt conversions events\",\n \"ads chatgpt conversions report\",\n \"ads chatgpt audiences list\",\n \"ads chatgpt catalogs list\",\n \"ads chatgpt catalogs uploads\",\n \"ads chatgpt catalogs products\",\n \"ads chatgpt history\",\n \"ads chatgpt insights\",\n \"ads chatgpt locations\",\n \"ads chatgpt draft list\",\n \"ads chatgpt draft show\",\n // Baker's synced copy of every platform's results, which the live reads above\n // point at first. Reads only: each `show` beside its staged changes.\n \"ads performance overview\",\n \"ads performance trend\",\n // Who the ads brought: counts per ad and per persona answer, and the ladder\n // and persona map they are counted by (`adPerformance/peopleRoute.ts`).\n \"ads performance people\",\n \"ads performance personas\",\n \"ads performance ladder\",\n \"ads performance persona-fields\",\n \"ads performance accounts\",\n \"ads performance setup\",\n \"ads performance entities\",\n \"ads performance entity\",\n \"ads performance changes\",\n \"ads performance impact\",\n \"ads performance creatives\",\n \"ads performance families show\",\n \"ads performance families choices\",\n \"ads performance creative-health\",\n \"ads performance creative-assets\",\n \"ads performance health\",\n \"ads performance breakdown\",\n \"ads performance search-terms\",\n \"ads performance pacing\",\n \"ads performance funnel\",\n \"ads performance tracking\",\n \"ads performance landings\",\n \"ads performance live-in\",\n \"ads performance status\",\n \"ads performance goals show\",\n \"ads performance progress\",\n \"ads performance diagnose\",\n \"ads performance pulse\",\n \"ads performance anomalies\",\n \"ads performance recap\",\n \"ads performance targets show\",\n \"ads performance budget-recommendations\",\n \"ads performance attention show\",\n \"ads performance currency show\",\n \"ads performance brand-split\",\n \"ads performance impression-share\",\n \"ads performance keyword-quality\",\n \"ads performance google-report\",\n \"ads performance budgets show\",\n \"ads performance segments show\",\n // Pages and measurement.\n \"analytics overview\",\n \"analytics traffic\",\n \"analytics funnel\",\n \"analytics flow\",\n \"analytics page\",\n \"analytics triggers\",\n \"analytics releases\",\n \"analytics paid\",\n \"analytics delivery\",\n \"analytics submissions\",\n \"analytics geo\",\n \"analytics bots\",\n \"analytics landings\",\n \"analytics tags\",\n \"analytics events\",\n \"analytics feed\",\n \"analytics lookup\",\n \"analytics devices\",\n \"analytics ads\",\n \"analytics conversions\",\n \"analytics sends\",\n \"analytics tracking\",\n \"analytics arrivals\",\n \"analytics sending-events\",\n \"analytics sources\",\n \"analytics website-tag\",\n \"analytics sites\",\n \"analytics questionnaire\",\n \"analytics presets\",\n \"funnel\",\n \"ga4 properties\",\n \"ga4 config\",\n \"ga4 audit\",\n \"ga4 query\",\n \"ga4 draft list\",\n \"ga4 draft show\",\n \"gsc\",\n \"tags list\",\n \"tags draft\",\n \"tag-manager containers\",\n \"tag-manager read\",\n \"tag-manager draft list\",\n \"tag-manager draft show\",\n // CRM and accounts.\n \"hubspot\",\n \"accounts influenced\",\n \"accounts engagement\",\n \"accounts warm\",\n \"accounts company\",\n \"accounts campaigns\",\n \"accounts crm status\",\n \"accounts crm check\",\n \"accounts crm contract\",\n // Research and judgment, run as the workspace itself (never with --company).\n // Not `research customers`, which writes into a company's Knowledge, nor\n // `winning-ads fit`, which judges an ad against a company's own COMPANY.md.\n \"research web\",\n \"research fetch\",\n \"research linkedin-person\",\n \"research transcript\",\n \"research company\",\n \"research google-ads\",\n \"research reddit\",\n \"research advertisers\",\n \"research autocomplete\",\n \"research countries\",\n \"research intent\",\n \"research keyword-metrics\",\n \"research keywords-for-site\",\n \"research keyword-gap\",\n \"research languages\",\n \"research lighthouse\",\n \"research relevant-pages\",\n \"decide\",\n \"winning-ads search\",\n \"winning-ads advertisers\",\n // Adds a brand to Baker's shared library with nobody following it, so a\n // client being set up can be read there: its channels, ads and landings.\n \"winning-ads add\",\n \"winning-ads discover\",\n \"winning-ads following\",\n \"winning-ads feed\",\n \"winning-ads winners\",\n \"winning-ads ads\",\n \"winning-ads profile\",\n \"winning-ads launches\",\n \"winning-ads landings\",\n \"winning-ads search-copy\",\n \"winning-ads content\",\n \"winning-ads hooks\",\n \"winning-ads mechanisms\",\n \"winning-ads formats\",\n];\n\nfunction covers(entry: string, path: string): boolean {\n return path === entry || path.startsWith(`${entry} `);\n}\n\n/**\n * Whether `path` (a command as typed, `\"ads meta campaigns list\"`) is offered\n * to `profile`. A group is offered when anything under it is, so the way to an\n * offered command stays open.\n */\nexport function offers(profile: AgentProfile, path: string): boolean {\n if (path === \"\") return true;\n if (profile === \"company\") {\n return !ORGANIZATION_ONLY.some((family) => covers(family, path));\n }\n return ORGANIZATION_COMMANDS.some((entry) => covers(entry, path) || covers(path, entry));\n}\n\n/**\n * The flags that change something, on commands the organization is offered to\n * read. `funnel` reads the funnel and `funnel --add-trigger` changes it, so the\n * command is offered and these are refused, and left out of its help.\n */\nexport const ORGANIZATION_WRITE_FLAGS: Readonly<Record<string, readonly string[]>> = {\n \"images extract\": [\"auto-ingest\", \"context\"],\n funnel: [\"steps\", \"step\", \"add-trigger\", \"remove-trigger\", \"event\", \"remove-step\", \"preset\"],\n \"analytics conversions\": [\"event\", \"name\", \"rename\", \"to\", \"remove-name\", \"count-mode\", \"remove\"],\n \"analytics sends\": [\n \"set\",\n \"source-event\",\n \"from\",\n \"platform\",\n \"tag\",\n \"event\",\n \"account\",\n \"parameter\",\n \"id\",\n \"remove\",\n ],\n \"analytics sources\": [\n \"server\",\n \"create\",\n \"create-hubspot\",\n \"create-activecampaign\",\n \"events\",\n \"account\",\n \"set-trigger\",\n \"set-amount\",\n \"amount-property\",\n \"currency\",\n \"write\",\n \"name\",\n \"map\",\n \"field\",\n \"pause\",\n \"resume\",\n \"remove\",\n ],\n \"analytics sites\": [\"add\", \"remove\"],\n};\n\nfunction kebabCase(name: string): string {\n return name.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);\n}\n\n/** The first flag in `argv` the organization is refused on the command at `path`, if any. */\nfunction refusedFlagIn(path: string, argv: readonly string[]): string | null {\n const refused = ORGANIZATION_WRITE_FLAGS[path];\n if (!refused) return null;\n const end = argv.indexOf(\"--\");\n for (const token of end === -1 ? argv : argv.slice(0, end)) {\n if (!token.startsWith(\"--\")) continue;\n const name = kebabCase(token.slice(2).split(\"=\")[0] ?? \"\").replace(/^no-/, \"\");\n if (refused.includes(name)) return name;\n }\n return null;\n}\n\ntype ProfiledCommand = { meta?: unknown; subCommands?: unknown };\n\n/** What the organization's agent is told when it reaches for a command it is not offered. */\nexport const ORGANIZATION_REFUSAL =\n \"The organization workspace only reads its companies, and this command changes something. A change to a company is made in that company's own chat; here, read it and show it in a Report.\";\n\nfunction hide(command: ProfiledCommand): void {\n if (typeof command.meta === \"object\" && command.meta !== null) {\n (command.meta as { hidden?: boolean }).hidden = true;\n }\n}\n\n/**\n * Rewrites, in place, what each loaded command `profile` is shown says\n * (`profile-help.ts`), and takes off it the flags `profile` is refused. Args are\n * replaced rather than edited: one definition can be shared between commands.\n */\nfunction describeOffered(root: ProfiledCommand, command: ProfiledCommand, profile: AgentProfile, path: string[]): void {\n const meta = command.meta as { hidden?: boolean; description?: unknown } | undefined;\n if (meta?.hidden === true) return;\n const offered = (cited: string) => offers(profile, cited);\n const refusedFlags = profile === \"organization\" ? (ORGANIZATION_WRITE_FLAGS[path.join(\" \")] ?? []) : [];\n if (typeof meta?.description === \"string\") {\n meta.description = describedFor(root, meta.description, path, command, profile, offered, refusedFlags);\n }\n const shaped = command as { args?: unknown };\n if (typeof shaped.args === \"object\" && shaped.args !== null) {\n shaped.args = Object.fromEntries(\n Object.entries(shaped.args as Record<string, unknown>).flatMap(([name, arg]) => {\n if (refusedFlags.includes(kebabCase(name))) return [];\n const description = (arg as { description?: unknown } | null)?.description;\n return [\n [\n name,\n typeof description === \"string\"\n ? { ...(arg as object), description: withoutUnoffered(root, description, offered, refusedFlags) }\n : arg,\n ],\n ];\n }),\n );\n }\n const subCommands = command.subCommands;\n if (typeof subCommands !== \"object\" || subCommands === null) return;\n for (const [name, sub] of Object.entries(subCommands as Record<string, unknown>)) {\n if (typeof sub === \"object\" && sub !== null)\n describeOffered(root, sub as ProfiledCommand, profile, [...path, name]);\n }\n}\n\n/** Marks, in place, every loaded command `profile` is not offered as hidden from help. */\nfunction hideUnoffered(command: ProfiledCommand, profile: AgentProfile, path: string[]): void {\n const subCommands = command.subCommands;\n if (typeof subCommands !== \"object\" || subCommands === null) return;\n for (const [name, sub] of Object.entries(subCommands as Record<string, unknown>)) {\n if (typeof sub !== \"object\" || sub === null) continue;\n const subPath = [...path, name];\n if (!offers(profile, subPath.join(\" \"))) hide(sub as ProfiledCommand);\n hideUnoffered(sub as ProfiledCommand, profile, subPath);\n }\n}\n\ntype ArgDefinition = { type?: unknown; alias?: unknown };\n\nfunction camelCase(name: string): string {\n return name.replace(/-([a-z0-9])/g, (_, letter: string) => letter.toUpperCase());\n}\n\nfunction aliases(of: unknown): unknown[] {\n return Array.isArray(of) ? of : of === undefined ? [] : [of];\n}\n\n/** Whether `flag` takes the token after it as its value on `command`, as citty reads it. */\nfunction takesValue(command: ProfiledCommand & { args?: unknown }, flag: string): boolean {\n if (flag.includes(\"=\") || typeof command.args !== \"object\" || command.args === null) return false;\n const name = flag.replace(/^-{1,2}/, \"\");\n return Object.entries(command.args as Record<string, ArgDefinition>).some(\n ([key, definition]) =>\n (definition.type === \"string\" || definition.type === \"enum\") &&\n (camelCase(key) === camelCase(name) || aliases(definition.alias).includes(name)),\n );\n}\n\n/**\n * The command `argv` addresses, found the way citty finds it: flags, and the\n * value after one that takes it, are skipped, so a flag before a command's name\n * cannot leave the path at its group. Each step is loaded on the way —\n * `loadCommands` stops at the first flag, and `--company` is taken off only\n * after it ran, so the guard cannot lean on what it loaded.\n */\nasync function addressedCommand(\n root: ProfiledCommand,\n argv: readonly string[],\n): Promise<{ path: string; command: ProfiledCommand }> {\n const path: string[] = [];\n let command: ProfiledCommand = root;\n for (let index = 0; index < argv.length; index++) {\n const token = argv[index] ?? \"\";\n if (token === \"--\") break;\n if (token.startsWith(\"-\")) {\n if (takesValue(command, token)) index++;\n continue;\n }\n const next = await loadSubCommandNamed(command as LoadableCommand, token);\n if (!next) break;\n path.push(next[0]);\n command = next[1] as ProfiledCommand;\n }\n return { path: path.join(\" \"), command };\n}\n\n/**\n * Shapes the loaded command tree for the agent running it: what it is not\n * offered leaves its help, and the organization's agent is refused a command it\n * is not offered (the returned message; `null` when it may run). A company's\n * agent is never refused: the organization's commands are only out of its help,\n * because a Report published from the organization workspace runs them on a\n * runner that has no profile of its own.\n */\nexport async function applyAgentProfile(\n root: ProfiledCommand,\n profile: AgentProfile,\n argv: readonly string[],\n): Promise<string | null> {\n const { path, command } = await addressedCommand(root, argv);\n // A walk that ends on a group prints its usage — `--help` anywhere, past `--`\n // too, or no command or an unknown one — listing its subcommands, which are\n // hidden only once loaded. A walk that reaches a command loads nothing more.\n await loadAllCommands(command as LoadableCommand);\n // Judged before the help is shaped, which takes the refused flags off the command.\n const refused = profile === \"organization\" && (!offers(profile, path) || refusedFlagIn(path, argv) !== null);\n hideUnoffered(root, profile, []);\n describeOffered(root, root, profile, []);\n return refused ? ORGANIZATION_REFUSAL : null;\n}\n"],"mappings":";;;;;AASO,SAAS,eAAe,MAAyB,UAA+C;AACrG,QAAM,QAAQ,KAAK,KAAK,CAAC,UAAU,CAAC,MAAM,WAAW,GAAG,CAAC;AAEzD,MAAI,UAAU,UAAa,UAAU,YAAY,SAAS,SAAS,KAAK,EAAG,QAAO,CAAC,KAAK;AACxF,SAAO;AACT;AAIA,eAAe,SAAY,OAAkC;AAC3D,SAAO,OAAO,UAAU,aAAa,MAAO,MAA+B,IAAI,MAAM;AACvF;AAGA,eAAe,cAAc,SAA+D;AAC1F,MAAI,QAAQ,gBAAgB,OAAW,QAAO;AAC9C,QAAM,cAAc,MAAM,SAAS,QAAQ,WAAW;AACtD,UAAQ,cAAc;AACtB,SAAO;AACT;AAOA,eAAsB,oBACpB,SACA,OAC2C;AAC3C,QAAM,cAAc,MAAM,cAAc,OAAO;AAC/C,MAAI,CAAC,YAAa,QAAO;AACzB,QAAM,QAAQ,YAAY,KAAK;AAC/B,MAAI,UAAU,QAAW;AACvB,UAAM,SAAS,MAAM,SAAS,KAAK;AACnC,gBAAY,KAAK,IAAI;AACrB,WAAO,CAAC,OAAO,MAAM;AAAA,EACvB;AACA,aAAW,CAAC,MAAM,GAAG,KAAK,OAAO,QAAQ,WAAW,GAAG;AACrD,UAAM,SAAS,MAAM,SAAS,GAAG;AACjC,gBAAY,IAAI,IAAI;AACpB,UAAM,OAAQ,MAAM,SAAS,OAAO,QAAQ,CAAC,CAAC;AAC9C,UAAMA,WAAU,MAAM,QAAQ,KAAK,KAAK,IAAI,KAAK,QAAQ,KAAK,UAAU,SAAY,CAAC,IAAI,CAAC,KAAK,KAAK;AACpG,QAAIA,SAAQ,SAAS,KAAK,EAAG,QAAO,CAAC,MAAM,MAAM;AAAA,EACnD;AACA,SAAO;AACT;AAGA,eAAsB,gBAAgB,SAAyC;AAC7E,QAAM,cAAc,MAAM,cAAc,OAAO;AAC/C,MAAI,CAAC,YAAa;AAClB,aAAW,CAAC,MAAM,GAAG,KAAK,OAAO,QAAQ,WAAW,GAAG;AACrD,UAAM,SAAS,MAAM,SAAS,GAAG;AACjC,gBAAY,IAAI,IAAI;AACpB,UAAM,gBAAgB,MAAM;AAAA,EAC9B;AACF;AAUA,eAAsB,aAAwC,MAAS,MAAqC;AAC1G,QAAM,WAAW,OAAO,KAAM,MAAM,cAAc,IAAI,KAAM,CAAC,CAAC;AAC9D,MAAI,eAAe,MAAM,QAAQ,MAAM,OAAO;AAC5C,UAAM,gBAAgB,IAAI;AAC1B,WAAO;AAAA,EACT;AACA,MAAI,UAA2B;AAC/B,aAAW,SAAS,MAAM;AACxB,QAAI,UAAU,QAAQ,MAAM,WAAW,GAAG,EAAG;AAC7C,UAAM,cAAc,MAAM,cAAc,OAAO;AAC/C,UAAM,MAAM,cAAc,KAAK;AAC/B,QAAI,CAAC,eAAe,QAAQ,OAAW;AACvC,UAAM,SAAS,MAAM,SAAS,GAAG;AACjC,gBAAY,KAAK,IAAI;AACrB,cAAU;AAAA,EACZ;AACA,SAAO;AACT;;;AC3EA,SAAS,kBAAkB,MAA2C;AACpE,QAAM,cAAc,KAAK;AACzB,MAAI,OAAO,gBAAgB,YAAY,gBAAgB,KAAM,QAAO,CAAC;AACrE,SAAO,OAAO,QAAQ,WAAsC,EAAE;AAAA,IAAQ,CAAC,CAAC,MAAM,GAAG,MAC/E,OAAO,QAAQ,YAAY,QAAQ,OAAO,CAAC,CAAC,MAAM,GAAe,CAAuB,IAAI,CAAC;AAAA,EAC/F;AACF;AAEA,SAAS,gBAAgB,MAA0B;AACjD,QAAM,cAAc,KAAK;AACzB,SAAO,OAAO,gBAAgB,YAAY,gBAAgB,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC;AAC/F;AASA,SAAS,UAAU,MAAgB,SAA2B;AAC5D,QAAM,QAAQ,QAAQ,KAAK,EAAE,MAAM,KAAK;AACxC,MAAI,OAAiB;AACrB,QAAM,OAAiB,CAAC;AACxB,aAAW,QAAQ,OAAO;AACxB,UAAM,SAAS,kBAAkB,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,SAAS,IAAI,IAAI,CAAC;AAC1E,QAAI,CAAC,QAAQ;AAEX,aAAO,gBAAgB,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC;AAAA,IAC1G;AACA,WAAO;AACP,SAAK,KAAK,IAAI;AAAA,EAChB;AACA,SAAO,CAAC,KAAK,KAAK,GAAG,CAAC;AACxB;AAEA,SAAS,SAAS,MAAsB;AACtC,SAAO,KAAK,SAAS,KAAK,UAAU,EAAE;AACxC;AAQA,SAAS,SAAS,OAAiB,OAAkD;AACnF,QAAM,OAAiB,CAAC;AACxB,MAAI,UAA8C;AAClD,aAAW,QAAQ,OAAO;AACxB,QAAI,UAAU,IAAI,EAAG;AACrB,cAAU;AACV,UAAM,OAAO,MAAM,IAAI;AACvB,QAAI,SAAS,MAAM;AACjB,WAAK,KAAK,IAAI;AACd;AAAA,IACF;AACA,UAAM,SAAS,SAAS,IAAI;AAC5B,QAAI,SAAS,KAAK,IAAI,GAAG;AACvB,UAAI,OAAO;AACX,gBAAU,CAAC,SAAS;AAClB,cAAM,YAAY;AAClB,eAAO,SAAS,KAAK,IAAI;AACzB,eAAO;AAAA,MACT;AAAA,IACF,WAAW,WAAW,KAAK,CAAC,cAAc,KAAK,IAAI,GAAG;AACpD,UAAI,OAAO;AACX,gBAAU,CAAC,SAAS;AAClB,cAAM,YAAY,QAAQ,KAAK,KAAK,MAAM,MAAM,SAAS,IAAI,MAAM;AACnE,eAAO,aAAa,CAAC,cAAc,KAAK,IAAI;AAC5C,eAAO;AAAA,MACT;AAAA,IACF,WAAW,SAAS,GAAG;AACrB,gBAAU,CAAC,SAAS,KAAK,KAAK,MAAM,MAAM,SAAS,IAAI,IAAI;AAAA,IAC7D;AAAA,EACF;AACA,SAAO;AACT;AAGA,IAAM,kBAAkB;AAExB,SAAS,SAAS,MAAuB;AACvC,UAAQ,KAAK,MAAM,KAAK,GAAG,UAAU,QAAQ,KAAK,MAAM,KAAK,GAAG,UAAU;AAC5E;AAGA,SAAS,gBAAgB,MAAgB,MAAoD;AAC3F,QAAM,WAAW,IAAI,IAAI,gBAAgB,IAAI,CAAC;AAC9C,QAAM,SAAS,CAAC,GAAG,KAAK,SAAS,gDAAgD,CAAC,EAAE;AAAA,IAAO,CAAC,UAC1F,SAAS,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE;AAAA,EACrD;AACA,SAAO,CAAC,GAAG,KAAK,SAAS,qCAAqC,GAAG,GAAG,MAAM,EAAE,IAAI,CAAC,WAAW;AAAA,IAC1F,IAAI,MAAM;AAAA,IACV,OAAO,MAAM,CAAC,KAAK;AAAA,EACrB,EAAE;AACJ;AAMA,SAAS,cAAc,MAAgB,MAAc,SAAiB,cAAyC;AAC7G,QAAM,WAAW,gBAAgB,MAAM,IAAI,EACxC,OAAO,CAAC,EAAE,MAAM,MAAM,UAAU,MAAM,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,EAC3E,IAAI,CAAC,EAAE,IAAAC,IAAG,MAAMA,GAAE;AACrB,QAAM,QAAQ,aAAa,QAAQ,CAAC,SAAS;AAC3C,UAAM,QAAQ,IAAI,OAAO,KAAK,IAAI,YAAY,EAAE,KAAK,IAAI;AACzD,WAAO,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC;AAAA,EAClC,CAAC;AACD,QAAM,KAAK,CAAC,GAAG,UAAU,GAAG,KAAK;AACjC,SAAO,GAAG,SAAS,IAAI,KAAK,IAAI,GAAG,EAAE,IAAI;AAC3C;AAOA,SAAS,gBAAgB,UAAkB,YAA4B;AACrE,MAAI,eAAe,GAAI,QAAO;AAC9B,QAAM,SAAS,SAAS,MAAM,GAAG,UAAU,EAAE,QAAQ,MAAM,EAAE;AAC7D,QAAM,MAAM,KAAK,IAAI,OAAO,YAAY,IAAI,GAAG,OAAO,YAAY,UAAK,GAAG,OAAO,YAAY,IAAI,CAAC;AAClG,QAAM,SAAS,QAAQ,KAAK,KAAK,OAAO,MAAM,GAAG,GAAG,EAAE,KAAK;AAE3D,QAAM,UAAU,mCAAmC,KAAK,MAAM;AAC9D,SAAO,OAAO,MAAM,KAAK,EAAE,UAAU,KAAK,SAAS,MAAM,KAAK,CAAC,UAAU,GAAG,MAAM,MAAM;AAC1F;AAGA,IAAM,aAAa;AAGZ,SAAS,iBACd,MACA,MACA,SACA,eAAkC,CAAC,GAC3B;AACR,QAAM,WAAW,CAAC,SAAiB,cAAc,MAAM,MAAM,SAAS,YAAY;AAClF,SAAO,SAAS,KAAK,MAAM,IAAI,GAAG,CAAC,SAAS;AAC1C,QAAI,SAAS,IAAI,MAAM,GAAI,QAAO;AAClC,QAAI,gBAAgB,KAAK,IAAI,EAAG,QAAO;AACvC,UAAM,OAAiB,CAAC;AACxB,QAAI,UAAU;AACd,eAAW,YAAY,KAAK,MAAM,eAAe,GAAG;AAClD,YAAM,OAAe,WAAW,WAAW,KAAK,QAAQ,IAAI,KAAK,gBAAgB,UAAU,SAAS,QAAQ,CAAC;AAC7G,gBAAU,SAAS;AACnB,UAAI,SAAS,GAAI,MAAK,KAAK,IAAI;AAAA,IACjC;AACA,WAAO,KAAK,WAAW,IAAI,OAAO,KAAK,KAAK,GAAG;AAAA,EACjD,CAAC,EAAE,KAAK,IAAI;AACd;AAGA,SAAS,eAAe,MAAgB,MAAgB,SAA0B;AAChF,SAAO,kBAAkB,IAAI,EAAE;AAAA,IAC7B,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,eAAe,KAAK,CAAC,GAAG,MAAM,IAAI,GAAG,OAAO;AAAA,EACtG;AACF;AAGA,IAAM,aACJ;AAGF,IAAM,eACJ;AAGF,IAAM,YAAY;AAGlB,SAAS,iBAAiB,UAAkB,UAA+B,WAAwC;AACjH,QAAM,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC;AACzC,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,QAAQ,KAAK,MAAM,yCAAyC,EAAE,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC;AACpG,MAAI,CAAC,MAAM,MAAM,CAAC,SAAS,SAAS,IAAI,IAAI,CAAC,EAAG,QAAO;AACvD,QAAM,OAAO,MAAM,OAAO,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC;AACxD,MAAI,KAAK,WAAW,EAAG,QAAO;AAC9B,QAAM,QAAQ,KAAK,WAAW,IAAK,KAAK,CAAC,KAAK,KAAM,GAAG,KAAK,MAAM,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;AACrG,SAAO,GAAG,MAAM,OAAO,CAAC,EAAE,YAAY,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC,GAAG,SAAS,MAAM,KAAK,MAAM,CAAC;AACxF;AAGA,SAAS,iBAAiB,MAAc,WAAyC;AAC/E,QAAM,QACJ,KACG,KAAK,EACL,MAAM,QAAQ,EAAE,CAAC,GAChB,YAAY,KAAK;AACvB,SAAO,UAAU,IAAI,KAAK;AAC5B;AAGA,SAAS,YAAY,MAAc,WAAyC;AAC1E,MAAI,WAAW,KAAK,KAAK,KAAK,CAAC,EAAG,QAAO;AACzC,MAAI,SAAS,IAAI,IAAI,EAAG,QAAO,iBAAiB,MAAM,SAAS;AAC/D,SAAO,QAAQ,KAAK,IAAI,KAAK,eAAe,KAAK,IAAI;AACvD;AAEA,SAAS,iBAAiB,WAAmB,UAA+B,WAAwC;AAClH,QAAM,QAAQ,CAAC,SACb,KACG,QAAQ,cAAc,EAAE,EACxB,MAAM,eAAe,EACrB,IAAI,CAAC,aAAa,iBAAiB,UAAU,UAAU,SAAS,CAAC,EACjE;AAAA,IACC,CAAC,aAAa,aAAa,MAAM,CAAC,WAAW,KAAK,SAAS,KAAK,CAAC,KAAK,CAAC,iBAAiB,UAAU,SAAS;AAAA,EAC7G,EACC,KAAK,GAAG;AACb,QAAM,QAAQ,UAAU,MAAM,IAAI;AAElC,MAAI,MAAM,KAAK,CAAC,SAAS,MAAM,KAAK,IAAI,KAAK,gBAAgB,KAAK,IAAI,KAAK,QAAQ,KAAK,IAAI,CAAC,GAAG;AAC9F,WAAO,SAAS,OAAO,CAAC,SAAS;AAC/B,UAAI,YAAY,MAAM,SAAS,EAAG,QAAO;AACzC,UAAI,SAAS,IAAI,IAAI,KAAK,gBAAgB,KAAK,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAG,QAAO;AACxF,YAAM,OAAO,MAAM,IAAI;AACvB,aAAO,SAAS,KAAK,OAAO;AAAA,IAC9B,CAAC,EAAE,KAAK,IAAI;AAAA,EACd;AACA,SAAO,MAAM,MAAM,KAAK,GAAG,CAAC;AAC9B;AAGA,SAAS,uBAAuB,MAAc,MAAgB,SAAyB;AACrF,SAAO,KAAK,QAAQ,2BAA2B,CAAC,QAAQ,SAAiB;AACvE,UAAM,OAAO,KAAK,MAAM,MAAM,EAAE,OAAO,CAAC,SAAS,QAAQ,CAAC,GAAG,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC;AACxG,WAAO,KAAK,SAAS,IAAI,gBAAgB,KAAK,KAAK,IAAI,CAAC,MAAM;AAAA,EAChE,CAAC;AACH;AAGA,SAAS,KAAK,MAAsB;AAClC,QAAM,QAAQ,KAAK,MAAM,IAAI;AAC7B,QAAM,OAAO,MAAM,OAAO,CAAC,MAAM,UAAU;AACzC,QAAI,CAAC,QAAQ,KAAK,IAAI,EAAG,QAAO;AAChC,UAAM,OAAO,MAAM,MAAM,QAAQ,CAAC,EAAE,KAAK,CAAC,UAAU,MAAM,KAAK,MAAM,EAAE;AACvE,WAAO,SAAS,UAAa,MAAM,KAAK,IAAI,KAAK,MAAM,QAAQ,CAAC,GAAG,KAAK,MAAM;AAAA,EAChF,CAAC;AACD,SAAO,KACJ,KAAK,IAAI,EACT,QAAQ,WAAW,MAAM,EACzB,QAAQ,kBAAkB,EAAE,EAC5B,QAAQ;AACb;AAEO,SAAS,aACd,MACA,aACA,MACA,MACA,SACA,SACA,eAAkC,CAAC,GAC3B;AACR,QAAM,QAAQ,iBAAiB,MAAM,aAAa,SAAS,YAAY;AACvE,MAAI,YAAY,aAAa,CAAC,eAAe,MAAM,MAAM,OAAO,EAAG,QAAO,KAAK,KAAK;AACpF,QAAM,WAAW,IAAI,IAAI,gBAAgB,IAAI,CAAC;AAC9C,QAAM,YAAY,IAAI,IAAI,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AAC7F,QAAM,SAAS,MACZ,MAAM,SAAS,EACf,IAAI,CAAC,cAAc,iBAAiB,uBAAuB,WAAW,MAAM,OAAO,GAAG,UAAU,SAAS,CAAC,EAC1G,KAAK,MAAM;AACd,QAAM,OAAO,KAAK,MAAM;AACxB,MAAI,SAAS,GAAI,QAAO;AACxB,QAAM,QAAQ,kBAAkB,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,MAAO,QAAQ,CAAC,GAAG,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAE;AAC5G,SAAO,MAAM,SAAS,IAAI,SAAS,MAAM,KAAK,IAAI,CAAC,MAAM;AAC3D;;;ACvQO,SAAS,aAAa,gBAAoC,sBAAsB,GAAiB;AACtG,SAAO,kBAAkB,iBAAiB,iBAAiB;AAC7D;AAGA,IAAM,oBAAoB,CAAC,cAAc;AAMlC,IAAM,wBAA2C;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA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","names":["aliases","at"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/error-handler.ts","../src/commands/ads/cache.ts","../src/commands/ads/output.ts"],"sourcesContent":["import { writeJsonEnvelope } from \"./commands/ads/output.ts\";\nimport { optionalTargetCompany } from \"./env.ts\";\n\ntype ConnectionPlatform = \"google_ads\" | \"ga4\" | \"gsc\" | \"x_ads\" | \"meta_ads\" | \"linkedin_ads\";\n\n/**\n * Platforms the agent can get connected without the user leaving the chat, via\n * the blocking `request_connection` tool, and the id that tool expects. Every\n * platform this CLI can talk to is here — keep it in step with\n * `CONNECTION_PLATFORMS` in `packages/bridge/src/hono/connection-input.ts`: a\n * platform the tool accepts but this map omits sends the user to Settings for a\n * door the agent could have opened itself.\n */\nconst REQUEST_CONNECTION_PLATFORM: Record<ConnectionPlatform, string> = {\n google_ads: \"google-ads\",\n ga4: \"google-analytics\",\n gsc: \"google-search-console\",\n linkedin_ads: \"linkedin\",\n meta_ads: \"meta\",\n x_ads: \"x-ads\",\n};\n\nconst PLATFORM_NAME: Record<ConnectionPlatform, string> = {\n google_ads: \"Google Ads\",\n ga4: \"Google Analytics 4\",\n gsc: \"Google Search Console\",\n x_ads: \"X Ads\",\n meta_ads: \"Meta Ads\",\n linkedin_ads: \"LinkedIn Ads\",\n};\n\n/**\n * How to tell the agent to get a platform connected. Never \"send them to\n * Settings\" for a platform `request_connection` covers — that ends the turn on a\n * wall the agent could have opened itself, and it now covers every platform this\n * CLI talks to. The fallback line matters too: if the `request_connection` call\n * fails, the agent must still be able to say where the connect button is instead\n * of stalling.\n */\nexport function connectionFixExplanation(platform: ConnectionPlatform): string {\n const name = PLATFORM_NAME[platform];\n const slug = REQUEST_CONNECTION_PLATFORM[platform];\n // Read with `--company` from the organization workspace: connecting from here\n // would connect the workspace, not the company the read named.\n if (optionalTargetCompany()) {\n return (\n `${name} is not connected for that company. It can only be connected in that company's own workspace, ` +\n `never with \\`request_connection\\` from here. Show that company as not connected for ${name} and carry on ` +\n \"with the others.\"\n );\n }\n return (\n `${name} is not connected for this company (or no account has been picked). Don't send the user to Settings ` +\n `or end the turn here — call the \\`request_connection\\` tool with { platform: \"${slug}\", reason } and ` +\n `they connect and pick their accounts from inside the chat. If the \\`request_connection\\` call fails, say so ` +\n `plainly and give the exact route: dashboard → Brain → Integrations → Platforms → ${name}. Then carry on with the ` +\n `rest of the task and say what stays unavailable until it is connected.`\n );\n}\n\n/**\n * Shared error handler for \"No Connection\" scenarios.\n * Provides a structured error for AI agents with a suggested fix and alternative commands.\n */\nexport function handleConnectionError(platform: ConnectionPlatform, originalMessage?: string): never {\n const platformName = PLATFORM_NAME[platform];\n\n const alternative = {\n google_ads: \"keywords-for-site or research advertisers\",\n ga4: \"lighthouse for page performance\",\n gsc: \"keywords-for-site or research keyword-gap\",\n x_ads: \"research advertisers\",\n meta_ads: \"research advertisers or research keyword-ideas\",\n linkedin_ads: \"research advertisers (LinkedIn Ad Library) or research keyword-ideas\",\n }[platform];\n\n const code = {\n google_ads: \"NO_GOOGLE_ADS_CONNECTION\",\n ga4: \"NO_GA4_CONNECTION\",\n gsc: \"NO_GSC_CONNECTION\",\n x_ads: \"NO_X_ADS_CONNECTION\",\n meta_ads: \"NO_META_ADS_CONNECTION\",\n linkedin_ads: \"NO_LINKEDIN_ADS_CONNECTION\",\n }[platform];\n\n const envelope = {\n ok: false,\n error: {\n code,\n message: originalMessage || `No ${platformName} connection found for this company.`,\n fix: optionalTargetCompany()\n ? { action: \"continue_without\", explanation: connectionFixExplanation(platform) }\n : {\n action: \"request_connection\",\n explanation: `${connectionFixExplanation(platform)} (Optional fallback for estimated external insights: 'baker research ${alternative}'.)`,\n },\n retryable: false,\n },\n };\n\n writeJsonEnvelope(envelope);\n process.exit(1);\n}\n\n/**\n * Does this API failure mean \"the platform isn't connected\"? The read commands\n * surface the backend's own 404/403 verbatim, so the connect fix has to be\n * recognised from the code the client mapped it to plus the message.\n */\nexport function isNotConnectedError(code: string, message: string): boolean {\n if (code !== \"NOT_FOUND\" && code !== \"UNAUTHORIZED\" && code !== \"FORBIDDEN\") {\n return false;\n }\n // The last alternative is the write-path 403 (\"customer X is not in this\n // company's connected Google Ads accounts\") — a different sentence for the\n // same remedy: connect, and pick the account.\n return /no .* connection found|not connected|no .* (selected|picked)|is not in .* connected/i.test(message);\n}\n\n/**\n * Does this failure warrant the connect form? A dead token (401) always does —\n * whatever the wording, the remedy is to sign in again.\n *\n * A 404 or 403 only does when the backend says so. Both codes are overloaded:\n * 403 is also an asset-level refusal on a live connection (reconnecting cannot\n * grant it), and 404 is also how \"no staged op <ref> in this draft\" and a\n * mistyped `--chat` come back. Answering either with \"ask the user to connect\n * Meta Ads\" sends the agent to fix something that was never broken, and the\n * real missing-connection 404 says \"No <platform> connection found\" anyway.\n */\nexport function needsConnectionFix(code: string, message: string): boolean {\n if (code === \"UNAUTHORIZED\") {\n return true;\n }\n return isNotConnectedError(code, message);\n}\n\n/**\n * The organization workspace's refusal of a write to a company (`--company`).\n * It is about where the change belongs, not about the platform, so no\n * platform's permission advice applies to it.\n */\nexport function isOrganizationReadRefusal(message: string): boolean {\n return message.startsWith(\"The organization workspace only reads its companies\");\n}\n","import { createHash } from \"node:crypto\";\nimport { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { optionalTargetCompany } from \"../../env.ts\";\nimport type { CacheEntry } from \"./types.ts\";\n\n/**\n * One folder per company a call reads (`--company`), so the organization\n * workspace never answers one company's read with another's cached accounts.\n * Resolved per call: the flag is read after the command's modules load.\n */\nfunction cacheDir(): string {\n const company = optionalTargetCompany()?.replace(/[^a-zA-Z0-9_]/g, \"\");\n return join(homedir(), \".baker\", \"cache\", \"ads\", ...(company ? [\"company\", company] : []));\n}\n\nfunction ensureDir(dir: string): void {\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n}\n\nfunction hashKey(key: string): string {\n return createHash(\"sha256\").update(key).digest(\"hex\").slice(0, 16);\n}\n\nfunction cachePath(category: string, key: string): string {\n const dir = join(cacheDir(), category);\n ensureDir(dir);\n return join(dir, `${hashKey(key)}.json`);\n}\n\nexport function cacheGet<T>(category: string, key: string): CacheEntry<T> | null {\n const path = cachePath(category, key);\n if (!existsSync(path)) {\n return null;\n }\n try {\n const raw = readFileSync(path, \"utf-8\");\n const entry = JSON.parse(raw) as CacheEntry<T>;\n if (entry.expiresAt < Date.now()) {\n rmSync(path, { force: true });\n return null;\n }\n return entry;\n } catch {\n rmSync(path, { force: true });\n return null;\n }\n}\n\nexport function cacheSet<T>(\n category: string,\n key: string,\n data: T,\n ttlMs: number,\n fields?: Record<string, string>,\n): void {\n const path = cachePath(category, key);\n const entry: CacheEntry<T> = {\n expiresAt: Date.now() + ttlMs,\n data,\n fields,\n };\n writeFileSync(path, JSON.stringify(entry), \"utf-8\");\n}\n\nconst HOUR = 60 * 60 * 1000;\nconst MINUTE = 60 * 1000;\n\nexport function getQueryTtl(query: string): number {\n const upper = query.toUpperCase();\n if (upper.includes(\"TODAY\")) {\n return 15 * MINUTE;\n }\n if (upper.includes(\"LAST_7_DAYS\") || upper.includes(\"LAST_14_DAYS\")) {\n return 1 * HOUR;\n }\n // Historical data (BETWEEN, LAST_30_DAYS, LAST_90_DAYS, etc.)\n return 6 * HOUR;\n}\n\nexport function buildQueryCacheKey(customerId: string, query: string): string {\n const today = new Date().toISOString().slice(0, 10);\n return `${customerId}:${today}:${query.trim().replace(/\\s+/g, \" \")}`;\n}\n\ninterface CachedAccount {\n id: string;\n access_type: \"direct\" | \"managed\";\n manager_id?: string;\n}\n\nexport function getManagerIdForCustomer(customerId: string): string | undefined {\n const cached = cacheGet<CachedAccount[]>(\"accounts\", \"list\");\n if (!cached) return undefined;\n const account = cached.data.find((a) => a.id === customerId);\n if (account?.access_type === \"managed\") return account.manager_id;\n return undefined;\n}\n","import { ApiError, apiGet } from \"../../client.ts\";\nimport { getEnv } from \"../../env.ts\";\nimport { handleConnectionError, isNotConnectedError } from \"../../error-handler.ts\";\nimport type { QueryContext } from \"../../geo-context.ts\";\nimport { cacheGet, cacheSet } from \"./cache.ts\";\nimport type { AdsErrorEnvelope, AdsFileSummary, AdsSuccessEnvelope } from \"./types.ts\";\n\ntype AdsOutput =\n | AdsSuccessEnvelope<unknown>\n | AdsErrorEnvelope\n | AdsFileSummary\n | { ok: true; data: unknown; query_context?: QueryContext; cached?: true; fields?: Record<string, string> }\n | { ok: false; error: { code: string; message: string } };\n\nexport function writeAdsJson(envelope: AdsOutput): void {\n process.stdout.write(`${JSON.stringify(envelope, null, 2)}\\n`);\n}\n\nexport function writeJsonEnvelope(envelope: Record<string, unknown>): void {\n process.stdout.write(`${JSON.stringify(envelope, null, 2)}\\n`);\n}\n\n/** The formats `writeAdsOutput` prints. */\nexport const TABLE_OUTPUT_FORMATS = [\"json\", \"csv\", \"jsonl\", \"md\"] as const;\n\n/** Why `--output <format>` cannot be printed, or null — rather than quietly falling back to JSON. */\nexport function outputFormatRefusal(format: string, supported: readonly string[]): string | null {\n if (supported.includes(format)) return null;\n const list =\n supported.length > 1 ? `${supported.slice(0, -1).join(\", \")} or ${supported.at(-1)}` : supported.join(\"\");\n return `--output ${format} is not supported — use ${list}`;\n}\n\nexport function toCsvRow(values: string[]): string {\n return values\n .map((v) => {\n if (v.includes(\",\") || v.includes('\"') || v.includes(\"\\n\")) {\n return `\"${v.replace(/\"/g, '\"\"')}\"`;\n }\n return v;\n })\n .join(\",\");\n}\n\nfunction flattenRow(row: Record<string, unknown>): Record<string, string> {\n const flat: Record<string, string> = {};\n for (const [key, val] of Object.entries(row)) {\n flat[key] = typeof val === \"object\" && val !== null ? JSON.stringify(val) : String(val ?? \"\");\n }\n return flat;\n}\n\n/**\n * One write per table: a line-by-line write piped into `head` hits a closed pipe on\n * the next line and crashes with EPIPE, where a single write lands in the pipe buffer.\n */\nfunction writeWhole(lines: string[]): void {\n process.stdout.write(`${lines.join(\"\\n\")}\\n`);\n}\n\nfunction writeAdsCsv(data: Array<Record<string, unknown>>, fields?: string[]): void {\n if (data.length === 0) return;\n const cols = fields ?? Object.keys(data[0] ?? {});\n const lines = [toCsvRow(cols)];\n for (const row of data) {\n const flat = flattenRow(row);\n lines.push(toCsvRow(cols.map((f) => flat[f] ?? \"\")));\n }\n writeWhole(lines);\n}\n\nfunction writeAdsJsonl(data: Array<Record<string, unknown>>): void {\n if (data.length === 0) return;\n writeWhole(data.map((row) => JSON.stringify(row)));\n}\n\n/** A `|` or line break in a name would split its cell and shift every later column. */\nfunction mdCell(value: string): string {\n return value.replace(/\\|/g, \"\\\\|\").replace(/\\r?\\n/g, \" \");\n}\n\nfunction writeAdsMd(data: Array<Record<string, unknown>>, fields?: string[]): void {\n if (data.length === 0) return;\n const cols = fields ?? Object.keys(data[0] ?? {});\n const lines = [`| ${cols.join(\" | \")} |`, `| ${cols.map(() => \"---\").join(\" | \")} |`];\n for (const row of data) {\n const flat = flattenRow(row);\n lines.push(`| ${cols.map((f) => mdCell(flat[f] ?? \"\")).join(\" | \")} |`);\n }\n writeWhole(lines);\n}\n\n/**\n * `hints` ride in the JSON envelope; csv/jsonl/md stdout has no room for them,\n * and an empty result is exactly when the hint matters, so they go to stderr.\n */\nexport function writeAdsOutput(\n data: Array<Record<string, unknown>>,\n format: string,\n fields?: string[],\n hints: string[] = [],\n): void {\n switch (format) {\n case \"csv\":\n writeAdsCsv(data, fields);\n break;\n case \"jsonl\":\n writeAdsJsonl(data);\n break;\n case \"md\":\n writeAdsMd(data, fields);\n break;\n default:\n writeJsonEnvelope(hints.length > 0 ? { ok: true, data, hints } : { ok: true, data });\n return;\n }\n for (const hint of hints) process.stderr.write(`${hint}\\n`);\n}\n\ninterface AccountInfo {\n id: string;\n name: string;\n access_type: \"direct\" | \"managed\";\n level: number;\n manager_id?: string;\n}\n\nasync function fetchAccounts(useCache = true): Promise<AccountInfo[]> {\n if (useCache) {\n const cached = cacheGet<AccountInfo[]>(\"accounts\", \"list\");\n if (cached) return cached.data;\n }\n const params = !useCache ? { \"skip-cache\": \"true\" } : undefined;\n const data = await apiGet<AccountInfo[]>(\"/api/ads/google/accounts\", params);\n if (useCache) {\n cacheSet(\"accounts\", \"list\", data, 60 * 60 * 1000);\n }\n return data;\n}\n\nexport async function resolveCustomerId(args: Record<string, unknown>): Promise<string> {\n const fromArgs = args[\"customer-id\"] as string | undefined;\n const customerId = fromArgs || getEnv().BAKER_GOOGLE_ADS_CUSTOMER_ID;\n\n if (customerId) {\n if (!/^\\d{10}$/.test(customerId)) {\n writeAdsJson({\n ok: false,\n error: {\n code: \"INVALID_CUSTOMER_ID\",\n message:\n \"Customer ID must be exactly 10 digits without dashes. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID.\",\n },\n });\n process.exit(1);\n }\n return customerId;\n }\n\n const useCache = !args[\"no-cache\"];\n\n try {\n const accounts = await fetchAccounts(useCache);\n const [single] = accounts;\n if (accounts.length === 1 && single) {\n process.stderr.write(`Using account \"${single.name}\" (${single.id})\\n`);\n return single.id;\n }\n if (accounts.length === 0) {\n handleConnectionError(\"google_ads\");\n }\n const list = accounts.map((a) => ` ${a.id} ${a.name}`).join(\"\\n\");\n writeAdsJson({\n ok: false,\n error: {\n code: \"MULTIPLE_ACCOUNTS\",\n message: `Multiple accounts found. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID:\\n${list}`,\n },\n });\n process.exit(1);\n } catch (err) {\n // \"No connection\" reaches here as a 404/403 from the accounts lookup. Reporting it as\n // an unusable customer id sends the agent hunting for an id that cannot exist yet.\n if (err instanceof ApiError && isNotConnectedError(err.code, err.message)) {\n handleConnectionError(\"google_ads\", err.message);\n }\n writeAdsJson({\n ok: false,\n error: {\n code: \"INVALID_CUSTOMER_ID\",\n message: \"Could not auto-detect account. Pass --customer-id or set BAKER_GOOGLE_ADS_CUSTOMER_ID.\",\n },\n });\n process.exit(1);\n }\n}\n"],"mappings":"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","names":[]}