@koda-sl/baker-cli 0.573.0 → 0.574.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1535) hide show
  1. package/README.md +42 -7
  2. package/dist/account-WFAMHUCQ.js +82 -0
  3. package/dist/account-Y7ZFEM7U.js +82 -0
  4. package/dist/account-YYB2KWLU.js +139 -0
  5. package/dist/account-assets-BFMQWV33.js +290 -0
  6. package/dist/account-level-47IS2CZB.js +611 -0
  7. package/dist/account-reads-JPQ2K343.js +219 -0
  8. package/dist/account-reads-JPQ2K343.js.map +1 -0
  9. package/dist/account-users-QAFQDSZQ.js +64 -0
  10. package/dist/account-writes-EEKHPF5I.js +68 -0
  11. package/dist/accounts-H3KO5AEN.js +119 -0
  12. package/dist/accounts-LTGUK6OV.js +76 -0
  13. package/dist/accounts-LTUEBWJL.js +115 -0
  14. package/dist/accounts-OHVZAP4D.js +498 -0
  15. package/dist/accounts-OHVZAP4D.js.map +1 -0
  16. package/dist/accounts-TFUGF7UK.js +80 -0
  17. package/dist/actions-FTIRKAAN.js +55 -0
  18. package/dist/active-entities-QWJXR4W6.js +103 -0
  19. package/dist/activecampaign-BCOEXYZ7.js +938 -0
  20. package/dist/activities-ZRP22SC2.js +75 -0
  21. package/dist/ad-group-writes-UDQ4563V.js +172 -0
  22. package/dist/ad-groups-RXT2XKSE.js +70 -0
  23. package/dist/ad-writes-SHLTL2FY.js +176 -0
  24. package/dist/add-F65GOWKP.js +85 -0
  25. package/dist/add-IALA4VRA.js +148 -0
  26. package/dist/add-ITX64WEC.js +81 -0
  27. package/dist/add-L6MKL2G2.js +107 -0
  28. package/dist/add-QGJPTGU7.js +305 -0
  29. package/dist/add-WAVXB2QA.js +97 -0
  30. package/dist/add-accounts-YTLQCSXB.js +91 -0
  31. package/dist/ads-A34INCCM.js +120 -0
  32. package/dist/ads-AKF5AT6O.js +128 -0
  33. package/dist/ads-AYXMFUIF.js +48 -0
  34. package/dist/ads-CUMOMBI3.js +79 -0
  35. package/dist/adsets-HNFBX4LB.js +182 -0
  36. package/dist/advertisers-RVTUZ53M.js +123 -0
  37. package/dist/advertisers-YTG6VA6R.js +125 -0
  38. package/dist/alerts-LZJAF4AQ.js +151 -0
  39. package/dist/alerts-LZJAF4AQ.js.map +1 -0
  40. package/dist/analytics-4YHYFRHH.js +447 -0
  41. package/dist/analytics-RLZ7BXIB.js +2397 -0
  42. package/dist/analytics-RLZ7BXIB.js.map +1 -0
  43. package/dist/animate-MBNFCDUZ.js +480 -0
  44. package/dist/approved-3W56YTOZ.js +73 -0
  45. package/dist/asset-writes-2CYNDRPU.js +50 -0
  46. package/dist/assign-JC5BK5XE.js +80 -0
  47. package/dist/audience-size-ZVRH3BEL.js +76 -0
  48. package/dist/audience-writes-JNVGUHGN.js +327 -0
  49. package/dist/audiences-KBW2UAOP.js +280 -0
  50. package/dist/audiences-OOXSXKIT.js +85 -0
  51. package/dist/audiences-S6TXNKQ2.js +106 -0
  52. package/dist/audit-JXRVO37K.js +154 -0
  53. package/dist/audit-O2RRST7B.js +88 -0
  54. package/dist/autocomplete-CBBFRPJZ.js +114 -0
  55. package/dist/avatars-GB7B2MGR.js +38 -0
  56. package/dist/bid-pricing-G4IXJRVK.js +103 -0
  57. package/dist/brand-VKQ72SRQ.js +22 -0
  58. package/dist/brief-X3FRAPUH.js +543 -0
  59. package/dist/businesses-HOAQVYRH.js +54 -0
  60. package/dist/campaign-groups-NA73I7JR.js +99 -0
  61. package/dist/campaign-writes-JYMQF6CK.js +176 -0
  62. package/dist/campaign-writes-ZOLIX3EB.js +168 -0
  63. package/dist/campaigns-DZAZIUES.js +113 -0
  64. package/dist/campaigns-EEH3VDK6.js +130 -0
  65. package/dist/campaigns-PB3QNTI4.js +111 -0
  66. package/dist/campaigns-TMHFCPAZ.js +78 -0
  67. package/dist/canvas-4EGLYNYM.js +46 -0
  68. package/dist/capabilities-JZFPET7C.js +147 -0
  69. package/dist/cards-OOKI2WSA.js +85 -0
  70. package/dist/catalog-2P422WOQ.js +66 -0
  71. package/dist/catalogs-WBXWK7NT.js +782 -0
  72. package/dist/catalogs-XFYYY3CS.js +130 -0
  73. package/dist/changes-GFJITHF6.js +167 -0
  74. package/dist/changes-GFJITHF6.js.map +1 -0
  75. package/dist/chatgpt-KNLATOZ6.js +47 -0
  76. package/dist/chats-CE7RKD6W.js +589 -0
  77. package/dist/check-SIMBAMXJ.js +107 -0
  78. package/dist/chunk-2NXACVED.js +169 -0
  79. package/dist/chunk-2S3VIE7D.js +312 -0
  80. package/dist/chunk-2ZKQNMK2.js +74 -0
  81. package/dist/chunk-37QNC344.js +843 -0
  82. package/dist/chunk-3WLUQ7DM.js +757 -0
  83. package/dist/chunk-3WLUQ7DM.js.map +1 -0
  84. package/dist/chunk-3WOFZTGC.js +297 -0
  85. package/dist/chunk-3WOFZTGC.js.map +1 -0
  86. package/dist/chunk-45ETXHUI.js +66 -0
  87. package/dist/chunk-46TEYVJ6.js +432 -0
  88. package/dist/chunk-46TEYVJ6.js.map +1 -0
  89. package/dist/chunk-4DHHMWP4.js +24026 -0
  90. package/dist/chunk-4GRVNPHA.js +274 -0
  91. package/dist/chunk-5G7UBTBE.js +962 -0
  92. package/dist/chunk-5HQ64Z7X.js +479 -0
  93. package/dist/chunk-5IHZTLDH.js +288 -0
  94. package/dist/chunk-5QCAWD6V.js +163 -0
  95. package/dist/chunk-62UGVR7Q.js +94 -0
  96. package/dist/chunk-6LLA6IF6.js +285 -0
  97. package/dist/chunk-6PJGHPXG.js +131 -0
  98. package/dist/chunk-6ZW5AR5N.js +84 -0
  99. package/dist/chunk-7DT6XY4A.js +719 -0
  100. package/dist/chunk-7DT6XY4A.js.map +1 -0
  101. package/dist/chunk-7LFOSBF4.js +3510 -0
  102. package/dist/chunk-7PKEBTVP.js +98 -0
  103. package/dist/chunk-7PKEBTVP.js.map +1 -0
  104. package/dist/chunk-7XFQPPYB.js +69 -0
  105. package/dist/chunk-AJ4OO3CV.js +8141 -0
  106. package/dist/chunk-AJ4OO3CV.js.map +1 -0
  107. package/dist/chunk-AWYXZU45.js +51 -0
  108. package/dist/chunk-AYKV2B6X.js +47 -0
  109. package/dist/chunk-AYKV2B6X.js.map +1 -0
  110. package/dist/chunk-AYOTYURE.js +1518 -0
  111. package/dist/chunk-BXR45CRI.js +819 -0
  112. package/dist/chunk-BYV4VS5E.js +5471 -0
  113. package/dist/chunk-CGLNCFAG.js +136 -0
  114. package/dist/chunk-CP5IVVYM.js +76 -0
  115. package/dist/chunk-CXVHS2SV.js +91 -0
  116. package/dist/chunk-DCBCEYSH.js +98 -0
  117. package/dist/chunk-DFE77XT5.js +225 -0
  118. package/dist/chunk-DN6EMVA4.js +25 -0
  119. package/dist/chunk-E2G2USTA.js +75 -0
  120. package/dist/chunk-EFZVDV7F.js +1744 -0
  121. package/dist/chunk-FCD5BPC5.js +222 -0
  122. package/dist/chunk-FCD5BPC5.js.map +1 -0
  123. package/dist/chunk-FTP6NDOU.js +1320 -0
  124. package/dist/chunk-FUFLMP4B.js +455 -0
  125. package/dist/chunk-HJS6FPQX.js +152 -0
  126. package/dist/chunk-HZ7QUFUW.js +97 -0
  127. package/dist/chunk-IDFAFNL6.js +297 -0
  128. package/dist/chunk-ILLS2XWG.js +61 -0
  129. package/dist/chunk-IPEQHZ5H.js +724 -0
  130. package/dist/chunk-IPEQHZ5H.js.map +1 -0
  131. package/dist/chunk-ITABNSX6.js +26 -0
  132. package/dist/chunk-JCFZ7ECN.js +246 -0
  133. package/dist/chunk-JTYD7A3C.js +225 -0
  134. package/dist/chunk-K2WKQXGH.js +392 -0
  135. package/dist/chunk-KMZ4YWS4.js +544 -0
  136. package/dist/chunk-KSBXVA4K.js +344 -0
  137. package/dist/chunk-KSJRHAE4.js +156 -0
  138. package/dist/chunk-KYLTADVX.js +494 -0
  139. package/dist/chunk-L6UZM3ZN.js +249 -0
  140. package/dist/chunk-LRIP2J5S.js +5368 -0
  141. package/dist/chunk-M27HR7YD.js +23 -0
  142. package/dist/chunk-M7BSXJNL.js +167 -0
  143. package/dist/chunk-MGUEAG6W.js +73 -0
  144. package/dist/chunk-MIBOIXCP.js +115 -0
  145. package/dist/chunk-MNFJQRUO.js +76 -0
  146. package/dist/chunk-MNJT2F7H.js +504 -0
  147. package/dist/chunk-MNJT2F7H.js.map +1 -0
  148. package/dist/chunk-MQU4LNYG.js +46 -0
  149. package/dist/chunk-MSOFG7FT.js +197 -0
  150. package/dist/chunk-MUT2BPDM.js +46 -0
  151. package/dist/chunk-MUU27AJF.js +203 -0
  152. package/dist/chunk-MVDMMSXS.js +8954 -0
  153. package/dist/chunk-MWPM6HNV.js +138 -0
  154. package/dist/chunk-NE3AZ25Y.js +58 -0
  155. package/dist/chunk-NEALLMDP.js +1919 -0
  156. package/dist/chunk-NZOMEXDN.js +399 -0
  157. package/dist/chunk-O5K5EKJC.js +930 -0
  158. package/dist/chunk-OFSUVUXT.js +215 -0
  159. package/dist/chunk-OMLZ35HJ.js +482 -0
  160. package/dist/chunk-OMLZ35HJ.js.map +1 -0
  161. package/dist/chunk-P3CYWSTO.js +351 -0
  162. package/dist/chunk-P3CYWSTO.js.map +1 -0
  163. package/dist/chunk-P6H6JZXO.js +188 -0
  164. package/dist/chunk-P7OX5Y75.js +1920 -0
  165. package/dist/chunk-QENSBNRJ.js +1258 -0
  166. package/dist/chunk-QENSBNRJ.js.map +1 -0
  167. package/dist/chunk-QY6GNZFH.js +224 -0
  168. package/dist/chunk-RM5JT6XF.js +106 -0
  169. package/dist/chunk-ROWUTQFG.js +125 -0
  170. package/dist/chunk-RSABCQLI.js +45 -0
  171. package/dist/chunk-SGA5V2BM.js +91 -0
  172. package/dist/chunk-SLTZC32B.js +218 -0
  173. package/dist/chunk-SLTZC32B.js.map +1 -0
  174. package/dist/chunk-SO7NANAH.js +69 -0
  175. package/dist/chunk-SQZKWZ6F.js +103 -0
  176. package/dist/chunk-SSFQNMPS.js +259 -0
  177. package/dist/chunk-SSFQNMPS.js.map +1 -0
  178. package/dist/chunk-SULQZX5W.js +42 -0
  179. package/dist/chunk-T3YHV2UM.js +685 -0
  180. package/dist/chunk-T4HIFVNK.js +84 -0
  181. package/dist/chunk-TJTCHTR4.js +343 -0
  182. package/dist/chunk-TUS2VOMZ.js +219 -0
  183. package/dist/chunk-U3LO5TDH.js +296 -0
  184. package/dist/chunk-UDNN4POE.js +111 -0
  185. package/dist/chunk-USFXKWTX.js +79 -0
  186. package/dist/chunk-USFXKWTX.js.map +1 -0
  187. package/dist/chunk-UYOUNHUQ.js +309 -0
  188. package/dist/chunk-UYOUNHUQ.js.map +1 -0
  189. package/dist/chunk-UYVMINV2.js +139 -0
  190. package/dist/chunk-VASOAJDL.js +78 -0
  191. package/dist/chunk-VASOAJDL.js.map +1 -0
  192. package/dist/chunk-VC2XB5JT.js +170 -0
  193. package/dist/chunk-VGJFNHSA.js +56 -0
  194. package/dist/chunk-VJUVTMHY.js +329 -0
  195. package/dist/chunk-VJUVTMHY.js.map +1 -0
  196. package/dist/chunk-VQMEXYP3.js +604 -0
  197. package/dist/chunk-VQOBDHZP.js +106 -0
  198. package/dist/chunk-VRQ5HEVU.js +35 -0
  199. package/dist/chunk-VUG7DFVI.js +220 -0
  200. package/dist/chunk-VVITBZKP.js +97 -0
  201. package/dist/chunk-WB4FNMSI.js +142 -0
  202. package/dist/chunk-WFTTF2MP.js +225 -0
  203. package/dist/chunk-WUNWVQAI.js +89 -0
  204. package/dist/chunk-XGTZ3WQX.js +2234 -0
  205. package/dist/chunk-XMIV53FM.js +191 -0
  206. package/dist/chunk-XNUUEUJB.js +287 -0
  207. package/dist/chunk-YB2UVOAD.js +64 -0
  208. package/dist/chunk-YP5SD6O2.js +148 -0
  209. package/dist/chunk-YRW2AAKX.js +454 -0
  210. package/dist/chunk-YT6YI47O.js +178 -0
  211. package/dist/chunk-YYFARPMN.js +547 -0
  212. package/dist/chunk-Z2QKUVHP.js +57 -0
  213. package/dist/chunk-Z2WTCFQ6.js +19 -0
  214. package/dist/chunk-Z3KRNKEA.js +64 -0
  215. package/dist/chunk-Z6RTEOEY.js +39 -0
  216. package/dist/cite-I5UV5SKS.js +191 -0
  217. package/dist/claim-QS3M3TOL.js +200 -0
  218. package/dist/cli.js +46 -45
  219. package/dist/cli.js.map +1 -1
  220. package/dist/client-DKZM6XTS.js +19 -0
  221. package/dist/code-D3J5FQCF.js +76 -0
  222. package/dist/companies-XCKJCRHM.js +34 -0
  223. package/dist/company-IQ4LMS24.js +308 -0
  224. package/dist/complete-PPHC25BS.js +84 -0
  225. package/dist/config-ACEF37UO.js +88 -0
  226. package/dist/connect-F6LPMOCU.js +45 -0
  227. package/dist/content-5RTSXURF.js +85 -0
  228. package/dist/conversation-GYDBXZN2.js +96 -0
  229. package/dist/conversion-report-6SVHPLHT.js +127 -0
  230. package/dist/conversion-upload-command-J3STKMAL.js +439 -0
  231. package/dist/conversion-writes-PEKNBIDQ.js +122 -0
  232. package/dist/conversions-7PSI7L55.js +140 -0
  233. package/dist/conversions-ICSKSSLX.js +78 -0
  234. package/dist/copy-writes-ER5ZB5C4.js +170 -0
  235. package/dist/countries-OJZQQYFT.js +82 -0
  236. package/dist/create-AJPHIQIT.js +135 -0
  237. package/dist/create-DM7DUVDQ.js +239 -0
  238. package/dist/create-R6BEEL3J.js +62 -0
  239. package/dist/create-XYJYG7CU.js +218 -0
  240. package/dist/creatives-LD76JBM4.js +58 -0
  241. package/dist/creatives-R6Q2QUQI.js +229 -0
  242. package/dist/creatives-ZGXH7UA7.js +118 -0
  243. package/dist/credentials-P7L6PQKJ.js +290 -0
  244. package/dist/critique-DIVRMX7I.js +1451 -0
  245. package/dist/critique-KLGX7RI6.js +232 -0
  246. package/dist/crm-SBSOI3BQ.js +313 -0
  247. package/dist/crm-SBSOI3BQ.js.map +1 -0
  248. package/dist/crm-Y3F5UUXL.js +323 -0
  249. package/dist/crop-SRCLDYM5.js +113 -0
  250. package/dist/currency-YZBACARU.js +88 -0
  251. package/dist/currency-YZBACARU.js.map +1 -0
  252. package/dist/custom-conversions-RTSR3KKJ.js +128 -0
  253. package/dist/customers-7NG2IPJK.js +65 -0
  254. package/dist/data-QOCDG3ZD.js +455 -0
  255. package/dist/data-QOCDG3ZD.js.map +1 -0
  256. package/dist/decide-2WQKE6HC.js +199 -0
  257. package/dist/delete-DWQS7UCJ.js +85 -0
  258. package/dist/delete-HGIMNZ4V.js +57 -0
  259. package/dist/delete-KDD6QSJA.js +69 -0
  260. package/dist/delete-MJSASLP6.js +69 -0
  261. package/dist/delete-N76JN5MP.js +71 -0
  262. package/dist/delete-S7U6A435.js +67 -0
  263. package/dist/demographics-PNEXYSZD.js +141 -0
  264. package/dist/describe-42XBBR6J.js +97 -0
  265. package/dist/describe-TKOJMWML.js +97 -0
  266. package/dist/dimensions-5OS26IF6.js +101 -0
  267. package/dist/discard-MT26YH73.js +69 -0
  268. package/dist/discover-IDC6PQV2.js +93 -0
  269. package/dist/discover-RKW25QME.js +172 -0
  270. package/dist/discover-RKW25QME.js.map +1 -0
  271. package/dist/domain-H6GRR7WD.js +101 -0
  272. package/dist/download-QCDXPSUM.js +172 -0
  273. package/dist/download-QH4VHDS6.js +337 -0
  274. package/dist/draft-3MYPEBSF.js +260 -0
  275. package/dist/draft-EHDIVMWL.js +615 -0
  276. package/dist/draft-EHDIVMWL.js.map +1 -0
  277. package/dist/draft-EUWOFQXE.js +374 -0
  278. package/dist/draft-FJ55MZB4.js +138 -0
  279. package/dist/draft-FRX24TKC.js +220 -0
  280. package/dist/draft-RKKOSTJF.js +332 -0
  281. package/dist/draft-W7FYHKI2.js +134 -0
  282. package/dist/draft-ZDS6KFZ3.js +315 -0
  283. package/dist/engine/index.js +13 -13
  284. package/dist/env-AMOXYHCA.js +55 -0
  285. package/dist/experiment-TBLKWI2J.js +1397 -0
  286. package/dist/experiments-SJV3ZE46.js +236 -0
  287. package/dist/export-AMOLHZB6.js +168 -0
  288. package/dist/extract-MT3P3SYT.js +143 -0
  289. package/dist/facets-LWJT5J4S.js +117 -0
  290. package/dist/favorites-Z24QDACW.js +178 -0
  291. package/dist/feed-2XCJ2JIV.js +177 -0
  292. package/dist/feedback-AB2QVJU3.js +114 -0
  293. package/dist/feedback-EGVQJTCD.js +115 -0
  294. package/dist/feedback-record-F32XSTKZ.js +269 -0
  295. package/dist/fetch-M5KGRBEI.js +204 -0
  296. package/dist/fetch-Z5MNAIQS.js +139 -0
  297. package/dist/find-XMISWVZT.js +144 -0
  298. package/dist/fit-YDHY7E7H.js +65 -0
  299. package/dist/flows-3V47HJQ3.js +340 -0
  300. package/dist/follow-542NYE76.js +94 -0
  301. package/dist/follow-competitors-NZDLHP7P.js +112 -0
  302. package/dist/following-JTZZCSQX.js +113 -0
  303. package/dist/fonts-3GV2ZO5E.js +39 -0
  304. package/dist/forecast-327XLLZ3.js +169 -0
  305. package/dist/forecast-327XLLZ3.js.map +1 -0
  306. package/dist/forecast-YKHZXBSB.js +121 -0
  307. package/dist/funding-HKPP53U2.js +85 -0
  308. package/dist/funnel-B4WROVPH.js +397 -0
  309. package/dist/ga4-MUIZN7ID.js +55 -0
  310. package/dist/generate-GBFLO76C.js +263 -0
  311. package/dist/get-3QLANJES.js +59 -0
  312. package/dist/get-D5G2RNTR.js +62 -0
  313. package/dist/get-FG3VO3BZ.js +62 -0
  314. package/dist/get-G4UPOHVY.js +74 -0
  315. package/dist/get-GOXOADPY.js +56 -0
  316. package/dist/get-HQUIC2MQ.js +82 -0
  317. package/dist/get-JUI3RVMT.js +38 -0
  318. package/dist/get-T7A3CTS2.js +92 -0
  319. package/dist/gif-4KAQUYPX.js +111 -0
  320. package/dist/google-FMGXNCW3.js +3300 -0
  321. package/dist/google-FMGXNCW3.js.map +1 -0
  322. package/dist/google-PKT7ORVP.js +163 -0
  323. package/dist/google-ads-AKIWTLR4.js +198 -0
  324. package/dist/group-4GYPBQMU.js +43 -0
  325. package/dist/group-GH5CSQKA.js +43 -0
  326. package/dist/gsc-3EIBYMON.js +30 -0
  327. package/dist/history-FX223L6D.js +102 -0
  328. package/dist/history-HB45CGYR.js +153 -0
  329. package/dist/history-K4VYVCZC.js +69 -0
  330. package/dist/hubspot-SBPRX4A7.js +817 -0
  331. package/dist/hubspot-SBPRX4A7.js.map +1 -0
  332. package/dist/icon-VYFLZ4FS.js +138 -0
  333. package/dist/ideas-6GD47AQW.js +45 -0
  334. package/dist/images-BC7ZWZ4B.js +92 -0
  335. package/dist/improve-ZBPSMVFI.js +86 -0
  336. package/dist/ingest-T3FJWORN.js +131 -0
  337. package/dist/ingest-XJ5DDUNG.js +28 -0
  338. package/dist/insights-2NWY4XJR.js +658 -0
  339. package/dist/insights-RHOCF7VR.js +132 -0
  340. package/dist/inspect-GYEHCDZR.js +192 -0
  341. package/dist/inspiration-6FGGHV73.js +53 -0
  342. package/dist/instant-experiences-YZYOLGBA.js +264 -0
  343. package/dist/intent-TKFH57DZ.js +95 -0
  344. package/dist/job-2XYPZRJ6.js +202 -0
  345. package/dist/job-create-BPUOBKXA.js +109 -0
  346. package/dist/job-status-HUDHF6BU.js +74 -0
  347. package/dist/keep-XBYR2NII.js +78 -0
  348. package/dist/keyword-gap-7I2CIUTK.js +130 -0
  349. package/dist/keyword-metrics-K7L6CVTZ.js +200 -0
  350. package/dist/keywords-for-site-HBQBMVFS.js +131 -0
  351. package/dist/knowledge-ILQIN5FL.js +195 -0
  352. package/dist/landing-RYX65ZJJ.js +28 -0
  353. package/dist/landings-GRJAJKHY.js +151 -0
  354. package/dist/languages-22VMY7JN.js +55 -0
  355. package/dist/languages-FMHPUVOL.js +40 -0
  356. package/dist/launches-NUMSS7HP.js +19 -0
  357. package/dist/layerize-TFRXRHVL.js +190 -0
  358. package/dist/lead-routes-D5ITHESC.js +733 -0
  359. package/dist/leads-OAFYKOCF.js +115 -0
  360. package/dist/leads-VEHYM23G.js +541 -0
  361. package/dist/learn-SIATYUQL.js +207 -0
  362. package/dist/library-JB2UBSJ5.js +212 -0
  363. package/dist/lighthouse-EQZFYGFL.js +75 -0
  364. package/dist/line-item-writes-4LAJW33S.js +211 -0
  365. package/dist/line-items-4FLTV275.js +107 -0
  366. package/dist/link-4EWQ6R6D.js +67 -0
  367. package/dist/linkedin-3KNDZPJT.js +1381 -0
  368. package/dist/linkedin-3KNDZPJT.js.map +1 -0
  369. package/dist/linkedin-person-EFBNRT7A.js +139 -0
  370. package/dist/list-5BWNSHYO.js +51 -0
  371. package/dist/list-A363BF25.js +65 -0
  372. package/dist/list-JARIB5LC.js +57 -0
  373. package/dist/list-K7ROIVKU.js +67 -0
  374. package/dist/list-RO4YLUFK.js +76 -0
  375. package/dist/list-TJJPI57I.js +154 -0
  376. package/dist/list-UD43QCLC.js +50 -0
  377. package/dist/list-VGMXUBFE.js +306 -0
  378. package/dist/list-XPLMANXX.js +93 -0
  379. package/dist/locations-DD3JRZ4C.js +69 -0
  380. package/dist/locations-HWMEJ64P.js +40 -0
  381. package/dist/log-M7UCG5LZ.js +95 -0
  382. package/dist/logo-KDGD6LRA.js +19 -0
  383. package/dist/lookup-7HIPFF2U.js +23 -0
  384. package/dist/make-US3C4YLT.js +1367 -0
  385. package/dist/map-OT5M3BJF.js +445 -0
  386. package/dist/mcp-32LXPARX.js +729 -0
  387. package/dist/media-6VI4PN4N.js +18 -0
  388. package/dist/media-WIFXVGKU.js +89 -0
  389. package/dist/media-sources-Z4JJELU7.js +35 -0
  390. package/dist/members-2BNKMQ2I.js +47 -0
  391. package/dist/meme-I43AVLGS.js +108 -0
  392. package/dist/meta-IVCO7HHX.js +152 -0
  393. package/dist/meta-IVCO7HHX.js.map +1 -0
  394. package/dist/metrics-KXTFXSWK.js +152 -0
  395. package/dist/metrics-KXTFXSWK.js.map +1 -0
  396. package/dist/normalize-5B5WIBV4.js +806 -0
  397. package/dist/normalize-GV2POGHI.js +144 -0
  398. package/dist/options-HKGF6VEW.js +125 -0
  399. package/dist/organization-G4VL7IQH.js +949 -0
  400. package/dist/output-W5J5RKRR.js +26 -0
  401. package/dist/page-KUDKDDLJ.js +105 -0
  402. package/dist/page-photos-52S2XRIW.js +118 -0
  403. package/dist/pages-RMTL3RCK.js +67 -0
  404. package/dist/people-2THRDMG4.js +171 -0
  405. package/dist/people-2THRDMG4.js.map +1 -0
  406. package/dist/people-5A6NEDEU.js +164 -0
  407. package/dist/people-5A6NEDEU.js.map +1 -0
  408. package/dist/performance-67DDDP3X.js +5565 -0
  409. package/dist/performance-MF4547I7.js +27 -0
  410. package/dist/pinterest-GMNQ2AVG.js +105 -0
  411. package/dist/pixels-3CINROKJ.js +62 -0
  412. package/dist/pixels-YQJKJWAC.js +109 -0
  413. package/dist/plan-33F5F2OR.js +208 -0
  414. package/dist/posts-MZFKWSZ6.js +36 -0
  415. package/dist/preview-HWM6KHV5.js +245 -0
  416. package/dist/preview-JITAEUWU.js +101 -0
  417. package/dist/profile-OYCGBQWF.js +159 -0
  418. package/dist/promoted-tweet-writes-K7YJNRMS.js +183 -0
  419. package/dist/promoted-tweets-JIKZFJXO.js +119 -0
  420. package/dist/properties-PMY3KKUU.js +101 -0
  421. package/dist/publish-4YT3CR4T.js +350 -0
  422. package/dist/query-ALRSR5OF.js +236 -0
  423. package/dist/query-NYH5PMQF.js +62 -0
  424. package/dist/query-ZGGHOYOH.js +231 -0
  425. package/dist/questionnaire-4AJFPLM2.js +94 -0
  426. package/dist/read-Z7BBSAEK.js +141 -0
  427. package/dist/reddit-CTAWHQ6K.js +29 -0
  428. package/dist/refresh-VE3UKLXX.js +42 -0
  429. package/dist/refresh-YYP23L3T.js +97 -0
  430. package/dist/release-ZPU626XC.js +63 -0
  431. package/dist/relevant-pages-QIF35NBQ.js +99 -0
  432. package/dist/remove-7RQJRXOV.js +53 -0
  433. package/dist/remove-VGEKRK34.js +49 -0
  434. package/dist/reopen-HANTJFNU.js +66 -0
  435. package/dist/rerun-LSWO6K7O.js +97 -0
  436. package/dist/research-YKP5MEEQ.js +78 -0
  437. package/dist/research-YKP5MEEQ.js.map +1 -0
  438. package/dist/research-ZARG4TUX.js +265 -0
  439. package/dist/reset-LO2WLWSF.js +57 -0
  440. package/dist/reset-PDQTEM2J.js +57 -0
  441. package/dist/resolve-RXWBSGHW.js +124 -0
  442. package/dist/retry-M5RY4EFT.js +65 -0
  443. package/dist/retry-WRNZN2GO.js +63 -0
  444. package/dist/retry-failed-GEORPC3E.js +45 -0
  445. package/dist/revenue-IXQTSRYQ.js +91 -0
  446. package/dist/rule-writes-DRZUEIV6.js +530 -0
  447. package/dist/rules-BBALKNBK.js +217 -0
  448. package/dist/rules-O64G4QVU.js +99 -0
  449. package/dist/rules-add-HW6UNH3U.js +465 -0
  450. package/dist/run-ENK7RU6R.js +69 -0
  451. package/dist/run-FO6EDDEN.js +72 -0
  452. package/dist/scaffold-ad-FFKVESN3.js +1513 -0
  453. package/dist/scaffold-static-ad-TWJM3TUK.js +1012 -0
  454. package/dist/scaffold-video-OK4TWNUK.js +885 -0
  455. package/dist/schedule-L5NVM4DN.js +67 -0
  456. package/dist/schedule-U4JVZER5.js +64 -0
  457. package/dist/scheduled-agents-ZIBL3WP5.js +56 -0
  458. package/dist/scheduled-agents-ZIBL3WP5.js.map +1 -0
  459. package/dist/schema-3IEI64TQ.js +152 -0
  460. package/dist/schema-6I2RSDO2.js +135 -0
  461. package/dist/scrape-YEZGRX2B.js +2209 -0
  462. package/dist/screenshot-6EBASY4U.js +103 -0
  463. package/dist/search-BZLTII6V.js +228 -0
  464. package/dist/search-I7CCYBB5.js +92 -0
  465. package/dist/search-NA7DBOLW.js +91 -0
  466. package/dist/search-QONARWFY.js +177 -0
  467. package/dist/search-RM4MN7KO.js +51 -0
  468. package/dist/search-SNEFCCJX.js +26 -0
  469. package/dist/search-copy-S6JVQZLI.js +168 -0
  470. package/dist/seeds-BIY565P3.js +101 -0
  471. package/dist/select-EBLEMFQI.js +110 -0
  472. package/dist/sends-7JKFJTRE.js +349 -0
  473. package/dist/sequences-KZSNIELI.js +146 -0
  474. package/dist/set-prompt-CDYOXIIY.js +199 -0
  475. package/dist/setup-links-QQ2AWOZG.js +144 -0
  476. package/dist/shared-P5UDXZAG.js +34 -0
  477. package/dist/shopify-SSDXRXN5.js +4009 -0
  478. package/dist/site-PHU5BRRL.js +180 -0
  479. package/dist/sitemaps-WCARK2BM.js +77 -0
  480. package/dist/sites-JQZ2ZC6W.js +97 -0
  481. package/dist/skills-V2FRLLOW.js +47 -0
  482. package/dist/sources-I52AANVB.js +30 -0
  483. package/dist/sources-XH6RL3GF.js +457 -0
  484. package/dist/stale-A6RYRZDV.js +90 -0
  485. package/dist/stats-W7CCPRTG.js +34 -0
  486. package/dist/status-O4AGHCJY.js +65 -0
  487. package/dist/sticker-NDSJDIAK.js +103 -0
  488. package/dist/stock-C2TUFJUH.js +212 -0
  489. package/dist/studies-4JOP2GQJ.js +250 -0
  490. package/dist/studio-TG2UAKFI.js +49 -0
  491. package/dist/study-writes-PMTRTUXP.js +471 -0
  492. package/dist/suggest-F5GIJR4K.js +66 -0
  493. package/dist/sync-IDULIJUZ.js +279 -0
  494. package/dist/sync-NNNB2PWZ.js +57 -0
  495. package/dist/sync-STPHWKTE.js +55 -0
  496. package/dist/sync-definition-AABUGAYW.js +70 -0
  497. package/dist/tag-MMY3QT2N.js +57 -0
  498. package/dist/tag-manager-JDGWAHCZ.js +43 -0
  499. package/dist/tags-A2PCL4OL.js +26 -0
  500. package/dist/tags-KH6N6OKV.js +23 -0
  501. package/dist/tags-LAMQOQWY.js +23 -0
  502. package/dist/tags-MIR75PDJ.js +227 -0
  503. package/dist/tags-PHEHMZC7.js +23 -0
  504. package/dist/targeting-AVHPKERN.js +762 -0
  505. package/dist/targeting-constants-T7Y6RVEH.js +118 -0
  506. package/dist/targeting-criteria-MRAEWFOW.js +113 -0
  507. package/dist/targets-JJO4Z4DI.js +106 -0
  508. package/dist/terms-ETG7YCJC.js +102 -0
  509. package/dist/testimonials-5455FK4Y.js +32 -0
  510. package/dist/themes-7XHHY4XY.js +95 -0
  511. package/dist/themes-7XHHY4XY.js.map +1 -0
  512. package/dist/top-companies-5SZO3NVE.js +246 -0
  513. package/dist/top-companies-5SZO3NVE.js.map +1 -0
  514. package/dist/transcript-JHGN7KW7.js +165 -0
  515. package/dist/translate-YWSIWVRT.js +603 -0
  516. package/dist/triggers-RNGTCIVF.js +144 -0
  517. package/dist/tweets-3H7CW3ZI.js +123 -0
  518. package/dist/unfollow-PEEPIMZY.js +46 -0
  519. package/dist/unlink-PACTZ674.js +70 -0
  520. package/dist/unstage-GUPBLCPZ.js +96 -0
  521. package/dist/unstage-NAJI4DDV.js +88 -0
  522. package/dist/update-5EXPDJ2T.js +66 -0
  523. package/dist/update-GK3QSHWA.js +101 -0
  524. package/dist/update-KPWP4DPC.js +192 -0
  525. package/dist/update-TNOOVX3P.js +81 -0
  526. package/dist/update-XZGK5UFK.js +155 -0
  527. package/dist/upload-JYZFK5ZO.js +137 -0
  528. package/dist/upload-W2UTHRP2.js +155 -0
  529. package/dist/upscale-MTWSJ3EJ.js +109 -0
  530. package/dist/url-options-RTTLWCU5.js +131 -0
  531. package/dist/url-options-RTTLWCU5.js.map +1 -0
  532. package/dist/url-params-OHLTOL33.js +101 -0
  533. package/dist/use-K5EP7JJM.js +111 -0
  534. package/dist/validate-H6J4M43Q.js +135 -0
  535. package/dist/variant-BZCX46QL.js +338 -0
  536. package/dist/videos-5N3JQIAY.js +41 -0
  537. package/dist/videos-QIDOIJ24.js +146 -0
  538. package/dist/view-CD5UWMR4.js +133 -0
  539. package/dist/viewer-check-H4OGC5FF.js +83 -0
  540. package/dist/viewer-check-H4OGC5FF.js.map +1 -0
  541. package/dist/web-CV3VMSDO.js +173 -0
  542. package/dist/winners-CSNTBOVM.js +113 -0
  543. package/dist/winning-ads-FVTCV3GX.js +86 -0
  544. package/dist/write-commands-AASXCKRN.js +721 -0
  545. package/dist/write-commands-OV7RE6O2.js +206 -0
  546. package/dist/write-commands-W4Z6MANM.js +1524 -0
  547. package/dist/write-commands-XFYXMTXO.js +1169 -0
  548. package/dist/x-WFYI4F6X.js +47 -0
  549. package/package.json +1 -1
  550. package/dist/account-52WDLW4Z.js +0 -82
  551. package/dist/account-NSBALYYS.js +0 -139
  552. package/dist/account-SGHH4SIM.js +0 -82
  553. package/dist/account-assets-EPEYTJFD.js +0 -290
  554. package/dist/account-level-VD4NLB2D.js +0 -611
  555. package/dist/account-reads-CQIJCPCH.js +0 -219
  556. package/dist/account-reads-CQIJCPCH.js.map +0 -1
  557. package/dist/account-users-KP6A43DU.js +0 -64
  558. package/dist/account-writes-3BJSUM2V.js +0 -68
  559. package/dist/accounts-A47QUTTB.js +0 -76
  560. package/dist/accounts-E5TF2AFI.js +0 -115
  561. package/dist/accounts-FV5FPX3X.js +0 -80
  562. package/dist/accounts-LQFSNBIC.js +0 -713
  563. package/dist/accounts-LQFSNBIC.js.map +0 -1
  564. package/dist/accounts-ZV4IXOF5.js +0 -119
  565. package/dist/actions-RZ62K3WT.js +0 -55
  566. package/dist/active-entities-XRSJNBOV.js +0 -103
  567. package/dist/activecampaign-E6PM6YNO.js +0 -938
  568. package/dist/activities-ZDWREYR7.js +0 -75
  569. package/dist/ad-group-writes-KU4QMQZP.js +0 -172
  570. package/dist/ad-groups-NMW2G32A.js +0 -70
  571. package/dist/ad-writes-7NOFTOM4.js +0 -176
  572. package/dist/add-25YZMFSH.js +0 -85
  573. package/dist/add-7MAL7JRX.js +0 -81
  574. package/dist/add-D44VCDRU.js +0 -148
  575. package/dist/add-HMAQJG4J.js +0 -305
  576. package/dist/add-JO4ZPS23.js +0 -97
  577. package/dist/add-MLTE6PPC.js +0 -107
  578. package/dist/add-accounts-EKMSHAA4.js +0 -91
  579. package/dist/ads-4YZYNU66.js +0 -128
  580. package/dist/ads-DGL5SGP3.js +0 -120
  581. package/dist/ads-P4Z3MLKS.js +0 -79
  582. package/dist/ads-T6J6QQKX.js +0 -48
  583. package/dist/adsets-PSVCPCE3.js +0 -182
  584. package/dist/advertisers-7NAPI5ZU.js +0 -125
  585. package/dist/advertisers-FP7MTMUI.js +0 -123
  586. package/dist/analytics-AYYFKMF6.js +0 -2437
  587. package/dist/analytics-AYYFKMF6.js.map +0 -1
  588. package/dist/analytics-D2IA2P5E.js +0 -447
  589. package/dist/animate-VX7E7KJE.js +0 -480
  590. package/dist/approved-E4EZA5RT.js +0 -73
  591. package/dist/asset-writes-NDSHY5OT.js +0 -50
  592. package/dist/assign-EE4EDOPX.js +0 -80
  593. package/dist/audience-size-SRNH57FA.js +0 -76
  594. package/dist/audience-writes-4KQXVGHO.js +0 -327
  595. package/dist/audiences-P3SPTAJT.js +0 -280
  596. package/dist/audiences-T5LMTT3B.js +0 -85
  597. package/dist/audiences-UHLVATR6.js +0 -106
  598. package/dist/audit-46DO2HV3.js +0 -88
  599. package/dist/audit-R5JG3ABY.js +0 -154
  600. package/dist/autocomplete-AIKXLHME.js +0 -114
  601. package/dist/avatars-3CAQ5OBN.js +0 -38
  602. package/dist/bid-pricing-PDZIJGOX.js +0 -103
  603. package/dist/brand-2SN7MM72.js +0 -22
  604. package/dist/brief-FPEBHIE3.js +0 -543
  605. package/dist/businesses-TRFYMZ4I.js +0 -54
  606. package/dist/campaign-groups-OHL6POG2.js +0 -99
  607. package/dist/campaign-writes-P5XPFTRK.js +0 -176
  608. package/dist/campaign-writes-RKCE4MSZ.js +0 -168
  609. package/dist/campaigns-2MTON2IE.js +0 -130
  610. package/dist/campaigns-HGMQSYUM.js +0 -113
  611. package/dist/campaigns-SWZJVE2T.js +0 -78
  612. package/dist/campaigns-UWUEENB6.js +0 -111
  613. package/dist/canvas-II524GS7.js +0 -46
  614. package/dist/capabilities-FF6NNJ5L.js +0 -147
  615. package/dist/cards-CXKIVM4D.js +0 -85
  616. package/dist/catalog-TOHUVBEU.js +0 -66
  617. package/dist/catalogs-4DNLG4AM.js +0 -782
  618. package/dist/catalogs-V7PTEJBO.js +0 -130
  619. package/dist/changes-5OW3UYMF.js +0 -167
  620. package/dist/changes-5OW3UYMF.js.map +0 -1
  621. package/dist/chatgpt-JBMYNVJB.js +0 -47
  622. package/dist/chats-XVAFLM47.js +0 -589
  623. package/dist/check-FFRPBGUH.js +0 -107
  624. package/dist/chunk-22RM3UOO.js +0 -63
  625. package/dist/chunk-22RM3UOO.js.map +0 -1
  626. package/dist/chunk-2CC4CPDT.js +0 -225
  627. package/dist/chunk-2EEDKWYY.js +0 -479
  628. package/dist/chunk-2KQQHBBQ.js +0 -547
  629. package/dist/chunk-2N7TB346.js +0 -5368
  630. package/dist/chunk-33ZP44QR.js +0 -103
  631. package/dist/chunk-34RDCDCF.js +0 -207
  632. package/dist/chunk-34RDCDCF.js.map +0 -1
  633. package/dist/chunk-3GXHML4V.js +0 -106
  634. package/dist/chunk-3QPG2D27.js +0 -125
  635. package/dist/chunk-3WN5GWX4.js +0 -94
  636. package/dist/chunk-47VWQ7FQ.js +0 -843
  637. package/dist/chunk-4AO3LSYM.js +0 -73
  638. package/dist/chunk-4HFM5RCP.js +0 -217
  639. package/dist/chunk-4HFM5RCP.js.map +0 -1
  640. package/dist/chunk-4SAO6RT2.js +0 -962
  641. package/dist/chunk-4W4MLIRR.js +0 -19
  642. package/dist/chunk-5QNW5PCM.js +0 -106
  643. package/dist/chunk-5XB352F5.js +0 -197
  644. package/dist/chunk-643AA3RB.js +0 -220
  645. package/dist/chunk-6EOWBGGW.js +0 -191
  646. package/dist/chunk-6MJKVNLL.js +0 -25
  647. package/dist/chunk-7GFGFBWZ.js +0 -344
  648. package/dist/chunk-7MIOMG22.js +0 -685
  649. package/dist/chunk-7NBQQOCU.js +0 -97
  650. package/dist/chunk-7YEP3NFN.js +0 -163
  651. package/dist/chunk-AP7X3ONA.js +0 -297
  652. package/dist/chunk-AQRBEPZL.js +0 -138
  653. package/dist/chunk-AZIXX73C.js +0 -64
  654. package/dist/chunk-B64KJW5C.js +0 -476
  655. package/dist/chunk-B64KJW5C.js.map +0 -1
  656. package/dist/chunk-BFAPSFS7.js +0 -1518
  657. package/dist/chunk-BIBXZJZI.js +0 -97
  658. package/dist/chunk-C3G56TJV.js +0 -66
  659. package/dist/chunk-C4BPAMAJ.js +0 -8954
  660. package/dist/chunk-C57CXCTI.js +0 -455
  661. package/dist/chunk-C7KV5O5J.js +0 -274
  662. package/dist/chunk-C7LLNXRJ.js +0 -91
  663. package/dist/chunk-CBVUO7SK.js +0 -1744
  664. package/dist/chunk-CF5I4Q5M.js +0 -69
  665. package/dist/chunk-CKN4HQZM.js +0 -89
  666. package/dist/chunk-DGHSXHZR.js +0 -136
  667. package/dist/chunk-DHF4FXWS.js +0 -58
  668. package/dist/chunk-DPOUS5DN.js +0 -287
  669. package/dist/chunk-DXQ5DUFU.js +0 -392
  670. package/dist/chunk-EJ6EED6I.js +0 -69
  671. package/dist/chunk-EV2HVFTJ.js +0 -224
  672. package/dist/chunk-FLTAPEVY.js +0 -288
  673. package/dist/chunk-GQUBM3Z6.js +0 -249
  674. package/dist/chunk-H25GY4U4.js +0 -139
  675. package/dist/chunk-H6ASYVQX.js +0 -544
  676. package/dist/chunk-H7LKYGLJ.js +0 -24026
  677. package/dist/chunk-HM4NWA72.js +0 -5471
  678. package/dist/chunk-IB6VWG32.js +0 -755
  679. package/dist/chunk-IB6VWG32.js.map +0 -1
  680. package/dist/chunk-ICASR3ES.js +0 -7901
  681. package/dist/chunk-ICASR3ES.js.map +0 -1
  682. package/dist/chunk-IJ6WA2JW.js +0 -148
  683. package/dist/chunk-ITIUWJGQ.js +0 -131
  684. package/dist/chunk-IYDESWW4.js +0 -74
  685. package/dist/chunk-IZXYI5NB.js +0 -2234
  686. package/dist/chunk-J4BJLHLQ.js +0 -3510
  687. package/dist/chunk-JAME5NBT.js +0 -42
  688. package/dist/chunk-JGK2FDZW.js +0 -1919
  689. package/dist/chunk-JJBO7QIR.js +0 -604
  690. package/dist/chunk-K7APGDEO.js +0 -430
  691. package/dist/chunk-K7APGDEO.js.map +0 -1
  692. package/dist/chunk-KGJ6EIX3.js +0 -76
  693. package/dist/chunk-L2LGHWJN.js +0 -156
  694. package/dist/chunk-L4QEMWNJ.js +0 -111
  695. package/dist/chunk-L7I47VGM.js +0 -46
  696. package/dist/chunk-LAOCXV6Z.js +0 -98
  697. package/dist/chunk-LJEJCIHR.js +0 -246
  698. package/dist/chunk-M2RXXLK3.js +0 -51
  699. package/dist/chunk-M4KFO256.js +0 -188
  700. package/dist/chunk-MIHY534L.js +0 -39
  701. package/dist/chunk-MKG57P2E.js +0 -783
  702. package/dist/chunk-MKG57P2E.js.map +0 -1
  703. package/dist/chunk-MKOI6QYM.js +0 -225
  704. package/dist/chunk-MPTNN35I.js +0 -325
  705. package/dist/chunk-MPTNN35I.js.map +0 -1
  706. package/dist/chunk-MTW2NDDD.js +0 -98
  707. package/dist/chunk-MTW2NDDD.js.map +0 -1
  708. package/dist/chunk-MYGPWKEI.js +0 -170
  709. package/dist/chunk-N7EHQNNG.js +0 -312
  710. package/dist/chunk-O5VSYBUA.js +0 -343
  711. package/dist/chunk-OHVXHNUR.js +0 -57
  712. package/dist/chunk-OJRS3TGS.js +0 -399
  713. package/dist/chunk-OJZKY5UM.js +0 -46
  714. package/dist/chunk-OX5DS7UE.js +0 -1920
  715. package/dist/chunk-PRHDGULQ.js +0 -819
  716. package/dist/chunk-PRZBEZBA.js +0 -203
  717. package/dist/chunk-PTE6BNCH.js +0 -334
  718. package/dist/chunk-PTE6BNCH.js.map +0 -1
  719. package/dist/chunk-Q3G4ZI2U.js +0 -84
  720. package/dist/chunk-Q5DLTIYL.js +0 -142
  721. package/dist/chunk-Q5XUFN2W.js +0 -35
  722. package/dist/chunk-Q736UFSD.js +0 -75
  723. package/dist/chunk-QVHZTCB5.js +0 -1254
  724. package/dist/chunk-QVHZTCB5.js.map +0 -1
  725. package/dist/chunk-QVO5VPNA.js +0 -169
  726. package/dist/chunk-R7XDGNZD.js +0 -297
  727. package/dist/chunk-R7XDGNZD.js.map +0 -1
  728. package/dist/chunk-RBR5PHYJ.js +0 -91
  729. package/dist/chunk-RHBCKOF2.js +0 -61
  730. package/dist/chunk-RRKUXGAU.js +0 -26
  731. package/dist/chunk-S3XCG55E.js +0 -454
  732. package/dist/chunk-S5S54J2K.js +0 -56
  733. package/dist/chunk-SIRRBWQ2.js +0 -215
  734. package/dist/chunk-SPNF2V46.js +0 -468
  735. package/dist/chunk-SPNF2V46.js.map +0 -1
  736. package/dist/chunk-SPNY52S5.js +0 -494
  737. package/dist/chunk-TEQEZAJI.js +0 -1320
  738. package/dist/chunk-TLQY4QBW.js +0 -84
  739. package/dist/chunk-U6AWJIFP.js +0 -225
  740. package/dist/chunk-UK4XSLV2.js +0 -296
  741. package/dist/chunk-URGXEDFV.js +0 -76
  742. package/dist/chunk-V7EN5LFS.js +0 -115
  743. package/dist/chunk-VAV5CCDD.js +0 -167
  744. package/dist/chunk-VSALEVXN.js +0 -23
  745. package/dist/chunk-W3TZPHZO.js +0 -285
  746. package/dist/chunk-WTPID22G.js +0 -152
  747. package/dist/chunk-XA76OGSL.js +0 -718
  748. package/dist/chunk-XA76OGSL.js.map +0 -1
  749. package/dist/chunk-XPV3KK6B.js +0 -930
  750. package/dist/chunk-YAMKCMAS.js +0 -219
  751. package/dist/chunk-YRWCXYWW.js +0 -178
  752. package/dist/chunk-Z3RGBLVJ.js +0 -64
  753. package/dist/chunk-ZCGM7ZWM.js +0 -45
  754. package/dist/cite-WCAOCOO5.js +0 -191
  755. package/dist/claim-YABJMHON.js +0 -200
  756. package/dist/client-VCKP6WBR.js +0 -19
  757. package/dist/code-VXOTFGD2.js +0 -76
  758. package/dist/companies-K2IVXNC5.js +0 -198
  759. package/dist/companies-K2IVXNC5.js.map +0 -1
  760. package/dist/company-6JAVJPSU.js +0 -308
  761. package/dist/complete-4R6O7TAF.js +0 -84
  762. package/dist/config-UR45YCIN.js +0 -88
  763. package/dist/connect-FWT2IC5N.js +0 -45
  764. package/dist/content-EQQIKG5H.js +0 -85
  765. package/dist/conversation-DSRM4JIU.js +0 -96
  766. package/dist/conversion-report-2FREFML5.js +0 -127
  767. package/dist/conversion-upload-command-JAGV6GMG.js +0 -439
  768. package/dist/conversion-writes-JZIJSQ7T.js +0 -122
  769. package/dist/conversions-4D5TEPO4.js +0 -140
  770. package/dist/conversions-Q5EBTEXA.js +0 -78
  771. package/dist/copy-writes-JVUX3YDL.js +0 -170
  772. package/dist/countries-GRCU4IGM.js +0 -82
  773. package/dist/create-3OYFSUR5.js +0 -62
  774. package/dist/create-FMGLMQZC.js +0 -218
  775. package/dist/create-SDFDKJGJ.js +0 -239
  776. package/dist/create-VW23RNWT.js +0 -135
  777. package/dist/creatives-4EPM3RHG.js +0 -118
  778. package/dist/creatives-B7GJ2IC5.js +0 -58
  779. package/dist/creatives-E33LXJG7.js +0 -229
  780. package/dist/credentials-WGGZFBDJ.js +0 -290
  781. package/dist/critique-EOYMGUIK.js +0 -232
  782. package/dist/critique-US4B3ZY5.js +0 -1451
  783. package/dist/crm-T4XPJZTR.js +0 -229
  784. package/dist/crm-T4XPJZTR.js.map +0 -1
  785. package/dist/crm-UBQ735O6.js +0 -323
  786. package/dist/crop-NE7YX4SS.js +0 -113
  787. package/dist/currency-EFDQYW5B.js +0 -88
  788. package/dist/currency-EFDQYW5B.js.map +0 -1
  789. package/dist/custom-conversions-GQTU5E6X.js +0 -128
  790. package/dist/customers-HHQUU3MA.js +0 -65
  791. package/dist/decide-6Q5X3V3F.js +0 -199
  792. package/dist/delete-EKKOEB3N.js +0 -69
  793. package/dist/delete-JPIV5E2Y.js +0 -67
  794. package/dist/delete-QHDDR66K.js +0 -85
  795. package/dist/delete-SP66F7ZV.js +0 -71
  796. package/dist/delete-UC5XQZWC.js +0 -69
  797. package/dist/delete-X5TD7P3U.js +0 -57
  798. package/dist/demographics-6GQYZIVR.js +0 -141
  799. package/dist/describe-DJPIUEFE.js +0 -97
  800. package/dist/describe-MAGTSOW4.js +0 -97
  801. package/dist/dimensions-IC2H7V3H.js +0 -101
  802. package/dist/discard-5UNX5TEZ.js +0 -69
  803. package/dist/discover-BPUUWRBP.js +0 -172
  804. package/dist/discover-BPUUWRBP.js.map +0 -1
  805. package/dist/discover-PSL2NBJL.js +0 -93
  806. package/dist/domain-7BOPJLTP.js +0 -101
  807. package/dist/download-B4IV43AJ.js +0 -172
  808. package/dist/download-EHDJXBAC.js +0 -337
  809. package/dist/draft-27NMTARB.js +0 -134
  810. package/dist/draft-FVB6SEP3.js +0 -332
  811. package/dist/draft-GCOCG4PO.js +0 -315
  812. package/dist/draft-GSDDK6FO.js +0 -614
  813. package/dist/draft-GSDDK6FO.js.map +0 -1
  814. package/dist/draft-JESKGZ6O.js +0 -138
  815. package/dist/draft-MWYKIZC4.js +0 -260
  816. package/dist/draft-QT6MVG47.js +0 -220
  817. package/dist/draft-VRE52N6B.js +0 -374
  818. package/dist/env-NZXNMWSD.js +0 -53
  819. package/dist/experiment-XAYSEYTU.js +0 -1397
  820. package/dist/experiments-3JSDRY5W.js +0 -236
  821. package/dist/export-W54UZ62P.js +0 -168
  822. package/dist/extract-BVSL6H3S.js +0 -143
  823. package/dist/facets-NN33WFSR.js +0 -117
  824. package/dist/favorites-Y6CT6NSQ.js +0 -178
  825. package/dist/feed-35BRQPTH.js +0 -177
  826. package/dist/feedback-BYXZEEW3.js +0 -114
  827. package/dist/feedback-HN32HLFT.js +0 -115
  828. package/dist/feedback-record-GZNCHZFT.js +0 -269
  829. package/dist/fetch-3JPN4QAJ.js +0 -204
  830. package/dist/fetch-I6P72CDL.js +0 -139
  831. package/dist/find-SVGRA7IA.js +0 -144
  832. package/dist/fit-2R5NGB7E.js +0 -65
  833. package/dist/flows-XM7GBTIU.js +0 -340
  834. package/dist/follow-24QSDNAG.js +0 -94
  835. package/dist/follow-competitors-AG4E4XFA.js +0 -112
  836. package/dist/following-YGM6TBK3.js +0 -113
  837. package/dist/fonts-IO4X2AKN.js +0 -39
  838. package/dist/forecast-HMNQZFVL.js +0 -169
  839. package/dist/forecast-HMNQZFVL.js.map +0 -1
  840. package/dist/forecast-MOFJ3BKH.js +0 -121
  841. package/dist/funding-WZNGXRLJ.js +0 -85
  842. package/dist/funnel-FR7JQUZW.js +0 -397
  843. package/dist/ga4-W3U5YTRT.js +0 -55
  844. package/dist/generate-KAWRRYTT.js +0 -263
  845. package/dist/get-3MTAVNTP.js +0 -56
  846. package/dist/get-5SPNAIUQ.js +0 -62
  847. package/dist/get-BMJIYS25.js +0 -62
  848. package/dist/get-GEUSRD5Y.js +0 -59
  849. package/dist/get-JIZPYK3Z.js +0 -74
  850. package/dist/get-MXXANBI3.js +0 -82
  851. package/dist/get-TS2ZJDCQ.js +0 -38
  852. package/dist/get-YWDZYEAC.js +0 -92
  853. package/dist/gif-NP6EDGEE.js +0 -111
  854. package/dist/google-3CAUWNWE.js +0 -3300
  855. package/dist/google-3CAUWNWE.js.map +0 -1
  856. package/dist/google-MHFI5OGW.js +0 -163
  857. package/dist/google-ads-ULZRFDZU.js +0 -198
  858. package/dist/group-3DT4UYSR.js +0 -43
  859. package/dist/group-OEKKCFXT.js +0 -43
  860. package/dist/gsc-4FEFPFPB.js +0 -30
  861. package/dist/history-F3U3WNEJ.js +0 -102
  862. package/dist/history-SGFTHPT2.js +0 -153
  863. package/dist/history-YQSYXBJH.js +0 -69
  864. package/dist/hubspot-FASIF5U5.js +0 -814
  865. package/dist/hubspot-FASIF5U5.js.map +0 -1
  866. package/dist/icon-43UJTGGE.js +0 -138
  867. package/dist/ideas-TKCOPOMS.js +0 -45
  868. package/dist/images-K4EPTLTF.js +0 -92
  869. package/dist/improve-IMXQN6OD.js +0 -86
  870. package/dist/ingest-MCCJBWYC.js +0 -131
  871. package/dist/ingest-T3AV5OR4.js +0 -28
  872. package/dist/insights-BR3456EI.js +0 -658
  873. package/dist/insights-UVCFOB3N.js +0 -132
  874. package/dist/inspect-3OHTBHNO.js +0 -192
  875. package/dist/inspiration-XZI5KCQW.js +0 -53
  876. package/dist/instant-experiences-2LKF7XVK.js +0 -264
  877. package/dist/intent-F5NTOSQC.js +0 -95
  878. package/dist/job-GOX3KIKG.js +0 -202
  879. package/dist/job-create-F2PQSN3C.js +0 -109
  880. package/dist/job-status-3FMA5D7T.js +0 -74
  881. package/dist/keep-23ZYMWPG.js +0 -78
  882. package/dist/keyword-gap-EB5QATYN.js +0 -130
  883. package/dist/keyword-metrics-E4PPLUYX.js +0 -200
  884. package/dist/keywords-for-site-HD2FOBMH.js +0 -131
  885. package/dist/knowledge-7M7DSRF3.js +0 -195
  886. package/dist/landing-NC2A277E.js +0 -28
  887. package/dist/landings-VNQ4VA2U.js +0 -151
  888. package/dist/languages-2X22HXM3.js +0 -55
  889. package/dist/languages-4S26FJDP.js +0 -40
  890. package/dist/launches-L4EUROCJ.js +0 -19
  891. package/dist/layerize-6QHQMA7Q.js +0 -190
  892. package/dist/lead-routes-5TPFJEVH.js +0 -733
  893. package/dist/leads-4TLOH47R.js +0 -541
  894. package/dist/leads-LL2S6ENL.js +0 -115
  895. package/dist/learn-2CP2SROJ.js +0 -207
  896. package/dist/library-MNJC24E4.js +0 -212
  897. package/dist/lighthouse-DJMAXFTD.js +0 -75
  898. package/dist/line-item-writes-56A4ITU6.js +0 -211
  899. package/dist/line-items-AIIDDTTH.js +0 -107
  900. package/dist/link-BIXBY5KG.js +0 -67
  901. package/dist/linkedin-TXX22PPH.js +0 -1344
  902. package/dist/linkedin-TXX22PPH.js.map +0 -1
  903. package/dist/linkedin-person-5KEGEX6G.js +0 -139
  904. package/dist/list-2277GCPH.js +0 -51
  905. package/dist/list-537S75BZ.js +0 -76
  906. package/dist/list-C5AT3LF4.js +0 -306
  907. package/dist/list-Q52FPW3H.js +0 -50
  908. package/dist/list-UQNU4QUE.js +0 -154
  909. package/dist/list-V4PSDBLX.js +0 -93
  910. package/dist/list-WIXQXNKB.js +0 -65
  911. package/dist/list-XK33NCSC.js +0 -57
  912. package/dist/list-YBHQ3HIB.js +0 -67
  913. package/dist/locations-UWBQLHXW.js +0 -40
  914. package/dist/locations-WXGOI3VV.js +0 -69
  915. package/dist/log-FZJTWN3S.js +0 -95
  916. package/dist/logo-4LSFZ3ZO.js +0 -19
  917. package/dist/lookup-WIM5WR25.js +0 -23
  918. package/dist/make-ESUFN3T4.js +0 -1367
  919. package/dist/map-WDOBMEAW.js +0 -445
  920. package/dist/mcp-JJZ5YGSS.js +0 -729
  921. package/dist/media-34I7UB7Z.js +0 -89
  922. package/dist/media-KKI3KWLR.js +0 -18
  923. package/dist/media-sources-AJ5USQXV.js +0 -35
  924. package/dist/members-NSR7S62Y.js +0 -47
  925. package/dist/meme-6NFYFQ7T.js +0 -108
  926. package/dist/meta-2UK7KIE4.js +0 -124
  927. package/dist/meta-2UK7KIE4.js.map +0 -1
  928. package/dist/metrics-4AFEEDVP.js +0 -152
  929. package/dist/metrics-4AFEEDVP.js.map +0 -1
  930. package/dist/normalize-G75RDSE4.js +0 -806
  931. package/dist/normalize-RQEHHRES.js +0 -144
  932. package/dist/options-4BW4P6JD.js +0 -125
  933. package/dist/organization-TKGXZYH6.js +0 -949
  934. package/dist/output-ELEO2Z6R.js +0 -24
  935. package/dist/page-4X6IBUWG.js +0 -105
  936. package/dist/page-photos-KNBLMFLN.js +0 -118
  937. package/dist/pages-7HW5YOZV.js +0 -67
  938. package/dist/performance-27VHB3UA.js +0 -27
  939. package/dist/performance-XGHZDQGU.js +0 -5565
  940. package/dist/pinterest-KA6VFDM4.js +0 -105
  941. package/dist/pixels-D5HF24FI.js +0 -109
  942. package/dist/pixels-HEI5WVAO.js +0 -62
  943. package/dist/plan-XCA6R3HZ.js +0 -208
  944. package/dist/posts-ALGM6ONV.js +0 -36
  945. package/dist/preview-2YRMPWI2.js +0 -101
  946. package/dist/preview-55TRUF4Q.js +0 -245
  947. package/dist/profile-NHUPUCBR.js +0 -159
  948. package/dist/promoted-tweet-writes-PT6BW64X.js +0 -183
  949. package/dist/promoted-tweets-SBZXEU7S.js +0 -119
  950. package/dist/properties-2ZXA5BPJ.js +0 -101
  951. package/dist/publish-Z7ZK3XB7.js +0 -350
  952. package/dist/query-63CTX2PH.js +0 -231
  953. package/dist/query-DMWY3TDD.js +0 -236
  954. package/dist/query-K7MYBRTS.js +0 -62
  955. package/dist/questionnaire-WHE42RD4.js +0 -94
  956. package/dist/read-NESEKULG.js +0 -141
  957. package/dist/reddit-L4RQNJBL.js +0 -29
  958. package/dist/refresh-EWALAFUQ.js +0 -97
  959. package/dist/refresh-ILDEPU5A.js +0 -42
  960. package/dist/release-C2H2KBNY.js +0 -63
  961. package/dist/relevant-pages-XYQKVX3U.js +0 -99
  962. package/dist/remove-JOXARFD3.js +0 -53
  963. package/dist/remove-NHE4UT7G.js +0 -49
  964. package/dist/reopen-WRW4JVO2.js +0 -66
  965. package/dist/rerun-GYWQOZOF.js +0 -97
  966. package/dist/research-422BF4O4.js +0 -265
  967. package/dist/research-MCTV6ZJZ.js +0 -75
  968. package/dist/research-MCTV6ZJZ.js.map +0 -1
  969. package/dist/reset-7ANRT4I3.js +0 -57
  970. package/dist/reset-MZDRR5VP.js +0 -57
  971. package/dist/resolve-KKRG65WF.js +0 -124
  972. package/dist/retry-PDKRPWIZ.js +0 -63
  973. package/dist/retry-YZCBWAHT.js +0 -65
  974. package/dist/retry-failed-R5HPQ3KQ.js +0 -45
  975. package/dist/revenue-F7E5ZRLB.js +0 -91
  976. package/dist/rule-writes-QB4IWFCJ.js +0 -530
  977. package/dist/rules-FYVD2QBB.js +0 -217
  978. package/dist/rules-GRLAFAZU.js +0 -99
  979. package/dist/rules-add-3C7LW4HD.js +0 -465
  980. package/dist/run-QDPXTMW6.js +0 -72
  981. package/dist/run-ZV73UQ3E.js +0 -69
  982. package/dist/scaffold-ad-LBLEARDJ.js +0 -1513
  983. package/dist/scaffold-static-ad-TM3JX4HS.js +0 -1012
  984. package/dist/scaffold-video-EINW32ZH.js +0 -885
  985. package/dist/schedule-D7EDEM45.js +0 -67
  986. package/dist/schedule-X5ZKZXPC.js +0 -64
  987. package/dist/scheduled-agents-APZA42K2.js +0 -55
  988. package/dist/scheduled-agents-APZA42K2.js.map +0 -1
  989. package/dist/schema-6JF4ZNGY.js +0 -135
  990. package/dist/schema-Z43AJOJ4.js +0 -152
  991. package/dist/scrape-VL2RWSTW.js +0 -2209
  992. package/dist/screenshot-Y6EEXS3Q.js +0 -103
  993. package/dist/search-4VAIJA2O.js +0 -177
  994. package/dist/search-CXC7N5XJ.js +0 -51
  995. package/dist/search-JEXYEAPQ.js +0 -228
  996. package/dist/search-L3GTZYRW.js +0 -92
  997. package/dist/search-TXBYKNQC.js +0 -91
  998. package/dist/search-XHSTUBDY.js +0 -26
  999. package/dist/search-copy-FIPG7OCC.js +0 -168
  1000. package/dist/seeds-ADJKURNG.js +0 -101
  1001. package/dist/select-TNLQGGNE.js +0 -110
  1002. package/dist/sends-RS4LWRAC.js +0 -349
  1003. package/dist/sequences-2RPKDKGQ.js +0 -146
  1004. package/dist/set-prompt-GU3HPWWZ.js +0 -199
  1005. package/dist/setup-links-ORBZ5T4H.js +0 -144
  1006. package/dist/shared-4GGUIOF2.js +0 -32
  1007. package/dist/shopify-SN3TBTL5.js +0 -4009
  1008. package/dist/site-3ZORNMAE.js +0 -180
  1009. package/dist/sitemaps-Z6IELTQV.js +0 -77
  1010. package/dist/sites-KLAKI2EY.js +0 -97
  1011. package/dist/skills-OJP36EVR.js +0 -47
  1012. package/dist/sources-WGEC6FGZ.js +0 -457
  1013. package/dist/sources-WT6M3QIX.js +0 -30
  1014. package/dist/stale-5YYPMXWX.js +0 -90
  1015. package/dist/stats-MIMFX4R7.js +0 -34
  1016. package/dist/status-WED3AXTZ.js +0 -65
  1017. package/dist/sticker-IREEEN7I.js +0 -103
  1018. package/dist/stock-33GHQWNQ.js +0 -212
  1019. package/dist/studies-YGYAH3JI.js +0 -250
  1020. package/dist/studio-4EV5S7PR.js +0 -49
  1021. package/dist/study-writes-UPGJB36A.js +0 -471
  1022. package/dist/suggest-5RTISDLI.js +0 -66
  1023. package/dist/sync-2GLGCSRQ.js +0 -57
  1024. package/dist/sync-OHIXI4I6.js +0 -55
  1025. package/dist/sync-VCAFAYW4.js +0 -279
  1026. package/dist/sync-definition-SNUWHPGO.js +0 -70
  1027. package/dist/tag-DSCUKNC3.js +0 -57
  1028. package/dist/tag-manager-IINALUEJ.js +0 -43
  1029. package/dist/tags-AQNOA7X5.js +0 -23
  1030. package/dist/tags-CVPMOYKI.js +0 -23
  1031. package/dist/tags-IQY7GYMU.js +0 -227
  1032. package/dist/tags-MYUCES3W.js +0 -26
  1033. package/dist/tags-SCMHCPF4.js +0 -23
  1034. package/dist/targeting-BM72UTI6.js +0 -762
  1035. package/dist/targeting-constants-54S3FXIF.js +0 -118
  1036. package/dist/targeting-criteria-RVJHW22S.js +0 -113
  1037. package/dist/targets-G6SN6VTL.js +0 -106
  1038. package/dist/terms-OFHNLW6U.js +0 -102
  1039. package/dist/testimonials-JALUWWLB.js +0 -32
  1040. package/dist/themes-FW3VWZJE.js +0 -95
  1041. package/dist/themes-FW3VWZJE.js.map +0 -1
  1042. package/dist/top-companies-WR6TXTNM.js +0 -111
  1043. package/dist/top-companies-WR6TXTNM.js.map +0 -1
  1044. package/dist/transcript-JMRRJEET.js +0 -165
  1045. package/dist/translate-IGCEMHXS.js +0 -603
  1046. package/dist/triggers-UUSPHGXX.js +0 -144
  1047. package/dist/tweets-TRTXC6O4.js +0 -123
  1048. package/dist/unfollow-DATOGPLZ.js +0 -46
  1049. package/dist/unlink-U5VBTO7P.js +0 -70
  1050. package/dist/unstage-KSYT7FOP.js +0 -88
  1051. package/dist/unstage-LLQCMZ5H.js +0 -96
  1052. package/dist/update-GFKDIJRE.js +0 -66
  1053. package/dist/update-QF6BLM5F.js +0 -101
  1054. package/dist/update-SD5YQIJC.js +0 -81
  1055. package/dist/update-VBQKI72I.js +0 -192
  1056. package/dist/update-ZIKHDZRT.js +0 -155
  1057. package/dist/upload-7PPMVWVA.js +0 -155
  1058. package/dist/upload-UYE73VLK.js +0 -137
  1059. package/dist/upscale-WVJZG76V.js +0 -109
  1060. package/dist/url-options-AHJPR5VY.js +0 -131
  1061. package/dist/url-options-AHJPR5VY.js.map +0 -1
  1062. package/dist/url-params-P6MV2HKB.js +0 -101
  1063. package/dist/use-6FADOAFZ.js +0 -111
  1064. package/dist/validate-HIYNINCN.js +0 -135
  1065. package/dist/variant-RNM36P4J.js +0 -338
  1066. package/dist/videos-GHFCOTT7.js +0 -146
  1067. package/dist/videos-XGQL37V4.js +0 -41
  1068. package/dist/view-YR6MDLWL.js +0 -133
  1069. package/dist/viewer-check-TYTVCSQW.js +0 -83
  1070. package/dist/web-PIMTCU4V.js +0 -173
  1071. package/dist/winners-4T5RFQXU.js +0 -113
  1072. package/dist/winning-ads-P4MXWYK6.js +0 -86
  1073. package/dist/write-commands-24EOSYWL.js +0 -1524
  1074. package/dist/write-commands-6D55SB56.js +0 -206
  1075. package/dist/write-commands-AIWLEGO2.js +0 -1169
  1076. package/dist/write-commands-UO3OQIHH.js +0 -721
  1077. package/dist/x-HBA6AJJA.js +0 -47
  1078. /package/dist/{account-52WDLW4Z.js.map → account-WFAMHUCQ.js.map} +0 -0
  1079. /package/dist/{account-SGHH4SIM.js.map → account-Y7ZFEM7U.js.map} +0 -0
  1080. /package/dist/{account-NSBALYYS.js.map → account-YYB2KWLU.js.map} +0 -0
  1081. /package/dist/{account-assets-EPEYTJFD.js.map → account-assets-BFMQWV33.js.map} +0 -0
  1082. /package/dist/{account-level-VD4NLB2D.js.map → account-level-47IS2CZB.js.map} +0 -0
  1083. /package/dist/{account-users-KP6A43DU.js.map → account-users-QAFQDSZQ.js.map} +0 -0
  1084. /package/dist/{account-writes-3BJSUM2V.js.map → account-writes-EEKHPF5I.js.map} +0 -0
  1085. /package/dist/{accounts-ZV4IXOF5.js.map → accounts-H3KO5AEN.js.map} +0 -0
  1086. /package/dist/{accounts-A47QUTTB.js.map → accounts-LTGUK6OV.js.map} +0 -0
  1087. /package/dist/{accounts-E5TF2AFI.js.map → accounts-LTUEBWJL.js.map} +0 -0
  1088. /package/dist/{accounts-FV5FPX3X.js.map → accounts-TFUGF7UK.js.map} +0 -0
  1089. /package/dist/{actions-RZ62K3WT.js.map → actions-FTIRKAAN.js.map} +0 -0
  1090. /package/dist/{active-entities-XRSJNBOV.js.map → active-entities-QWJXR4W6.js.map} +0 -0
  1091. /package/dist/{activecampaign-E6PM6YNO.js.map → activecampaign-BCOEXYZ7.js.map} +0 -0
  1092. /package/dist/{activities-ZDWREYR7.js.map → activities-ZRP22SC2.js.map} +0 -0
  1093. /package/dist/{ad-group-writes-KU4QMQZP.js.map → ad-group-writes-UDQ4563V.js.map} +0 -0
  1094. /package/dist/{ad-groups-NMW2G32A.js.map → ad-groups-RXT2XKSE.js.map} +0 -0
  1095. /package/dist/{ad-writes-7NOFTOM4.js.map → ad-writes-SHLTL2FY.js.map} +0 -0
  1096. /package/dist/{add-25YZMFSH.js.map → add-F65GOWKP.js.map} +0 -0
  1097. /package/dist/{add-D44VCDRU.js.map → add-IALA4VRA.js.map} +0 -0
  1098. /package/dist/{add-7MAL7JRX.js.map → add-ITX64WEC.js.map} +0 -0
  1099. /package/dist/{add-MLTE6PPC.js.map → add-L6MKL2G2.js.map} +0 -0
  1100. /package/dist/{add-HMAQJG4J.js.map → add-QGJPTGU7.js.map} +0 -0
  1101. /package/dist/{add-JO4ZPS23.js.map → add-WAVXB2QA.js.map} +0 -0
  1102. /package/dist/{add-accounts-EKMSHAA4.js.map → add-accounts-YTLQCSXB.js.map} +0 -0
  1103. /package/dist/{ads-DGL5SGP3.js.map → ads-A34INCCM.js.map} +0 -0
  1104. /package/dist/{ads-4YZYNU66.js.map → ads-AKF5AT6O.js.map} +0 -0
  1105. /package/dist/{ads-T6J6QQKX.js.map → ads-AYXMFUIF.js.map} +0 -0
  1106. /package/dist/{ads-P4Z3MLKS.js.map → ads-CUMOMBI3.js.map} +0 -0
  1107. /package/dist/{adsets-PSVCPCE3.js.map → adsets-HNFBX4LB.js.map} +0 -0
  1108. /package/dist/{advertisers-FP7MTMUI.js.map → advertisers-RVTUZ53M.js.map} +0 -0
  1109. /package/dist/{advertisers-7NAPI5ZU.js.map → advertisers-YTG6VA6R.js.map} +0 -0
  1110. /package/dist/{analytics-D2IA2P5E.js.map → analytics-4YHYFRHH.js.map} +0 -0
  1111. /package/dist/{animate-VX7E7KJE.js.map → animate-MBNFCDUZ.js.map} +0 -0
  1112. /package/dist/{approved-E4EZA5RT.js.map → approved-3W56YTOZ.js.map} +0 -0
  1113. /package/dist/{asset-writes-NDSHY5OT.js.map → asset-writes-2CYNDRPU.js.map} +0 -0
  1114. /package/dist/{assign-EE4EDOPX.js.map → assign-JC5BK5XE.js.map} +0 -0
  1115. /package/dist/{audience-size-SRNH57FA.js.map → audience-size-ZVRH3BEL.js.map} +0 -0
  1116. /package/dist/{audience-writes-4KQXVGHO.js.map → audience-writes-JNVGUHGN.js.map} +0 -0
  1117. /package/dist/{audiences-P3SPTAJT.js.map → audiences-KBW2UAOP.js.map} +0 -0
  1118. /package/dist/{audiences-T5LMTT3B.js.map → audiences-OOXSXKIT.js.map} +0 -0
  1119. /package/dist/{audiences-UHLVATR6.js.map → audiences-S6TXNKQ2.js.map} +0 -0
  1120. /package/dist/{audit-R5JG3ABY.js.map → audit-JXRVO37K.js.map} +0 -0
  1121. /package/dist/{audit-46DO2HV3.js.map → audit-O2RRST7B.js.map} +0 -0
  1122. /package/dist/{autocomplete-AIKXLHME.js.map → autocomplete-CBBFRPJZ.js.map} +0 -0
  1123. /package/dist/{avatars-3CAQ5OBN.js.map → avatars-GB7B2MGR.js.map} +0 -0
  1124. /package/dist/{bid-pricing-PDZIJGOX.js.map → bid-pricing-G4IXJRVK.js.map} +0 -0
  1125. /package/dist/{brand-2SN7MM72.js.map → brand-VKQ72SRQ.js.map} +0 -0
  1126. /package/dist/{brief-FPEBHIE3.js.map → brief-X3FRAPUH.js.map} +0 -0
  1127. /package/dist/{businesses-TRFYMZ4I.js.map → businesses-HOAQVYRH.js.map} +0 -0
  1128. /package/dist/{campaign-groups-OHL6POG2.js.map → campaign-groups-NA73I7JR.js.map} +0 -0
  1129. /package/dist/{campaign-writes-P5XPFTRK.js.map → campaign-writes-JYMQF6CK.js.map} +0 -0
  1130. /package/dist/{campaign-writes-RKCE4MSZ.js.map → campaign-writes-ZOLIX3EB.js.map} +0 -0
  1131. /package/dist/{campaigns-HGMQSYUM.js.map → campaigns-DZAZIUES.js.map} +0 -0
  1132. /package/dist/{campaigns-2MTON2IE.js.map → campaigns-EEH3VDK6.js.map} +0 -0
  1133. /package/dist/{campaigns-UWUEENB6.js.map → campaigns-PB3QNTI4.js.map} +0 -0
  1134. /package/dist/{campaigns-SWZJVE2T.js.map → campaigns-TMHFCPAZ.js.map} +0 -0
  1135. /package/dist/{canvas-II524GS7.js.map → canvas-4EGLYNYM.js.map} +0 -0
  1136. /package/dist/{capabilities-FF6NNJ5L.js.map → capabilities-JZFPET7C.js.map} +0 -0
  1137. /package/dist/{cards-CXKIVM4D.js.map → cards-OOKI2WSA.js.map} +0 -0
  1138. /package/dist/{catalog-TOHUVBEU.js.map → catalog-2P422WOQ.js.map} +0 -0
  1139. /package/dist/{catalogs-4DNLG4AM.js.map → catalogs-WBXWK7NT.js.map} +0 -0
  1140. /package/dist/{catalogs-V7PTEJBO.js.map → catalogs-XFYYY3CS.js.map} +0 -0
  1141. /package/dist/{chatgpt-JBMYNVJB.js.map → chatgpt-KNLATOZ6.js.map} +0 -0
  1142. /package/dist/{chats-XVAFLM47.js.map → chats-CE7RKD6W.js.map} +0 -0
  1143. /package/dist/{check-FFRPBGUH.js.map → check-SIMBAMXJ.js.map} +0 -0
  1144. /package/dist/{chunk-QVO5VPNA.js.map → chunk-2NXACVED.js.map} +0 -0
  1145. /package/dist/{chunk-N7EHQNNG.js.map → chunk-2S3VIE7D.js.map} +0 -0
  1146. /package/dist/{chunk-IYDESWW4.js.map → chunk-2ZKQNMK2.js.map} +0 -0
  1147. /package/dist/{chunk-47VWQ7FQ.js.map → chunk-37QNC344.js.map} +0 -0
  1148. /package/dist/{chunk-C3G56TJV.js.map → chunk-45ETXHUI.js.map} +0 -0
  1149. /package/dist/{chunk-H7LKYGLJ.js.map → chunk-4DHHMWP4.js.map} +0 -0
  1150. /package/dist/{chunk-C7KV5O5J.js.map → chunk-4GRVNPHA.js.map} +0 -0
  1151. /package/dist/{chunk-4SAO6RT2.js.map → chunk-5G7UBTBE.js.map} +0 -0
  1152. /package/dist/{chunk-2EEDKWYY.js.map → chunk-5HQ64Z7X.js.map} +0 -0
  1153. /package/dist/{chunk-FLTAPEVY.js.map → chunk-5IHZTLDH.js.map} +0 -0
  1154. /package/dist/{chunk-7YEP3NFN.js.map → chunk-5QCAWD6V.js.map} +0 -0
  1155. /package/dist/{chunk-3WN5GWX4.js.map → chunk-62UGVR7Q.js.map} +0 -0
  1156. /package/dist/{chunk-W3TZPHZO.js.map → chunk-6LLA6IF6.js.map} +0 -0
  1157. /package/dist/{chunk-ITIUWJGQ.js.map → chunk-6PJGHPXG.js.map} +0 -0
  1158. /package/dist/{chunk-TLQY4QBW.js.map → chunk-6ZW5AR5N.js.map} +0 -0
  1159. /package/dist/{chunk-J4BJLHLQ.js.map → chunk-7LFOSBF4.js.map} +0 -0
  1160. /package/dist/{chunk-EJ6EED6I.js.map → chunk-7XFQPPYB.js.map} +0 -0
  1161. /package/dist/{chunk-M2RXXLK3.js.map → chunk-AWYXZU45.js.map} +0 -0
  1162. /package/dist/{chunk-BFAPSFS7.js.map → chunk-AYOTYURE.js.map} +0 -0
  1163. /package/dist/{chunk-PRHDGULQ.js.map → chunk-BXR45CRI.js.map} +0 -0
  1164. /package/dist/{chunk-HM4NWA72.js.map → chunk-BYV4VS5E.js.map} +0 -0
  1165. /package/dist/{chunk-DGHSXHZR.js.map → chunk-CGLNCFAG.js.map} +0 -0
  1166. /package/dist/{chunk-KGJ6EIX3.js.map → chunk-CP5IVVYM.js.map} +0 -0
  1167. /package/dist/{chunk-RBR5PHYJ.js.map → chunk-CXVHS2SV.js.map} +0 -0
  1168. /package/dist/{chunk-LAOCXV6Z.js.map → chunk-DCBCEYSH.js.map} +0 -0
  1169. /package/dist/{chunk-MKOI6QYM.js.map → chunk-DFE77XT5.js.map} +0 -0
  1170. /package/dist/{chunk-6MJKVNLL.js.map → chunk-DN6EMVA4.js.map} +0 -0
  1171. /package/dist/{chunk-Q736UFSD.js.map → chunk-E2G2USTA.js.map} +0 -0
  1172. /package/dist/{chunk-CBVUO7SK.js.map → chunk-EFZVDV7F.js.map} +0 -0
  1173. /package/dist/{chunk-TEQEZAJI.js.map → chunk-FTP6NDOU.js.map} +0 -0
  1174. /package/dist/{chunk-C57CXCTI.js.map → chunk-FUFLMP4B.js.map} +0 -0
  1175. /package/dist/{chunk-WTPID22G.js.map → chunk-HJS6FPQX.js.map} +0 -0
  1176. /package/dist/{chunk-BIBXZJZI.js.map → chunk-HZ7QUFUW.js.map} +0 -0
  1177. /package/dist/{chunk-AP7X3ONA.js.map → chunk-IDFAFNL6.js.map} +0 -0
  1178. /package/dist/{chunk-RHBCKOF2.js.map → chunk-ILLS2XWG.js.map} +0 -0
  1179. /package/dist/{chunk-RRKUXGAU.js.map → chunk-ITABNSX6.js.map} +0 -0
  1180. /package/dist/{chunk-LJEJCIHR.js.map → chunk-JCFZ7ECN.js.map} +0 -0
  1181. /package/dist/{chunk-U6AWJIFP.js.map → chunk-JTYD7A3C.js.map} +0 -0
  1182. /package/dist/{chunk-DXQ5DUFU.js.map → chunk-K2WKQXGH.js.map} +0 -0
  1183. /package/dist/{chunk-H6ASYVQX.js.map → chunk-KMZ4YWS4.js.map} +0 -0
  1184. /package/dist/{chunk-7GFGFBWZ.js.map → chunk-KSBXVA4K.js.map} +0 -0
  1185. /package/dist/{chunk-L2LGHWJN.js.map → chunk-KSJRHAE4.js.map} +0 -0
  1186. /package/dist/{chunk-SPNY52S5.js.map → chunk-KYLTADVX.js.map} +0 -0
  1187. /package/dist/{chunk-GQUBM3Z6.js.map → chunk-L6UZM3ZN.js.map} +0 -0
  1188. /package/dist/{chunk-2N7TB346.js.map → chunk-LRIP2J5S.js.map} +0 -0
  1189. /package/dist/{chunk-VSALEVXN.js.map → chunk-M27HR7YD.js.map} +0 -0
  1190. /package/dist/{chunk-VAV5CCDD.js.map → chunk-M7BSXJNL.js.map} +0 -0
  1191. /package/dist/{chunk-4AO3LSYM.js.map → chunk-MGUEAG6W.js.map} +0 -0
  1192. /package/dist/{chunk-V7EN5LFS.js.map → chunk-MIBOIXCP.js.map} +0 -0
  1193. /package/dist/{chunk-URGXEDFV.js.map → chunk-MNFJQRUO.js.map} +0 -0
  1194. /package/dist/{chunk-OJZKY5UM.js.map → chunk-MQU4LNYG.js.map} +0 -0
  1195. /package/dist/{chunk-5XB352F5.js.map → chunk-MSOFG7FT.js.map} +0 -0
  1196. /package/dist/{chunk-L7I47VGM.js.map → chunk-MUT2BPDM.js.map} +0 -0
  1197. /package/dist/{chunk-PRZBEZBA.js.map → chunk-MUU27AJF.js.map} +0 -0
  1198. /package/dist/{chunk-C4BPAMAJ.js.map → chunk-MVDMMSXS.js.map} +0 -0
  1199. /package/dist/{chunk-AQRBEPZL.js.map → chunk-MWPM6HNV.js.map} +0 -0
  1200. /package/dist/{chunk-DHF4FXWS.js.map → chunk-NE3AZ25Y.js.map} +0 -0
  1201. /package/dist/{chunk-JGK2FDZW.js.map → chunk-NEALLMDP.js.map} +0 -0
  1202. /package/dist/{chunk-OJRS3TGS.js.map → chunk-NZOMEXDN.js.map} +0 -0
  1203. /package/dist/{chunk-XPV3KK6B.js.map → chunk-O5K5EKJC.js.map} +0 -0
  1204. /package/dist/{chunk-SIRRBWQ2.js.map → chunk-OFSUVUXT.js.map} +0 -0
  1205. /package/dist/{chunk-M4KFO256.js.map → chunk-P6H6JZXO.js.map} +0 -0
  1206. /package/dist/{chunk-OX5DS7UE.js.map → chunk-P7OX5Y75.js.map} +0 -0
  1207. /package/dist/{chunk-EV2HVFTJ.js.map → chunk-QY6GNZFH.js.map} +0 -0
  1208. /package/dist/{chunk-3GXHML4V.js.map → chunk-RM5JT6XF.js.map} +0 -0
  1209. /package/dist/{chunk-3QPG2D27.js.map → chunk-ROWUTQFG.js.map} +0 -0
  1210. /package/dist/{chunk-ZCGM7ZWM.js.map → chunk-RSABCQLI.js.map} +0 -0
  1211. /package/dist/{chunk-C7LLNXRJ.js.map → chunk-SGA5V2BM.js.map} +0 -0
  1212. /package/dist/{chunk-CF5I4Q5M.js.map → chunk-SO7NANAH.js.map} +0 -0
  1213. /package/dist/{chunk-33ZP44QR.js.map → chunk-SQZKWZ6F.js.map} +0 -0
  1214. /package/dist/{chunk-JAME5NBT.js.map → chunk-SULQZX5W.js.map} +0 -0
  1215. /package/dist/{chunk-7MIOMG22.js.map → chunk-T3YHV2UM.js.map} +0 -0
  1216. /package/dist/{chunk-Q3G4ZI2U.js.map → chunk-T4HIFVNK.js.map} +0 -0
  1217. /package/dist/{chunk-O5VSYBUA.js.map → chunk-TJTCHTR4.js.map} +0 -0
  1218. /package/dist/{chunk-YAMKCMAS.js.map → chunk-TUS2VOMZ.js.map} +0 -0
  1219. /package/dist/{chunk-UK4XSLV2.js.map → chunk-U3LO5TDH.js.map} +0 -0
  1220. /package/dist/{chunk-L4QEMWNJ.js.map → chunk-UDNN4POE.js.map} +0 -0
  1221. /package/dist/{chunk-H25GY4U4.js.map → chunk-UYVMINV2.js.map} +0 -0
  1222. /package/dist/{chunk-MYGPWKEI.js.map → chunk-VC2XB5JT.js.map} +0 -0
  1223. /package/dist/{chunk-S5S54J2K.js.map → chunk-VGJFNHSA.js.map} +0 -0
  1224. /package/dist/{chunk-JJBO7QIR.js.map → chunk-VQMEXYP3.js.map} +0 -0
  1225. /package/dist/{chunk-5QNW5PCM.js.map → chunk-VQOBDHZP.js.map} +0 -0
  1226. /package/dist/{chunk-Q5XUFN2W.js.map → chunk-VRQ5HEVU.js.map} +0 -0
  1227. /package/dist/{chunk-643AA3RB.js.map → chunk-VUG7DFVI.js.map} +0 -0
  1228. /package/dist/{chunk-7NBQQOCU.js.map → chunk-VVITBZKP.js.map} +0 -0
  1229. /package/dist/{chunk-Q5DLTIYL.js.map → chunk-WB4FNMSI.js.map} +0 -0
  1230. /package/dist/{chunk-2CC4CPDT.js.map → chunk-WFTTF2MP.js.map} +0 -0
  1231. /package/dist/{chunk-CKN4HQZM.js.map → chunk-WUNWVQAI.js.map} +0 -0
  1232. /package/dist/{chunk-IZXYI5NB.js.map → chunk-XGTZ3WQX.js.map} +0 -0
  1233. /package/dist/{chunk-6EOWBGGW.js.map → chunk-XMIV53FM.js.map} +0 -0
  1234. /package/dist/{chunk-DPOUS5DN.js.map → chunk-XNUUEUJB.js.map} +0 -0
  1235. /package/dist/{chunk-AZIXX73C.js.map → chunk-YB2UVOAD.js.map} +0 -0
  1236. /package/dist/{chunk-IJ6WA2JW.js.map → chunk-YP5SD6O2.js.map} +0 -0
  1237. /package/dist/{chunk-S3XCG55E.js.map → chunk-YRW2AAKX.js.map} +0 -0
  1238. /package/dist/{chunk-YRWCXYWW.js.map → chunk-YT6YI47O.js.map} +0 -0
  1239. /package/dist/{chunk-2KQQHBBQ.js.map → chunk-YYFARPMN.js.map} +0 -0
  1240. /package/dist/{chunk-OHVXHNUR.js.map → chunk-Z2QKUVHP.js.map} +0 -0
  1241. /package/dist/{chunk-4W4MLIRR.js.map → chunk-Z2WTCFQ6.js.map} +0 -0
  1242. /package/dist/{chunk-Z3RGBLVJ.js.map → chunk-Z3KRNKEA.js.map} +0 -0
  1243. /package/dist/{chunk-MIHY534L.js.map → chunk-Z6RTEOEY.js.map} +0 -0
  1244. /package/dist/{cite-WCAOCOO5.js.map → cite-I5UV5SKS.js.map} +0 -0
  1245. /package/dist/{claim-YABJMHON.js.map → claim-QS3M3TOL.js.map} +0 -0
  1246. /package/dist/{client-VCKP6WBR.js.map → client-DKZM6XTS.js.map} +0 -0
  1247. /package/dist/{code-VXOTFGD2.js.map → code-D3J5FQCF.js.map} +0 -0
  1248. /package/dist/{connect-FWT2IC5N.js.map → companies-XCKJCRHM.js.map} +0 -0
  1249. /package/dist/{company-6JAVJPSU.js.map → company-IQ4LMS24.js.map} +0 -0
  1250. /package/dist/{complete-4R6O7TAF.js.map → complete-PPHC25BS.js.map} +0 -0
  1251. /package/dist/{config-UR45YCIN.js.map → config-ACEF37UO.js.map} +0 -0
  1252. /package/dist/{customers-HHQUU3MA.js.map → connect-F6LPMOCU.js.map} +0 -0
  1253. /package/dist/{content-EQQIKG5H.js.map → content-5RTSXURF.js.map} +0 -0
  1254. /package/dist/{conversation-DSRM4JIU.js.map → conversation-GYDBXZN2.js.map} +0 -0
  1255. /package/dist/{conversion-report-2FREFML5.js.map → conversion-report-6SVHPLHT.js.map} +0 -0
  1256. /package/dist/{conversion-upload-command-JAGV6GMG.js.map → conversion-upload-command-J3STKMAL.js.map} +0 -0
  1257. /package/dist/{conversion-writes-JZIJSQ7T.js.map → conversion-writes-PEKNBIDQ.js.map} +0 -0
  1258. /package/dist/{conversions-4D5TEPO4.js.map → conversions-7PSI7L55.js.map} +0 -0
  1259. /package/dist/{conversions-Q5EBTEXA.js.map → conversions-ICSKSSLX.js.map} +0 -0
  1260. /package/dist/{copy-writes-JVUX3YDL.js.map → copy-writes-ER5ZB5C4.js.map} +0 -0
  1261. /package/dist/{countries-GRCU4IGM.js.map → countries-OJZQQYFT.js.map} +0 -0
  1262. /package/dist/{create-VW23RNWT.js.map → create-AJPHIQIT.js.map} +0 -0
  1263. /package/dist/{create-SDFDKJGJ.js.map → create-DM7DUVDQ.js.map} +0 -0
  1264. /package/dist/{create-3OYFSUR5.js.map → create-R6BEEL3J.js.map} +0 -0
  1265. /package/dist/{create-FMGLMQZC.js.map → create-XYJYG7CU.js.map} +0 -0
  1266. /package/dist/{creatives-B7GJ2IC5.js.map → creatives-LD76JBM4.js.map} +0 -0
  1267. /package/dist/{creatives-E33LXJG7.js.map → creatives-R6Q2QUQI.js.map} +0 -0
  1268. /package/dist/{creatives-4EPM3RHG.js.map → creatives-ZGXH7UA7.js.map} +0 -0
  1269. /package/dist/{credentials-WGGZFBDJ.js.map → credentials-P7L6PQKJ.js.map} +0 -0
  1270. /package/dist/{critique-US4B3ZY5.js.map → critique-DIVRMX7I.js.map} +0 -0
  1271. /package/dist/{critique-EOYMGUIK.js.map → critique-KLGX7RI6.js.map} +0 -0
  1272. /package/dist/{crm-UBQ735O6.js.map → crm-Y3F5UUXL.js.map} +0 -0
  1273. /package/dist/{crop-NE7YX4SS.js.map → crop-SRCLDYM5.js.map} +0 -0
  1274. /package/dist/{custom-conversions-GQTU5E6X.js.map → custom-conversions-RTSR3KKJ.js.map} +0 -0
  1275. /package/dist/{env-NZXNMWSD.js.map → customers-7NG2IPJK.js.map} +0 -0
  1276. /package/dist/{decide-6Q5X3V3F.js.map → decide-2WQKE6HC.js.map} +0 -0
  1277. /package/dist/{delete-QHDDR66K.js.map → delete-DWQS7UCJ.js.map} +0 -0
  1278. /package/dist/{delete-X5TD7P3U.js.map → delete-HGIMNZ4V.js.map} +0 -0
  1279. /package/dist/{delete-UC5XQZWC.js.map → delete-KDD6QSJA.js.map} +0 -0
  1280. /package/dist/{delete-EKKOEB3N.js.map → delete-MJSASLP6.js.map} +0 -0
  1281. /package/dist/{delete-SP66F7ZV.js.map → delete-N76JN5MP.js.map} +0 -0
  1282. /package/dist/{delete-JPIV5E2Y.js.map → delete-S7U6A435.js.map} +0 -0
  1283. /package/dist/{demographics-6GQYZIVR.js.map → demographics-PNEXYSZD.js.map} +0 -0
  1284. /package/dist/{describe-MAGTSOW4.js.map → describe-42XBBR6J.js.map} +0 -0
  1285. /package/dist/{describe-DJPIUEFE.js.map → describe-TKOJMWML.js.map} +0 -0
  1286. /package/dist/{dimensions-IC2H7V3H.js.map → dimensions-5OS26IF6.js.map} +0 -0
  1287. /package/dist/{discard-5UNX5TEZ.js.map → discard-MT26YH73.js.map} +0 -0
  1288. /package/dist/{discover-PSL2NBJL.js.map → discover-IDC6PQV2.js.map} +0 -0
  1289. /package/dist/{domain-7BOPJLTP.js.map → domain-H6GRR7WD.js.map} +0 -0
  1290. /package/dist/{download-B4IV43AJ.js.map → download-QCDXPSUM.js.map} +0 -0
  1291. /package/dist/{download-EHDJXBAC.js.map → download-QH4VHDS6.js.map} +0 -0
  1292. /package/dist/{draft-MWYKIZC4.js.map → draft-3MYPEBSF.js.map} +0 -0
  1293. /package/dist/{draft-VRE52N6B.js.map → draft-EUWOFQXE.js.map} +0 -0
  1294. /package/dist/{draft-JESKGZ6O.js.map → draft-FJ55MZB4.js.map} +0 -0
  1295. /package/dist/{draft-QT6MVG47.js.map → draft-FRX24TKC.js.map} +0 -0
  1296. /package/dist/{draft-FVB6SEP3.js.map → draft-RKKOSTJF.js.map} +0 -0
  1297. /package/dist/{draft-27NMTARB.js.map → draft-W7FYHKI2.js.map} +0 -0
  1298. /package/dist/{draft-GCOCG4PO.js.map → draft-ZDS6KFZ3.js.map} +0 -0
  1299. /package/dist/{fit-2R5NGB7E.js.map → env-AMOXYHCA.js.map} +0 -0
  1300. /package/dist/{experiment-XAYSEYTU.js.map → experiment-TBLKWI2J.js.map} +0 -0
  1301. /package/dist/{experiments-3JSDRY5W.js.map → experiments-SJV3ZE46.js.map} +0 -0
  1302. /package/dist/{export-W54UZ62P.js.map → export-AMOLHZB6.js.map} +0 -0
  1303. /package/dist/{extract-BVSL6H3S.js.map → extract-MT3P3SYT.js.map} +0 -0
  1304. /package/dist/{facets-NN33WFSR.js.map → facets-LWJT5J4S.js.map} +0 -0
  1305. /package/dist/{favorites-Y6CT6NSQ.js.map → favorites-Z24QDACW.js.map} +0 -0
  1306. /package/dist/{feed-35BRQPTH.js.map → feed-2XCJ2JIV.js.map} +0 -0
  1307. /package/dist/{feedback-BYXZEEW3.js.map → feedback-AB2QVJU3.js.map} +0 -0
  1308. /package/dist/{feedback-HN32HLFT.js.map → feedback-EGVQJTCD.js.map} +0 -0
  1309. /package/dist/{feedback-record-GZNCHZFT.js.map → feedback-record-F32XSTKZ.js.map} +0 -0
  1310. /package/dist/{fetch-3JPN4QAJ.js.map → fetch-M5KGRBEI.js.map} +0 -0
  1311. /package/dist/{fetch-I6P72CDL.js.map → fetch-Z5MNAIQS.js.map} +0 -0
  1312. /package/dist/{find-SVGRA7IA.js.map → find-XMISWVZT.js.map} +0 -0
  1313. /package/dist/{fonts-IO4X2AKN.js.map → fit-YDHY7E7H.js.map} +0 -0
  1314. /package/dist/{flows-XM7GBTIU.js.map → flows-3V47HJQ3.js.map} +0 -0
  1315. /package/dist/{follow-24QSDNAG.js.map → follow-542NYE76.js.map} +0 -0
  1316. /package/dist/{follow-competitors-AG4E4XFA.js.map → follow-competitors-NZDLHP7P.js.map} +0 -0
  1317. /package/dist/{following-YGM6TBK3.js.map → following-JTZZCSQX.js.map} +0 -0
  1318. /package/dist/{ideas-TKCOPOMS.js.map → fonts-3GV2ZO5E.js.map} +0 -0
  1319. /package/dist/{forecast-MOFJ3BKH.js.map → forecast-YKHZXBSB.js.map} +0 -0
  1320. /package/dist/{funding-WZNGXRLJ.js.map → funding-HKPP53U2.js.map} +0 -0
  1321. /package/dist/{funnel-FR7JQUZW.js.map → funnel-B4WROVPH.js.map} +0 -0
  1322. /package/dist/{ga4-W3U5YTRT.js.map → ga4-MUIZN7ID.js.map} +0 -0
  1323. /package/dist/{generate-KAWRRYTT.js.map → generate-GBFLO76C.js.map} +0 -0
  1324. /package/dist/{get-GEUSRD5Y.js.map → get-3QLANJES.js.map} +0 -0
  1325. /package/dist/{get-5SPNAIUQ.js.map → get-D5G2RNTR.js.map} +0 -0
  1326. /package/dist/{get-BMJIYS25.js.map → get-FG3VO3BZ.js.map} +0 -0
  1327. /package/dist/{get-JIZPYK3Z.js.map → get-G4UPOHVY.js.map} +0 -0
  1328. /package/dist/{get-3MTAVNTP.js.map → get-GOXOADPY.js.map} +0 -0
  1329. /package/dist/{get-MXXANBI3.js.map → get-HQUIC2MQ.js.map} +0 -0
  1330. /package/dist/{get-TS2ZJDCQ.js.map → get-JUI3RVMT.js.map} +0 -0
  1331. /package/dist/{get-YWDZYEAC.js.map → get-T7A3CTS2.js.map} +0 -0
  1332. /package/dist/{gif-NP6EDGEE.js.map → gif-4KAQUYPX.js.map} +0 -0
  1333. /package/dist/{google-MHFI5OGW.js.map → google-PKT7ORVP.js.map} +0 -0
  1334. /package/dist/{google-ads-ULZRFDZU.js.map → google-ads-AKIWTLR4.js.map} +0 -0
  1335. /package/dist/{group-3DT4UYSR.js.map → group-4GYPBQMU.js.map} +0 -0
  1336. /package/dist/{group-OEKKCFXT.js.map → group-GH5CSQKA.js.map} +0 -0
  1337. /package/dist/{gsc-4FEFPFPB.js.map → gsc-3EIBYMON.js.map} +0 -0
  1338. /package/dist/{history-F3U3WNEJ.js.map → history-FX223L6D.js.map} +0 -0
  1339. /package/dist/{history-SGFTHPT2.js.map → history-HB45CGYR.js.map} +0 -0
  1340. /package/dist/{history-YQSYXBJH.js.map → history-K4VYVCZC.js.map} +0 -0
  1341. /package/dist/{icon-43UJTGGE.js.map → icon-VYFLZ4FS.js.map} +0 -0
  1342. /package/dist/{ingest-T3AV5OR4.js.map → ideas-6GD47AQW.js.map} +0 -0
  1343. /package/dist/{images-K4EPTLTF.js.map → images-BC7ZWZ4B.js.map} +0 -0
  1344. /package/dist/{improve-IMXQN6OD.js.map → improve-ZBPSMVFI.js.map} +0 -0
  1345. /package/dist/{ingest-MCCJBWYC.js.map → ingest-T3FJWORN.js.map} +0 -0
  1346. /package/dist/{launches-L4EUROCJ.js.map → ingest-XJ5DDUNG.js.map} +0 -0
  1347. /package/dist/{insights-BR3456EI.js.map → insights-2NWY4XJR.js.map} +0 -0
  1348. /package/dist/{insights-UVCFOB3N.js.map → insights-RHOCF7VR.js.map} +0 -0
  1349. /package/dist/{inspect-3OHTBHNO.js.map → inspect-GYEHCDZR.js.map} +0 -0
  1350. /package/dist/{inspiration-XZI5KCQW.js.map → inspiration-6FGGHV73.js.map} +0 -0
  1351. /package/dist/{instant-experiences-2LKF7XVK.js.map → instant-experiences-YZYOLGBA.js.map} +0 -0
  1352. /package/dist/{intent-F5NTOSQC.js.map → intent-TKFH57DZ.js.map} +0 -0
  1353. /package/dist/{job-GOX3KIKG.js.map → job-2XYPZRJ6.js.map} +0 -0
  1354. /package/dist/{job-create-F2PQSN3C.js.map → job-create-BPUOBKXA.js.map} +0 -0
  1355. /package/dist/{job-status-3FMA5D7T.js.map → job-status-HUDHF6BU.js.map} +0 -0
  1356. /package/dist/{keep-23ZYMWPG.js.map → keep-XBYR2NII.js.map} +0 -0
  1357. /package/dist/{keyword-gap-EB5QATYN.js.map → keyword-gap-7I2CIUTK.js.map} +0 -0
  1358. /package/dist/{keyword-metrics-E4PPLUYX.js.map → keyword-metrics-K7L6CVTZ.js.map} +0 -0
  1359. /package/dist/{keywords-for-site-HD2FOBMH.js.map → keywords-for-site-HBQBMVFS.js.map} +0 -0
  1360. /package/dist/{knowledge-7M7DSRF3.js.map → knowledge-ILQIN5FL.js.map} +0 -0
  1361. /package/dist/{landing-NC2A277E.js.map → landing-RYX65ZJJ.js.map} +0 -0
  1362. /package/dist/{landings-VNQ4VA2U.js.map → landings-GRJAJKHY.js.map} +0 -0
  1363. /package/dist/{languages-2X22HXM3.js.map → languages-22VMY7JN.js.map} +0 -0
  1364. /package/dist/{languages-4S26FJDP.js.map → languages-FMHPUVOL.js.map} +0 -0
  1365. /package/dist/{logo-4LSFZ3ZO.js.map → launches-NUMSS7HP.js.map} +0 -0
  1366. /package/dist/{layerize-6QHQMA7Q.js.map → layerize-TFRXRHVL.js.map} +0 -0
  1367. /package/dist/{lead-routes-5TPFJEVH.js.map → lead-routes-D5ITHESC.js.map} +0 -0
  1368. /package/dist/{leads-LL2S6ENL.js.map → leads-OAFYKOCF.js.map} +0 -0
  1369. /package/dist/{leads-4TLOH47R.js.map → leads-VEHYM23G.js.map} +0 -0
  1370. /package/dist/{learn-2CP2SROJ.js.map → learn-SIATYUQL.js.map} +0 -0
  1371. /package/dist/{library-MNJC24E4.js.map → library-JB2UBSJ5.js.map} +0 -0
  1372. /package/dist/{lighthouse-DJMAXFTD.js.map → lighthouse-EQZFYGFL.js.map} +0 -0
  1373. /package/dist/{line-item-writes-56A4ITU6.js.map → line-item-writes-4LAJW33S.js.map} +0 -0
  1374. /package/dist/{line-items-AIIDDTTH.js.map → line-items-4FLTV275.js.map} +0 -0
  1375. /package/dist/{link-BIXBY5KG.js.map → link-4EWQ6R6D.js.map} +0 -0
  1376. /package/dist/{linkedin-person-5KEGEX6G.js.map → linkedin-person-EFBNRT7A.js.map} +0 -0
  1377. /package/dist/{list-2277GCPH.js.map → list-5BWNSHYO.js.map} +0 -0
  1378. /package/dist/{list-WIXQXNKB.js.map → list-A363BF25.js.map} +0 -0
  1379. /package/dist/{list-XK33NCSC.js.map → list-JARIB5LC.js.map} +0 -0
  1380. /package/dist/{list-YBHQ3HIB.js.map → list-K7ROIVKU.js.map} +0 -0
  1381. /package/dist/{list-537S75BZ.js.map → list-RO4YLUFK.js.map} +0 -0
  1382. /package/dist/{list-UQNU4QUE.js.map → list-TJJPI57I.js.map} +0 -0
  1383. /package/dist/{list-Q52FPW3H.js.map → list-UD43QCLC.js.map} +0 -0
  1384. /package/dist/{list-C5AT3LF4.js.map → list-VGMXUBFE.js.map} +0 -0
  1385. /package/dist/{list-V4PSDBLX.js.map → list-XPLMANXX.js.map} +0 -0
  1386. /package/dist/{locations-WXGOI3VV.js.map → locations-DD3JRZ4C.js.map} +0 -0
  1387. /package/dist/{locations-UWBQLHXW.js.map → locations-HWMEJ64P.js.map} +0 -0
  1388. /package/dist/{log-FZJTWN3S.js.map → log-M7UCG5LZ.js.map} +0 -0
  1389. /package/dist/{lookup-WIM5WR25.js.map → logo-KDGD6LRA.js.map} +0 -0
  1390. /package/dist/{output-ELEO2Z6R.js.map → lookup-7HIPFF2U.js.map} +0 -0
  1391. /package/dist/{make-ESUFN3T4.js.map → make-US3C4YLT.js.map} +0 -0
  1392. /package/dist/{map-WDOBMEAW.js.map → map-OT5M3BJF.js.map} +0 -0
  1393. /package/dist/{mcp-JJZ5YGSS.js.map → mcp-32LXPARX.js.map} +0 -0
  1394. /package/dist/{media-KKI3KWLR.js.map → media-6VI4PN4N.js.map} +0 -0
  1395. /package/dist/{media-34I7UB7Z.js.map → media-WIFXVGKU.js.map} +0 -0
  1396. /package/dist/{media-sources-AJ5USQXV.js.map → media-sources-Z4JJELU7.js.map} +0 -0
  1397. /package/dist/{members-NSR7S62Y.js.map → members-2BNKMQ2I.js.map} +0 -0
  1398. /package/dist/{meme-6NFYFQ7T.js.map → meme-I43AVLGS.js.map} +0 -0
  1399. /package/dist/{normalize-G75RDSE4.js.map → normalize-5B5WIBV4.js.map} +0 -0
  1400. /package/dist/{normalize-RQEHHRES.js.map → normalize-GV2POGHI.js.map} +0 -0
  1401. /package/dist/{options-4BW4P6JD.js.map → options-HKGF6VEW.js.map} +0 -0
  1402. /package/dist/{organization-TKGXZYH6.js.map → organization-G4VL7IQH.js.map} +0 -0
  1403. /package/dist/{performance-27VHB3UA.js.map → output-W5J5RKRR.js.map} +0 -0
  1404. /package/dist/{page-4X6IBUWG.js.map → page-KUDKDDLJ.js.map} +0 -0
  1405. /package/dist/{page-photos-KNBLMFLN.js.map → page-photos-52S2XRIW.js.map} +0 -0
  1406. /package/dist/{pages-7HW5YOZV.js.map → pages-RMTL3RCK.js.map} +0 -0
  1407. /package/dist/{performance-XGHZDQGU.js.map → performance-67DDDP3X.js.map} +0 -0
  1408. /package/dist/{query-K7MYBRTS.js.map → performance-MF4547I7.js.map} +0 -0
  1409. /package/dist/{pinterest-KA6VFDM4.js.map → pinterest-GMNQ2AVG.js.map} +0 -0
  1410. /package/dist/{pixels-HEI5WVAO.js.map → pixels-3CINROKJ.js.map} +0 -0
  1411. /package/dist/{pixels-D5HF24FI.js.map → pixels-YQJKJWAC.js.map} +0 -0
  1412. /package/dist/{plan-XCA6R3HZ.js.map → plan-33F5F2OR.js.map} +0 -0
  1413. /package/dist/{posts-ALGM6ONV.js.map → posts-MZFKWSZ6.js.map} +0 -0
  1414. /package/dist/{preview-55TRUF4Q.js.map → preview-HWM6KHV5.js.map} +0 -0
  1415. /package/dist/{preview-2YRMPWI2.js.map → preview-JITAEUWU.js.map} +0 -0
  1416. /package/dist/{profile-NHUPUCBR.js.map → profile-OYCGBQWF.js.map} +0 -0
  1417. /package/dist/{promoted-tweet-writes-PT6BW64X.js.map → promoted-tweet-writes-K7YJNRMS.js.map} +0 -0
  1418. /package/dist/{promoted-tweets-SBZXEU7S.js.map → promoted-tweets-JIKZFJXO.js.map} +0 -0
  1419. /package/dist/{properties-2ZXA5BPJ.js.map → properties-PMY3KKUU.js.map} +0 -0
  1420. /package/dist/{publish-Z7ZK3XB7.js.map → publish-4YT3CR4T.js.map} +0 -0
  1421. /package/dist/{query-DMWY3TDD.js.map → query-ALRSR5OF.js.map} +0 -0
  1422. /package/dist/{reddit-L4RQNJBL.js.map → query-NYH5PMQF.js.map} +0 -0
  1423. /package/dist/{query-63CTX2PH.js.map → query-ZGGHOYOH.js.map} +0 -0
  1424. /package/dist/{questionnaire-WHE42RD4.js.map → questionnaire-4AJFPLM2.js.map} +0 -0
  1425. /package/dist/{read-NESEKULG.js.map → read-Z7BBSAEK.js.map} +0 -0
  1426. /package/dist/{run-QDPXTMW6.js.map → reddit-CTAWHQ6K.js.map} +0 -0
  1427. /package/dist/{refresh-ILDEPU5A.js.map → refresh-VE3UKLXX.js.map} +0 -0
  1428. /package/dist/{refresh-EWALAFUQ.js.map → refresh-YYP23L3T.js.map} +0 -0
  1429. /package/dist/{release-C2H2KBNY.js.map → release-ZPU626XC.js.map} +0 -0
  1430. /package/dist/{relevant-pages-XYQKVX3U.js.map → relevant-pages-QIF35NBQ.js.map} +0 -0
  1431. /package/dist/{remove-JOXARFD3.js.map → remove-7RQJRXOV.js.map} +0 -0
  1432. /package/dist/{remove-NHE4UT7G.js.map → remove-VGEKRK34.js.map} +0 -0
  1433. /package/dist/{reopen-WRW4JVO2.js.map → reopen-HANTJFNU.js.map} +0 -0
  1434. /package/dist/{rerun-GYWQOZOF.js.map → rerun-LSWO6K7O.js.map} +0 -0
  1435. /package/dist/{research-422BF4O4.js.map → research-ZARG4TUX.js.map} +0 -0
  1436. /package/dist/{reset-MZDRR5VP.js.map → reset-LO2WLWSF.js.map} +0 -0
  1437. /package/dist/{reset-7ANRT4I3.js.map → reset-PDQTEM2J.js.map} +0 -0
  1438. /package/dist/{resolve-KKRG65WF.js.map → resolve-RXWBSGHW.js.map} +0 -0
  1439. /package/dist/{retry-YZCBWAHT.js.map → retry-M5RY4EFT.js.map} +0 -0
  1440. /package/dist/{retry-PDKRPWIZ.js.map → retry-WRNZN2GO.js.map} +0 -0
  1441. /package/dist/{retry-failed-R5HPQ3KQ.js.map → retry-failed-GEORPC3E.js.map} +0 -0
  1442. /package/dist/{revenue-F7E5ZRLB.js.map → revenue-IXQTSRYQ.js.map} +0 -0
  1443. /package/dist/{rule-writes-QB4IWFCJ.js.map → rule-writes-DRZUEIV6.js.map} +0 -0
  1444. /package/dist/{rules-FYVD2QBB.js.map → rules-BBALKNBK.js.map} +0 -0
  1445. /package/dist/{rules-GRLAFAZU.js.map → rules-O64G4QVU.js.map} +0 -0
  1446. /package/dist/{rules-add-3C7LW4HD.js.map → rules-add-HW6UNH3U.js.map} +0 -0
  1447. /package/dist/{run-ZV73UQ3E.js.map → run-ENK7RU6R.js.map} +0 -0
  1448. /package/dist/{search-XHSTUBDY.js.map → run-FO6EDDEN.js.map} +0 -0
  1449. /package/dist/{scaffold-ad-LBLEARDJ.js.map → scaffold-ad-FFKVESN3.js.map} +0 -0
  1450. /package/dist/{scaffold-static-ad-TM3JX4HS.js.map → scaffold-static-ad-TWJM3TUK.js.map} +0 -0
  1451. /package/dist/{scaffold-video-EINW32ZH.js.map → scaffold-video-OK4TWNUK.js.map} +0 -0
  1452. /package/dist/{schedule-D7EDEM45.js.map → schedule-L5NVM4DN.js.map} +0 -0
  1453. /package/dist/{schedule-X5ZKZXPC.js.map → schedule-U4JVZER5.js.map} +0 -0
  1454. /package/dist/{schema-Z43AJOJ4.js.map → schema-3IEI64TQ.js.map} +0 -0
  1455. /package/dist/{schema-6JF4ZNGY.js.map → schema-6I2RSDO2.js.map} +0 -0
  1456. /package/dist/{scrape-VL2RWSTW.js.map → scrape-YEZGRX2B.js.map} +0 -0
  1457. /package/dist/{screenshot-Y6EEXS3Q.js.map → screenshot-6EBASY4U.js.map} +0 -0
  1458. /package/dist/{search-JEXYEAPQ.js.map → search-BZLTII6V.js.map} +0 -0
  1459. /package/dist/{search-L3GTZYRW.js.map → search-I7CCYBB5.js.map} +0 -0
  1460. /package/dist/{search-TXBYKNQC.js.map → search-NA7DBOLW.js.map} +0 -0
  1461. /package/dist/{search-4VAIJA2O.js.map → search-QONARWFY.js.map} +0 -0
  1462. /package/dist/{search-CXC7N5XJ.js.map → search-RM4MN7KO.js.map} +0 -0
  1463. /package/dist/{shared-4GGUIOF2.js.map → search-SNEFCCJX.js.map} +0 -0
  1464. /package/dist/{search-copy-FIPG7OCC.js.map → search-copy-S6JVQZLI.js.map} +0 -0
  1465. /package/dist/{seeds-ADJKURNG.js.map → seeds-BIY565P3.js.map} +0 -0
  1466. /package/dist/{select-TNLQGGNE.js.map → select-EBLEMFQI.js.map} +0 -0
  1467. /package/dist/{sends-RS4LWRAC.js.map → sends-7JKFJTRE.js.map} +0 -0
  1468. /package/dist/{sequences-2RPKDKGQ.js.map → sequences-KZSNIELI.js.map} +0 -0
  1469. /package/dist/{set-prompt-GU3HPWWZ.js.map → set-prompt-CDYOXIIY.js.map} +0 -0
  1470. /package/dist/{setup-links-ORBZ5T4H.js.map → setup-links-QQ2AWOZG.js.map} +0 -0
  1471. /package/dist/{sync-definition-SNUWHPGO.js.map → shared-P5UDXZAG.js.map} +0 -0
  1472. /package/dist/{shopify-SN3TBTL5.js.map → shopify-SSDXRXN5.js.map} +0 -0
  1473. /package/dist/{site-3ZORNMAE.js.map → site-PHU5BRRL.js.map} +0 -0
  1474. /package/dist/{sitemaps-Z6IELTQV.js.map → sitemaps-WCARK2BM.js.map} +0 -0
  1475. /package/dist/{sites-KLAKI2EY.js.map → sites-JQZ2ZC6W.js.map} +0 -0
  1476. /package/dist/{skills-OJP36EVR.js.map → skills-V2FRLLOW.js.map} +0 -0
  1477. /package/dist/{sources-WT6M3QIX.js.map → sources-I52AANVB.js.map} +0 -0
  1478. /package/dist/{sources-WGEC6FGZ.js.map → sources-XH6RL3GF.js.map} +0 -0
  1479. /package/dist/{stale-5YYPMXWX.js.map → stale-A6RYRZDV.js.map} +0 -0
  1480. /package/dist/{stats-MIMFX4R7.js.map → stats-W7CCPRTG.js.map} +0 -0
  1481. /package/dist/{status-WED3AXTZ.js.map → status-O4AGHCJY.js.map} +0 -0
  1482. /package/dist/{sticker-IREEEN7I.js.map → sticker-NDSJDIAK.js.map} +0 -0
  1483. /package/dist/{stock-33GHQWNQ.js.map → stock-C2TUFJUH.js.map} +0 -0
  1484. /package/dist/{studies-YGYAH3JI.js.map → studies-4JOP2GQJ.js.map} +0 -0
  1485. /package/dist/{studio-4EV5S7PR.js.map → studio-TG2UAKFI.js.map} +0 -0
  1486. /package/dist/{study-writes-UPGJB36A.js.map → study-writes-PMTRTUXP.js.map} +0 -0
  1487. /package/dist/{suggest-5RTISDLI.js.map → suggest-F5GIJR4K.js.map} +0 -0
  1488. /package/dist/{sync-VCAFAYW4.js.map → sync-IDULIJUZ.js.map} +0 -0
  1489. /package/dist/{sync-2GLGCSRQ.js.map → sync-NNNB2PWZ.js.map} +0 -0
  1490. /package/dist/{sync-OHIXI4I6.js.map → sync-STPHWKTE.js.map} +0 -0
  1491. /package/dist/{viewer-check-TYTVCSQW.js.map → sync-definition-AABUGAYW.js.map} +0 -0
  1492. /package/dist/{tag-DSCUKNC3.js.map → tag-MMY3QT2N.js.map} +0 -0
  1493. /package/dist/{tag-manager-IINALUEJ.js.map → tag-manager-JDGWAHCZ.js.map} +0 -0
  1494. /package/dist/{tags-MYUCES3W.js.map → tags-A2PCL4OL.js.map} +0 -0
  1495. /package/dist/{tags-CVPMOYKI.js.map → tags-KH6N6OKV.js.map} +0 -0
  1496. /package/dist/{tags-SCMHCPF4.js.map → tags-LAMQOQWY.js.map} +0 -0
  1497. /package/dist/{tags-IQY7GYMU.js.map → tags-MIR75PDJ.js.map} +0 -0
  1498. /package/dist/{tags-AQNOA7X5.js.map → tags-PHEHMZC7.js.map} +0 -0
  1499. /package/dist/{targeting-BM72UTI6.js.map → targeting-AVHPKERN.js.map} +0 -0
  1500. /package/dist/{targeting-constants-54S3FXIF.js.map → targeting-constants-T7Y6RVEH.js.map} +0 -0
  1501. /package/dist/{targeting-criteria-RVJHW22S.js.map → targeting-criteria-MRAEWFOW.js.map} +0 -0
  1502. /package/dist/{targets-G6SN6VTL.js.map → targets-JJO4Z4DI.js.map} +0 -0
  1503. /package/dist/{terms-OFHNLW6U.js.map → terms-ETG7YCJC.js.map} +0 -0
  1504. /package/dist/{testimonials-JALUWWLB.js.map → testimonials-5455FK4Y.js.map} +0 -0
  1505. /package/dist/{transcript-JMRRJEET.js.map → transcript-JHGN7KW7.js.map} +0 -0
  1506. /package/dist/{translate-IGCEMHXS.js.map → translate-YWSIWVRT.js.map} +0 -0
  1507. /package/dist/{triggers-UUSPHGXX.js.map → triggers-RNGTCIVF.js.map} +0 -0
  1508. /package/dist/{tweets-TRTXC6O4.js.map → tweets-3H7CW3ZI.js.map} +0 -0
  1509. /package/dist/{unfollow-DATOGPLZ.js.map → unfollow-PEEPIMZY.js.map} +0 -0
  1510. /package/dist/{unlink-U5VBTO7P.js.map → unlink-PACTZ674.js.map} +0 -0
  1511. /package/dist/{unstage-LLQCMZ5H.js.map → unstage-GUPBLCPZ.js.map} +0 -0
  1512. /package/dist/{unstage-KSYT7FOP.js.map → unstage-NAJI4DDV.js.map} +0 -0
  1513. /package/dist/{update-GFKDIJRE.js.map → update-5EXPDJ2T.js.map} +0 -0
  1514. /package/dist/{update-QF6BLM5F.js.map → update-GK3QSHWA.js.map} +0 -0
  1515. /package/dist/{update-VBQKI72I.js.map → update-KPWP4DPC.js.map} +0 -0
  1516. /package/dist/{update-SD5YQIJC.js.map → update-TNOOVX3P.js.map} +0 -0
  1517. /package/dist/{update-ZIKHDZRT.js.map → update-XZGK5UFK.js.map} +0 -0
  1518. /package/dist/{upload-UYE73VLK.js.map → upload-JYZFK5ZO.js.map} +0 -0
  1519. /package/dist/{upload-7PPMVWVA.js.map → upload-W2UTHRP2.js.map} +0 -0
  1520. /package/dist/{upscale-WVJZG76V.js.map → upscale-MTWSJ3EJ.js.map} +0 -0
  1521. /package/dist/{url-params-P6MV2HKB.js.map → url-params-OHLTOL33.js.map} +0 -0
  1522. /package/dist/{use-6FADOAFZ.js.map → use-K5EP7JJM.js.map} +0 -0
  1523. /package/dist/{validate-HIYNINCN.js.map → validate-H6J4M43Q.js.map} +0 -0
  1524. /package/dist/{variant-RNM36P4J.js.map → variant-BZCX46QL.js.map} +0 -0
  1525. /package/dist/{videos-XGQL37V4.js.map → videos-5N3JQIAY.js.map} +0 -0
  1526. /package/dist/{videos-GHFCOTT7.js.map → videos-QIDOIJ24.js.map} +0 -0
  1527. /package/dist/{view-YR6MDLWL.js.map → view-CD5UWMR4.js.map} +0 -0
  1528. /package/dist/{web-PIMTCU4V.js.map → web-CV3VMSDO.js.map} +0 -0
  1529. /package/dist/{winners-4T5RFQXU.js.map → winners-CSNTBOVM.js.map} +0 -0
  1530. /package/dist/{winning-ads-P4MXWYK6.js.map → winning-ads-FVTCV3GX.js.map} +0 -0
  1531. /package/dist/{write-commands-UO3OQIHH.js.map → write-commands-AASXCKRN.js.map} +0 -0
  1532. /package/dist/{write-commands-6D55SB56.js.map → write-commands-OV7RE6O2.js.map} +0 -0
  1533. /package/dist/{write-commands-24EOSYWL.js.map → write-commands-W4Z6MANM.js.map} +0 -0
  1534. /package/dist/{write-commands-AIWLEGO2.js.map → write-commands-XFYXMTXO.js.map} +0 -0
  1535. /package/dist/{x-HBA6AJJA.js.map → x-WFYI4F6X.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/ads/google/draft-account.ts","../src/commands/ads/google/write-shared.ts","../src/commands/ads/google/copy-list-usage.ts","../src/commands/ads/google/draft-status.ts","../src/commands/ads/google/stage-streak.ts"],"sourcesContent":["import type { GoogleDraftListResponse } from \"@baker/api/ads-google\";\n\n/**\n * `--customer-id` on the draft reads. A draft belongs to the chat, not to an account, and may span\n * several; every other Google Ads command takes the flag, so agents carry it here (BAKER-497).\n * `list` narrows to that account and says what the others still hold; `validate` and `show` keep\n * their whole answer, because publish sends every account together and a ref names one op.\n */\n\nfunction changes(n: number, staged: boolean): string {\n const noun = staged ? \"staged change\" : \"change\";\n return n === 1 ? `1 ${noun}` : `${n} ${noun}s`;\n}\n\n/**\n * The draft as one account holds it, with what the rest of the chat's draft holds. `empty` is the\n * readable line for an account holding none of it, where the whole-chat \"nothing staged\" would be false.\n * Only an active draft's other changes are still to publish; a published one's are already done.\n */\nexport function draftInAccount(\n data: GoogleDraftListResponse,\n customerId: string,\n): { data: GoogleDraftListResponse; hints: string[]; empty?: string } {\n const ops = data.ops.filter((op) => op.customerId === customerId);\n const narrowed = {\n ...data,\n count: ops.length,\n ops,\n ...(data.tree ? { tree: data.tree.filter((node) => node.customerId === customerId) } : {}),\n };\n const others = data.ops.filter((op) => op.customerId !== customerId);\n if (others.length === 0) return { data: narrowed, hints: [] };\n const staged = data.status === \"active\";\n const accounts = [...new Set(others.map((op) => op.customerId))];\n const where = `account${accounts.length === 1 ? \"\" : \"s\"} ${accounts.join(\", \")}`;\n const one = others.length === 1;\n if (ops.length === 0) {\n return {\n data: narrowed,\n empty: `No Google Ads changes in account ${customerId} on this chat.`,\n hints: [`This chat's ${changes(others.length, staged)} ${one ? \"is\" : \"are\"} in ${where}, not ${customerId}.`],\n };\n }\n const more = `${others.length} more ${staged ? \"staged \" : \"\"}change${one ? \"\" : \"s\"}`;\n const verb = staged ? (one ? \"publishes\" : \"publish\") : one ? \"is\" : \"are\";\n return {\n data: narrowed,\n hints: [\n `Showing account ${customerId} only. ${more} in ${where} ${verb} ${staged ? \"with this chat too\" : \"on this chat too\"}; \\`baker ads google draft list\\` without --customer-id shows ${one ? \"it\" : \"them\"}.`,\n ],\n };\n}\n\n/** `draft validate --customer-id`: said back, since the verdicts still cover every account. */\nexport function validateAccountHint(customerId: string): string {\n return `Validated this chat's whole draft, not only account ${customerId}: publish sends every account's changes together, so each verdict above counts.`;\n}\n\n/** `draft show --customer-id` naming another account than the op's own. */\nexport function showAccountHint(customerId: string, opCustomerId: string): string | undefined {\n return opCustomerId === customerId ? undefined : `This op is staged in account ${opCustomerId}, not ${customerId}.`;\n}\n","import { readFileSync } from \"node:fs\";\nimport {\n GOOGLE_DRAFT_BATCH_MAX,\n type GoogleDraftListResponse,\n type GoogleDraftStageBatchResponse,\n type GoogleDraftStageResponse,\n googleDraftOpInputSchema,\n OP_TOO_LARGE_FIX,\n OP_TOO_LARGE_MESSAGE_START,\n toMicros,\n} from \"@baker/api/ads-google\";\nimport { describeOpPayload } from \"@baker/api/capabilities\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../../client.ts\";\nimport { requireChatId, resolveChatId } from \"../../../env.ts\";\nimport { handleConnectionError, isNotConnectedError } from \"../../../error-handler.ts\";\nimport { repeatedValues } from \"../../../lib/repeatedFlags.ts\";\nimport { payloadArg } from \"../../../schemas.ts\";\nimport { payloadFix } from \"../../capabilities/fix.ts\";\nimport { booleanWordPositionalError } from \"../boolean-word-positional.ts\";\nimport { adCopyHints } from \"../copy-hints.ts\";\nimport { hintLines, withHints } from \"../hints.ts\";\nimport { bareCustomerId, writeJsonEnvelope } from \"../output.ts\";\nimport { termsRefusalFix } from \"../terms-output.ts\";\nimport { copyListCountFix } from \"./copy-list-usage.ts\";\nimport { draftInAccount } from \"./draft-account.ts\";\nimport { renderDraftStatus } from \"./draft-status.ts\";\nimport { recordSingleStage } from \"./stage-streak.ts\";\n\n/**\n * Shared plumbing for the staged Google Ads write commands. Writes NEVER hit\n * the Google Ads API directly: every command stages an op against this chat's\n * draft (`/api/ads/google/draft/stage`), the dashboard shows it as a pending\n * Google Ads change, and the draft applies as one `GoogleAdsService.Mutate`\n * request per advertiser account when the chat is published. `--customer-id` is\n * required on every write — a draft may span several accounts, so nothing is\n * picked for you.\n */\n\nexport function failWriteValidation(message: string): never {\n writeJsonEnvelope({ ok: false, error: { code: \"VALIDATION_ERROR\", message } });\n process.exit(1);\n}\n\nexport function requireCustomerId(args: Record<string, unknown>): string {\n const given = (args[\"customer-id\"] ?? args.customerId) as string | undefined;\n const raw = given === undefined ? undefined : bareCustomerId(String(given));\n if (!raw || !/^\\d{10}$/.test(raw)) {\n failWriteValidation(\"pass --customer-id as the 10-digit Google Ads customer id (386-508-3115 or 3865083115)\");\n }\n return raw;\n}\n\nexport function requireTarget(args: Record<string, unknown>, entity: string): string {\n // `--flag false` is refused, not documented: citty parses it as the flag set to TRUE plus a stray\n // positional nobody consumes, so on `conversions update --primary` it silently PROMOTES an action\n // into what every Maximize Conversions campaign bids toward. Caught here because this is the only\n // place on this surface that reads positionals, and every target-taking command goes through it.\n const booleanWord = booleanWordPositionalError(args, entity);\n if (booleanWord) {\n failWriteValidation(booleanWord);\n }\n const positional = Array.isArray(args._) ? args._[0] : undefined;\n const target = args.id ?? args.target ?? args.ref ?? positional;\n if (typeof target !== \"string\" || target.length === 0) {\n failWriteValidation(`pass the ${entity} resource name or id as the positional argument`);\n }\n return target;\n}\n\n/**\n * The targets a bulk status command was given: every positional (comma-separated ones split), plus\n * `--file` with one target per line (blank lines and `#` comments skipped), deduped in order. One\n * call then stages them all as one batch instead of one command per row.\n */\nexport function targetEntries(args: Record<string, unknown>, entity: string): string[] {\n const booleanWord = booleanWordPositionalError(args, entity);\n if (booleanWord) {\n failWriteValidation(booleanWord);\n }\n const positionals = Array.isArray(args._) ? args._.filter((v): v is string => typeof v === \"string\") : [];\n const raw = [...positionals.flatMap((v) => v.split(\",\")), ...rawFileEntries(args.file)]\n .map((v) => v.trim())\n .filter(Boolean);\n const targets = [...new Set(raw)];\n if (targets.length === 0) {\n failWriteValidation(`pass the ${entity} resource name(s) as positional arguments and/or --file (one per line)`);\n }\n if (targets.length > GOOGLE_DRAFT_BATCH_MAX) {\n failWriteValidation(`${targets.length} targets exceeds the batch limit of ${GOOGLE_DRAFT_BATCH_MAX} — split them`);\n }\n return targets;\n}\n\nexport function requireStringFlag(value: unknown, flag: string): string {\n if (typeof value !== \"string\" || value.length === 0) {\n failWriteValidation(`${flag} is required`);\n }\n return value;\n}\n\n/** Money flag in major currency units → micros. */\nexport function microsFlag(value: unknown, flag: string): number | undefined {\n if (value === undefined || value === null || value === \"\") {\n return undefined;\n }\n const num = Number(value);\n if (Number.isNaN(num) || num <= 0) {\n failWriteValidation(`${flag} must be a positive amount (major currency units, e.g. 50 or 50.00)`);\n }\n return toMicros(num);\n}\n\n/** Split a comma-separated flag into trimmed non-empty values. */\nexport function listFlag(value: unknown): string[] | undefined {\n if (typeof value !== \"string\" || value.length === 0) {\n return undefined;\n }\n const items = value\n .split(\",\")\n .map((v) => v.trim())\n .filter(Boolean);\n return items.length > 0 ? items : undefined;\n}\n\nexport interface KeywordEntry {\n text: string;\n matchType: string;\n}\n\nconst MATCH_TYPES = new Set([\"EXACT\", \"PHRASE\", \"BROAD\"]);\n\n/**\n * One raw keyword entry → { text, matchType }. A trailing `:EXACT|:PHRASE|:BROAD`\n * suffix overrides the default match type; colons and commas aren't legal in Google\n * keyword text, so the syntax is unambiguous.\n */\nfunction parseKeywordEntry(raw: string, defaultMatch: string | undefined): KeywordEntry {\n const colon = raw.lastIndexOf(\":\");\n if (colon > 0) {\n const suffix = raw\n .slice(colon + 1)\n .trim()\n .toUpperCase();\n if (MATCH_TYPES.has(suffix)) {\n return { text: raw.slice(0, colon).trim(), matchType: suffix };\n }\n failWriteValidation(`\"${raw}\": \":${raw.slice(colon + 1)}\" is not a match type (EXACT | PHRASE | BROAD)`);\n }\n if (!defaultMatch) {\n failWriteValidation(`\"${raw}\" has no match type — add a :EXACT/:PHRASE/:BROAD suffix or pass --match-type`);\n }\n return { text: raw, matchType: defaultMatch };\n}\n\n/**\n * Raw --text value(s) → individual entries: repeated flags and comma-separated\n * both work. The repeats have to come off `rawArgs`, because citty parses a\n * repeated flag down to its last value alone.\n */\nfunction rawTextEntries(value: unknown, rawArgs: readonly string[] | undefined): string[] {\n return repeatedValues(rawArgs, \"text\", value)\n .flatMap((v) => v.split(\",\"))\n .map((v) => v.trim())\n .filter(Boolean);\n}\n\n/** Newline-separated keyword file: one `text[:MATCH_TYPE]` per line; blank lines and `#` comments skipped. */\nfunction rawFileEntries(path: unknown): string[] {\n return typeof path === \"string\" && path.length > 0 ? fileLines(path) : [];\n}\n\n/** A text file's entries: one per line, trimmed; blank lines and `#` comments skipped. */\nexport function fileLines(path: string): string[] {\n return readFileSync(path, \"utf8\")\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line.length > 0 && !line.startsWith(\"#\"));\n}\n\n/**\n * The keyword batch a command was invoked with: comma-separated `--text` entries\n * (optional `:MATCH_TYPE` suffix each) plus `--file` lines, deduped, each falling\n * back to `--match-type`. One entry stages exactly like before; many stage as one batch.\n */\nexport function keywordEntries(args: Record<string, unknown>, rawArgs?: readonly string[]): KeywordEntry[] {\n const defaultMatch = typeof args[\"match-type\"] === \"string\" ? args[\"match-type\"].toUpperCase() : undefined;\n const raw = [...rawTextEntries(args.text, rawArgs), ...rawFileEntries(args.file)];\n if (raw.length === 0) {\n failWriteValidation(\"pass keywords via --text (comma-separated) and/or --file (one per line)\");\n }\n if (raw.length > GOOGLE_DRAFT_BATCH_MAX) {\n failWriteValidation(`${raw.length} keywords exceeds the batch limit of ${GOOGLE_DRAFT_BATCH_MAX}`);\n }\n const entries: KeywordEntry[] = [];\n const seen = new Set<string>();\n for (const item of raw) {\n const entry = parseKeywordEntry(item, defaultMatch);\n const key = JSON.stringify([entry.text, entry.matchType]);\n if (!seen.has(key)) {\n seen.add(key);\n entries.push(entry);\n }\n }\n return entries;\n}\n\n/**\n * The payloads behind `--file`: a path to a JSON file, or the JSON written inline. The file holds one\n * payload object, a JSON array of them, or JSON Lines (one object per line) — many payloads stage as\n * one batch, which is how a bulk change lands in one call instead of hundreds.\n *\n * Inline is here because every doc example already writes it that way — `packages/cli/README.md`\n * and the scaffold's `ads-google.md` both show `--file '{\"type\":\"image\",…}'` — while the arg only\n * ever read a path, so following the documentation answered with a raw ENOENT stack trace. Reading\n * a leading `{` or `[` as the payload makes those examples true rather than making the agent re-learn\n * the one shape that works.\n */\nexport function loadJsonPayloads(path: unknown): Array<Record<string, unknown>> {\n if (typeof path !== \"string\" || path.length === 0) {\n return [];\n }\n const inline = /^\\s*[[{]/.test(path);\n const source = inline ? \"inline JSON\" : path;\n const text = inline ? path : readFileSync(path, \"utf8\");\n return parsedPayloads(text, source).map((item, index, all) => {\n if (item === null || typeof item !== \"object\" || Array.isArray(item)) {\n failWriteValidation(\n all.length === 1 ? `${source} must contain a JSON object` : `${source}: item ${index} must be a JSON object`,\n );\n }\n return item as Record<string, unknown>;\n });\n}\n\n/** One JSON value (an array spreads into its items), else JSON Lines; the JSON error when neither parses. */\nfunction parsedPayloads(text: string, source: string): unknown[] {\n try {\n const parsed = JSON.parse(text) as unknown;\n return Array.isArray(parsed) ? parsed : [parsed];\n } catch (err) {\n if (!(err instanceof SyntaxError)) {\n throw err;\n }\n const lines = text.split(/\\r?\\n/).filter((line) => line.trim().length > 0);\n if (lines.length > 1) {\n return lines.map((line, index) => parseJsonLine(line, index, source));\n }\n failWriteValidation(`${source} is not valid JSON: ${err.message}`);\n }\n}\n\n/** One JSON Lines entry, or the line's own error naming where it is. */\nfunction parseJsonLine(line: string, index: number, source: string): unknown {\n try {\n return JSON.parse(line) as unknown;\n } catch (err) {\n return failWriteValidation(\n `${source} line ${index + 1} is not valid JSON: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n}\n\n/** The ONE op payload behind `--file`, for commands that change a single entity. */\nexport function loadJsonFileArg(path: unknown): Record<string, unknown> {\n const payloads = loadJsonPayloads(path);\n if (payloads.length > 1) {\n failWriteValidation(\n `this command changes one entity, and --file holds ${payloads.length} payloads — stage many changes from one file with \\`baker ads google draft stage --file\\` (one op per item: {\"kind\",\"customerId\",\"target\"?,\"payload\"?})`,\n );\n }\n return payloads[0] ?? {};\n}\n\n/** Flags override file keys — the file is the base, flags are the overrides. */\nexport function mergePayload(file: Record<string, unknown>, flags: Record<string, unknown>): Record<string, unknown> {\n const merged: Record<string, unknown> = { ...file };\n for (const [key, value] of Object.entries(flags)) {\n if (value !== undefined) {\n merged[key] = value;\n }\n }\n return merged;\n}\n\n/**\n * The `draft amend` patch: exactly one of `--file <path>` (JSON file) or `--patch '<json>'`\n * (inline string), and it must parse to a JSON object — RFC-7386 merge-patch needs an object to\n * merge, and a stray array/scalar would silently no-op or replace the whole payload.\n */\nexport function loadPatchArg(args: Record<string, unknown>): Record<string, unknown> {\n const file = typeof args.file === \"string\" && args.file.length > 0 ? args.file : undefined;\n const inline = typeof args.patch === \"string\" && args.patch.length > 0 ? args.patch : undefined;\n if (Boolean(file) === Boolean(inline)) {\n failWriteValidation(\"pass exactly one of --file <patch.json> or --patch '<json>'\");\n }\n if (file) {\n return loadJsonFileArg(file);\n }\n try {\n const parsed = JSON.parse(inline as string) as unknown;\n if (parsed === null || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n failWriteValidation(\"--patch must be a JSON object\");\n }\n return parsed as Record<string, unknown>;\n } catch (err) {\n if (err instanceof SyntaxError) {\n failWriteValidation(`--patch is not valid JSON: ${err.message}`);\n }\n throw err;\n }\n}\n\nexport function handleGoogleError(err: unknown): never {\n if (err instanceof ApiError) {\n // Covers both \"no connection\" and staging's 403 for an account this company\n // never connected — same remedy either way: connect, and pick the account.\n if (isNotConnectedError(err.code, err.message)) {\n handleConnectionError(\"google_ads\", err.message);\n }\n const terms = termsRefusalFix(err.code, err.message);\n if (terms) {\n writeJsonEnvelope({\n ok: false,\n error: { code: terms.code, message: err.message, retryable: false, fix: terms.fix },\n });\n process.exit(1);\n }\n if (err.message.includes(OP_TOO_LARGE_MESSAGE_START)) {\n writeJsonEnvelope({\n ok: false,\n error: {\n code: \"OP_TOO_LARGE\",\n message: err.message,\n retryable: false,\n fix: { action: \"split_the_change\", explanation: OP_TOO_LARGE_FIX },\n },\n });\n process.exit(1);\n }\n writeJsonEnvelope({ ok: false, error: { code: err.code ?? \"API_ERROR\", message: err.message } });\n process.exit(1);\n }\n writeJsonEnvelope({\n ok: false,\n error: { code: \"UNKNOWN\", message: err instanceof Error ? err.message : String(err) },\n });\n process.exit(1);\n}\n\ninterface StageEnvelope extends Record<string, unknown> {\n ok: true;\n data: GoogleDraftStageResponse;\n}\n\n/**\n * A no-op response isn't a failure — the change was already in place, so nothing was\n * staged. Say so explicitly, otherwise the agent re-stages it or reports work it\n * didn't do.\n */\nfunction noopHints(data: GoogleDraftStageResponse): string[] {\n return data.staged\n ? []\n : [`NOT STAGED — ${data.reason}. Nothing to publish for this change; say so rather than reporting it as done.`];\n}\n\n/**\n * What to tell the agent about the ops a batch didn't stage.\n *\n * Two different things land in `skipped`: a change already in place, and a change Google refuses\n * outright (editing an experiment campaign's status, dates or budget). This hint used to assert the\n * first — \"already in the requested state\" — which read as \"done\" for a refusal the user never heard\n * about. So it leads with each op's own reason and asks for the refusals to be passed on.\n */\nexport function skippedHints(skipped: Array<{ summary: string; reason: string }>, total: number): string[] {\n if (skipped.length === 0) {\n return [];\n }\n const detail = skipped.map((s) => `${s.summary} — ${s.reason}`).join(\"; \");\n return [\n `${skipped.length} of ${total} op(s) NOT STAGED: ${detail}. Don't re-stage them; tell the user which changes couldn't be made and why, then carry on with the rest.`,\n ];\n}\n\n/**\n * Preflight-validates the op against the shared `@baker/api/ads-google`\n * contract (the same schema the backend enforces), then stages it. Prints the\n * staged envelope — ref, mode (always `live`: publishing reaches the real\n * account), summary, warnings.\n */\nexport async function stageGoogleOp(raw: Record<string, unknown>, hints?: string[]): Promise<void> {\n const preflight = googleDraftOpInputSchema.safeParse(raw);\n if (!preflight.success) {\n const fields = preflight.error.issues.map((issue) => ({ path: issue.path.join(\".\"), message: issue.message }));\n writeJsonEnvelope({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: fields.map((f) => (f.path ? `${f.path}: ${f.message}` : f.message)).join(\"; \"),\n fields,\n fix: copyListCountFix(raw, preflight.error.issues) ?? payloadFix(\"google-ads\", googleDraftOpInputSchema, raw),\n },\n });\n process.exit(1);\n }\n try {\n const chatId = requireChatId();\n const response = await apiPost<StageEnvelope>(\"/api/ads/google/draft/stage\", { chatId, op: preflight.data });\n const allHints = [\n ...noopHints(response.data),\n ...recordSingleStage(chatId, preflight.data.kind),\n ...(hints ?? []),\n ...(await adCopyHints(preflight.data)),\n ];\n writeJsonEnvelope(withHints(response, allHints));\n } catch (err) {\n handleGoogleError(err);\n }\n}\n\n/** Stage a create op: `{ kind, customerId, payload }`. */\nexport async function stageCreate(\n kind: string,\n customerId: string,\n payload: Record<string, unknown>,\n hints?: string[],\n): Promise<void> {\n await stageGoogleOp({ kind, customerId, payload }, hints);\n}\n\ninterface StageBatchEnvelope extends Record<string, unknown> {\n ok: true;\n data: GoogleDraftStageBatchResponse;\n}\n\n/**\n * A batch reads every target's before-state and checks each op against the account, which for a few\n * hundred removals outlasts the default 60 s. Timing out early reported a batch as failed that went on\n * to stage, so a retry then collided with the ops it had already staged.\n */\nconst STAGE_BATCH_TIMEOUT_MS = 5 * 60_000;\n\n/**\n * Stage several ops as ONE request (`/stage-batch`) — all-or-nothing on the backend,\n * one rate-limit hit instead of one per keyword. A single op falls through to the\n * plain stage path so its envelope (and amend behavior) stays exactly as before.\n */\nexport async function stageGoogleOps(rawOps: Array<Record<string, unknown>>, hints?: string[]): Promise<void> {\n if (rawOps.length === 1 && rawOps[0]) {\n await stageGoogleOp(rawOps[0], hints);\n return;\n }\n const ops: unknown[] = [];\n for (const [index, raw] of rawOps.entries()) {\n const preflight = googleDraftOpInputSchema.safeParse(raw);\n if (!preflight.success) {\n const fields = preflight.error.issues.map((issue) => ({\n path: `ops[${index}].${issue.path.join(\".\")}`,\n message: issue.message,\n }));\n writeJsonEnvelope({\n ok: false,\n error: {\n code: \"VALIDATION_ERROR\",\n message: fields.map((f) => `${f.path}: ${f.message}`).join(\"; \"),\n fields,\n fix: copyListCountFix(raw, preflight.error.issues) ?? payloadFix(\"google-ads\", googleDraftOpInputSchema, raw),\n },\n });\n process.exit(1);\n }\n ops.push(preflight.data);\n }\n try {\n const chatId = requireChatId();\n const response = await apiPost<StageBatchEnvelope>(\n \"/api/ads/google/draft/stage-batch\",\n { chatId, ops },\n { timeoutMs: STAGE_BATCH_TIMEOUT_MS },\n );\n const allHints = [\n ...skippedHints(response.data.skipped ?? [], ops.length),\n ...(hints ?? []),\n ...(await adCopyHints(ops)),\n ];\n writeJsonEnvelope(withHints(response, allHints));\n } catch (err) {\n handleGoogleError(err);\n }\n}\n\n/** Stage an update op: `{ kind, customerId, target, payload }`. */\nexport async function stageUpdate(\n kind: string,\n customerId: string,\n target: string,\n payload: Record<string, unknown>,\n hints?: string[],\n): Promise<void> {\n await stageGoogleOp({ kind, customerId, target, payload }, hints);\n}\n\n/** Stage a target-only op (pause/resume/remove/detach): `{ kind, customerId, target }`. */\nexport async function stageTarget(kind: string, customerId: string, target: string, hints?: string[]): Promise<void> {\n await stageGoogleOp({ kind, customerId, target }, hints);\n}\n\nexport async function draftAction(path: string, body: Record<string, unknown>, chat?: unknown): Promise<void> {\n try {\n const chatId = resolveChatId(chat);\n const response = await apiPost<Record<string, unknown>>(path, { chatId, ...body });\n writeJsonEnvelope(response);\n } catch (err) {\n handleGoogleError(err);\n }\n}\n\ninterface DraftListEnvelope extends Record<string, unknown> {\n ok: boolean;\n data?: GoogleDraftListResponse;\n}\n\n/**\n * List the staged draft. By default renders a readable campaign ▸ ad group ▸ ad status tree so the\n * agent can review everything it has staged at a glance; `--json` returns the raw envelope for tools,\n * and `--full` that envelope with every op's payload.\n */\nexport async function draftListAction(json: boolean, chat?: unknown, full = false, customerId?: string): Promise<void> {\n try {\n const chatId = resolveChatId(chat);\n const listed = await apiPost<DraftListEnvelope>(\"/api/ads/google/draft\", {\n chatId,\n ...(full ? { full: true } : {}),\n });\n const inAccount =\n customerId !== undefined && listed.ok && listed.data ? draftInAccount(listed.data, customerId) : undefined;\n const response = inAccount ? withHints({ ...listed, data: inAccount.data }, inAccount.hints) : listed;\n if (json || full || !response.ok || !response.data) {\n writeJsonEnvelope(response);\n return;\n }\n process.stdout.write(`${inAccount?.empty ?? renderDraftStatus(response.data)}${hintLines(response)}\\n`);\n } catch (err) {\n handleGoogleError(err);\n }\n}\n\nexport const customerIdArg = {\n \"customer-id\": { type: \"string\" as const, description: \"10-digit Google Ads customer id\" },\n};\n/** The entity a command changes, read by position the way `requireTarget` reads it — declared so --help shows it. */\nexport function targetArg(entity: string) {\n return {\n id: {\n type: \"positional\" as const,\n description: `The ${entity} to change: its id or resource name (customers/…)`,\n required: false,\n },\n };\n}\n\nconst PAYLOAD_FIELDS = \"run `baker schema` on this command for every field the payload takes\";\n\nfunction payloadShape(kind: string): () => string | undefined {\n return () => describeOpPayload(googleDraftOpInputSchema, kind);\n}\n\n/** `--file` for a command that stages one `kind` op; `baker schema` prints that op's payload shape. */\nexport function fileArg(kind: string) {\n return {\n file: payloadArg(\n {\n type: \"string\" as const,\n description: `The op payload: a JSON file path, or the JSON object inline (flags override it) — ${PAYLOAD_FIELDS}`,\n },\n payloadShape(kind),\n ),\n };\n}\n\n/** `--file` that stages one or many `kind` ops; `baker schema` prints that op's payload shape. */\nexport function fileBatchArg(kind: string) {\n return {\n file: payloadArg(\n {\n type: \"string\" as const,\n description: `The op payload: a JSON file path or inline JSON — one object, or a JSON array / JSON Lines of objects to stage many in one call (up to 500) — ${PAYLOAD_FIELDS}`,\n },\n payloadShape(kind),\n ),\n };\n}\n\n/** A create command whose payload is a JSON file or inline JSON — one object or an array staged as one batch. */\nexport function fileCreateCommand(\n name: string,\n kind: string,\n description: string,\n hints?: string[] | ((payload: Record<string, unknown>) => string[]),\n) {\n return defineCommand({\n meta: { name, description },\n args: { ...customerIdArg, ...fileBatchArg(kind) },\n run: async ({ args }) => {\n const customerId = requireCustomerId(args);\n const payloads = loadJsonPayloads(args.file);\n if (payloads.length === 0 || payloads.some((payload) => Object.keys(payload).length === 0)) {\n failWriteValidation(`${kind} needs --file with the op payload (one object, or a JSON array to stage many)`);\n }\n if (payloads.length > GOOGLE_DRAFT_BATCH_MAX) {\n failWriteValidation(\n `${payloads.length} payloads exceeds the batch limit of ${GOOGLE_DRAFT_BATCH_MAX} — split the file`,\n );\n }\n const payloadHints = [\n ...new Set(payloads.flatMap((payload) => (typeof hints === \"function\" ? hints(payload) : (hints ?? [])))),\n ];\n await stageGoogleOps(\n payloads.map((payload) => ({ kind, customerId, payload })),\n payloadHints,\n );\n },\n });\n}\n\n/**\n * `--bid-modifier` as a number, validated against the range Google actually accepts.\n *\n * Rejecting the (0, 0.1) gap here rather than at the backend is the point: 0 and 0.1 are a hundredth\n * apart in value and mean \"never serve\" versus \"bid a tenth\", so a typo between them is a real spend\n * decision, and the error should arrive before anything is staged.\n */\nexport function bidModifierFlag(value: unknown): number {\n if (value === undefined || value === null || value === \"\") {\n failWriteValidation(\n \"--bid-modifier is required: 1 for no adjustment, 1.25 to bid 25% more, 0.9 to bid 10% less, 0 to stop serving on a device\",\n );\n }\n const num = Number(value);\n if (Number.isNaN(num) || num < 0 || num > 10 || (num > 0 && num < 0.1)) {\n failWriteValidation(\"--bid-modifier must be 0 (stop serving on it) or between 0.1 and 10.0\");\n }\n return num;\n}\n","import type { z } from \"zod\";\n\n/** Appended to each copy flag's help, so `--help` and `baker schema` say how to pass a comma. */\nexport const AD_COPY_LIST_USAGE =\n \"repeat the flag once per item, or pass one comma-separated list and wrap an item that contains a comma in double quotes: '\\\"Fast, free quotes\\\",Book today'. A flag given once is read as a list, so a lone item with a comma needs its double quotes too: '\\\"Fast, free quotes\\\"'\";\n\n/** The op's copy-list fields, by the flag an agent passes them with. */\nconst COPY_LIST_FLAG: Readonly<Record<string, string>> = {\n headlines: \"--headlines\",\n descriptions: \"--descriptions\",\n longHeadlines: \"--long-headlines\",\n};\n\ninterface CountRefusal {\n flag: string;\n count: number | undefined;\n bound: string;\n tooMany: boolean;\n}\n\nfunction valueAt(root: unknown, path: readonly PropertyKey[]): unknown {\n let node = root;\n for (const key of path) {\n if (node === null || typeof node !== \"object\") return undefined;\n node = (node as Record<PropertyKey, unknown>)[key];\n }\n return node;\n}\n\nfunction countRefusal(op: unknown, issue: z.core.$ZodIssue): CountRefusal | undefined {\n if ((issue.code !== \"too_big\" && issue.code !== \"too_small\") || issue.origin !== \"array\") return undefined;\n const flag = COPY_LIST_FLAG[String(issue.path.at(-1))];\n if (!flag) return undefined;\n const value = valueAt(op, issue.path);\n const count = Array.isArray(value) ? value.length : undefined;\n return issue.code === \"too_big\"\n ? { flag, count, bound: `at most ${issue.maximum}`, tooMany: true }\n : { flag, count, bound: `at least ${issue.minimum}`, tooMany: false };\n}\n\n/**\n * The fix for a stage refused only for how many headlines, descriptions or long headlines it has.\n *\n * That is a limit on a field the agent named correctly, so the generic \"read `baker capabilities`,\n * do not guess another field name\" sent it through draft list, schema and --help before it saw the\n * cause. Too many items is usually copy cut at its commas — a flag given once is a comma-separated\n * list, so \"Rated 4,5/5\" becomes two items — which is why that case names the forms that keep a\n * comma. Undefined when anything else was refused too, so the capabilities pointer still covers it.\n */\nexport function copyListCountFix(\n op: unknown,\n issues: readonly z.core.$ZodIssue[],\n): { action: string; explanation: string } | undefined {\n const refusals = issues.map((issue) => countRefusal(op, issue));\n if (refusals.length === 0 || refusals.some((refusal) => refusal === undefined)) return undefined;\n const counted = refusals.filter((refusal): refusal is CountRefusal => refusal !== undefined);\n const limits = counted\n .map(({ flag, count, bound }) => `${flag} has ${count ?? \"the wrong number of\"} items; this ad takes ${bound}.`)\n .join(\" \");\n const commaCause = counted.some((refusal) => refusal.tooMany)\n ? ' If you meant fewer items, the copy was cut at its commas: a flag given once is read as a comma-separated list, so an item with a comma in it (\"Fast, free quotes\", a decimal like \"4,5/5\") becomes two. To keep a comma, ' +\n `${AD_COPY_LIST_USAGE} — or put the content in --file as JSON.`\n : \"\";\n return {\n action: \"fix_copy_list_count\",\n explanation: `${limits}${commaCause} ${commaCause ? \"Otherwise add\" : \"Add\"} or drop items to fit the limit, then stage again; the field names are right.`,\n };\n}\n","import type {\n GoogleDraftListResponse,\n GoogleDraftStatusCollection,\n GoogleDraftStatusNode,\n} from \"@baker/api/ads-google\";\n\n/**\n * Render the staged Google Ads draft as a readable campaign ▸ ad group ▸ ad tree — the CLI\n * counterpart to the dashboard's Google Ads tab, so an agent can review everything it has staged\n * with one command instead of reading raw JSON. Pure: takes the draft-list response, returns text.\n */\n\nconst OPERATION_LABELS: Record<string, string> = {\n create: \"Creating\",\n update: \"Updating\",\n pause: \"Pausing\",\n resume: \"Resuming\",\n remove: \"Removing\",\n};\n\nfunction badge(node: GoogleDraftStatusNode): string {\n const label = node.operation ? OPERATION_LABELS[node.operation] : undefined;\n if (label) {\n return label;\n }\n return node.existing ? \"on Google Ads\" : \"staged\";\n}\n\nfunction collectionLine(collection: GoogleDraftStatusCollection): string | undefined {\n const parts: string[] = [];\n if (collection.added > 0) {\n parts.push(`+${collection.added}`);\n }\n if (collection.existing > 0) {\n parts.push(`${collection.existing} existing`);\n }\n if (collection.removed > 0) {\n parts.push(`-${collection.removed}`);\n }\n // Neither an add nor a remove — a member that stays in the set with a changed value (a device's\n // bid adjustment). Left out, a draft whose only criterion change is one printed no line at all.\n if ((collection.updated ?? 0) > 0) {\n parts.push(`~${collection.updated}`);\n }\n return parts.length > 0 ? `${collection.label}: ${parts.join(\", \")}` : undefined;\n}\n\n/**\n * Every advertiser account the tree touches. A draft may legitimately span\n * several, and a criterion id is derived from the keyword's text and match type\n * — so the same keyword carries the same id in every account. The account is\n * printed on each node once there is more than one, and left off when there is not.\n */\nfunction accountsInTree(nodes: readonly GoogleDraftStatusNode[]): Set<string> {\n const accounts = new Set<string>();\n const walk = (node: GoogleDraftStatusNode): void => {\n accounts.add(node.customerId);\n for (const child of node.children) {\n walk(child);\n }\n };\n for (const node of nodes) {\n walk(node);\n }\n return accounts;\n}\n\nfunction renderNode(node: GoogleDraftStatusNode, depth: number, lines: string[], showAccount: boolean): void {\n const indent = \" \".repeat(depth);\n const account = showAccount ? ` · account ${node.customerId}` : \"\";\n lines.push(`${indent}• ${node.name} · ${badge(node)}${account}`);\n for (const warning of node.warnings ?? []) {\n lines.push(`${indent} ⚠ ${warning}`);\n }\n for (const collection of node.collections) {\n const line = collectionLine(collection);\n if (line) {\n lines.push(`${indent} ${line}`);\n }\n }\n for (const child of node.children) {\n renderNode(child, depth + 1, lines, showAccount);\n }\n}\n\nconst RESOURCE_ENTITIES = new Set([\n \"sharedSet\",\n \"biddingStrategy\",\n \"audience\",\n \"conversionAction\",\n \"label\",\n \"budget\",\n \"asset\",\n]);\n\nfunction renderSection(title: string, nodes: GoogleDraftStatusNode[], lines: string[], showAccount: boolean): void {\n if (nodes.length === 0) {\n return;\n }\n lines.push(\"\");\n lines.push(title);\n for (const node of nodes) {\n renderNode(node, 1, lines, showAccount);\n }\n}\n\nfunction renderAdvisories(data: GoogleDraftListResponse, lines: string[]): void {\n const advisories = data.advisories ?? [];\n // Every advisory is phrased as something to settle BEFORE publishing. On a published draft there\n // is nothing left to settle here, and printing them reads as work still outstanding on this chat.\n if (advisories.length === 0 || data.status === \"applied\") {\n return;\n }\n lines.push(\"\");\n // Two kinds of finding share this block: build-out nudges (\"this ad group has one ad\") and\n // whole-draft coherence findings (\"this campaign will report zero conversions\", \"two of your\n // campaigns bid on the same keyword\"). The coherence ones come first and cost money, so the\n // heading no longer frames the block as optional polish.\n lines.push(\"Advisories (non-blocking, checked across the whole draft — settle these before you publish)\");\n for (const advisory of advisories) {\n lines.push(` • ${advisory.message}`);\n }\n}\n\n/**\n * What the publish did, once there is a publish to report.\n *\n * A published Google Ads draft rendered exactly like a staged one — same count, every op still\n * reading \"Creating\" — so the surface `.claude/rules/cli-env.md` sends an agent to for the outcome\n * could not answer, and a failed op was invisible in the human output while sitting in the JSON\n * envelope the whole time. Found by publishing a BUSINESS_LOGO link that Google refused with\n * \"Customer is not verified\": the draft still read \"4 staged changes\". LinkedIn fixed the same\n * shape first; this is its counterpart.\n */\nfunction renderOutcome(data: GoogleDraftListResponse, lines: string[]): void {\n const counts = new Map<string, number>();\n for (const op of data.ops) {\n const status = op.result?.status ?? \"pending\";\n counts.set(status, (counts.get(status) ?? 0) + 1);\n }\n const summary = [...counts].map(([status, count]) => `${count} ${status}`).join(\", \");\n lines.push(`Google Ads — published · ${summary || `${data.count} op(s)`} · ${data.mode}`);\n // A failure is the reason to read this at all, so it is named with its error rather than left as\n // a number to go and look up.\n for (const op of data.ops) {\n const status = op.result?.status;\n if (status !== \"failed\" && status !== \"skipped\") {\n continue;\n }\n const reason = op.result?.error ?? op.result?.skippedBecause ?? \"no reason recorded\";\n lines.push(` ✗ ${op.summary} — ${status}: ${reason}`);\n }\n}\n\nexport function renderDraftStatus(data: GoogleDraftListResponse): string {\n if (data.status === \"none\" || data.count === 0) {\n return \"No staged Google Ads changes on this chat.\";\n }\n const modeNote =\n data.mode === \"live\"\n ? \"Live — publishing writes directly to Google Ads.\"\n : \"Simulated — publishing completes the whole draft without calling Google Ads.\";\n const lines: string[] = [];\n if (data.status === \"applied\") {\n renderOutcome(data, lines);\n } else if (data.status === \"publishing\") {\n lines.push(`Google Ads — publishing ${data.count} change${data.count === 1 ? \"\" : \"s\"} · ${data.mode}`);\n } else {\n lines.push(`Google Ads — ${data.count} staged change${data.count === 1 ? \"\" : \"s\"} · ${data.mode}`);\n }\n lines.push(modeNote);\n\n const tree = data.tree ?? [];\n const showAccount = accountsInTree(tree).size > 1;\n renderSection(\n \"Shared resources\",\n tree.filter((node) => RESOURCE_ENTITIES.has(node.entity)),\n lines,\n showAccount,\n );\n renderSection(\n \"Campaigns\",\n tree.filter((node) => node.entity === \"campaign\"),\n lines,\n showAccount,\n );\n const rest = tree.filter((node) => !RESOURCE_ENTITIES.has(node.entity) && node.entity !== \"campaign\");\n renderSection(\"Other\", rest, lines, showAccount);\n renderAdvisories(data, lines);\n\n return lines.join(\"\\n\");\n}\n","import { cacheGet, cacheSet } from \"../cache.ts\";\n\n/**\n * Bulk work done as a loop of single commands — one `keywords update` per keyword, one\n * `negative-keywords remove` per term — is one request, one rate-limit hit and one tool call per row;\n * production saw 1,284 of them. The CLI cannot see the loop from inside one call, so it remembers the\n * last few single stages per chat and, once the same kind repeats, says how to do the rest in one call.\n */\n\nexport interface StageStreak {\n kind: string;\n count: number;\n lastAt: number;\n}\n\n/** Singles further apart than this are separate decisions, not a loop. */\nconst STREAK_WINDOW_MS = 5 * 60_000;\n/** The streak length that reads as a loop. */\nconst STREAK_THRESHOLD = 5;\n\nexport function nextStageStreak(previous: StageStreak | undefined, kind: string, now: number): StageStreak {\n const continues = previous && previous.kind === kind && now - previous.lastAt <= STREAK_WINDOW_MS;\n return { kind, count: continues ? previous.count + 1 : 1, lastAt: now };\n}\n\n/** The one-call form of a kind, where a command has one beside `draft stage --file`. */\nconst BATCH_FORMS: Record<string, string> = {\n \"google.keyword.add\": \"`keywords add --file keywords.txt` (one term[:MATCH_TYPE] per line)\",\n \"google.keyword.update\":\n \"`keywords pause|resume <resource name> <resource name>…` (or --file, one per line) for status\",\n \"google.keyword.remove\": \"`draft stage --file` with one google.keyword.remove per target\",\n \"google.negativeKeyword.add\": \"`negative-keywords add --file terms.txt`\",\n \"google.sharedSetMember.add\": \"`keyword-lists add --file terms.txt`\",\n \"google.sharedSetMember.remove\": '`keyword-lists remove --list-ref <id> --text \"a,b,c\"`',\n};\n\nexport function stageStreakHints(streak: StageStreak): string[] {\n if (streak.count < STREAK_THRESHOLD) {\n return [];\n }\n const form = BATCH_FORMS[streak.kind];\n return [\n `LOOP: that is ${streak.count} ${streak.kind} ops staged one command at a time. Stop looping — put every remaining change in one file and stage them in ONE call: \\`baker ads google draft stage --file ops.json --customer-id <id>\\` (a JSON array of {\"kind\",\"target\"?,\"payload\"?}, up to 500, any mix of kinds)${form ? `, or ${form}` : \"\"}. Fix staged ops together with \\`draft amend --file\\`.`,\n ];\n}\n\nconst STREAK_CACHE = \"stage-streak\";\n\n/** Record one single stage on this chat and return the nudge it earns, if any. Never throws. */\nexport function recordSingleStage(chatId: string, kind: string): string[] {\n try {\n const streak = nextStageStreak(cacheGet<StageStreak>(STREAK_CACHE, chatId)?.data, kind, Date.now());\n cacheSet(STREAK_CACHE, chatId, streak, STREAK_WINDOW_MS);\n return stageStreakHints(streak);\n } catch {\n return [];\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,297 @@
1
+ // ../api/src/capabilities/surfaces.ts
2
+ var CAPABILITY_SURFACES = [
3
+ "google-ads",
4
+ "meta-ads",
5
+ "linkedin-ads",
6
+ "x-ads",
7
+ "chatgpt-ads",
8
+ "tag-manager",
9
+ "ga4",
10
+ "gsc",
11
+ "shopify"
12
+ ];
13
+ var CAPABILITY_SURFACE_SPECS = {
14
+ "google-ads": {
15
+ id: "google-ads",
16
+ label: "Google Ads",
17
+ provider: "google-ads",
18
+ resourceNoun: "ad account",
19
+ writePath: "staged-live",
20
+ writeScopes: ["https://www.googleapis.com/auth/adwords"],
21
+ commands: "baker ads google"
22
+ },
23
+ "meta-ads": {
24
+ id: "meta-ads",
25
+ label: "Meta Ads",
26
+ provider: "meta",
27
+ resourceNoun: "ad account",
28
+ writePath: "staged-live",
29
+ writeScopes: ["ads_management"],
30
+ commands: "baker ads meta"
31
+ },
32
+ "linkedin-ads": {
33
+ id: "linkedin-ads",
34
+ label: "LinkedIn Ads",
35
+ provider: "linkedin",
36
+ resourceNoun: "ad account",
37
+ writePath: "staged-live",
38
+ writeScopes: ["rw_ads"],
39
+ commands: "baker ads linkedin"
40
+ },
41
+ "x-ads": {
42
+ id: "x-ads",
43
+ label: "X Ads",
44
+ provider: "x-ads",
45
+ resourceNoun: "ad account",
46
+ writePath: "staged-live",
47
+ /**
48
+ * Empty on purpose, and the one surface where that does NOT mean read-only.
49
+ * X Ads authenticates with OAuth 1.0a, which has no scope strings at all —
50
+ * write access is granted to the *app* by X's Ads API access review, not
51
+ * per connection. There is therefore no scope to check, and inventing one
52
+ * would make `scopeBlockers` refuse every X write for a permission that
53
+ * does not exist.
54
+ */
55
+ writeScopes: [],
56
+ commands: "baker ads x"
57
+ },
58
+ "chatgpt-ads": {
59
+ id: "chatgpt-ads",
60
+ label: "ChatGPT Ads",
61
+ // Connected with the client's own Ads API key (`chatgptAdsConnections`), not an OAuth grant.
62
+ provider: "chatgpt-ads",
63
+ resourceNoun: "ad account",
64
+ writePath: "staged-live",
65
+ /**
66
+ * Empty because the pasted key has no scopes: it reaches its one account
67
+ * whole. When OpenAI approves Baker's OAuth app this becomes
68
+ * `ads.admin.all.write` and `connectsWith` goes away.
69
+ */
70
+ writeScopes: [],
71
+ commands: "baker ads chatgpt",
72
+ connectsWith: "api-key"
73
+ },
74
+ "tag-manager": {
75
+ id: "tag-manager",
76
+ label: "Tag Manager",
77
+ provider: "google-tag-manager",
78
+ resourceNoun: "container",
79
+ writePath: "staged-immediate",
80
+ writeScopes: [
81
+ "https://www.googleapis.com/auth/tagmanager.edit.containers",
82
+ "https://www.googleapis.com/auth/tagmanager.edit.containerversions",
83
+ "https://www.googleapis.com/auth/tagmanager.publish"
84
+ ],
85
+ commands: "baker tag-manager"
86
+ },
87
+ ga4: {
88
+ id: "ga4",
89
+ label: "Google Analytics 4",
90
+ provider: "google-analytics",
91
+ resourceNoun: "property",
92
+ // Like Tag Manager: staged during the chat, applied for real at publish,
93
+ // every time. A connection made before writes existed is
94
+ // read-only until it is reconnected, and `access` does NOT say so — it
95
+ // reports what the Baker app asks Google for, which is now app-wide
96
+ // read-write. The per-company signal is `scopeBlockers`, which compares
97
+ // `writeScopes` against the scopes that connection actually recorded.
98
+ writePath: "staged-immediate",
99
+ writeScopes: ["https://www.googleapis.com/auth/analytics.edit"],
100
+ commands: "baker ga4"
101
+ },
102
+ gsc: {
103
+ id: "gsc",
104
+ label: "Search Console",
105
+ provider: "google-search-console",
106
+ resourceNoun: "site",
107
+ writePath: "read-only",
108
+ writeScopes: ["https://www.googleapis.com/auth/webmasters"],
109
+ commands: "baker gsc"
110
+ },
111
+ shopify: {
112
+ id: "shopify",
113
+ label: "Shopify store",
114
+ provider: "shopify",
115
+ resourceNoun: "store",
116
+ // Staged during the chat and applied to the real store when it completes,
117
+ // every time; each applied change can be put back by another publish
118
+ // (`baker shopify undo`). The write permissions are optional scopes the
119
+ // store grants when a change first needs one, so `scopeBlockers` is the
120
+ // per-company signal.
121
+ writePath: "staged-immediate",
122
+ writeScopes: [
123
+ "write_products",
124
+ "write_publications",
125
+ "write_discounts",
126
+ "write_online_store_navigation",
127
+ "write_marketing_events"
128
+ ],
129
+ commands: "baker shopify"
130
+ }
131
+ };
132
+
133
+ // ../api/src/capabilities/index.ts
134
+ import { z as z2 } from "zod";
135
+
136
+ // ../api/src/capabilities/op-fields.ts
137
+ import { z } from "zod";
138
+ function def(schema) {
139
+ if (typeof schema !== "object" || schema === null) return void 0;
140
+ const internals = schema._zod;
141
+ return internals?.def;
142
+ }
143
+ function literalValue(schema) {
144
+ const values = def(schema)?.values;
145
+ const first = values?.[0];
146
+ return typeof first === "string" ? first : void 0;
147
+ }
148
+ function isObjectSchema(schema) {
149
+ return schema.properties !== void 0;
150
+ }
151
+ function unionText(members, at) {
152
+ const texts = [...new Set(members.map((member) => shapeText(member, { ...at, indent: `${at.indent} ` })))];
153
+ if (!members.every(isObjectSchema) || texts.length < 2) return texts.join(" | ");
154
+ return texts.map((text, index) => index === 0 ? text : `
155
+ ${at.indent}| ${text}`).join("");
156
+ }
157
+ function objectText(schema, at) {
158
+ const required = new Set(schema.required ?? []);
159
+ const fields = Object.entries(schema.properties ?? {}).map(([name, field]) => {
160
+ const value = shapeText(field, at);
161
+ const optional = required.has(name) ? "" : "?";
162
+ return value.startsWith("\n") || !value.includes("\n") ? `${name}${optional}: ${value}` : `${name}${optional}:
163
+ ${at.indent} ${value}`;
164
+ });
165
+ return fields.length === 0 ? "{}" : `{ ${fields.join(", ")} }`;
166
+ }
167
+ function typeText(type, schema, at) {
168
+ if (type === "array" && schema.prefixItems) {
169
+ return `[${schema.prefixItems.map((item) => shapeText(item, at)).join(", ")}]`;
170
+ }
171
+ if (type === "array") {
172
+ const item = schema.items ? shapeText(schema.items, at) : "unknown";
173
+ return item.includes(" ") ? `(${item})[]` : `${item}[]`;
174
+ }
175
+ if (type === "object") {
176
+ const values = typeof schema.additionalProperties === "object" ? shapeText(schema.additionalProperties, at) : "unknown";
177
+ return `{ [key: string]: ${values} }`;
178
+ }
179
+ return type === "integer" ? "number" : type;
180
+ }
181
+ function shapeText(schema, at) {
182
+ if (schema.$ref !== void 0) {
183
+ const name = schema.$ref.replace("#/$defs/", "");
184
+ const target = at.defs[name];
185
+ if (target === void 0 || at.expanding.has(name)) return "\u2026";
186
+ return shapeText(target, { ...at, expanding: /* @__PURE__ */ new Set([...at.expanding, name]) });
187
+ }
188
+ if (schema.const !== void 0) return JSON.stringify(schema.const);
189
+ if (schema.enum) return schema.enum.map((value) => JSON.stringify(value)).join(" | ");
190
+ const members = schema.oneOf ?? schema.anyOf;
191
+ if (members) return unionText(members, at);
192
+ if (isObjectSchema(schema)) return objectText(schema, at);
193
+ const types = Array.isArray(schema.type) ? schema.type : [schema.type ?? "unknown"];
194
+ return types.map((type) => typeText(type, schema, at)).join(" | ");
195
+ }
196
+ function describeOpPayload(union, kind) {
197
+ const options = def(union)?.options ?? union.options;
198
+ const option = options.find((candidate) => literalValue(def(candidate)?.shape?.kind) === kind);
199
+ const payload = def(option)?.shape?.payload;
200
+ if (payload === void 0) return void 0;
201
+ const schema = z.toJSONSchema(payload, { io: "input", unrepresentable: "any" });
202
+ return shapeText(schema, { defs: schema.$defs ?? {}, expanding: /* @__PURE__ */ new Set(), indent: "" });
203
+ }
204
+
205
+ // ../api/src/capabilities/index.ts
206
+ var capabilitySurfaceSchema = z2.enum(CAPABILITY_SURFACES);
207
+ var capabilitiesRequestSchema = z2.object({
208
+ /** Narrow to one surface. Omit for every surface the company could use. */
209
+ surface: capabilitySurfaceSchema.optional(),
210
+ /** Include the field-level contract of every op, not just the entity list. */
211
+ full: z2.boolean().optional(),
212
+ /**
213
+ * Who the chat acts as (`BAKER_ACTING_USER_ID`). Adds that person's own
214
+ * connected tools — they load for this turn, and for nobody else's.
215
+ */
216
+ actingUserId: z2.string().optional()
217
+ });
218
+ var capabilityResourceSchema = z2.object({
219
+ id: z2.string(),
220
+ name: z2.string().optional()
221
+ });
222
+ var capabilityOpSchema = z2.object({
223
+ kind: z2.string(),
224
+ /** True when the op changes something that already exists and must be named. */
225
+ needsTarget: z2.boolean(),
226
+ required: z2.array(z2.string()),
227
+ optional: z2.array(z2.string()),
228
+ /** Field → the values it accepts, for fields that take a fixed set. */
229
+ choices: z2.record(z2.string(), z2.array(z2.string())),
230
+ /** False when the platform accepts fields beyond the listed ones. */
231
+ fieldsAreComplete: z2.boolean()
232
+ });
233
+ var capabilityLimitViewSchema = z2.object({
234
+ capability: z2.string(),
235
+ cause: z2.enum(["not_built", "provider_forbids", "no_permission"]),
236
+ detail: z2.string()
237
+ });
238
+ var capabilityWriteModeSchema = z2.enum(["live", "applies-at-publish", "none"]);
239
+ var capabilitySurfaceReportSchema = z2.object({
240
+ surface: capabilitySurfaceSchema,
241
+ label: z2.string(),
242
+ connected: z2.boolean(),
243
+ /** What the user picked when connecting. Empty when nothing is selected yet. */
244
+ resources: z2.array(capabilityResourceSchema),
245
+ access: z2.enum(["read-write", "read-only", "not-connected"]),
246
+ writeMode: capabilityWriteModeSchema,
247
+ /** One sentence about the write mode, safe to repeat to the user. */
248
+ writeModeNote: z2.string(),
249
+ /** Entities this surface can change at all, e.g. "campaign", "keyword". */
250
+ writableEntities: z2.array(z2.string()),
251
+ /** Things wrong with the connection itself: needs reconnecting, missing a permission. */
252
+ blockers: z2.array(z2.string()),
253
+ /** What cannot be done here, and why. */
254
+ limits: z2.array(capabilityLimitViewSchema),
255
+ /** The per-op contract. Present when one surface was asked for, or with `full`. */
256
+ ops: z2.array(capabilityOpSchema).optional(),
257
+ /** Where to look next: `baker ads google`, `baker ga4`, … */
258
+ commands: z2.string()
259
+ });
260
+ var capabilityToolSchema = z2.object({
261
+ /** `microsoft_clarity`, `hubspot`, or the name the user gave a custom server. */
262
+ key: z2.string(),
263
+ label: z2.string(),
264
+ /** `mcp` — tools in the agent's own list. `platform` — signed in, read through the CLI. `baker` — Baker's own, always there. */
265
+ kind: z2.enum(["mcp", "platform", "baker"]),
266
+ /** How to actually reach it, in one phrase the agent can act on. */
267
+ reach: z2.string(),
268
+ /**
269
+ * Whether it can be used right now.
270
+ *
271
+ * A connection that exists and is expired is worse than one that is absent:
272
+ * it reads as available and fails at the moment it is needed, which on an
273
+ * unattended run is a report with a hole in it and no explanation.
274
+ */
275
+ ready: z2.boolean(),
276
+ /** Why it is not ready, or what it is for. Absent when neither needs saying. */
277
+ note: z2.string().optional()
278
+ });
279
+ var capabilitiesResponseSchema = z2.object({
280
+ ok: z2.literal(true),
281
+ data: z2.object({
282
+ surfaces: z2.array(capabilitySurfaceReportSchema),
283
+ /**
284
+ * Everything else this company can reach. Shared connections only —
285
+ * a teammate's private per-user connection belongs to whoever started the
286
+ * session and is visible in the agent's own tool list, not here.
287
+ */
288
+ tools: z2.array(capabilityToolSchema)
289
+ })
290
+ });
291
+
292
+ export {
293
+ CAPABILITY_SURFACES,
294
+ CAPABILITY_SURFACE_SPECS,
295
+ describeOpPayload
296
+ };
297
+ //# sourceMappingURL=chunk-3WOFZTGC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../api/src/capabilities/surfaces.ts","../../api/src/capabilities/index.ts","../../api/src/capabilities/op-fields.ts"],"sourcesContent":["/**\n * The marketing surfaces Baker can reach, and — the part that exists nowhere\n * else — what it cannot do on each of them.\n *\n * Every other introspection surface (`baker schema <cmd>`, the family docs)\n * describes what the agent CAN do. An agent that needs to know a capability is\n * absent has, until now, only been able to find out by trying: promising a GA4\n * property merge and then discovering the connection is read-only, or probing\n * four spellings of a conversion-action field that does not exist. Both cost a\n * retraction in front of a client.\n *\n * This module is deliberately thin on prose and heavy on `evidence`. A\n * hand-maintained \"cannot do\" list rots the same way the Tag Manager built-in\n * trigger whitelist in this repo rotted down to one entry, so each limit carries\n * a machine-checkable claim about the code that makes it true, and\n * `packages/backend/convex/capabilities/coverage.test.ts` fails when a claim\n * stops holding — when the scope is finally requested, when the op ships, when\n * the guard is renamed away. `asserted` is the escape hatch for the handful of\n * facts that live outside this repo entirely, and it has to say why.\n */\n\nexport const CAPABILITY_SURFACES = [\n \"google-ads\",\n \"meta-ads\",\n \"linkedin-ads\",\n \"x-ads\",\n \"chatgpt-ads\",\n \"tag-manager\",\n \"ga4\",\n \"gsc\",\n \"shopify\",\n] as const;\nexport type CapabilitySurfaceId = (typeof CAPABILITY_SURFACES)[number];\n\n/**\n * How a change on this surface reaches the outside world.\n * - `staged-live` — staged during the chat and applied against the real\n * ad account at publish. The per-company write flags\n * that could once make this simulated are retired, so\n * a completed chat spends the client's money.\n * - `staged-immediate` — staged during the chat and applied at publish for\n * real, every time. Tag Manager: completing the chat\n * changes the user's production container.\n * - `read-only` — nothing here writes.\n *\n * The first two split on consequence, not on certainty: both always apply, but\n * one costs ad spend and the other cuts a container version, and the agent has\n * to tell the user which.\n */\nexport type CapabilityWritePath = \"staged-live\" | \"staged-immediate\" | \"read-only\";\n\nexport interface CapabilitySurfaceSpec {\n id: CapabilitySurfaceId;\n /** How the user names it. */\n label: string;\n /** The `oauthProviders.type` this surface connects through; `chatgpt-ads` connects with a pasted key instead. */\n provider: string;\n /** What the user picks when connecting: \"ad account\", \"property\", \"container\". */\n resourceNoun: string;\n writePath: CapabilityWritePath;\n /**\n * OAuth scopes that would grant writes. Access is derived by intersecting these\n * with the scopes the app actually requests — which is why \"GA4 is read-only\"\n * is a fact about the connection, not a sentence someone typed.\n */\n writeScopes: string[];\n /** Where to look next on this surface. */\n commands: string;\n /**\n * How the company connects. Absent is an OAuth grant, whose scopes decide\n * access. `api-key` is a pasted key that reaches one account whole, so the\n * write path alone decides it.\n */\n connectsWith?: \"api-key\";\n}\n\nexport const CAPABILITY_SURFACE_SPECS: Readonly<Record<CapabilitySurfaceId, CapabilitySurfaceSpec>> = {\n \"google-ads\": {\n id: \"google-ads\",\n label: \"Google Ads\",\n provider: \"google-ads\",\n resourceNoun: \"ad account\",\n writePath: \"staged-live\",\n writeScopes: [\"https://www.googleapis.com/auth/adwords\"],\n commands: \"baker ads google\",\n },\n \"meta-ads\": {\n id: \"meta-ads\",\n label: \"Meta Ads\",\n provider: \"meta\",\n resourceNoun: \"ad account\",\n writePath: \"staged-live\",\n writeScopes: [\"ads_management\"],\n commands: \"baker ads meta\",\n },\n \"linkedin-ads\": {\n id: \"linkedin-ads\",\n label: \"LinkedIn Ads\",\n provider: \"linkedin\",\n resourceNoun: \"ad account\",\n writePath: \"staged-live\",\n writeScopes: [\"rw_ads\"],\n commands: \"baker ads linkedin\",\n },\n \"x-ads\": {\n id: \"x-ads\",\n label: \"X Ads\",\n provider: \"x-ads\",\n resourceNoun: \"ad account\",\n writePath: \"staged-live\",\n /**\n * Empty on purpose, and the one surface where that does NOT mean read-only.\n * X Ads authenticates with OAuth 1.0a, which has no scope strings at all —\n * write access is granted to the *app* by X's Ads API access review, not\n * per connection. There is therefore no scope to check, and inventing one\n * would make `scopeBlockers` refuse every X write for a permission that\n * does not exist.\n */\n writeScopes: [],\n commands: \"baker ads x\",\n },\n \"chatgpt-ads\": {\n id: \"chatgpt-ads\",\n label: \"ChatGPT Ads\",\n // Connected with the client's own Ads API key (`chatgptAdsConnections`), not an OAuth grant.\n provider: \"chatgpt-ads\",\n resourceNoun: \"ad account\",\n writePath: \"staged-live\",\n /**\n * Empty because the pasted key has no scopes: it reaches its one account\n * whole. When OpenAI approves Baker's OAuth app this becomes\n * `ads.admin.all.write` and `connectsWith` goes away.\n */\n writeScopes: [],\n commands: \"baker ads chatgpt\",\n connectsWith: \"api-key\",\n },\n \"tag-manager\": {\n id: \"tag-manager\",\n label: \"Tag Manager\",\n provider: \"google-tag-manager\",\n resourceNoun: \"container\",\n writePath: \"staged-immediate\",\n writeScopes: [\n \"https://www.googleapis.com/auth/tagmanager.edit.containers\",\n \"https://www.googleapis.com/auth/tagmanager.edit.containerversions\",\n \"https://www.googleapis.com/auth/tagmanager.publish\",\n ],\n commands: \"baker tag-manager\",\n },\n ga4: {\n id: \"ga4\",\n label: \"Google Analytics 4\",\n provider: \"google-analytics\",\n resourceNoun: \"property\",\n // Like Tag Manager: staged during the chat, applied for real at publish,\n // every time. A connection made before writes existed is\n // read-only until it is reconnected, and `access` does NOT say so — it\n // reports what the Baker app asks Google for, which is now app-wide\n // read-write. The per-company signal is `scopeBlockers`, which compares\n // `writeScopes` against the scopes that connection actually recorded.\n writePath: \"staged-immediate\",\n writeScopes: [\"https://www.googleapis.com/auth/analytics.edit\"],\n commands: \"baker ga4\",\n },\n gsc: {\n id: \"gsc\",\n label: \"Search Console\",\n provider: \"google-search-console\",\n resourceNoun: \"site\",\n writePath: \"read-only\",\n writeScopes: [\"https://www.googleapis.com/auth/webmasters\"],\n commands: \"baker gsc\",\n },\n shopify: {\n id: \"shopify\",\n label: \"Shopify store\",\n provider: \"shopify\",\n resourceNoun: \"store\",\n // Staged during the chat and applied to the real store when it completes,\n // every time; each applied change can be put back by another publish\n // (`baker shopify undo`). The write permissions are optional scopes the\n // store grants when a change first needs one, so `scopeBlockers` is the\n // per-company signal.\n writePath: \"staged-immediate\",\n writeScopes: [\n \"write_products\",\n \"write_publications\",\n \"write_discounts\",\n \"write_online_store_navigation\",\n \"write_marketing_events\",\n ],\n commands: \"baker shopify\",\n },\n};\n\n/**\n * Why a capability is missing. The distinction is what decides what the agent\n * tells the user, so it is part of the contract rather than left to prose:\n * - `not_built` — the platform allows it, Baker has not built it. It may\n * be possible by hand in the platform's own interface.\n * - `provider_forbids` — the platform rejects it however it is asked. Nobody can\n * do it, so do not hand the user a manual route.\n * - `no_permission` — the connection was never granted the access. Reading\n * works, changing does not; it is manual work today.\n */\nexport type CapabilityLimitCause = \"not_built\" | \"provider_forbids\" | \"no_permission\";\n\n/**\n * The checkable claim behind a limit. `coverage.test.ts` re-derives each one.\n */\nexport type CapabilityLimitEvidence =\n /** The app never requests this OAuth scope, so nothing can write here. */\n | { kind: \"scope\"; scope: string }\n /** No staged op with these kinds exists, so there is nothing to stage. */\n | { kind: \"noOpKind\"; kinds: string[] }\n /** A field on a staged op does not accept this value. */\n | { kind: \"noChoice\"; opKind: string; field: string; value: string }\n /** A stage-time guard refuses it before anything is spent. */\n | { kind: \"guard\"; module: string; symbol: string }\n /** Nothing in this repository encodes it; the note says why. */\n | { kind: \"asserted\"; note: string };\n\nexport interface CapabilityLimit {\n surface: CapabilitySurfaceId;\n /** What an agent would set out to do, in the words it would use. */\n capability: string;\n cause: CapabilityLimitCause;\n /** Why it cannot happen and what to do instead. Agent-facing, plain English. */\n detail: string;\n evidence: CapabilityLimitEvidence;\n}\n\n/**\n * Ordered by how often getting it wrong has cost something. Keep entries to\n * things an agent would plausibly promise a client before checking.\n */\nexport const CAPABILITY_LIMITS: readonly CapabilityLimit[] = [\n {\n surface: \"shopify\",\n capability: \"Edit the store's theme files — templates, sections, the theme's code or its stylesheet\",\n cause: \"provider_forbids\",\n detail:\n \"Shopify only lets an app write theme files with an exemption it grants case by case, and editing a merchant's theme breaks the App Store's rules for an app like Baker. Say exactly what to change and where (Online Store → Themes → Customize), and carry on with the rest of the job.\",\n evidence: {\n kind: \"asserted\",\n note: \"Shopify's rule, not this repository's: `write_themes` needs Shopify's exemption and App Store requirement 5.1.1 forbids theme edits by an app of this kind. The app's TOML declares no `write_themes` (scopes.test.ts holds the backend's list equal to it).\",\n },\n },\n {\n surface: \"shopify\",\n capability: \"Create or delete products, change stock levels, or change whether a product is published\",\n cause: \"not_built\",\n detail:\n \"Baker changes products' copy, SEO, tags, type, options' SKU, barcode, weight and price, custom fields, collections, discount codes, redirects and its own campaigns in Shopify Marketing. Making or removing a product, its stock and its status are the merchant's, in Shopify admin; say what to do there and carry on.\",\n evidence: {\n kind: \"noOpKind\",\n kinds: [\"shopify.product.create\", \"shopify.product.delete\", \"shopify.inventory.set\", \"shopify.product.publish\"],\n },\n },\n {\n surface: \"shopify\",\n capability: \"Make a discount code for named customers or a customer segment\",\n cause: \"not_built\",\n detail:\n \"Every discount code Baker creates is for everyone who has the code. A code for named customers or a segment is made in Shopify admin → Discounts.\",\n evidence: {\n kind: \"noOpKind\",\n kinds: [\"shopify.discountCode.createForCustomers\", \"shopify.discountAutomatic.create\"],\n },\n },\n {\n surface: \"shopify\",\n capability: \"Make a collection whose products join by rules (a tag, a price, a type), or delete one\",\n cause: \"not_built\",\n detail:\n \"Baker makes collections of hand-picked products and adds or removes products by hand. A collection whose products join by its rules is set up in Shopify admin; Baker refuses to delete one, because undo could not rebuild its rules.\",\n evidence: { kind: \"guard\", module: \"shopify/writes/collectionRestore.ts\", symbol: \"restorability\" },\n },\n {\n surface: \"ga4\",\n capability:\n \"Create, merge or delete a property; create a data stream or change its name, URL or cross-domain settings; change the property's time zone or currency\",\n cause: \"not_built\",\n detail:\n \"Baker configures what a property MEASURES — key events, custom dimensions and metrics, custom events, audiences, the data retention window, a web stream's enhanced measurement (the events GA4 collects on its own) — plus the property's name, industry category and Google Ads link. It does not create or merge properties, create data streams or change a stream's name, URL or cross-domain settings. Time zone and currency are deliberately excluded even though the API allows them: both change how every future day is bucketed without reprocessing history, so a correction puts a step in the middle of every time series the user compares against. Tell the user exactly what to change in the Google Analytics admin screens and carry on with the rest of the job.\",\n evidence: {\n kind: \"noOpKind\",\n kinds: [\"ga4.dataStream.create\", \"ga4.dataStream.update\", \"ga4.property.create\"],\n },\n },\n {\n surface: \"ga4\",\n capability: \"Change who is already in an audience, or build one from a sequence of steps\",\n cause: \"provider_forbids\",\n detail:\n \"An audience can be CREATED and ARCHIVED here, and its name and description changed. Everything that defines who is in it — the conditions, the membership window, the exclusion mode — is marked Immutable by Google and cannot be edited on an audience that exists, however it is asked. Fixing a definition therefore means archiving the audience and creating a replacement, which does NOT carry the users the first one gathered. Say that before staging the archive. Sequence-based audiences (`sequenceFilter`) are not offered: they are the easiest shape in this API to get subtly wrong and the mistake is permanent, so build them by hand in Google Analytics if one is genuinely needed.\",\n evidence: {\n kind: \"asserted\",\n note: \"The immutability is Google's, declared in the Admin API v1alpha `Audience` resource (`filter_clauses`, `membership_duration_days` and `exclusion_duration_mode` are all marked Immutable) — no code in this repository can be read to confirm a rule the provider enforces. What this repo does hold is the consequence: `GA4_IMMUTABLE_FIELDS.audience` in `packages/api/src/ga4/ops.ts` drives the refusal, and `ga4.test.ts` pins that an update carrying one of those fields is rejected with the archive-and-recreate wording rather than a zod key error.\",\n },\n },\n {\n surface: \"ga4\",\n capability: \"Try a Google Analytics configuration change without it taking effect\",\n cause: \"not_built\",\n detail:\n \"Google Analytics changes always apply to the real property: staged changes apply when the chat completes, and an applied change is in effect immediately — there is no version to publish afterwards and no undo. The user reviewing the Analytics tab and completing the chat is the review, so agree the changes with them before you complete it.\",\n evidence: {\n kind: \"asserted\",\n note: \"An absence: the GA4 executor has no simulated branch and GA4 drafts have no `mode` column, and no test can assert the absence of a mode that was never modelled. The nearest positive check is that the three ad surfaces do carry one — a `mode` column on their drafts and an `executeSimulated` branch in each executor — which the `staged-live` vs `staged-immediate` write paths already encode. Their per-company write gates are retired, so every ad draft is stamped `live`; the branch survives only for drafts published while the gates existed.\",\n },\n },\n {\n surface: \"gsc\",\n capability:\n \"Change anything in Search Console — add or verify a property, submit or delete a sitemap, set a preferred domain\",\n cause: \"no_permission\",\n detail:\n \"Baker's Search Console connection is read-only (webmasters.readonly). `baker gsc sitemaps` lists what is already submitted; it cannot submit one. Hand submission to the user in Search Console and carry on.\",\n evidence: { kind: \"scope\", scope: \"https://www.googleapis.com/auth/webmasters\" },\n },\n {\n surface: \"google-ads\",\n capability:\n \"Change a conversion action that Google itself created — Smart campaign calls and directions, the in-ad lead form's submit, YouTube subscriptions and follow-on views, Floodlight and Search Ads 360 imports, store visits, codeless webpage actions\",\n cause: \"provider_forbids\",\n detail:\n \"Google rejects every write against one of its own conversion actions, a rename as flatly as a removal. Baker refuses these at stage time so no publish is spent on them. There is no manual route either — the Google Ads interface will not change them — so do not hand the user one. Leave the action alone and say so.\",\n evidence: {\n module: \"ads/google/writes/conversionSafety.ts\",\n kind: \"guard\",\n symbol: \"googleOwnedConversionRefusal\",\n },\n },\n {\n surface: \"google-ads\",\n capability:\n \"Switch a demographic dimension — age, gender, parental status, household income — between Targeting and Observation\",\n cause: \"not_built\",\n detail:\n \"`baker ads google audiences targeting` sets the AUDIENCE dimension only. The demographic rows are read before every write and sent back exactly as they were, so nothing is lost — but changing one is manual work in the Google Ads interface. Say which one to change and where, and carry on with the rest of the job.\",\n evidence: { kind: \"noChoice\", opKind: \"google.targetingSetting.set\", field: \"audience\", value: \"AGE_RANGE\" },\n },\n {\n surface: \"google-ads\",\n capability: \"Hide a conversion action (status HIDDEN)\",\n cause: \"provider_forbids\",\n detail:\n 'Google denies HIDDEN on every conversion-action write (\"the field\\'s value is on a deny-list for this field\"), so it is not part of the write contract — even though actions hidden long ago still read back as HIDDEN. To take an action out of automated bidding while it keeps measuring, demote it: `baker ads google conversions update <id> --no-primary`. To stop it counting, set status REMOVED.',\n evidence: { kind: \"noChoice\", opKind: \"google.conversionAction.update\", field: \"status\", value: \"HIDDEN\" },\n },\n {\n surface: \"google-ads\",\n capability:\n \"Build a combined, converters or lookalike audience from an audience or conversion action created in the same chat\",\n cause: \"provider_forbids\",\n detail:\n \"Google builds these lists from audiences and conversion actions that already exist in the account; one created in the same publish is not found. Stage and publish the parts first, then build the combined, converters or lookalike audience on their ids in a later chat — and tell the user it takes two publishes.\",\n evidence: {\n kind: \"asserted\",\n note: \"Enforced by `existingRefSchema` inside `audienceCreateSchema` (packages/api ops.ts), which no capability check reads; the provider half is live on v25: a logical operand on a list created in the same request was RESOURCE_NOT_FOUND, a basic list over a conversion action created with it INVALID_CONVERSION_TYPE, and lookalike seeds are int64 ids.\",\n },\n },\n {\n surface: \"google-ads\",\n capability: \"Create a Google Analytics (GA4) conversion action in Google Ads\",\n cause: \"provider_forbids\",\n detail:\n \"Google's API cannot create a Google Analytics conversion — they are imported, not created. Make sure the event is a key event in Google Analytics and the property is linked to Google Ads, then ask the user to import it in Google Ads (Goals → Conversions → New conversion action → Import → Google Analytics 4). To measure it with a Google Ads tag instead, stage a WEBPAGE conversion.\",\n evidence: {\n kind: \"noChoice\",\n opKind: \"google.conversionAction.create\",\n field: \"type\",\n value: \"GOOGLE_ANALYTICS_4_CUSTOM\",\n },\n },\n {\n surface: \"google-ads\",\n capability: \"Target the area around the business's own locations (a location group)\",\n cause: \"not_built\",\n detail:\n 'A location group targets a radius around the account\\'s location assets, and Baker cannot stage location assets yet — Google refuses a location group on an account without them. Target a radius around an address or a point instead (`criterionType: \"proximity\"` on `campaign-criteria add`), or tell the user to add the business locations in Google Ads; carry on with the rest of the job.',\n evidence: {\n kind: \"asserted\",\n note: 'The refusal is in the shared criterion contract, not a Convex guard: `criterionSpecSchema` in `packages/api/src/ads-google/criteria.ts` answers `criterionType: \"locationGroup\"` with LOCATION_GROUP_MESSAGE, pinned by `criteria.test.ts`. Live on v25 (3865083115, no location assets) every location-group variant was refused — `enable_customer_level_location_asset_set` with \"The error code is not in this version.\", a geo-constant group with `location_group.feed` REQUIRED.',\n },\n },\n {\n surface: \"google-ads\",\n capability: \"Create a Video or Local campaign\",\n cause: \"provider_forbids\",\n detail:\n \"Google's API does not create Video campaigns at all (refused for every sub-type and bidding), and Local campaigns were retired into Performance Max. For video on YouTube, stage a Demand Gen campaign with a Demand Gen video ad; for store visits, Performance Max. A Video views or reach campaign is the user's to create in Google Ads — say so, with the settings you recommend. Existing Video campaigns can still be read, paused and edited.\",\n evidence: { kind: \"noChoice\", opKind: \"google.campaign.create\", field: \"channelType\", value: \"VIDEO\" },\n },\n {\n surface: \"google-ads\",\n capability: \"Create a Smart campaign\",\n cause: \"not_built\",\n detail:\n \"A Smart campaign's business details (phone, website, business profile) are a setting Google refuses to check before publishing (RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY), so Baker cannot stage one it could validate. Stage a Search or Performance Max campaign instead, or hand the Smart campaign to the user in Google Ads and carry on with the rest of the job. Shopping, App, Travel and Hotel campaigns ARE stageable — each with the account link it needs. Existing Smart campaigns can still be read, paused and edited.\",\n evidence: { kind: \"noChoice\", opKind: \"google.campaign.create\", field: \"channelType\", value: \"SMART\" },\n },\n {\n surface: \"google-ads\",\n capability:\n \"Create a campaign of a retired sub-type — Search or Display Express, Gmail, Smart Display, Smart Shopping, Video action, app promotion on Search\",\n cause: \"provider_forbids\",\n detail:\n \"Google refuses every one of these on a create. Leave the sub-type out for a standard campaign of the same type; Gmail and Video action now run through Demand Gen, Smart Shopping through Performance Max.\",\n evidence: {\n kind: \"noChoice\",\n opKind: \"google.campaign.create\",\n field: \"channelSubType\",\n value: \"DISPLAY_GMAIL_AD\",\n },\n },\n {\n surface: \"google-ads\",\n capability: \"Set a campaign budget to accelerated delivery\",\n cause: \"provider_forbids\",\n detail:\n \"Google still stores a budget set to accelerated delivery, but refuses to attach it to any campaign, so it can never spend. Every budget is staged with standard delivery (Google paces it across the day). If the user wants to spend faster, raise the daily amount instead — and say that is what you did.\",\n evidence: { kind: \"noChoice\", opKind: \"google.budget.create\", field: \"deliveryMethod\", value: \"ACCELERATED\" },\n },\n {\n surface: \"google-ads\",\n capability: \"Create or edit a call ad (call-only ad)\",\n cause: \"provider_forbids\",\n detail:\n \"Google removed the call ad from its API, so nobody can create one or change an existing one through it. To take phone calls from search, stage a responsive search ad and tell the user to add the phone number as a call asset in Google Ads (Baker cannot stage call assets yet). Carry on with the rest of the job.\",\n evidence: {\n kind: \"asserted\",\n note: 'The format sits inside the ad content union, not on a top-level payload field, so no `noChoice` check can see it. `adContentSchema` answers `format: \"call\"` with CALL_AD_RETIRED_MESSAGE (packages/api ops.test.ts pins it); the provider half is v25\\'s `Ad` message having no `call_ad` — a validateOnly request on 3865083115 was refused `Unknown name \"callAd\"` (2026-10-08).',\n },\n },\n {\n surface: \"google-ads\",\n capability: \"Remove a device setting from a campaign once it has one\",\n cause: \"provider_forbids\",\n detail:\n \"A device criterion can be added with `campaign-criteria add` and re-bid afterwards, but Google rejects every removal of one — including a criterion the same account created itself days earlier (observed). So the undo for a bid boost is NOT a removal: it is `baker ads google campaign-criteria update <criterion-resource-name> --bid-modifier 1`, where 0 stops ads serving on that device and 0.1–10.0 bid down or up. Read `campaign_criterion.resource_name` and `campaign_criterion.bid_modifier` (type = DEVICE) first to see which devices the campaign already has. Baker refuses a staged device removal before publish; don't abort the job over it.\",\n evidence: {\n kind: \"guard\",\n module: \"ads/google/writes/stage.ts\",\n symbol: \"deviceCriterionRemovalRefusal\",\n },\n },\n {\n surface: \"google-ads\",\n capability: \"Change which conversion action counts calls from ads (account call reporting)\",\n cause: \"provider_forbids\",\n detail:\n \"Google's API refuses any write of the account's call conversion action, even the one it already uses. Call reporting itself and whether calls count as conversions ARE stageable (`baker ads google account update --call-reporting --call-conversions`). Hand the action choice to the user: Google Ads → Admin → Account settings → Call reporting. Carry on with the rest of the job.\",\n evidence: {\n kind: \"asserted\",\n note: '`customerUpdateSchema` is strict and carries no callConversionAction, so an op naming it is refused at stage; the provider half: a validateOnly customer update of `call_reporting_setting.call_conversion_action` on 3865083115 — with the live value and with another action — was refused \"The error code is not in this version.\" (v25, 2026-10-08).',\n },\n },\n {\n surface: \"google-ads\",\n capability: \"Put a label on an asset (sitelink, image, callout …)\",\n cause: \"provider_forbids\",\n detail:\n \"Google Ads has no labels on assets — its API labels campaigns, ad groups, ads and keywords only, and staging refuses an asset. Label the campaign or ad group that uses the asset, or give the asset a findable name, and carry on with the rest of the job.\",\n evidence: { kind: \"noChoice\", opKind: \"google.label.attach\", field: \"level\", value: \"asset\" },\n },\n {\n surface: \"google-ads\",\n capability: \"Put a label on the advertiser account itself\",\n cause: \"provider_forbids\",\n detail:\n \"Google applies a label to an account only from the manager account above it (CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER, live v25), and Baker works inside the advertiser account. Label the campaigns instead, or tell the user to label the account from their manager account in Google Ads; carry on with the rest of the job.\",\n evidence: { kind: \"noChoice\", opKind: \"google.label.attach\", field: \"level\", value: \"customer\" },\n },\n {\n surface: \"google-ads\",\n capability: \"Change billing, payment methods, or account-level spend limits\",\n cause: \"not_built\",\n detail:\n \"Nothing that touches money setup is stageable — no op exists for it. Report on spend, then hand billing changes to the user in Google Ads. Account settings that are not money (auto-tagging, the account tracking template and final URL suffix, call reporting, video inventory) ARE stageable: `baker ads google account update`.\",\n evidence: {\n kind: \"noOpKind\",\n kinds: [\"google.billingSetup.create\", \"google.accountBudget.create\"],\n },\n },\n {\n surface: \"meta-ads\",\n capability:\n \"Push delivery to an ad — dedicate a share of the campaign or ad-set budget to one ad for a set number of days\",\n cause: \"not_built\",\n detail:\n 'Meta ships push delivery as an Ads Manager control only: the Marketing API\\'s ad object takes a schedule, a display sequence and tracking, and nothing that dedicates budget to one ad. So nothing can stage it and no publish can apply it — do not offer to switch it on, and never report a starved ad as pushed. Hand the user the click path and the settings you are recommending: Ad level > Ad setup > \"show more settings\" (next to ad scheduling) > \"Help ensure delivery by dedicating a portion of your budget to your ad\", then the percentage of budget and the number of days, for the one ad you name. It needs at least 2 ads in the ad set, and only one ad per ad set should be pushed. Then carry on with the rest of the job.',\n evidence: { kind: \"noOpKind\", kinds: [\"ad.pushDelivery\"] },\n },\n {\n surface: \"linkedin-ads\",\n capability: \"Move a live ad to another ad set, or change a live ad set's type, locale, or associated organization\",\n cause: \"provider_forbids\",\n detail:\n \"LinkedIn treats these as create-only: they can be corrected while the change is still staged, but not on something already live. Baker refuses the amend rather than staging a write LinkedIn will reject. Create the replacement instead, and say why.\",\n evidence: { kind: \"guard\", module: \"ads/linkedin/writes/amend.ts\", symbol: \"rejectedLiveKeys\" },\n },\n {\n surface: \"tag-manager\",\n capability: \"Create, delete, or move a Tag Manager account, container, or workspace\",\n cause: \"not_built\",\n detail:\n \"Baker works inside the containers the company connected — it changes tags, triggers, variables, folders, built-in variables and container settings, and nothing above that level. Ask the user to create the container in Tag Manager and connect it, then carry on.\",\n evidence: {\n kind: \"noOpKind\",\n kinds: [\n \"tagManager.container.create\",\n \"tagManager.container.delete\",\n \"tagManager.account.create\",\n \"tagManager.workspace.create\",\n ],\n },\n },\n {\n surface: \"tag-manager\",\n capability: \"Try a container change without it going live\",\n cause: \"not_built\",\n detail:\n \"Tag Manager changes always apply to the real container: staged changes apply to its working workspace when the chat completes, and a clean run cuts and publishes a container version, which takes them live on the site. Completing the chat is the review, so get the user's agreement before you complete it.\",\n evidence: {\n kind: \"asserted\",\n note: \"An absence: the Tag Manager executor has no simulated branch and its drafts have no `mode` column, and no test can assert the absence of a mode that was never modelled. The nearest positive check is that the three ad surfaces do carry one — a `mode` column on their drafts and an `executeSimulated` branch in each executor — which the `staged-live` vs `staged-immediate` write paths already encode. Their per-company write gates are retired, so every ad draft is stamped `live`; the branch survives only for drafts published while the gates existed.\",\n },\n },\n];\n","/**\n * Contract for `/api/capabilities` — what Baker can and cannot do for this\n * company, answered before any work starts (`baker capabilities`).\n *\n * Convex `Id<T>` values are plain `z.string()`; this package must not depend on\n * `convex`. Nothing here carries a token, key, or anything a credential could be\n * reconstructed from — the response names accounts and permissions, never\n * secrets.\n */\nimport { z } from \"zod\";\nimport { CAPABILITY_SURFACES } from \"./surfaces\";\n\nexport { describeOpPayload, describeOpUnion, type OpDescription } from \"./op-fields\";\nexport {\n CAPABILITY_LIMITS,\n CAPABILITY_SURFACE_SPECS,\n CAPABILITY_SURFACES,\n type CapabilityLimit,\n type CapabilityLimitCause,\n type CapabilityLimitEvidence,\n type CapabilitySurfaceId,\n type CapabilitySurfaceSpec,\n type CapabilityWritePath,\n} from \"./surfaces\";\n\nexport const capabilitySurfaceSchema = z.enum(CAPABILITY_SURFACES);\n\nexport const capabilitiesRequestSchema = z.object({\n /** Narrow to one surface. Omit for every surface the company could use. */\n surface: capabilitySurfaceSchema.optional(),\n /** Include the field-level contract of every op, not just the entity list. */\n full: z.boolean().optional(),\n /**\n * Who the chat acts as (`BAKER_ACTING_USER_ID`). Adds that person's own\n * connected tools — they load for this turn, and for nobody else's.\n */\n actingUserId: z.string().optional(),\n});\nexport type CapabilitiesRequest = z.infer<typeof capabilitiesRequestSchema>;\n\n/** A connected account, property, site or container. Identity only. */\nexport const capabilityResourceSchema = z.object({\n id: z.string(),\n name: z.string().optional(),\n});\nexport type CapabilityResource = z.infer<typeof capabilityResourceSchema>;\n\nexport const capabilityOpSchema = z.object({\n kind: z.string(),\n /** True when the op changes something that already exists and must be named. */\n needsTarget: z.boolean(),\n required: z.array(z.string()),\n optional: z.array(z.string()),\n /** Field → the values it accepts, for fields that take a fixed set. */\n choices: z.record(z.string(), z.array(z.string())),\n /** False when the platform accepts fields beyond the listed ones. */\n fieldsAreComplete: z.boolean(),\n});\nexport type CapabilityOp = z.infer<typeof capabilityOpSchema>;\n\nexport const capabilityLimitViewSchema = z.object({\n capability: z.string(),\n cause: z.enum([\"not_built\", \"provider_forbids\", \"no_permission\"]),\n detail: z.string(),\n});\nexport type CapabilityLimitView = z.infer<typeof capabilityLimitViewSchema>;\n\n/**\n * `live` — writes reach the real platform at publish.\n * `applies-at-publish` — publishing changes the real thing, with no version step after.\n * `none` — this surface does not write.\n *\n * There is no `simulated`: the per-company gates that produced it on Google,\n * Meta and LinkedIn are all retired, so no surface can report a write that\n * touches nothing. Leaving the value in the contract would keep alive the one\n * sentence this report exists to prevent — \"your ads are only a preview\".\n */\nexport const capabilityWriteModeSchema = z.enum([\"live\", \"applies-at-publish\", \"none\"]);\nexport type CapabilityWriteMode = z.infer<typeof capabilityWriteModeSchema>;\n\nexport const capabilitySurfaceReportSchema = z.object({\n surface: capabilitySurfaceSchema,\n label: z.string(),\n connected: z.boolean(),\n /** What the user picked when connecting. Empty when nothing is selected yet. */\n resources: z.array(capabilityResourceSchema),\n access: z.enum([\"read-write\", \"read-only\", \"not-connected\"]),\n writeMode: capabilityWriteModeSchema,\n /** One sentence about the write mode, safe to repeat to the user. */\n writeModeNote: z.string(),\n /** Entities this surface can change at all, e.g. \"campaign\", \"keyword\". */\n writableEntities: z.array(z.string()),\n /** Things wrong with the connection itself: needs reconnecting, missing a permission. */\n blockers: z.array(z.string()),\n /** What cannot be done here, and why. */\n limits: z.array(capabilityLimitViewSchema),\n /** The per-op contract. Present when one surface was asked for, or with `full`. */\n ops: z.array(capabilityOpSchema).optional(),\n /** Where to look next: `baker ads google`, `baker ga4`, … */\n commands: z.string(),\n});\nexport type CapabilitySurfaceReport = z.infer<typeof capabilitySurfaceReportSchema>;\n\n/**\n * A source that is available to this company but is not one of the seven\n * marketing surfaces above.\n *\n * These exist because \"what do I have?\" had no single answer, and the gap was\n * not academic: Microsoft Clarity arrives over MCP and HubSpot is read through\n * the CLI, so neither appears in `surfaces` — and an agent that checked only\n * this command concluded it had no Clarity while Clarity was sitting in its own\n * tool list. That is the source most likely to change what it decides.\n *\n * Deliberately NOT modelled as a surface. A surface carries `ops`,\n * `writableEntities` and a write mode, all of which describe a staged-write\n * contract Baker owns. An MCP toolkit has none of that — Baker did not define\n * its tools and cannot enumerate their fields — so filing one under `surfaces`\n * would mean either lying about the contract or leaving four fields empty on\n * every row and inviting the reader to wonder which.\n */\nexport const capabilityToolSchema = z.object({\n /** `microsoft_clarity`, `hubspot`, or the name the user gave a custom server. */\n key: z.string(),\n label: z.string(),\n /** `mcp` — tools in the agent's own list. `platform` — signed in, read through the CLI. `baker` — Baker's own, always there. */\n kind: z.enum([\"mcp\", \"platform\", \"baker\"]),\n /** How to actually reach it, in one phrase the agent can act on. */\n reach: z.string(),\n /**\n * Whether it can be used right now.\n *\n * A connection that exists and is expired is worse than one that is absent:\n * it reads as available and fails at the moment it is needed, which on an\n * unattended run is a report with a hole in it and no explanation.\n */\n ready: z.boolean(),\n /** Why it is not ready, or what it is for. Absent when neither needs saying. */\n note: z.string().optional(),\n});\nexport type CapabilityTool = z.infer<typeof capabilityToolSchema>;\n\nexport const capabilitiesResponseSchema = z.object({\n ok: z.literal(true),\n data: z.object({\n surfaces: z.array(capabilitySurfaceReportSchema),\n /**\n * Everything else this company can reach. Shared connections only —\n * a teammate's private per-user connection belongs to whoever started the\n * session and is visible in the agent's own tool list, not here.\n */\n tools: z.array(capabilityToolSchema),\n }),\n});\nexport type CapabilitiesResponse = z.infer<typeof capabilitiesResponseSchema>;\n","import { z } from \"zod\";\n\n/**\n * What each staged write op actually accepts, read off the contract itself.\n *\n * The alternative is a hand-written table of \"fields you can set\", and the\n * repository already knows how that ends: a list nobody re-reads drifts from the\n * schema, and the agent trusts it until a publish fails. Every fact here is\n * derived from the same `z.discriminatedUnion` the CLI preflights against and\n * the backend parses with, so it cannot disagree with what a write will accept.\n *\n * Zod internals are read through `_zod.def` on purpose: zod 4 exposes no public\n * introspection API, and the alternative (parsing probe payloads) can only ever\n * tell you a field was rejected, never that it exists. `unwrapObject` and the\n * `optional`/`default` handling are the whole surface of that coupling — if zod\n * changes it, `op-fields.test.ts` fails on the real shipped unions, not just on\n * toy fixtures, which is why those two cases are in the test.\n */\n\n/**\n * A payload field's own metadata never crosses this boundary — only names and,\n * where the field takes a fixed set, its accepted values.\n */\nexport interface OpDescription {\n /** The op kind, e.g. `google.conversionAction.update`. */\n kind: string;\n /** True when the op changes an entity that already exists and must be named. */\n needsTarget: boolean;\n /** Payload fields that must be supplied. */\n required: string[];\n /** Payload fields that may be supplied (a defaulted field counts — it can be omitted). */\n optional: string[];\n /** Field name → the values it accepts, for fields that take a fixed set. */\n choices: Record<string, string[]>;\n /**\n * False when the platform accepts fields beyond the declared ones — Tag Manager\n * payloads pass unknown keys straight through to Google, so \"not listed here\"\n * does not mean \"not accepted\" there.\n */\n fieldsAreComplete: boolean;\n}\n\ninterface ZodDef {\n type?: string;\n shape?: Record<string, unknown>;\n options?: unknown[];\n values?: unknown[];\n entries?: Record<string, unknown>;\n innerType?: unknown;\n catchall?: unknown;\n}\n\nfunction def(schema: unknown): ZodDef | undefined {\n if (typeof schema !== \"object\" || schema === null) return undefined;\n const internals = (schema as { _zod?: { def?: ZodDef } })._zod;\n return internals?.def;\n}\n\n/** Peel `.optional()` / `.default()` / `.nullable()` wrappers off a field. */\nfunction unwrap(schema: unknown): { inner: unknown; omittable: boolean } {\n let current = schema;\n let omittable = false;\n for (let depth = 0; depth < 8; depth += 1) {\n const d = def(current);\n if (!d) break;\n if (d.type === \"optional\" || d.type === \"default\" || d.type === \"prefault\") {\n omittable = true;\n current = d.innerType;\n continue;\n }\n if (d.type === \"nullable\" || d.type === \"readonly\") {\n current = d.innerType;\n continue;\n }\n break;\n }\n return { inner: current, omittable };\n}\n\n/**\n * The object underneath a payload schema, or undefined when the payload is not\n * an object at all (a discriminated union of formats, say). A cross-field rule\n * added with `.refine()` keeps the shape in zod 4, but `.innerType` is followed\n * anyway so a wrapped schema degrades to the object rather than to nothing.\n */\nfunction unwrapObject(schema: unknown): ZodDef | undefined {\n let current = schema;\n for (let depth = 0; depth < 8; depth += 1) {\n const d = def(current);\n if (!d) return undefined;\n if (d.shape) return d;\n if (d.innerType === undefined) return undefined;\n current = d.innerType;\n }\n return undefined;\n}\n\nfunction literalValue(schema: unknown): string | undefined {\n const values = def(schema)?.values;\n const first = values?.[0];\n return typeof first === \"string\" ? first : undefined;\n}\n\nfunction acceptedValues(schema: unknown): string[] | undefined {\n const d = def(schema);\n if (d?.type === \"enum\" && d.entries) return Object.keys(d.entries);\n if (d?.type === \"literal\" && d.values) {\n const values = d.values.filter((value): value is string => typeof value === \"string\");\n return values.length > 0 ? values : undefined;\n }\n return undefined;\n}\n\n/** Anything with `.options` — the shipped op unions, or a fixture built in a test. */\ninterface DiscriminatedUnionLike {\n options: readonly unknown[];\n}\n\ntype PayloadFields = Pick<OpDescription, \"required\" | \"optional\" | \"choices\">;\n\nfunction payloadFields(payload: ZodDef | undefined): PayloadFields {\n const required: string[] = [];\n const optional: string[] = [];\n const choices: Record<string, string[]> = {};\n for (const [name, field] of Object.entries(payload?.shape ?? {})) {\n const { inner, omittable } = unwrap(field);\n (omittable ? optional : required).push(name);\n const values = acceptedValues(inner);\n if (values) choices[name] = values;\n }\n return { required, optional, choices };\n}\n\n/**\n * True when a key outside the shape cannot get through: stripped (plain object) or refused (a\n * strict object's catchall is `never`). A `looseObject` / `.catchall(z.unknown())` passes it on.\n */\nfunction refusesUnknownKeys(payload: ZodDef): boolean {\n return payload.catchall === undefined || def(payload.catchall)?.type === \"never\";\n}\n\nfunction describeOption(option: unknown): OpDescription | undefined {\n const shape = def(option)?.shape;\n if (!shape) return undefined;\n const kind = literalValue(shape.kind);\n if (kind === undefined) return undefined;\n const payload = unwrapObject(shape.payload);\n return {\n kind,\n needsTarget: shape.target !== undefined,\n ...payloadFields(payload),\n fieldsAreComplete: shape.payload === undefined || (payload !== undefined && refusesUnknownKeys(payload)),\n };\n}\n\n/**\n * One description per member of a staged-write op union, in declaration order.\n */\nexport function describeOpUnion(union: DiscriminatedUnionLike): OpDescription[] {\n const options = def(union)?.options ?? union.options;\n return options.map(describeOption).filter((entry): entry is OpDescription => entry !== undefined);\n}\n\n/** The slice of JSON Schema `z.toJSONSchema` writes that a payload's shape is read from. */\ninterface JsonSchema {\n type?: string | string[];\n const?: unknown;\n enum?: unknown[];\n anyOf?: JsonSchema[];\n oneOf?: JsonSchema[];\n properties?: Record<string, JsonSchema>;\n required?: string[];\n items?: JsonSchema;\n prefixItems?: JsonSchema[];\n additionalProperties?: boolean | JsonSchema;\n $ref?: string;\n $defs?: Record<string, JsonSchema>;\n}\n\n/**\n * A shape that contains itself (a Tag Manager parameter holds a list of parameters) arrives as a\n * `$ref` into `$defs`: it is spelled out the first time and written `…` inside itself.\n */\ninterface Rendering {\n defs: Record<string, JsonSchema>;\n expanding: ReadonlySet<string>;\n indent: string;\n}\n\nfunction isObjectSchema(schema: JsonSchema): boolean {\n return schema.properties !== undefined;\n}\n\n/** Members of a union of objects go one per line, so a reader scans the variants, not a wall. */\nfunction unionText(members: JsonSchema[], at: Rendering): string {\n const texts = [...new Set(members.map((member) => shapeText(member, { ...at, indent: `${at.indent} ` })))];\n if (!members.every(isObjectSchema) || texts.length < 2) return texts.join(\" | \");\n return texts.map((text, index) => (index === 0 ? text : `\\n${at.indent}| ${text}`)).join(\"\");\n}\n\nfunction objectText(schema: JsonSchema, at: Rendering): string {\n const required = new Set(schema.required ?? []);\n const fields = Object.entries(schema.properties ?? {}).map(([name, field]) => {\n const value = shapeText(field, at);\n const optional = required.has(name) ? \"\" : \"?\";\n return value.startsWith(\"\\n\") || !value.includes(\"\\n\")\n ? `${name}${optional}: ${value}`\n : `${name}${optional}:\\n${at.indent} ${value}`;\n });\n return fields.length === 0 ? \"{}\" : `{ ${fields.join(\", \")} }`;\n}\n\nfunction typeText(type: string, schema: JsonSchema, at: Rendering): string {\n if (type === \"array\" && schema.prefixItems) {\n return `[${schema.prefixItems.map((item) => shapeText(item, at)).join(\", \")}]`;\n }\n if (type === \"array\") {\n const item = schema.items ? shapeText(schema.items, at) : \"unknown\";\n return item.includes(\" \") ? `(${item})[]` : `${item}[]`;\n }\n if (type === \"object\") {\n const values =\n typeof schema.additionalProperties === \"object\" ? shapeText(schema.additionalProperties, at) : \"unknown\";\n return `{ [key: string]: ${values} }`;\n }\n return type === \"integer\" ? \"number\" : type;\n}\n\n/** A TypeScript-like one-glance rendering: names, nesting, literals and enums — no patterns or bounds. */\nfunction shapeText(schema: JsonSchema, at: Rendering): string {\n if (schema.$ref !== undefined) {\n const name = schema.$ref.replace(\"#/$defs/\", \"\");\n const target = at.defs[name];\n if (target === undefined || at.expanding.has(name)) return \"…\";\n return shapeText(target, { ...at, expanding: new Set([...at.expanding, name]) });\n }\n if (schema.const !== undefined) return JSON.stringify(schema.const);\n if (schema.enum) return schema.enum.map((value) => JSON.stringify(value)).join(\" | \");\n const members = schema.oneOf ?? schema.anyOf;\n if (members) return unionText(members, at);\n if (isObjectSchema(schema)) return objectText(schema, at);\n const types = Array.isArray(schema.type) ? schema.type : [schema.type ?? \"unknown\"];\n return types.map((type) => typeText(type, schema, at)).join(\" | \");\n}\n\n/**\n * The payload an op kind takes, as one readable shape: every field, nested objects and each member\n * of a union with its own fields, the literals and enum values each accepts. Read off the contract\n * with zod's own `toJSONSchema`, so it is the shape `--file` is parsed with — undefined for a kind\n * the union does not hold, or one whose op carries no payload.\n */\nexport function describeOpPayload(union: DiscriminatedUnionLike, kind: string): string | undefined {\n const options = def(union)?.options ?? union.options;\n const option = options.find((candidate) => literalValue(def(candidate)?.shape?.kind) === kind);\n const payload = def(option)?.shape?.payload;\n if (payload === undefined) return undefined;\n const schema = z.toJSONSchema(payload as z.ZodType, { io: \"input\", unrepresentable: \"any\" }) as JsonSchema;\n return shapeText(schema, { defs: schema.$defs ?? {}, expanding: new Set(), indent: \"\" });\n}\n\n/** The close of a refusal that names the payload the op takes, or nothing when there is none to name. */\nexport function payloadShapeSentence(union: DiscriminatedUnionLike, kind: string): string {\n const shape = describeOpPayload(union, kind);\n return shape === undefined ? \"\" : `. ${kind} takes this payload (a field marked ? may be left out):\\n${shape}`;\n}\n"],"mappings":"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","names":["z","z"]}