@koda-sl/baker-cli 0.448.0-dev.0d67e41b9 → 0.448.0-dev.ccc3c9a37
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.
- package/README.md +229 -40
- package/dist/account-JG7QD522.js +79 -0
- package/dist/account-V6PB6PA5.js +80 -0
- package/dist/account-VLPX7EZT.js +49 -0
- package/dist/account-reads-4P5L6CJN.js +218 -0
- package/dist/account-reads-4P5L6CJN.js.map +1 -0
- package/dist/account-writes-BGREY7ZL.js +66 -0
- package/dist/accounts-2FINK5GZ.js +114 -0
- package/dist/accounts-2UV5Z3Y6.js +75 -0
- package/dist/accounts-3EX2PFJB.js +77 -0
- package/dist/accounts-G2QT3ZVP.js +115 -0
- package/dist/accounts-N63J5YTK.js +611 -0
- package/dist/actions-PA2BPIYO.js +55 -0
- package/dist/active-entities-RDXDSMA2.js +103 -0
- package/dist/activecampaign-EE5ERO25.js +897 -0
- package/dist/activecampaign-EE5ERO25.js.map +1 -0
- package/dist/activities-RBTU2Q24.js +74 -0
- package/dist/ad-group-writes-5NTRJTVE.js +170 -0
- package/dist/ad-groups-4OTAKWUC.js +68 -0
- package/dist/ad-writes-T7W3DDKK.js +174 -0
- package/dist/add-4VKA4NDH.js +105 -0
- package/dist/add-MQO33HL3.js +97 -0
- package/dist/add-MYPHHYC4.js +302 -0
- package/dist/add-MYPHHYC4.js.map +1 -0
- package/dist/add-QM7ANAVG.js +104 -0
- package/dist/add-accounts-VDSWHJ4K.js +91 -0
- package/dist/add-accounts-VDSWHJ4K.js.map +1 -0
- package/dist/ads-HYODBAPV.js +128 -0
- package/dist/ads-HYODBAPV.js.map +1 -0
- package/dist/ads-IJCFN2N3.js +113 -0
- package/dist/ads-QKMLAPZC.js +40 -0
- package/dist/ads-XYAWONXR.js +77 -0
- package/dist/adsets-DPTIKGTG.js +176 -0
- package/dist/advertisers-ITFXIXUW.js +125 -0
- package/dist/advertisers-ITFXIXUW.js.map +1 -0
- package/dist/advertisers-SZFDOPBQ.js +120 -0
- package/dist/analytics-HFBYIPZ7.js +433 -0
- package/dist/analytics-NDZR33ZJ.js +1976 -0
- package/dist/analytics-NDZR33ZJ.js.map +1 -0
- package/dist/animate-LUKNHCF4.js +480 -0
- package/dist/assign-QCICUD72.js +77 -0
- package/dist/audience-size-HML4BLHJ.js +94 -0
- package/dist/audiences-BSABKS5K.js +268 -0
- package/dist/audiences-FWOOSUSJ.js +78 -0
- package/dist/audiences-VK4M7GLQ.js +85 -0
- package/dist/audit-DUM55J5U.js +151 -0
- package/dist/audit-JR5R75XK.js +88 -0
- package/dist/autocomplete-VX4PMMLR.js +111 -0
- package/dist/avatars-5KCRSUJ3.js +38 -0
- package/dist/bid-pricing-AIUACXUH.js +99 -0
- package/dist/brand-UBTC2WXR.js +22 -0
- package/dist/brief-NU7ZGPXO.js +490 -0
- package/dist/brief-NU7ZGPXO.js.map +1 -0
- package/dist/businesses-P3RX4UXS.js +53 -0
- package/dist/campaign-groups-SJZEDIBL.js +95 -0
- package/dist/campaign-writes-5BPVXG4C.js +170 -0
- package/dist/campaign-writes-VE6QLIDA.js +165 -0
- package/dist/campaigns-JEWEDCTC.js +109 -0
- package/dist/campaigns-MEIMSHJF.js +110 -0
- package/dist/campaigns-NCGJNJKS.js +107 -0
- package/dist/campaigns-XY7QWHDN.js +76 -0
- package/dist/canvas-DK2DH7BA.js +46 -0
- package/dist/canvas-DK2DH7BA.js.map +1 -0
- package/dist/capabilities-W6SPXOPF.js +144 -0
- package/dist/cards-CLD4WX6G.js +85 -0
- package/dist/catalog-W6RBOIOF.js +64 -0
- package/dist/catalog-W6RBOIOF.js.map +1 -0
- package/dist/catalogs-DINPKQXY.js +128 -0
- package/dist/changes-N2YZXAPF.js +135 -0
- package/dist/chatgpt-TPAP6BVY.js +47 -0
- package/dist/chats-FKVVBXVF.js +262 -0
- package/dist/chunk-237WE5LX.js +455 -0
- package/dist/chunk-237WE5LX.js.map +1 -0
- package/dist/chunk-24IQ6K7K.js +103 -0
- package/dist/chunk-2FZG5DD2.js +297 -0
- package/dist/chunk-2T3EH2MU.js +363 -0
- package/dist/chunk-2Y5UE2CV.js +174 -0
- package/dist/chunk-2ZZR2SOF.js +215 -0
- package/dist/chunk-2ZZR2SOF.js.map +1 -0
- package/dist/chunk-3KPQDXIU.js +1830 -0
- package/dist/chunk-4AFGT3L3.js +46 -0
- package/dist/chunk-4JKBMKFC.js +225 -0
- package/dist/chunk-4KBWL7S4.js +610 -0
- package/dist/chunk-4R3QKEDV.js +136 -0
- package/dist/chunk-536R4RRM.js +166 -0
- package/dist/chunk-536R4RRM.js.map +1 -0
- package/dist/chunk-57XJ7QF7.js +65 -0
- package/dist/chunk-57XJ7QF7.js.map +1 -0
- package/dist/chunk-6AJ6ZD73.js +172 -0
- package/dist/chunk-6AJ6ZD73.js.map +1 -0
- package/dist/chunk-6SL6463H.js +309 -0
- package/dist/chunk-7TRSFEHZ.js +51 -0
- package/dist/chunk-AOCG7COT.js +474 -0
- package/dist/chunk-AOCG7COT.js.map +1 -0
- package/dist/chunk-APNV7FMK.js +191 -0
- package/dist/chunk-AR7PU7BB.js +76 -0
- package/dist/chunk-AR7PU7BB.js.map +1 -0
- package/dist/chunk-B2HLSTK6.js +392 -0
- package/dist/chunk-B2HLSTK6.js.map +1 -0
- package/dist/chunk-B2VKGTBS.js +3151 -0
- package/dist/chunk-B2VKGTBS.js.map +1 -0
- package/dist/chunk-BC2BXRXY.js +2887 -0
- package/dist/chunk-BC2BXRXY.js.map +1 -0
- package/dist/chunk-BC6M5YYV.js +1599 -0
- package/dist/chunk-BC6M5YYV.js.map +1 -0
- package/dist/chunk-BCSOWRQL.js +76 -0
- package/dist/chunk-BIZH3X6P.js +817 -0
- package/dist/chunk-BIZH3X6P.js.map +1 -0
- package/dist/chunk-BJEW3LST.js +296 -0
- package/dist/chunk-BYKUAX26.js +106 -0
- package/dist/chunk-C4KJHTQU.js +1079 -0
- package/dist/chunk-C4KJHTQU.js.map +1 -0
- package/dist/chunk-C7NPNSFO.js +169 -0
- package/dist/chunk-CLK2FPAV.js +76 -0
- package/dist/chunk-CLK2FPAV.js.map +1 -0
- package/dist/chunk-CVIMIOPO.js +94 -0
- package/dist/chunk-D3RTGIT4.js +2102 -0
- package/dist/chunk-D3RTGIT4.js.map +1 -0
- package/dist/chunk-DAKIMGUS.js +74 -0
- package/dist/chunk-DCRUGS3G.js +25 -0
- package/dist/chunk-DJPCTTUN.js +1743 -0
- package/dist/chunk-DJPCTTUN.js.map +1 -0
- package/dist/chunk-DJUHGO3O.js +547 -0
- package/dist/chunk-DJUHGO3O.js.map +1 -0
- package/dist/chunk-DMA77LLI.js +106 -0
- package/dist/chunk-EEEAC655.js +45 -0
- package/dist/chunk-EEEAC655.js.map +1 -0
- package/dist/chunk-EESOZY5S.js +26 -0
- package/dist/chunk-EIZMOICE.js +175 -0
- package/dist/chunk-F3IVR3V3.js +136 -0
- package/dist/chunk-FSX6CQ2Z.js +188 -0
- package/dist/chunk-G7LAQE56.js +56 -0
- package/dist/chunk-G7QKXFQ2.js +66 -0
- package/dist/chunk-G7XY4T6K.js +23 -0
- package/dist/chunk-GIWHHCD6.js +145 -0
- package/dist/chunk-GIWHHCD6.js.map +1 -0
- package/dist/chunk-GRJCZF2H.js +5187 -0
- package/dist/chunk-GRJCZF2H.js.map +1 -0
- package/dist/chunk-HCDCWXSU.js +346 -0
- package/dist/chunk-HKSLIV4T.js +533 -0
- package/dist/chunk-HKSLIV4T.js.map +1 -0
- package/dist/chunk-I2DNBEV6.js +4227 -0
- package/dist/chunk-I2DNBEV6.js.map +1 -0
- package/dist/chunk-I4IVUAQN.js +337 -0
- package/dist/chunk-ICJFL7DU.js +35 -0
- package/dist/chunk-ICJFL7DU.js.map +1 -0
- package/dist/chunk-IWNZCYWI.js +74 -0
- package/dist/chunk-JF5LNI6O.js +84 -0
- package/dist/chunk-JJZBZYNK.js +96 -0
- package/dist/chunk-JPK34QPS.js +134 -0
- package/dist/chunk-JPK34QPS.js.map +1 -0
- package/dist/chunk-JZP5IODJ.js +98 -0
- package/dist/chunk-KL5VTXIK.js +149 -0
- package/dist/chunk-KL5VTXIK.js.map +1 -0
- package/dist/chunk-KWMYTVHI.js +455 -0
- package/dist/chunk-LFGCOAB4.js +75 -0
- package/dist/chunk-LLN6WTER.js +665 -0
- package/dist/chunk-LLN6WTER.js.map +1 -0
- package/dist/chunk-LO7OQKUD.js +4410 -0
- package/dist/chunk-LO7OQKUD.js.map +1 -0
- package/dist/chunk-LPRUP3ZX.js +172 -0
- package/dist/chunk-MAGSNHYB.js +6214 -0
- package/dist/chunk-MAGSNHYB.js.map +1 -0
- package/dist/chunk-MD3VH5UG.js +84 -0
- package/dist/chunk-MFORE6F4.js +19 -0
- package/dist/chunk-MMBHCAON.js +160 -0
- package/dist/chunk-MMOTJIV6.js +216 -0
- package/dist/chunk-MMOTJIV6.js.map +1 -0
- package/dist/chunk-NIGGMK7L.js +125 -0
- package/dist/chunk-NN7A2ILR.js +433 -0
- package/dist/chunk-O356YNIW.js +509 -0
- package/dist/chunk-OUQMJRH6.js +159 -0
- package/dist/chunk-OXKUWTFL.js +494 -0
- package/dist/chunk-PAJJXZ3Z.js +170 -0
- package/dist/chunk-PC56KVAD.js +74 -0
- package/dist/chunk-PEWNEPDR.js +206 -0
- package/dist/chunk-PY4FAOW6.js +275 -0
- package/dist/chunk-PY4FAOW6.js.map +1 -0
- package/dist/chunk-Q2T4XZG4.js +139 -0
- package/dist/chunk-QEHICHMP.js +875 -0
- package/dist/chunk-QEHICHMP.js.map +1 -0
- package/dist/chunk-RCR6RVYE.js +274 -0
- package/dist/chunk-RH2H5PBV.js +111 -0
- package/dist/chunk-S3L2ITS7.js +111 -0
- package/dist/chunk-S3L2ITS7.js.map +1 -0
- package/dist/chunk-S3XM4LD3.js +57 -0
- package/dist/chunk-SEPPFM5S.js +228 -0
- package/dist/chunk-SEPPFM5S.js.map +1 -0
- package/dist/chunk-SFHL3KWY.js +96 -0
- package/dist/chunk-SQ7DRYCC.js +150 -0
- package/dist/chunk-SSVZM3P6.js +333 -0
- package/dist/chunk-T64IRDKW.js +52 -0
- package/dist/chunk-T64IRDKW.js.map +1 -0
- package/dist/chunk-TMNLIA7R.js +60 -0
- package/dist/chunk-UF55TADX.js +92 -0
- package/dist/chunk-UGI33KTO.js +55 -0
- package/dist/chunk-UK2OTLT3.js +197 -0
- package/dist/chunk-UU3FGKUW.js +207 -0
- package/dist/chunk-UUBHU2TY.js +304 -0
- package/dist/chunk-UX7HIGS7.js +67 -0
- package/dist/chunk-VDZIGI2C.js +98 -0
- package/dist/chunk-VF6JFG27.js +846 -0
- package/dist/chunk-VF6JFG27.js.map +1 -0
- package/dist/chunk-VKVIBQP3.js +486 -0
- package/dist/chunk-VLF2M4GZ.js +592 -0
- package/dist/chunk-VTF7XNOP.js +58 -0
- package/dist/chunk-WDA3L4NF.js +382 -0
- package/dist/chunk-WMN2WKNZ.js +1442 -0
- package/dist/chunk-WMN2WKNZ.js.map +1 -0
- package/dist/chunk-XDV6Q33B.js +42 -0
- package/dist/chunk-XQIOCIDO.js +204 -0
- package/dist/chunk-XQIOCIDO.js.map +1 -0
- package/dist/chunk-XYC26BDM.js +133 -0
- package/dist/chunk-YHQYDNYD.js +23992 -0
- package/dist/chunk-YOARYFC2.js +6667 -0
- package/dist/chunk-YOARYFC2.js.map +1 -0
- package/dist/chunk-YPCVPDU7.js +455 -0
- package/dist/chunk-YPCVPDU7.js.map +1 -0
- package/dist/chunk-YTWNY3RF.js +97 -0
- package/dist/claim-JLVISHS4.js +197 -0
- package/dist/cli.js +41 -37
- package/dist/cli.js.map +1 -1
- package/dist/client-G6DGRGKT.js +19 -0
- package/dist/code-AYN42EK7.js +76 -0
- package/dist/companies-XDMOP2GL.js +195 -0
- package/dist/complete-XM7VLC4F.js +81 -0
- package/dist/config-UE7GCROG.js +88 -0
- package/dist/connect-VTDKGYP3.js +42 -0
- package/dist/content-5LHM4PBE.js +85 -0
- package/dist/content-5LHM4PBE.js.map +1 -0
- package/dist/conversation-F53OE25Y.js +93 -0
- package/dist/conversion-report-35MLL3FA.js +125 -0
- package/dist/conversion-upload-command-CV2TA7OV.js +438 -0
- package/dist/conversion-writes-NSZPNMPE.js +120 -0
- package/dist/conversions-7YO6DDL3.js +135 -0
- package/dist/conversions-XNISCCC2.js +76 -0
- package/dist/countries-NMWPKFFW.js +82 -0
- package/dist/create-ARERZYCL.js +59 -0
- package/dist/create-C6ZVYIF5.js +207 -0
- package/dist/create-FAPJFCZE.js +235 -0
- package/dist/create-M7TUO3XS.js +130 -0
- package/dist/creatives-3YIV6IOK.js +182 -0
- package/dist/creatives-QZCO6WGH.js +51 -0
- package/dist/creatives-WJLJ3NKP.js +87 -0
- package/dist/credentials-2DO23MYD.js +287 -0
- package/dist/credentials-2DO23MYD.js.map +1 -0
- package/dist/critique-56MNXW7R.js +1449 -0
- package/dist/critique-KRIKEHF6.js +213 -0
- package/dist/crm-OETFQNR3.js +224 -0
- package/dist/crm-WXCFB4TU.js +318 -0
- package/dist/crop-VCP2JLQL.js +113 -0
- package/dist/currency-MNNDKY4Z.js +88 -0
- package/dist/custom-conversions-CIU525HM.js +125 -0
- package/dist/customers-GTPEABJI.js +56 -0
- package/dist/decide-NFTEKQKC.js +199 -0
- package/dist/decide-NFTEKQKC.js.map +1 -0
- package/dist/delete-5CURRI25.js +71 -0
- package/dist/delete-CLC2Q2OE.js +63 -0
- package/dist/delete-CQ6Q3URI.js +54 -0
- package/dist/delete-JIRZBBDD.js +69 -0
- package/dist/delete-LD3F4UIW.js +66 -0
- package/dist/delete-LGZ5OI4C.js +71 -0
- package/dist/demographics-EK2ZPHWK.js +138 -0
- package/dist/describe-BNB6643C.js +97 -0
- package/dist/describe-ZXGFTCDR.js +97 -0
- package/dist/dimensions-IU4ETG4U.js +101 -0
- package/dist/discard-VWCXYJWU.js +66 -0
- package/dist/discover-4EQWGIAN.js +172 -0
- package/dist/discover-4N3V5K2R.js +93 -0
- package/dist/discover-4N3V5K2R.js.map +1 -0
- package/dist/domain-I2SAGVAB.js +98 -0
- package/dist/download-D7TB4744.js +299 -0
- package/dist/draft-4VOOSJQJ.js +233 -0
- package/dist/draft-6KG2YFOY.js +328 -0
- package/dist/draft-APDGACIC.js +306 -0
- package/dist/draft-D76C4JR3.js +103 -0
- package/dist/draft-HFH2Y6F5.js +281 -0
- package/dist/draft-NLUJX7TA.js +307 -0
- package/dist/draft-NLUJX7TA.js.map +1 -0
- package/dist/draft-NVVWWQVC.js +217 -0
- package/dist/draft-NWLPLTWM.js +100 -0
- package/dist/engine/index.js +12 -13
- package/dist/env-LHLGM2YJ.js +43 -0
- package/dist/experiment-4SUIXVBP.js +1397 -0
- package/dist/experiment-4SUIXVBP.js.map +1 -0
- package/dist/export-VGCFD7GL.js +168 -0
- package/dist/extract-32J7V2RX.js +113 -0
- package/dist/facets-WVI6VBDC.js +114 -0
- package/dist/favorites-WKV5H5OF.js +178 -0
- package/dist/feed-2CRO4HA6.js +177 -0
- package/dist/feed-2CRO4HA6.js.map +1 -0
- package/dist/feedback-NMNKYEMU.js +66 -0
- package/dist/feedback-record-2VYBMWMO.js +175 -0
- package/dist/fetch-CENBDLT6.js +176 -0
- package/dist/fetch-XQFPE3MI.js +139 -0
- package/dist/find-PNDKEOXT.js +134 -0
- package/dist/fit-SEWGCEW5.js +45 -0
- package/dist/flows-3N4RPGSP.js +247 -0
- package/dist/flows-3N4RPGSP.js.map +1 -0
- package/dist/follow-BB5KUEXZ.js +94 -0
- package/dist/follow-BB5KUEXZ.js.map +1 -0
- package/dist/follow-competitors-EURYGGXE.js +112 -0
- package/dist/follow-competitors-EURYGGXE.js.map +1 -0
- package/dist/following-CA5BQXYB.js +113 -0
- package/dist/following-CA5BQXYB.js.map +1 -0
- package/dist/fonts-KUCQAR7N.js +34 -0
- package/dist/forecast-G5KRTVDM.js +168 -0
- package/dist/forecast-G5KRTVDM.js.map +1 -0
- package/dist/forecast-PI52G2GL.js +104 -0
- package/dist/funding-ZRC25X5I.js +85 -0
- package/dist/funnel-WGFMUWQP.js +394 -0
- package/dist/funnel-WGFMUWQP.js.map +1 -0
- package/dist/ga4-YDKXVJOC.js +55 -0
- package/dist/generate-BVMMX3SS.js +262 -0
- package/dist/get-7MSF4RVQ.js +59 -0
- package/dist/get-FILH7BDT.js +78 -0
- package/dist/get-FILH7BDT.js.map +1 -0
- package/dist/get-KFVPIDIA.js +61 -0
- package/dist/get-NHQ2XYKZ.js +63 -0
- package/dist/get-TCDAYTZA.js +56 -0
- package/dist/get-UMMTY74K.js +92 -0
- package/dist/get-YM77HCL5.js +63 -0
- package/dist/gif-X323HXS2.js +94 -0
- package/dist/google-76A4MHQH.js +136 -0
- package/dist/google-OZTCY7HD.js +3190 -0
- package/dist/google-OZTCY7HD.js.map +1 -0
- package/dist/google-ads-S6O4MLKA.js +195 -0
- package/dist/group-CTIZVYX2.js +43 -0
- package/dist/group-HKWQ75CJ.js +43 -0
- package/dist/gsc-CORRYJBJ.js +30 -0
- package/dist/history-4U7FJGEM.js +133 -0
- package/dist/history-BXOMJ5PL.js +67 -0
- package/dist/hubspot-I5MFAZ4G.js +779 -0
- package/dist/icon-6QW63AHG.js +137 -0
- package/dist/ideas-QDS5XA4S.js +32 -0
- package/dist/images-NVTA2OHD.js +90 -0
- package/dist/improve-WR23CHYH.js +86 -0
- package/dist/ingest-QAVJ2J7F.js +107 -0
- package/dist/ingest-XJHV3GG6.js +23 -0
- package/dist/insights-AW7SOGHI.js +122 -0
- package/dist/insights-IJEPLWQH.js +423 -0
- package/dist/inspect-7I53PWCF.js +189 -0
- package/dist/inspiration-TJJFUVY2.js +53 -0
- package/dist/intent-VEUQS34Z.js +95 -0
- package/dist/job-K7LAIBYN.js +202 -0
- package/dist/job-create-DFZL4CGA.js +109 -0
- package/dist/job-status-6Q2TVTEO.js +74 -0
- package/dist/keep-XJFCLVCP.js +78 -0
- package/dist/keyword-gap-CUOGKUMM.js +130 -0
- package/dist/keyword-metrics-LK7FME4N.js +197 -0
- package/dist/keywords-for-site-4E7UU44P.js +128 -0
- package/dist/landing-I65PFN7H.js +28 -0
- package/dist/landings-SQJWZOJR.js +151 -0
- package/dist/landings-SQJWZOJR.js.map +1 -0
- package/dist/languages-KPPKX3E2.js +40 -0
- package/dist/languages-MGEBLO64.js +55 -0
- package/dist/launches-E3Y6NCQE.js +19 -0
- package/dist/layerize-N4IQ2KE7.js +190 -0
- package/dist/leads-PPMOBH7U.js +293 -0
- package/dist/leads-TNEQUOUN.js +90 -0
- package/dist/learn-QQS323PS.js +203 -0
- package/dist/library-4QQAVB6X.js +109 -0
- package/dist/lighthouse-CD47CPJM.js +75 -0
- package/dist/line-item-writes-QJZQUQ4E.js +208 -0
- package/dist/line-items-ESEAXGBV.js +103 -0
- package/dist/link-DPJYS4WY.js +64 -0
- package/dist/linkedin-EJPNC4VY.js +1008 -0
- package/dist/list-A45NTPSJ.js +76 -0
- package/dist/list-GNP4GIV2.js +51 -0
- package/dist/list-KQFLOVC4.js +57 -0
- package/dist/list-MDHK3ENJ.js +50 -0
- package/dist/list-PRUFXMXW.js +65 -0
- package/dist/list-S3BAQCTL.js +303 -0
- package/dist/list-UU5NPLJ7.js +151 -0
- package/dist/list-V525A4Z4.js +63 -0
- package/dist/locations-J2PVPDZU.js +67 -0
- package/dist/locations-TFOYESTF.js +40 -0
- package/dist/log-XQBEJOOW.js +92 -0
- package/dist/logo-KQD5KUAH.js +18 -0
- package/dist/lookup-QCREWUV4.js +22 -0
- package/dist/make-NZHJ7ICV.js +633 -0
- package/dist/make-NZHJ7ICV.js.map +1 -0
- package/dist/map-7SHU5WCJ.js +433 -0
- package/dist/map-7SHU5WCJ.js.map +1 -0
- package/dist/mcp-GATPHY4D.js +463 -0
- package/dist/mcp-GATPHY4D.js.map +1 -0
- package/dist/media-2WENMOAA.js +15 -0
- package/dist/media-N4C6Q4IV.js +89 -0
- package/dist/media-sources-BPOTW6IB.js +32 -0
- package/dist/members-BOYZKLNK.js +44 -0
- package/dist/meta-PXYHWOOG.js +69 -0
- package/dist/metrics-FZANUN7E.js +152 -0
- package/dist/models-W6EN3WB7.js +155 -0
- package/dist/normalize-LOMDPNFJ.js +806 -0
- package/dist/normalize-RP3D7BUT.js +141 -0
- package/dist/normalize-RP3D7BUT.js.map +1 -0
- package/dist/options-FXND5P2W.js +122 -0
- package/dist/options-FXND5P2W.js.map +1 -0
- package/dist/output-SR4DN3A4.js +24 -0
- package/dist/page-FS76L5WU.js +105 -0
- package/dist/pages-INMNJSX2.js +66 -0
- package/dist/performance-53D43XVZ.js +24 -0
- package/dist/pinterest-JMHFPNVW.js +96 -0
- package/dist/pixels-K6ZD7SXV.js +60 -0
- package/dist/pixels-XPBBJYE3.js +108 -0
- package/dist/plan-45ESBYZA.js +207 -0
- package/dist/plan-45ESBYZA.js.map +1 -0
- package/dist/preview-KXSNG3BS.js +169 -0
- package/dist/profile-I4IXWBAQ.js +159 -0
- package/dist/profile-I4IXWBAQ.js.map +1 -0
- package/dist/promoted-tweet-writes-I6HVQRDB.js +180 -0
- package/dist/promoted-tweets-YAQ5ZUXI.js +119 -0
- package/dist/properties-NYNEONHI.js +101 -0
- package/dist/publish-Z5DVKZSG.js +322 -0
- package/dist/query-MSZPOHFL.js +61 -0
- package/dist/query-RK2TFMBI.js +236 -0
- package/dist/query-TWNH6GV7.js +247 -0
- package/dist/questionnaire-CNXN2TUZ.js +93 -0
- package/dist/questionnaire-CNXN2TUZ.js.map +1 -0
- package/dist/read-2AGRYWXU.js +141 -0
- package/dist/read-2AGRYWXU.js.map +1 -0
- package/dist/reddit-6DQTBTO6.js +26 -0
- package/dist/refresh-TP2TOGS6.js +94 -0
- package/dist/release-PHQEZ2ZX.js +60 -0
- package/dist/relevant-pages-ORVFFVAM.js +99 -0
- package/dist/remove-ETLMMDEA.js +48 -0
- package/dist/remove-KTBM5YSH.js +50 -0
- package/dist/reopen-OURQR6U7.js +63 -0
- package/dist/rerun-HGCVZ3D4.js +84 -0
- package/dist/rerun-HGCVZ3D4.js.map +1 -0
- package/dist/research-P23YBKS3.js +62 -0
- package/dist/research-WCNWT5Y5.js +262 -0
- package/dist/reset-2NCAWWN4.js +54 -0
- package/dist/reset-65R2CUB5.js +54 -0
- package/dist/resolve-65FKZ23N.js +121 -0
- package/dist/retry-P5K6LE6K.js +60 -0
- package/dist/retry-UIPDQJ5F.js +62 -0
- package/dist/retry-failed-QMWQ6TRL.js +45 -0
- package/dist/run-NDMEYUOI.js +59 -0
- package/dist/run-OP3T4TCF.js +65 -0
- package/dist/scaffold-ad-A5MWIOQJ.js +1548 -0
- package/dist/scaffold-ad-A5MWIOQJ.js.map +1 -0
- package/dist/scaffold-static-ad-MFPDXR6J.js +971 -0
- package/dist/scaffold-static-ad-MFPDXR6J.js.map +1 -0
- package/dist/scaffold-video-N6TY36I3.js +872 -0
- package/dist/scaffold-video-N6TY36I3.js.map +1 -0
- package/dist/schedule-6D667AXB.js +61 -0
- package/dist/schedule-KXLQVCZW.js +66 -0
- package/dist/scheduled-agents-LYWEX4PU.js +49 -0
- package/dist/schema-5HZIAHY3.js +132 -0
- package/dist/schema-5HZIAHY3.js.map +1 -0
- package/dist/schema-CCFLFAOY.js +63 -0
- package/dist/scrape-DBZQFIW7.js +2241 -0
- package/dist/screenshot-MPFANYIH.js +102 -0
- package/dist/search-4AANIUUL.js +91 -0
- package/dist/search-EMJABZYF.js +224 -0
- package/dist/search-HQDN7DOF.js +174 -0
- package/dist/search-OVHC4CRQ.js +26 -0
- package/dist/search-YSGZRANA.js +92 -0
- package/dist/search-copy-E3EVO7YT.js +168 -0
- package/dist/search-copy-E3EVO7YT.js.map +1 -0
- package/dist/seeds-XTBVEHSF.js +101 -0
- package/dist/seeds-XTBVEHSF.js.map +1 -0
- package/dist/select-C6BKHB4B.js +94 -0
- package/dist/sends-HXN5HSF6.js +309 -0
- package/dist/sequences-FRK76ZQV.js +146 -0
- package/dist/set-prompt-AOSHNBFC.js +185 -0
- package/dist/set-prompt-AOSHNBFC.js.map +1 -0
- package/dist/setup-links-BM2GLSSO.js +141 -0
- package/dist/shared-EH5ZTQXC.js +31 -0
- package/dist/site-3PEJYQJW.js +177 -0
- package/dist/sitemaps-7KHY2KXI.js +87 -0
- package/dist/sites-6B76JW6C.js +101 -0
- package/dist/skills-SCTT3LCM.js +47 -0
- package/dist/sources-ODJBHNGY.js +30 -0
- package/dist/sources-ZTLMXFHK.js +454 -0
- package/dist/sources-ZTLMXFHK.js.map +1 -0
- package/dist/stale-2O54QXY2.js +63 -0
- package/dist/stats-4NBOAOR2.js +34 -0
- package/dist/status-NE5OBM4B.js +62 -0
- package/dist/sticker-NLXBIOBO.js +94 -0
- package/dist/stock-F3SA4VHV.js +179 -0
- package/dist/studio-ZPDIOFKL.js +49 -0
- package/dist/sync-5GJNZDGZ.js +54 -0
- package/dist/sync-FCNFXTFD.js +265 -0
- package/dist/sync-YXCZ3DHY.js +54 -0
- package/dist/sync-definition-IL6Z4ZI7.js +52 -0
- package/dist/sync-definition-IL6Z4ZI7.js.map +1 -0
- package/dist/tag-manager-YM4Q3CZT.js +43 -0
- package/dist/tags-456UOYJU.js +26 -0
- package/dist/tags-5YPYHV5V.js +20 -0
- package/dist/tags-HXMHEHG2.js +224 -0
- package/dist/tags-K34666RY.js +20 -0
- package/dist/tags-NB35ISO3.js +20 -0
- package/dist/targeting-constants-3CMGPWRI.js +118 -0
- package/dist/targeting-criteria-UKQ4WF5C.js +113 -0
- package/dist/targets-VQ4BQ657.js +102 -0
- package/dist/templates-PMUIOVDX.js +178 -0
- package/dist/testimonials-XZCGVD6V.js +32 -0
- package/dist/themes-TVXLYJ7Y.js +94 -0
- package/dist/themes-TVXLYJ7Y.js.map +1 -0
- package/dist/top-companies-VMRIDOOH.js +108 -0
- package/dist/translate-F5KR62LF.js +598 -0
- package/dist/triggers-2MZX7W6Y.js +141 -0
- package/dist/tweets-XWE3VYQ4.js +123 -0
- package/dist/unfollow-7U4UBAJX.js +46 -0
- package/dist/unlink-AWSNY3QS.js +67 -0
- package/dist/unstage-OGB43ZXO.js +95 -0
- package/dist/unstage-RQBOQ4DY.js +84 -0
- package/dist/update-4KWYHMLS.js +63 -0
- package/dist/update-6DKEWM64.js +142 -0
- package/dist/update-G6EKHPIF.js +155 -0
- package/dist/update-OFV452AC.js +98 -0
- package/dist/upload-6CJWMQ24.js +126 -0
- package/dist/upload-GUKMQ5MT.js +150 -0
- package/dist/upscale-A456MESF.js +109 -0
- package/dist/url-options-FGDOVUSI.js +130 -0
- package/dist/url-options-FGDOVUSI.js.map +1 -0
- package/dist/url-params-OE3UMYMM.js +98 -0
- package/dist/use-HBVKVT5S.js +95 -0
- package/dist/validate-ZCUZV3L4.js +88 -0
- package/dist/validate-ZCUZV3L4.js.map +1 -0
- package/dist/variant-HULP57YI.js +338 -0
- package/dist/videos-ION7UT3M.js +39 -0
- package/dist/view-GCDEJZII.js +121 -0
- package/dist/viewer-check-UKYFBFMY.js +68 -0
- package/dist/viewer-check-UKYFBFMY.js.map +1 -0
- package/dist/web-CCVD6UZ4.js +140 -0
- package/dist/winners-WSMWC4M5.js +113 -0
- package/dist/winners-WSMWC4M5.js.map +1 -0
- package/dist/winning-ads-UCSSFEXD.js +84 -0
- package/dist/winning-ads-UCSSFEXD.js.map +1 -0
- package/dist/write-commands-47OP673X.js +713 -0
- package/dist/write-commands-IJ5IFHS6.js +737 -0
- package/dist/write-commands-NNVDWBLG.js +1015 -0
- package/dist/write-commands-OBMIVFZJ.js +206 -0
- package/dist/x-U32DT24S.js +47 -0
- package/package.json +2 -2
- package/dist/account-4H7QVBRK.js +0 -80
- package/dist/account-DTHGTZCN.js +0 -79
- package/dist/account-IEVEOFIK.js +0 -49
- package/dist/account-writes-AK42HGRM.js +0 -66
- package/dist/accounts-4CDRK4S4.js +0 -75
- package/dist/accounts-5QDKBZMH.js +0 -115
- package/dist/accounts-5RLG6BBA.js +0 -77
- package/dist/accounts-6LSBBXKA.js +0 -611
- package/dist/accounts-KYJO3JC6.js +0 -114
- package/dist/actions-WH5C6Q7I.js +0 -55
- package/dist/active-entities-YUSOUR5M.js +0 -103
- package/dist/activities-ZVQOBHZH.js +0 -74
- package/dist/ad-group-writes-QQS4223F.js +0 -170
- package/dist/ad-groups-WGPDPUI2.js +0 -68
- package/dist/ad-writes-XE2IE4DS.js +0 -174
- package/dist/add-577QWMCF.js +0 -97
- package/dist/add-BZ4QPLK4.js +0 -104
- package/dist/add-CUWAW7KG.js +0 -105
- package/dist/add-TRSKOIO6.js +0 -305
- package/dist/add-TRSKOIO6.js.map +0 -1
- package/dist/ads-6UEDYT3O.js +0 -113
- package/dist/ads-6UG66KA5.js +0 -40
- package/dist/ads-BCOSQALY.js +0 -77
- package/dist/adsets-Q5DWGANV.js +0 -176
- package/dist/advertisers-OABQDELT.js +0 -120
- package/dist/advertisers-YMHPZYNF.js +0 -111
- package/dist/advertisers-YMHPZYNF.js.map +0 -1
- package/dist/analytics-3YAWQF5K.js +0 -1958
- package/dist/analytics-3YAWQF5K.js.map +0 -1
- package/dist/analytics-BCZGSSXP.js +0 -433
- package/dist/animate-AIZ3GS4J.js +0 -480
- package/dist/assign-O6QNAZD5.js +0 -77
- package/dist/audience-size-CXPWERR3.js +0 -94
- package/dist/audiences-AMRFZRZ7.js +0 -78
- package/dist/audiences-HFRVIE2X.js +0 -85
- package/dist/audiences-TGD5US2M.js +0 -268
- package/dist/audit-AD4ZZNJN.js +0 -88
- package/dist/audit-MNOQK3U4.js +0 -151
- package/dist/autocomplete-TRCMPNW4.js +0 -111
- package/dist/avatars-P3WX5TQP.js +0 -38
- package/dist/bid-pricing-6XXSM7C2.js +0 -99
- package/dist/brand-LXU7YNCF.js +0 -22
- package/dist/brief-Y4F37TH5.js +0 -477
- package/dist/brief-Y4F37TH5.js.map +0 -1
- package/dist/businesses-JBDQZZIG.js +0 -53
- package/dist/campaign-groups-CEAM3WRO.js +0 -95
- package/dist/campaign-writes-D6BJAULL.js +0 -165
- package/dist/campaign-writes-SXLZFYF6.js +0 -170
- package/dist/campaigns-CXOKBCPS.js +0 -109
- package/dist/campaigns-D6B6Z67Y.js +0 -110
- package/dist/campaigns-V3SWBM4E.js +0 -107
- package/dist/campaigns-YS3OGQXO.js +0 -76
- package/dist/canvas-VH3Q26TK.js +0 -46
- package/dist/canvas-VH3Q26TK.js.map +0 -1
- package/dist/capabilities-NZPSSS6T.js +0 -144
- package/dist/cards-4477BFEV.js +0 -85
- package/dist/catalog-GWN3WT7J.js +0 -65
- package/dist/catalog-GWN3WT7J.js.map +0 -1
- package/dist/catalogs-BRXEDE56.js +0 -128
- package/dist/changes-TP7ZZHB3.js +0 -135
- package/dist/chatgpt-7W75X3ER.js +0 -47
- package/dist/chats-GN3PBFX4.js +0 -262
- package/dist/chunk-2BKVVCCV.js +0 -133
- package/dist/chunk-2GTYAHDN.js +0 -455
- package/dist/chunk-2TK4DEOE.js +0 -74
- package/dist/chunk-3OFVFHKT.js +0 -622
- package/dist/chunk-3OFVFHKT.js.map +0 -1
- package/dist/chunk-4NDCTLI5.js +0 -191
- package/dist/chunk-4QEY2L6U.js +0 -486
- package/dist/chunk-4Z7DEN75.js +0 -57
- package/dist/chunk-5ARG3CQG.js +0 -141
- package/dist/chunk-5ARG3CQG.js.map +0 -1
- package/dist/chunk-5Z2KSVIV.js +0 -67
- package/dist/chunk-6B7VKFS4.js +0 -172
- package/dist/chunk-6G5K6ZC6.js +0 -46
- package/dist/chunk-6Y7SIP2D.js +0 -4383
- package/dist/chunk-6Y7SIP2D.js.map +0 -1
- package/dist/chunk-75FDTDLH.js +0 -96
- package/dist/chunk-7ED5TAFP.js +0 -346
- package/dist/chunk-7J6EHOH6.js +0 -274
- package/dist/chunk-7OFNN4CT.js +0 -58
- package/dist/chunk-BNCW67EM.js +0 -534
- package/dist/chunk-BNCW67EM.js.map +0 -1
- package/dist/chunk-C6U6UDHJ.js +0 -106
- package/dist/chunk-CFHIW5QZ.js +0 -297
- package/dist/chunk-CYEO5ZIO.js +0 -133
- package/dist/chunk-CYEO5ZIO.js.map +0 -1
- package/dist/chunk-D6744YSX.js +0 -440
- package/dist/chunk-D6744YSX.js.map +0 -1
- package/dist/chunk-DQMZXK27.js +0 -433
- package/dist/chunk-DZSIUEGH.js +0 -136
- package/dist/chunk-E4NCRGY3.js +0 -494
- package/dist/chunk-EAEOPERX.js +0 -6667
- package/dist/chunk-EAEOPERX.js.map +0 -1
- package/dist/chunk-EFSYTROP.js +0 -94
- package/dist/chunk-ESB5DLIP.js +0 -382
- package/dist/chunk-F2S5BLPE.js +0 -97
- package/dist/chunk-FTWJFDIN.js +0 -23992
- package/dist/chunk-FVF5SXTZ.js +0 -19
- package/dist/chunk-GX6VAHY7.js +0 -830
- package/dist/chunk-GX6VAHY7.js.map +0 -1
- package/dist/chunk-GYU7BWEN.js +0 -111
- package/dist/chunk-H26L3OQY.js +0 -42
- package/dist/chunk-HRYOZUSK.js +0 -1711
- package/dist/chunk-HRYOZUSK.js.map +0 -1
- package/dist/chunk-HZUDRKGR.js +0 -98
- package/dist/chunk-IFWP3ZDO.js +0 -215
- package/dist/chunk-IFWP3ZDO.js.map +0 -1
- package/dist/chunk-IGQZ5U3C.js +0 -207
- package/dist/chunk-IYU4X5A7.js +0 -592
- package/dist/chunk-JERXV5A3.js +0 -26
- package/dist/chunk-JVLAV62J.js +0 -3147
- package/dist/chunk-JVLAV62J.js.map +0 -1
- package/dist/chunk-K6WVV74H.js +0 -6178
- package/dist/chunk-K6WVV74H.js.map +0 -1
- package/dist/chunk-KLNKEVIY.js +0 -136
- package/dist/chunk-KNY76UGC.js +0 -84
- package/dist/chunk-L27H2R2N.js +0 -174
- package/dist/chunk-L5J3S6B6.js +0 -260
- package/dist/chunk-L5J3S6B6.js.map +0 -1
- package/dist/chunk-LERTEZST.js +0 -28
- package/dist/chunk-LERTEZST.js.map +0 -1
- package/dist/chunk-LIQ4SQ2T.js +0 -150
- package/dist/chunk-LLOOWRBB.js +0 -496
- package/dist/chunk-LLOOWRBB.js.map +0 -1
- package/dist/chunk-LS5MTRFI.js +0 -106
- package/dist/chunk-LZ73CZGP.js +0 -188
- package/dist/chunk-MELOSESI.js +0 -20
- package/dist/chunk-MELOSESI.js.map +0 -1
- package/dist/chunk-MZL4H5PY.js +0 -225
- package/dist/chunk-NAWWC5I3.js +0 -454
- package/dist/chunk-NAWWC5I3.js.map +0 -1
- package/dist/chunk-ND5MJ3AA.js +0 -60
- package/dist/chunk-NE4F3FHN.js +0 -1854
- package/dist/chunk-NE4F3FHN.js.map +0 -1
- package/dist/chunk-NECTN6N7.js +0 -206
- package/dist/chunk-NIJSXVFT.js +0 -304
- package/dist/chunk-NJXNU2G6.js +0 -819
- package/dist/chunk-NJXNU2G6.js.map +0 -1
- package/dist/chunk-NU7JSWVA.js +0 -946
- package/dist/chunk-NU7JSWVA.js.map +0 -1
- package/dist/chunk-OKJWBB2K.js +0 -5189
- package/dist/chunk-OKJWBB2K.js.map +0 -1
- package/dist/chunk-ORO7VAXB.js +0 -197
- package/dist/chunk-OUTF5JFG.js +0 -51
- package/dist/chunk-PBA3YCZA.js +0 -76
- package/dist/chunk-PTCIM35Y.js +0 -310
- package/dist/chunk-PTCIM35Y.js.map +0 -1
- package/dist/chunk-PVUZWHNQ.js +0 -509
- package/dist/chunk-PWGWMIIJ.js +0 -25
- package/dist/chunk-PZXCWSKV.js +0 -1830
- package/dist/chunk-QSN5MZGS.js +0 -74
- package/dist/chunk-QVJDPOEB.js +0 -175
- package/dist/chunk-R5RIH3N5.js +0 -337
- package/dist/chunk-RB5CVIK6.js +0 -1079
- package/dist/chunk-RB5CVIK6.js.map +0 -1
- package/dist/chunk-RPUSTYHL.js +0 -170
- package/dist/chunk-RX6F3GEA.js +0 -610
- package/dist/chunk-RZT263H7.js +0 -363
- package/dist/chunk-SSJK7FEV.js +0 -2886
- package/dist/chunk-SSJK7FEV.js.map +0 -1
- package/dist/chunk-STIB5DR5.js +0 -56
- package/dist/chunk-T4DD5YMP.js +0 -166
- package/dist/chunk-T4DD5YMP.js.map +0 -1
- package/dist/chunk-TD2P4HBP.js +0 -55
- package/dist/chunk-TEINLN64.js +0 -649
- package/dist/chunk-TEINLN64.js.map +0 -1
- package/dist/chunk-TUB34FVS.js +0 -96
- package/dist/chunk-TX7LZWZD.js +0 -1411
- package/dist/chunk-TX7LZWZD.js.map +0 -1
- package/dist/chunk-V7CTQOHG.js +0 -92
- package/dist/chunk-VAJBWA2U.js +0 -75
- package/dist/chunk-VFIOJD5M.js +0 -309
- package/dist/chunk-VNUNE5AB.js +0 -160
- package/dist/chunk-VVZBBKRC.js +0 -296
- package/dist/chunk-W3B4BHQU.js +0 -31
- package/dist/chunk-W3B4BHQU.js.map +0 -1
- package/dist/chunk-W3ZHJJVT.js +0 -139
- package/dist/chunk-WNFIJAUO.js +0 -98
- package/dist/chunk-WS2GMOSG.js +0 -74
- package/dist/chunk-WTOYCUKH.js +0 -84
- package/dist/chunk-X7ZODEXJ.js +0 -36
- package/dist/chunk-X7ZODEXJ.js.map +0 -1
- package/dist/chunk-XBOK23HI.js +0 -214
- package/dist/chunk-XBOK23HI.js.map +0 -1
- package/dist/chunk-XCM6XWOB.js +0 -417
- package/dist/chunk-XCM6XWOB.js.map +0 -1
- package/dist/chunk-XFGAUP5B.js +0 -76
- package/dist/chunk-XFGAUP5B.js.map +0 -1
- package/dist/chunk-XL3BMSYG.js +0 -125
- package/dist/chunk-XQIKDODN.js +0 -103
- package/dist/chunk-XTRAI6CL.js +0 -23
- package/dist/chunk-XVOI4BIS.js +0 -169
- package/dist/chunk-YBMVHGY3.js +0 -333
- package/dist/chunk-ZDNOCKKY.js +0 -172
- package/dist/chunk-ZDNOCKKY.js.map +0 -1
- package/dist/chunk-ZGTCZ6H4.js +0 -159
- package/dist/chunk-ZJLETAOO.js +0 -484
- package/dist/chunk-ZJLETAOO.js.map +0 -1
- package/dist/chunk-ZJWUBJYQ.js +0 -204
- package/dist/chunk-ZJWUBJYQ.js.map +0 -1
- package/dist/chunk-ZZQXVYUY.js +0 -66
- package/dist/claim-25JJM4AG.js +0 -197
- package/dist/client-VHN32ZRE.js +0 -19
- package/dist/code-YS6ZMGX3.js +0 -76
- package/dist/companies-VR5M5PAN.js +0 -195
- package/dist/complete-DRMOTC2W.js +0 -81
- package/dist/config-CQN5FHMZ.js +0 -88
- package/dist/connect-WUDJR2GH.js +0 -40
- package/dist/content-3ZPP4SW2.js +0 -81
- package/dist/content-3ZPP4SW2.js.map +0 -1
- package/dist/conversation-K6LYF2ZP.js +0 -93
- package/dist/conversion-report-XQBJ6LG4.js +0 -125
- package/dist/conversion-upload-command-AUF3LNTH.js +0 -438
- package/dist/conversion-writes-UBCVXP2E.js +0 -120
- package/dist/conversions-D236RTUK.js +0 -76
- package/dist/conversions-GF32XOWY.js +0 -135
- package/dist/countries-ESAKTQAE.js +0 -82
- package/dist/create-2D7AIFJI.js +0 -235
- package/dist/create-4TFAD6HY.js +0 -59
- package/dist/create-IXYXYLLE.js +0 -207
- package/dist/create-PKJVFJMO.js +0 -130
- package/dist/creatives-OHCFHRZ5.js +0 -182
- package/dist/creatives-QLSZFOMB.js +0 -51
- package/dist/creatives-UEPLNCPN.js +0 -87
- package/dist/credentials-WSLR5VU4.js +0 -1055
- package/dist/credentials-WSLR5VU4.js.map +0 -1
- package/dist/critique-5PCQ2CJH.js +0 -1449
- package/dist/critique-WDO6SKK2.js +0 -213
- package/dist/crm-HNUOHXAN.js +0 -224
- package/dist/crm-SNIUADNK.js +0 -318
- package/dist/crop-2J4RKJ6B.js +0 -113
- package/dist/currency-XCGKQ7FE.js +0 -88
- package/dist/custom-conversions-2VLJGPRV.js +0 -125
- package/dist/customers-72L2KZHO.js +0 -56
- package/dist/delete-3AV3ARMX.js +0 -71
- package/dist/delete-A5XD52K4.js +0 -69
- package/dist/delete-EVGM5B36.js +0 -54
- package/dist/delete-MRM2S4Z5.js +0 -71
- package/dist/delete-PA2GY5EC.js +0 -63
- package/dist/delete-YNNFTFYV.js +0 -66
- package/dist/demographics-SYS2E7QC.js +0 -138
- package/dist/describe-6NVOWIBE.js +0 -97
- package/dist/describe-P3PPIQME.js +0 -97
- package/dist/dimensions-EYAYO27I.js +0 -101
- package/dist/discard-JS2YJUIM.js +0 -66
- package/dist/discover-BJPZNXUQ.js +0 -172
- package/dist/domain-XKKH5NCL.js +0 -98
- package/dist/download-7T6HIJKD.js +0 -299
- package/dist/draft-4AO4YH3V.js +0 -306
- package/dist/draft-5YAYCEYY.js +0 -107
- package/dist/draft-5YAYCEYY.js.map +0 -1
- package/dist/draft-BGUJDHXR.js +0 -103
- package/dist/draft-GCUXNPVH.js +0 -217
- package/dist/draft-KIBMVKSR.js +0 -100
- package/dist/draft-MNFJ4G3C.js +0 -281
- package/dist/draft-WWWKSEEE.js +0 -328
- package/dist/draft-YDY2Q2K6.js +0 -233
- package/dist/env-KIP2J2UB.js +0 -43
- package/dist/experiment-LKK77YAN.js +0 -1377
- package/dist/experiment-LKK77YAN.js.map +0 -1
- package/dist/export-JQRMBJ7D.js +0 -168
- package/dist/extract-7QKLME7Z.js +0 -113
- package/dist/facets-NVBX5WDT.js +0 -114
- package/dist/favorites-NSGF4OV5.js +0 -178
- package/dist/feed-RV4KPPXM.js +0 -157
- package/dist/feed-RV4KPPXM.js.map +0 -1
- package/dist/feedback-OGAPR45R.js +0 -66
- package/dist/feedback-record-GVXGDY5Y.js +0 -175
- package/dist/fetch-U4TJIHZU.js +0 -176
- package/dist/fetch-XF76JABV.js +0 -139
- package/dist/find-OTDIX6V4.js +0 -134
- package/dist/fit-BOQL6OK3.js +0 -45
- package/dist/flows-XVZJ6GOI.js +0 -264
- package/dist/flows-XVZJ6GOI.js.map +0 -1
- package/dist/follow-FN7LV3WV.js +0 -82
- package/dist/follow-FN7LV3WV.js.map +0 -1
- package/dist/follow-competitors-MKXFHLXB.js +0 -131
- package/dist/follow-competitors-MKXFHLXB.js.map +0 -1
- package/dist/following-RKC2FLHI.js +0 -109
- package/dist/following-RKC2FLHI.js.map +0 -1
- package/dist/fonts-64T6KRZS.js +0 -34
- package/dist/forecast-YIIGTHRM.js +0 -104
- package/dist/funding-NYO65IMT.js +0 -85
- package/dist/funnel-XHDCXXQ5.js +0 -837
- package/dist/funnel-XHDCXXQ5.js.map +0 -1
- package/dist/ga4-UDQ2HA2J.js +0 -55
- package/dist/generate-3XYYITU6.js +0 -262
- package/dist/get-3L6W3E3T.js +0 -59
- package/dist/get-6RQFDAIN.js +0 -56
- package/dist/get-6WEYKOY6.js +0 -63
- package/dist/get-P743RPSI.js +0 -63
- package/dist/get-XJ3AZX35.js +0 -78
- package/dist/get-XJ3AZX35.js.map +0 -1
- package/dist/get-XN5ZGDIK.js +0 -61
- package/dist/get-YIHTAMRT.js +0 -92
- package/dist/gif-53ULFVLR.js +0 -94
- package/dist/google-KTO3PLEU.js +0 -136
- package/dist/google-M7KEXVK5.js +0 -1872
- package/dist/google-M7KEXVK5.js.map +0 -1
- package/dist/google-ads-7XAGJVNJ.js +0 -195
- package/dist/group-EFZ3AJIE.js +0 -43
- package/dist/group-GKWCCX66.js +0 -43
- package/dist/gsc-P3QYGDV2.js +0 -30
- package/dist/history-EUG4LE44.js +0 -133
- package/dist/history-Q3QCT64S.js +0 -67
- package/dist/hubspot-UULVEYVO.js +0 -779
- package/dist/icon-I43F77FV.js +0 -137
- package/dist/ideas-7LXYXS5G.js +0 -32
- package/dist/images-3SOTFMJV.js +0 -90
- package/dist/improve-BCCU5AS6.js +0 -86
- package/dist/ingest-HQUXSBWA.js +0 -107
- package/dist/ingest-HYSZC3EX.js +0 -23
- package/dist/insights-LNAXV2CG.js +0 -122
- package/dist/insights-NZWSJKU4.js +0 -423
- package/dist/inspect-HZQ7GSVM.js +0 -189
- package/dist/inspiration-P265QJ2H.js +0 -53
- package/dist/intent-E3UIVZBN.js +0 -95
- package/dist/job-L7RJZMSG.js +0 -202
- package/dist/job-create-JUDAN52O.js +0 -109
- package/dist/job-status-U43WE3RJ.js +0 -74
- package/dist/keep-55CPC7DG.js +0 -78
- package/dist/keyword-gap-BG6M665A.js +0 -130
- package/dist/keyword-metrics-YG3K7MQZ.js +0 -197
- package/dist/keywords-for-site-V4K744TF.js +0 -128
- package/dist/landing-3SSX6WK6.js +0 -28
- package/dist/languages-HORKPDNH.js +0 -40
- package/dist/languages-JSGWCC7Z.js +0 -55
- package/dist/layerize-RPD6SNP6.js +0 -190
- package/dist/leads-ARUWPHBM.js +0 -293
- package/dist/leads-FAHQ6KJX.js +0 -90
- package/dist/learn-XNHGNQE5.js +0 -203
- package/dist/library-ARKRLCNJ.js +0 -109
- package/dist/lighthouse-6ZC45E53.js +0 -75
- package/dist/line-item-writes-A6BPZQPL.js +0 -208
- package/dist/line-items-J7PXJHMD.js +0 -103
- package/dist/link-4GGAQAVH.js +0 -64
- package/dist/linkedin-I6JDSTRB.js +0 -1008
- package/dist/list-22HZ2S4W.js +0 -63
- package/dist/list-7MVBXOJT.js +0 -51
- package/dist/list-A5UCIR2J.js +0 -65
- package/dist/list-AL7N6X2P.js +0 -50
- package/dist/list-AQMGXI4N.js +0 -303
- package/dist/list-KAJZFHMN.js +0 -151
- package/dist/list-LI4OGQFW.js +0 -57
- package/dist/list-P7NAFN6J.js +0 -76
- package/dist/locations-2NKBJKBT.js +0 -67
- package/dist/locations-J4G5RNPH.js +0 -40
- package/dist/log-MUPKKYSJ.js +0 -92
- package/dist/logo-2IP663QO.js +0 -18
- package/dist/lookup-XK45W2SH.js +0 -22
- package/dist/make-3FO76LA7.js +0 -593
- package/dist/make-3FO76LA7.js.map +0 -1
- package/dist/map-F4LXTAJV.js +0 -404
- package/dist/map-F4LXTAJV.js.map +0 -1
- package/dist/mcp-NLAQJWG6.js +0 -476
- package/dist/mcp-NLAQJWG6.js.map +0 -1
- package/dist/media-53DJRC4N.js +0 -15
- package/dist/media-6CQYG4UY.js +0 -89
- package/dist/media-sources-W2CQFSVQ.js +0 -32
- package/dist/members-3U6GINDF.js +0 -44
- package/dist/meta-A7KM6TF5.js +0 -69
- package/dist/metrics-SQDJ5NQO.js +0 -152
- package/dist/models-3Z6MDHQW.js +0 -155
- package/dist/normalize-FQ6WP5E4.js +0 -138
- package/dist/normalize-FQ6WP5E4.js.map +0 -1
- package/dist/normalize-ICQF2AST.js +0 -806
- package/dist/options-K6FNT5A3.js +0 -121
- package/dist/options-K6FNT5A3.js.map +0 -1
- package/dist/output-RAH3TSIL.js +0 -24
- package/dist/page-GS3WLT2C.js +0 -105
- package/dist/pages-FXYQLHSJ.js +0 -66
- package/dist/performance-ZA7VCHOU.js +0 -24
- package/dist/pinterest-AUH7WBA7.js +0 -96
- package/dist/pixels-TZPF746S.js +0 -60
- package/dist/pixels-ZFF4BGUH.js +0 -108
- package/dist/preview-AD4GKYIA.js +0 -169
- package/dist/promoted-tweet-writes-4H3ZFD6O.js +0 -180
- package/dist/promoted-tweets-MCMKPIHM.js +0 -119
- package/dist/properties-L2XIYQDS.js +0 -101
- package/dist/publish-CW5YSAAL.js +0 -322
- package/dist/query-IEZRY6HV.js +0 -1341
- package/dist/query-IEZRY6HV.js.map +0 -1
- package/dist/query-SGGBCHTF.js +0 -236
- package/dist/query-VTGVZQIO.js +0 -247
- package/dist/read-LSF7DYTG.js +0 -140
- package/dist/read-LSF7DYTG.js.map +0 -1
- package/dist/reddit-P7LLO4TK.js +0 -26
- package/dist/refresh-IGHEOA6Y.js +0 -94
- package/dist/release-C74JOYDA.js +0 -60
- package/dist/relevant-pages-OWMNUCP7.js +0 -99
- package/dist/remove-6LGGKMLJ.js +0 -48
- package/dist/remove-HPN62MPQ.js +0 -50
- package/dist/reopen-XI53RP7R.js +0 -63
- package/dist/rerun-2ITYGAIT.js +0 -85
- package/dist/rerun-2ITYGAIT.js.map +0 -1
- package/dist/research-HAHUTFVJ.js +0 -262
- package/dist/research-O6QXFCD7.js +0 -62
- package/dist/reset-BISRUHT4.js +0 -54
- package/dist/reset-YMKVEOS4.js +0 -54
- package/dist/resolve-D2VESQ45.js +0 -121
- package/dist/retry-CGBATPQX.js +0 -62
- package/dist/retry-SUKRXBHX.js +0 -60
- package/dist/retry-failed-6HXPUVXJ.js +0 -45
- package/dist/run-BFERU46Q.js +0 -65
- package/dist/run-HSZFWRYZ.js +0 -60
- package/dist/scaffold-ad-BYQYVB2C.js +0 -1549
- package/dist/scaffold-ad-BYQYVB2C.js.map +0 -1
- package/dist/scaffold-static-ad-5MXVTMEE.js +0 -966
- package/dist/scaffold-static-ad-5MXVTMEE.js.map +0 -1
- package/dist/scaffold-video-KEIHX3UD.js +0 -873
- package/dist/scaffold-video-KEIHX3UD.js.map +0 -1
- package/dist/schedule-O2K6M43V.js +0 -66
- package/dist/schedule-XJ24PL3K.js +0 -61
- package/dist/scheduled-agents-HWEKBANT.js +0 -49
- package/dist/schema-6GR77VJG.js +0 -63
- package/dist/schema-TAAAJHOJ.js +0 -129
- package/dist/schema-TAAAJHOJ.js.map +0 -1
- package/dist/scrape-ETAMW43A.js +0 -2241
- package/dist/screenshot-YCQF25ZB.js +0 -102
- package/dist/search-742XSULP.js +0 -224
- package/dist/search-MEEM4D3W.js +0 -92
- package/dist/search-NVCIIGQS.js +0 -174
- package/dist/search-OQNGSMUH.js +0 -91
- package/dist/search-UO5KJTYS.js +0 -26
- package/dist/seeds-N6FF5S4T.js +0 -101
- package/dist/seeds-N6FF5S4T.js.map +0 -1
- package/dist/select-K3EMTTI3.js +0 -94
- package/dist/sends-WGJVQUMF.js +0 -309
- package/dist/sequences-OIPVR7JL.js +0 -146
- package/dist/set-prompt-PY7FWYX6.js +0 -186
- package/dist/set-prompt-PY7FWYX6.js.map +0 -1
- package/dist/setup-links-5ZCASHAL.js +0 -141
- package/dist/shared-HJDFNID4.js +0 -31
- package/dist/site-7PSCHITE.js +0 -177
- package/dist/sitemaps-POPZJTAX.js +0 -87
- package/dist/sites-262H6LM4.js +0 -101
- package/dist/skills-6TQZLIMP.js +0 -47
- package/dist/sources-GEB6OEGY.js +0 -421
- package/dist/sources-GEB6OEGY.js.map +0 -1
- package/dist/sources-ICMUQMCJ.js +0 -30
- package/dist/stale-KBY5WARW.js +0 -63
- package/dist/stats-NNXZMPZR.js +0 -34
- package/dist/status-ZX5WM5PJ.js +0 -62
- package/dist/sticker-4KMBSMP5.js +0 -94
- package/dist/stock-2YCDN3N6.js +0 -179
- package/dist/studio-RA7QQH4O.js +0 -49
- package/dist/sync-CF7FVUQJ.js +0 -54
- package/dist/sync-TZNIPZRX.js +0 -54
- package/dist/sync-ZSNUBYPM.js +0 -265
- package/dist/sync-definition-ADXXWWV5.js +0 -53
- package/dist/tag-manager-DYZUOIAS.js +0 -43
- package/dist/tags-4OZCALA3.js +0 -20
- package/dist/tags-4PXXFIPU.js +0 -26
- package/dist/tags-KFVUEPL6.js +0 -20
- package/dist/tags-TESETZGC.js +0 -224
- package/dist/tags-WIMUIZHU.js +0 -20
- package/dist/targeting-constants-XJ2VOW7K.js +0 -118
- package/dist/targeting-criteria-VRI7V6C5.js +0 -113
- package/dist/targets-ERVS2VEU.js +0 -102
- package/dist/templates-TE6LBUIP.js +0 -178
- package/dist/testimonials-FV7KPAPK.js +0 -32
- package/dist/top-companies-B5M43KGJ.js +0 -108
- package/dist/translate-OKADZCBC.js +0 -598
- package/dist/triggers-JLJQOSKI.js +0 -141
- package/dist/tweets-ATP3FQAC.js +0 -123
- package/dist/unfollow-CBVPGPF7.js +0 -46
- package/dist/unlink-KMWDKVIC.js +0 -67
- package/dist/unstage-4ZEULXEQ.js +0 -95
- package/dist/unstage-M4IQKJIO.js +0 -84
- package/dist/update-5MBR4TPK.js +0 -155
- package/dist/update-AHDGHOCP.js +0 -142
- package/dist/update-K6LFJHNI.js +0 -63
- package/dist/update-PNRNYXUW.js +0 -98
- package/dist/upload-KAQC4AH7.js +0 -126
- package/dist/upload-L5SYZB3X.js +0 -150
- package/dist/upscale-YWRLFU22.js +0 -109
- package/dist/url-options-GGXAL3J4.js +0 -127
- package/dist/url-options-GGXAL3J4.js.map +0 -1
- package/dist/url-params-SM32OOXZ.js +0 -98
- package/dist/use-UT2DIZOG.js +0 -95
- package/dist/validate-NCTK5BXD.js +0 -89
- package/dist/validate-NCTK5BXD.js.map +0 -1
- package/dist/variant-FLZJYGYL.js +0 -338
- package/dist/videos-A32DPGHD.js +0 -39
- package/dist/view-NPAG66QK.js +0 -121
- package/dist/viewer-check-L4B4LIAX.js +0 -69
- package/dist/web-TZEIFUYY.js +0 -140
- package/dist/winners-I5BMATJZ.js +0 -79
- package/dist/winners-I5BMATJZ.js.map +0 -1
- package/dist/winning-ads-THIR7E5S.js +0 -62
- package/dist/winning-ads-THIR7E5S.js.map +0 -1
- package/dist/write-commands-CE4FIQ6Y.js +0 -1015
- package/dist/write-commands-CT74VHH6.js +0 -737
- package/dist/write-commands-ERKVRHTC.js +0 -206
- package/dist/write-commands-WTRSOSO3.js +0 -713
- package/dist/x-YXABYM5U.js +0 -47
- /package/dist/{account-DTHGTZCN.js.map → account-JG7QD522.js.map} +0 -0
- /package/dist/{account-4H7QVBRK.js.map → account-V6PB6PA5.js.map} +0 -0
- /package/dist/{account-IEVEOFIK.js.map → account-VLPX7EZT.js.map} +0 -0
- /package/dist/{account-writes-AK42HGRM.js.map → account-writes-BGREY7ZL.js.map} +0 -0
- /package/dist/{accounts-KYJO3JC6.js.map → accounts-2FINK5GZ.js.map} +0 -0
- /package/dist/{accounts-4CDRK4S4.js.map → accounts-2UV5Z3Y6.js.map} +0 -0
- /package/dist/{accounts-5RLG6BBA.js.map → accounts-3EX2PFJB.js.map} +0 -0
- /package/dist/{accounts-5QDKBZMH.js.map → accounts-G2QT3ZVP.js.map} +0 -0
- /package/dist/{accounts-6LSBBXKA.js.map → accounts-N63J5YTK.js.map} +0 -0
- /package/dist/{actions-WH5C6Q7I.js.map → actions-PA2BPIYO.js.map} +0 -0
- /package/dist/{active-entities-YUSOUR5M.js.map → active-entities-RDXDSMA2.js.map} +0 -0
- /package/dist/{activities-ZVQOBHZH.js.map → activities-RBTU2Q24.js.map} +0 -0
- /package/dist/{ad-group-writes-QQS4223F.js.map → ad-group-writes-5NTRJTVE.js.map} +0 -0
- /package/dist/{ad-groups-WGPDPUI2.js.map → ad-groups-4OTAKWUC.js.map} +0 -0
- /package/dist/{ad-writes-XE2IE4DS.js.map → ad-writes-T7W3DDKK.js.map} +0 -0
- /package/dist/{add-CUWAW7KG.js.map → add-4VKA4NDH.js.map} +0 -0
- /package/dist/{add-577QWMCF.js.map → add-MQO33HL3.js.map} +0 -0
- /package/dist/{add-BZ4QPLK4.js.map → add-QM7ANAVG.js.map} +0 -0
- /package/dist/{ads-6UEDYT3O.js.map → ads-IJCFN2N3.js.map} +0 -0
- /package/dist/{ads-6UG66KA5.js.map → ads-QKMLAPZC.js.map} +0 -0
- /package/dist/{ads-BCOSQALY.js.map → ads-XYAWONXR.js.map} +0 -0
- /package/dist/{adsets-Q5DWGANV.js.map → adsets-DPTIKGTG.js.map} +0 -0
- /package/dist/{advertisers-OABQDELT.js.map → advertisers-SZFDOPBQ.js.map} +0 -0
- /package/dist/{analytics-BCZGSSXP.js.map → analytics-HFBYIPZ7.js.map} +0 -0
- /package/dist/{animate-AIZ3GS4J.js.map → animate-LUKNHCF4.js.map} +0 -0
- /package/dist/{assign-O6QNAZD5.js.map → assign-QCICUD72.js.map} +0 -0
- /package/dist/{audience-size-CXPWERR3.js.map → audience-size-HML4BLHJ.js.map} +0 -0
- /package/dist/{audiences-TGD5US2M.js.map → audiences-BSABKS5K.js.map} +0 -0
- /package/dist/{audiences-AMRFZRZ7.js.map → audiences-FWOOSUSJ.js.map} +0 -0
- /package/dist/{audiences-HFRVIE2X.js.map → audiences-VK4M7GLQ.js.map} +0 -0
- /package/dist/{audit-MNOQK3U4.js.map → audit-DUM55J5U.js.map} +0 -0
- /package/dist/{audit-AD4ZZNJN.js.map → audit-JR5R75XK.js.map} +0 -0
- /package/dist/{autocomplete-TRCMPNW4.js.map → autocomplete-VX4PMMLR.js.map} +0 -0
- /package/dist/{avatars-P3WX5TQP.js.map → avatars-5KCRSUJ3.js.map} +0 -0
- /package/dist/{bid-pricing-6XXSM7C2.js.map → bid-pricing-AIUACXUH.js.map} +0 -0
- /package/dist/{brand-LXU7YNCF.js.map → brand-UBTC2WXR.js.map} +0 -0
- /package/dist/{businesses-JBDQZZIG.js.map → businesses-P3RX4UXS.js.map} +0 -0
- /package/dist/{campaign-groups-CEAM3WRO.js.map → campaign-groups-SJZEDIBL.js.map} +0 -0
- /package/dist/{campaign-writes-SXLZFYF6.js.map → campaign-writes-5BPVXG4C.js.map} +0 -0
- /package/dist/{campaign-writes-D6BJAULL.js.map → campaign-writes-VE6QLIDA.js.map} +0 -0
- /package/dist/{campaigns-CXOKBCPS.js.map → campaigns-JEWEDCTC.js.map} +0 -0
- /package/dist/{campaigns-D6B6Z67Y.js.map → campaigns-MEIMSHJF.js.map} +0 -0
- /package/dist/{campaigns-V3SWBM4E.js.map → campaigns-NCGJNJKS.js.map} +0 -0
- /package/dist/{campaigns-YS3OGQXO.js.map → campaigns-XY7QWHDN.js.map} +0 -0
- /package/dist/{capabilities-NZPSSS6T.js.map → capabilities-W6SPXOPF.js.map} +0 -0
- /package/dist/{cards-4477BFEV.js.map → cards-CLD4WX6G.js.map} +0 -0
- /package/dist/{catalogs-BRXEDE56.js.map → catalogs-DINPKQXY.js.map} +0 -0
- /package/dist/{changes-TP7ZZHB3.js.map → changes-N2YZXAPF.js.map} +0 -0
- /package/dist/{chatgpt-7W75X3ER.js.map → chatgpt-TPAP6BVY.js.map} +0 -0
- /package/dist/{chats-GN3PBFX4.js.map → chats-FKVVBXVF.js.map} +0 -0
- /package/dist/{chunk-XQIKDODN.js.map → chunk-24IQ6K7K.js.map} +0 -0
- /package/dist/{chunk-CFHIW5QZ.js.map → chunk-2FZG5DD2.js.map} +0 -0
- /package/dist/{chunk-RZT263H7.js.map → chunk-2T3EH2MU.js.map} +0 -0
- /package/dist/{chunk-L27H2R2N.js.map → chunk-2Y5UE2CV.js.map} +0 -0
- /package/dist/{chunk-PZXCWSKV.js.map → chunk-3KPQDXIU.js.map} +0 -0
- /package/dist/{chunk-6G5K6ZC6.js.map → chunk-4AFGT3L3.js.map} +0 -0
- /package/dist/{chunk-MZL4H5PY.js.map → chunk-4JKBMKFC.js.map} +0 -0
- /package/dist/{chunk-RX6F3GEA.js.map → chunk-4KBWL7S4.js.map} +0 -0
- /package/dist/{chunk-KLNKEVIY.js.map → chunk-4R3QKEDV.js.map} +0 -0
- /package/dist/{chunk-VFIOJD5M.js.map → chunk-6SL6463H.js.map} +0 -0
- /package/dist/{chunk-OUTF5JFG.js.map → chunk-7TRSFEHZ.js.map} +0 -0
- /package/dist/{chunk-4NDCTLI5.js.map → chunk-APNV7FMK.js.map} +0 -0
- /package/dist/{chunk-PBA3YCZA.js.map → chunk-BCSOWRQL.js.map} +0 -0
- /package/dist/{chunk-VVZBBKRC.js.map → chunk-BJEW3LST.js.map} +0 -0
- /package/dist/{chunk-LS5MTRFI.js.map → chunk-BYKUAX26.js.map} +0 -0
- /package/dist/{chunk-XVOI4BIS.js.map → chunk-C7NPNSFO.js.map} +0 -0
- /package/dist/{chunk-EFSYTROP.js.map → chunk-CVIMIOPO.js.map} +0 -0
- /package/dist/{chunk-WS2GMOSG.js.map → chunk-DAKIMGUS.js.map} +0 -0
- /package/dist/{chunk-PWGWMIIJ.js.map → chunk-DCRUGS3G.js.map} +0 -0
- /package/dist/{chunk-C6U6UDHJ.js.map → chunk-DMA77LLI.js.map} +0 -0
- /package/dist/{chunk-JERXV5A3.js.map → chunk-EESOZY5S.js.map} +0 -0
- /package/dist/{chunk-QVJDPOEB.js.map → chunk-EIZMOICE.js.map} +0 -0
- /package/dist/{chunk-DZSIUEGH.js.map → chunk-F3IVR3V3.js.map} +0 -0
- /package/dist/{chunk-LZ73CZGP.js.map → chunk-FSX6CQ2Z.js.map} +0 -0
- /package/dist/{chunk-STIB5DR5.js.map → chunk-G7LAQE56.js.map} +0 -0
- /package/dist/{chunk-ZZQXVYUY.js.map → chunk-G7QKXFQ2.js.map} +0 -0
- /package/dist/{chunk-XTRAI6CL.js.map → chunk-G7XY4T6K.js.map} +0 -0
- /package/dist/{chunk-7ED5TAFP.js.map → chunk-HCDCWXSU.js.map} +0 -0
- /package/dist/{chunk-R5RIH3N5.js.map → chunk-I4IVUAQN.js.map} +0 -0
- /package/dist/{chunk-2TK4DEOE.js.map → chunk-IWNZCYWI.js.map} +0 -0
- /package/dist/{chunk-WTOYCUKH.js.map → chunk-JF5LNI6O.js.map} +0 -0
- /package/dist/{chunk-TUB34FVS.js.map → chunk-JJZBZYNK.js.map} +0 -0
- /package/dist/{chunk-WNFIJAUO.js.map → chunk-JZP5IODJ.js.map} +0 -0
- /package/dist/{chunk-2GTYAHDN.js.map → chunk-KWMYTVHI.js.map} +0 -0
- /package/dist/{chunk-VAJBWA2U.js.map → chunk-LFGCOAB4.js.map} +0 -0
- /package/dist/{chunk-6B7VKFS4.js.map → chunk-LPRUP3ZX.js.map} +0 -0
- /package/dist/{chunk-KNY76UGC.js.map → chunk-MD3VH5UG.js.map} +0 -0
- /package/dist/{chunk-FVF5SXTZ.js.map → chunk-MFORE6F4.js.map} +0 -0
- /package/dist/{chunk-VNUNE5AB.js.map → chunk-MMBHCAON.js.map} +0 -0
- /package/dist/{chunk-XL3BMSYG.js.map → chunk-NIGGMK7L.js.map} +0 -0
- /package/dist/{chunk-DQMZXK27.js.map → chunk-NN7A2ILR.js.map} +0 -0
- /package/dist/{chunk-PVUZWHNQ.js.map → chunk-O356YNIW.js.map} +0 -0
- /package/dist/{chunk-ZGTCZ6H4.js.map → chunk-OUQMJRH6.js.map} +0 -0
- /package/dist/{chunk-E4NCRGY3.js.map → chunk-OXKUWTFL.js.map} +0 -0
- /package/dist/{chunk-RPUSTYHL.js.map → chunk-PAJJXZ3Z.js.map} +0 -0
- /package/dist/{chunk-QSN5MZGS.js.map → chunk-PC56KVAD.js.map} +0 -0
- /package/dist/{chunk-NECTN6N7.js.map → chunk-PEWNEPDR.js.map} +0 -0
- /package/dist/{chunk-W3ZHJJVT.js.map → chunk-Q2T4XZG4.js.map} +0 -0
- /package/dist/{chunk-7J6EHOH6.js.map → chunk-RCR6RVYE.js.map} +0 -0
- /package/dist/{chunk-GYU7BWEN.js.map → chunk-RH2H5PBV.js.map} +0 -0
- /package/dist/{chunk-4Z7DEN75.js.map → chunk-S3XM4LD3.js.map} +0 -0
- /package/dist/{chunk-75FDTDLH.js.map → chunk-SFHL3KWY.js.map} +0 -0
- /package/dist/{chunk-LIQ4SQ2T.js.map → chunk-SQ7DRYCC.js.map} +0 -0
- /package/dist/{chunk-YBMVHGY3.js.map → chunk-SSVZM3P6.js.map} +0 -0
- /package/dist/{chunk-ND5MJ3AA.js.map → chunk-TMNLIA7R.js.map} +0 -0
- /package/dist/{chunk-V7CTQOHG.js.map → chunk-UF55TADX.js.map} +0 -0
- /package/dist/{chunk-TD2P4HBP.js.map → chunk-UGI33KTO.js.map} +0 -0
- /package/dist/{chunk-ORO7VAXB.js.map → chunk-UK2OTLT3.js.map} +0 -0
- /package/dist/{chunk-IGQZ5U3C.js.map → chunk-UU3FGKUW.js.map} +0 -0
- /package/dist/{chunk-NIJSXVFT.js.map → chunk-UUBHU2TY.js.map} +0 -0
- /package/dist/{chunk-5Z2KSVIV.js.map → chunk-UX7HIGS7.js.map} +0 -0
- /package/dist/{chunk-HZUDRKGR.js.map → chunk-VDZIGI2C.js.map} +0 -0
- /package/dist/{chunk-4QEY2L6U.js.map → chunk-VKVIBQP3.js.map} +0 -0
- /package/dist/{chunk-IYU4X5A7.js.map → chunk-VLF2M4GZ.js.map} +0 -0
- /package/dist/{chunk-7OFNN4CT.js.map → chunk-VTF7XNOP.js.map} +0 -0
- /package/dist/{chunk-ESB5DLIP.js.map → chunk-WDA3L4NF.js.map} +0 -0
- /package/dist/{chunk-H26L3OQY.js.map → chunk-XDV6Q33B.js.map} +0 -0
- /package/dist/{chunk-2BKVVCCV.js.map → chunk-XYC26BDM.js.map} +0 -0
- /package/dist/{chunk-FTWJFDIN.js.map → chunk-YHQYDNYD.js.map} +0 -0
- /package/dist/{chunk-F2S5BLPE.js.map → chunk-YTWNY3RF.js.map} +0 -0
- /package/dist/{claim-25JJM4AG.js.map → claim-JLVISHS4.js.map} +0 -0
- /package/dist/{client-VHN32ZRE.js.map → client-G6DGRGKT.js.map} +0 -0
- /package/dist/{code-YS6ZMGX3.js.map → code-AYN42EK7.js.map} +0 -0
- /package/dist/{companies-VR5M5PAN.js.map → companies-XDMOP2GL.js.map} +0 -0
- /package/dist/{complete-DRMOTC2W.js.map → complete-XM7VLC4F.js.map} +0 -0
- /package/dist/{config-CQN5FHMZ.js.map → config-UE7GCROG.js.map} +0 -0
- /package/dist/{connect-WUDJR2GH.js.map → connect-VTDKGYP3.js.map} +0 -0
- /package/dist/{conversation-K6LYF2ZP.js.map → conversation-F53OE25Y.js.map} +0 -0
- /package/dist/{conversion-report-XQBJ6LG4.js.map → conversion-report-35MLL3FA.js.map} +0 -0
- /package/dist/{conversion-upload-command-AUF3LNTH.js.map → conversion-upload-command-CV2TA7OV.js.map} +0 -0
- /package/dist/{conversion-writes-UBCVXP2E.js.map → conversion-writes-NSZPNMPE.js.map} +0 -0
- /package/dist/{conversions-GF32XOWY.js.map → conversions-7YO6DDL3.js.map} +0 -0
- /package/dist/{conversions-D236RTUK.js.map → conversions-XNISCCC2.js.map} +0 -0
- /package/dist/{countries-ESAKTQAE.js.map → countries-NMWPKFFW.js.map} +0 -0
- /package/dist/{create-4TFAD6HY.js.map → create-ARERZYCL.js.map} +0 -0
- /package/dist/{create-IXYXYLLE.js.map → create-C6ZVYIF5.js.map} +0 -0
- /package/dist/{create-2D7AIFJI.js.map → create-FAPJFCZE.js.map} +0 -0
- /package/dist/{create-PKJVFJMO.js.map → create-M7TUO3XS.js.map} +0 -0
- /package/dist/{creatives-OHCFHRZ5.js.map → creatives-3YIV6IOK.js.map} +0 -0
- /package/dist/{creatives-QLSZFOMB.js.map → creatives-QZCO6WGH.js.map} +0 -0
- /package/dist/{creatives-UEPLNCPN.js.map → creatives-WJLJ3NKP.js.map} +0 -0
- /package/dist/{critique-5PCQ2CJH.js.map → critique-56MNXW7R.js.map} +0 -0
- /package/dist/{critique-WDO6SKK2.js.map → critique-KRIKEHF6.js.map} +0 -0
- /package/dist/{crm-HNUOHXAN.js.map → crm-OETFQNR3.js.map} +0 -0
- /package/dist/{crm-SNIUADNK.js.map → crm-WXCFB4TU.js.map} +0 -0
- /package/dist/{crop-2J4RKJ6B.js.map → crop-VCP2JLQL.js.map} +0 -0
- /package/dist/{currency-XCGKQ7FE.js.map → currency-MNNDKY4Z.js.map} +0 -0
- /package/dist/{custom-conversions-2VLJGPRV.js.map → custom-conversions-CIU525HM.js.map} +0 -0
- /package/dist/{customers-72L2KZHO.js.map → customers-GTPEABJI.js.map} +0 -0
- /package/dist/{delete-3AV3ARMX.js.map → delete-5CURRI25.js.map} +0 -0
- /package/dist/{delete-PA2GY5EC.js.map → delete-CLC2Q2OE.js.map} +0 -0
- /package/dist/{delete-EVGM5B36.js.map → delete-CQ6Q3URI.js.map} +0 -0
- /package/dist/{delete-A5XD52K4.js.map → delete-JIRZBBDD.js.map} +0 -0
- /package/dist/{delete-YNNFTFYV.js.map → delete-LD3F4UIW.js.map} +0 -0
- /package/dist/{delete-MRM2S4Z5.js.map → delete-LGZ5OI4C.js.map} +0 -0
- /package/dist/{demographics-SYS2E7QC.js.map → demographics-EK2ZPHWK.js.map} +0 -0
- /package/dist/{describe-6NVOWIBE.js.map → describe-BNB6643C.js.map} +0 -0
- /package/dist/{describe-P3PPIQME.js.map → describe-ZXGFTCDR.js.map} +0 -0
- /package/dist/{dimensions-EYAYO27I.js.map → dimensions-IU4ETG4U.js.map} +0 -0
- /package/dist/{discard-JS2YJUIM.js.map → discard-VWCXYJWU.js.map} +0 -0
- /package/dist/{discover-BJPZNXUQ.js.map → discover-4EQWGIAN.js.map} +0 -0
- /package/dist/{domain-XKKH5NCL.js.map → domain-I2SAGVAB.js.map} +0 -0
- /package/dist/{download-7T6HIJKD.js.map → download-D7TB4744.js.map} +0 -0
- /package/dist/{draft-YDY2Q2K6.js.map → draft-4VOOSJQJ.js.map} +0 -0
- /package/dist/{draft-WWWKSEEE.js.map → draft-6KG2YFOY.js.map} +0 -0
- /package/dist/{draft-4AO4YH3V.js.map → draft-APDGACIC.js.map} +0 -0
- /package/dist/{draft-BGUJDHXR.js.map → draft-D76C4JR3.js.map} +0 -0
- /package/dist/{draft-MNFJ4G3C.js.map → draft-HFH2Y6F5.js.map} +0 -0
- /package/dist/{draft-GCUXNPVH.js.map → draft-NVVWWQVC.js.map} +0 -0
- /package/dist/{draft-KIBMVKSR.js.map → draft-NWLPLTWM.js.map} +0 -0
- /package/dist/{env-KIP2J2UB.js.map → env-LHLGM2YJ.js.map} +0 -0
- /package/dist/{export-JQRMBJ7D.js.map → export-VGCFD7GL.js.map} +0 -0
- /package/dist/{extract-7QKLME7Z.js.map → extract-32J7V2RX.js.map} +0 -0
- /package/dist/{facets-NVBX5WDT.js.map → facets-WVI6VBDC.js.map} +0 -0
- /package/dist/{favorites-NSGF4OV5.js.map → favorites-WKV5H5OF.js.map} +0 -0
- /package/dist/{feedback-OGAPR45R.js.map → feedback-NMNKYEMU.js.map} +0 -0
- /package/dist/{feedback-record-GVXGDY5Y.js.map → feedback-record-2VYBMWMO.js.map} +0 -0
- /package/dist/{fetch-U4TJIHZU.js.map → fetch-CENBDLT6.js.map} +0 -0
- /package/dist/{fetch-XF76JABV.js.map → fetch-XQFPE3MI.js.map} +0 -0
- /package/dist/{find-OTDIX6V4.js.map → find-PNDKEOXT.js.map} +0 -0
- /package/dist/{fit-BOQL6OK3.js.map → fit-SEWGCEW5.js.map} +0 -0
- /package/dist/{fonts-64T6KRZS.js.map → fonts-KUCQAR7N.js.map} +0 -0
- /package/dist/{forecast-YIIGTHRM.js.map → forecast-PI52G2GL.js.map} +0 -0
- /package/dist/{funding-NYO65IMT.js.map → funding-ZRC25X5I.js.map} +0 -0
- /package/dist/{ga4-UDQ2HA2J.js.map → ga4-YDKXVJOC.js.map} +0 -0
- /package/dist/{generate-3XYYITU6.js.map → generate-BVMMX3SS.js.map} +0 -0
- /package/dist/{get-3L6W3E3T.js.map → get-7MSF4RVQ.js.map} +0 -0
- /package/dist/{get-XN5ZGDIK.js.map → get-KFVPIDIA.js.map} +0 -0
- /package/dist/{get-6WEYKOY6.js.map → get-NHQ2XYKZ.js.map} +0 -0
- /package/dist/{get-6RQFDAIN.js.map → get-TCDAYTZA.js.map} +0 -0
- /package/dist/{get-YIHTAMRT.js.map → get-UMMTY74K.js.map} +0 -0
- /package/dist/{get-P743RPSI.js.map → get-YM77HCL5.js.map} +0 -0
- /package/dist/{gif-53ULFVLR.js.map → gif-X323HXS2.js.map} +0 -0
- /package/dist/{google-KTO3PLEU.js.map → google-76A4MHQH.js.map} +0 -0
- /package/dist/{google-ads-7XAGJVNJ.js.map → google-ads-S6O4MLKA.js.map} +0 -0
- /package/dist/{group-GKWCCX66.js.map → group-CTIZVYX2.js.map} +0 -0
- /package/dist/{group-EFZ3AJIE.js.map → group-HKWQ75CJ.js.map} +0 -0
- /package/dist/{gsc-P3QYGDV2.js.map → gsc-CORRYJBJ.js.map} +0 -0
- /package/dist/{history-EUG4LE44.js.map → history-4U7FJGEM.js.map} +0 -0
- /package/dist/{history-Q3QCT64S.js.map → history-BXOMJ5PL.js.map} +0 -0
- /package/dist/{hubspot-UULVEYVO.js.map → hubspot-I5MFAZ4G.js.map} +0 -0
- /package/dist/{icon-I43F77FV.js.map → icon-6QW63AHG.js.map} +0 -0
- /package/dist/{ideas-7LXYXS5G.js.map → ideas-QDS5XA4S.js.map} +0 -0
- /package/dist/{images-3SOTFMJV.js.map → images-NVTA2OHD.js.map} +0 -0
- /package/dist/{improve-BCCU5AS6.js.map → improve-WR23CHYH.js.map} +0 -0
- /package/dist/{ingest-HQUXSBWA.js.map → ingest-QAVJ2J7F.js.map} +0 -0
- /package/dist/{ingest-HYSZC3EX.js.map → ingest-XJHV3GG6.js.map} +0 -0
- /package/dist/{insights-LNAXV2CG.js.map → insights-AW7SOGHI.js.map} +0 -0
- /package/dist/{insights-NZWSJKU4.js.map → insights-IJEPLWQH.js.map} +0 -0
- /package/dist/{inspect-HZQ7GSVM.js.map → inspect-7I53PWCF.js.map} +0 -0
- /package/dist/{inspiration-P265QJ2H.js.map → inspiration-TJJFUVY2.js.map} +0 -0
- /package/dist/{intent-E3UIVZBN.js.map → intent-VEUQS34Z.js.map} +0 -0
- /package/dist/{job-L7RJZMSG.js.map → job-K7LAIBYN.js.map} +0 -0
- /package/dist/{job-create-JUDAN52O.js.map → job-create-DFZL4CGA.js.map} +0 -0
- /package/dist/{job-status-U43WE3RJ.js.map → job-status-6Q2TVTEO.js.map} +0 -0
- /package/dist/{keep-55CPC7DG.js.map → keep-XJFCLVCP.js.map} +0 -0
- /package/dist/{keyword-gap-BG6M665A.js.map → keyword-gap-CUOGKUMM.js.map} +0 -0
- /package/dist/{keyword-metrics-YG3K7MQZ.js.map → keyword-metrics-LK7FME4N.js.map} +0 -0
- /package/dist/{keywords-for-site-V4K744TF.js.map → keywords-for-site-4E7UU44P.js.map} +0 -0
- /package/dist/{landing-3SSX6WK6.js.map → landing-I65PFN7H.js.map} +0 -0
- /package/dist/{languages-HORKPDNH.js.map → languages-KPPKX3E2.js.map} +0 -0
- /package/dist/{languages-JSGWCC7Z.js.map → languages-MGEBLO64.js.map} +0 -0
- /package/dist/{logo-2IP663QO.js.map → launches-E3Y6NCQE.js.map} +0 -0
- /package/dist/{layerize-RPD6SNP6.js.map → layerize-N4IQ2KE7.js.map} +0 -0
- /package/dist/{leads-ARUWPHBM.js.map → leads-PPMOBH7U.js.map} +0 -0
- /package/dist/{leads-FAHQ6KJX.js.map → leads-TNEQUOUN.js.map} +0 -0
- /package/dist/{learn-XNHGNQE5.js.map → learn-QQS323PS.js.map} +0 -0
- /package/dist/{library-ARKRLCNJ.js.map → library-4QQAVB6X.js.map} +0 -0
- /package/dist/{lighthouse-6ZC45E53.js.map → lighthouse-CD47CPJM.js.map} +0 -0
- /package/dist/{line-item-writes-A6BPZQPL.js.map → line-item-writes-QJZQUQ4E.js.map} +0 -0
- /package/dist/{line-items-J7PXJHMD.js.map → line-items-ESEAXGBV.js.map} +0 -0
- /package/dist/{link-4GGAQAVH.js.map → link-DPJYS4WY.js.map} +0 -0
- /package/dist/{linkedin-I6JDSTRB.js.map → linkedin-EJPNC4VY.js.map} +0 -0
- /package/dist/{list-P7NAFN6J.js.map → list-A45NTPSJ.js.map} +0 -0
- /package/dist/{list-7MVBXOJT.js.map → list-GNP4GIV2.js.map} +0 -0
- /package/dist/{list-LI4OGQFW.js.map → list-KQFLOVC4.js.map} +0 -0
- /package/dist/{list-AL7N6X2P.js.map → list-MDHK3ENJ.js.map} +0 -0
- /package/dist/{list-A5UCIR2J.js.map → list-PRUFXMXW.js.map} +0 -0
- /package/dist/{list-AQMGXI4N.js.map → list-S3BAQCTL.js.map} +0 -0
- /package/dist/{list-KAJZFHMN.js.map → list-UU5NPLJ7.js.map} +0 -0
- /package/dist/{list-22HZ2S4W.js.map → list-V525A4Z4.js.map} +0 -0
- /package/dist/{locations-2NKBJKBT.js.map → locations-J2PVPDZU.js.map} +0 -0
- /package/dist/{locations-J4G5RNPH.js.map → locations-TFOYESTF.js.map} +0 -0
- /package/dist/{log-MUPKKYSJ.js.map → log-XQBEJOOW.js.map} +0 -0
- /package/dist/{lookup-XK45W2SH.js.map → logo-KQD5KUAH.js.map} +0 -0
- /package/dist/{output-RAH3TSIL.js.map → lookup-QCREWUV4.js.map} +0 -0
- /package/dist/{media-53DJRC4N.js.map → media-2WENMOAA.js.map} +0 -0
- /package/dist/{media-6CQYG4UY.js.map → media-N4C6Q4IV.js.map} +0 -0
- /package/dist/{media-sources-W2CQFSVQ.js.map → media-sources-BPOTW6IB.js.map} +0 -0
- /package/dist/{members-3U6GINDF.js.map → members-BOYZKLNK.js.map} +0 -0
- /package/dist/{meta-A7KM6TF5.js.map → meta-PXYHWOOG.js.map} +0 -0
- /package/dist/{metrics-SQDJ5NQO.js.map → metrics-FZANUN7E.js.map} +0 -0
- /package/dist/{models-3Z6MDHQW.js.map → models-W6EN3WB7.js.map} +0 -0
- /package/dist/{normalize-ICQF2AST.js.map → normalize-LOMDPNFJ.js.map} +0 -0
- /package/dist/{performance-ZA7VCHOU.js.map → output-SR4DN3A4.js.map} +0 -0
- /package/dist/{page-GS3WLT2C.js.map → page-FS76L5WU.js.map} +0 -0
- /package/dist/{pages-FXYQLHSJ.js.map → pages-INMNJSX2.js.map} +0 -0
- /package/dist/{reddit-P7LLO4TK.js.map → performance-53D43XVZ.js.map} +0 -0
- /package/dist/{pinterest-AUH7WBA7.js.map → pinterest-JMHFPNVW.js.map} +0 -0
- /package/dist/{pixels-TZPF746S.js.map → pixels-K6ZD7SXV.js.map} +0 -0
- /package/dist/{pixels-ZFF4BGUH.js.map → pixels-XPBBJYE3.js.map} +0 -0
- /package/dist/{preview-AD4GKYIA.js.map → preview-KXSNG3BS.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-4H3ZFD6O.js.map → promoted-tweet-writes-I6HVQRDB.js.map} +0 -0
- /package/dist/{promoted-tweets-MCMKPIHM.js.map → promoted-tweets-YAQ5ZUXI.js.map} +0 -0
- /package/dist/{properties-L2XIYQDS.js.map → properties-NYNEONHI.js.map} +0 -0
- /package/dist/{publish-CW5YSAAL.js.map → publish-Z5DVKZSG.js.map} +0 -0
- /package/dist/{run-HSZFWRYZ.js.map → query-MSZPOHFL.js.map} +0 -0
- /package/dist/{query-SGGBCHTF.js.map → query-RK2TFMBI.js.map} +0 -0
- /package/dist/{query-VTGVZQIO.js.map → query-TWNH6GV7.js.map} +0 -0
- /package/dist/{search-UO5KJTYS.js.map → reddit-6DQTBTO6.js.map} +0 -0
- /package/dist/{refresh-IGHEOA6Y.js.map → refresh-TP2TOGS6.js.map} +0 -0
- /package/dist/{release-C74JOYDA.js.map → release-PHQEZ2ZX.js.map} +0 -0
- /package/dist/{relevant-pages-OWMNUCP7.js.map → relevant-pages-ORVFFVAM.js.map} +0 -0
- /package/dist/{remove-6LGGKMLJ.js.map → remove-ETLMMDEA.js.map} +0 -0
- /package/dist/{remove-HPN62MPQ.js.map → remove-KTBM5YSH.js.map} +0 -0
- /package/dist/{reopen-XI53RP7R.js.map → reopen-OURQR6U7.js.map} +0 -0
- /package/dist/{research-O6QXFCD7.js.map → research-P23YBKS3.js.map} +0 -0
- /package/dist/{research-HAHUTFVJ.js.map → research-WCNWT5Y5.js.map} +0 -0
- /package/dist/{reset-BISRUHT4.js.map → reset-2NCAWWN4.js.map} +0 -0
- /package/dist/{reset-YMKVEOS4.js.map → reset-65R2CUB5.js.map} +0 -0
- /package/dist/{resolve-D2VESQ45.js.map → resolve-65FKZ23N.js.map} +0 -0
- /package/dist/{retry-SUKRXBHX.js.map → retry-P5K6LE6K.js.map} +0 -0
- /package/dist/{retry-CGBATPQX.js.map → retry-UIPDQJ5F.js.map} +0 -0
- /package/dist/{retry-failed-6HXPUVXJ.js.map → retry-failed-QMWQ6TRL.js.map} +0 -0
- /package/dist/{shared-HJDFNID4.js.map → run-NDMEYUOI.js.map} +0 -0
- /package/dist/{run-BFERU46Q.js.map → run-OP3T4TCF.js.map} +0 -0
- /package/dist/{schedule-XJ24PL3K.js.map → schedule-6D667AXB.js.map} +0 -0
- /package/dist/{schedule-O2K6M43V.js.map → schedule-KXLQVCZW.js.map} +0 -0
- /package/dist/{scheduled-agents-HWEKBANT.js.map → scheduled-agents-LYWEX4PU.js.map} +0 -0
- /package/dist/{schema-6GR77VJG.js.map → schema-CCFLFAOY.js.map} +0 -0
- /package/dist/{scrape-ETAMW43A.js.map → scrape-DBZQFIW7.js.map} +0 -0
- /package/dist/{screenshot-YCQF25ZB.js.map → screenshot-MPFANYIH.js.map} +0 -0
- /package/dist/{search-OQNGSMUH.js.map → search-4AANIUUL.js.map} +0 -0
- /package/dist/{search-742XSULP.js.map → search-EMJABZYF.js.map} +0 -0
- /package/dist/{search-NVCIIGQS.js.map → search-HQDN7DOF.js.map} +0 -0
- /package/dist/{sync-definition-ADXXWWV5.js.map → search-OVHC4CRQ.js.map} +0 -0
- /package/dist/{search-MEEM4D3W.js.map → search-YSGZRANA.js.map} +0 -0
- /package/dist/{select-K3EMTTI3.js.map → select-C6BKHB4B.js.map} +0 -0
- /package/dist/{sends-WGJVQUMF.js.map → sends-HXN5HSF6.js.map} +0 -0
- /package/dist/{sequences-OIPVR7JL.js.map → sequences-FRK76ZQV.js.map} +0 -0
- /package/dist/{setup-links-5ZCASHAL.js.map → setup-links-BM2GLSSO.js.map} +0 -0
- /package/dist/{viewer-check-L4B4LIAX.js.map → shared-EH5ZTQXC.js.map} +0 -0
- /package/dist/{site-7PSCHITE.js.map → site-3PEJYQJW.js.map} +0 -0
- /package/dist/{sitemaps-POPZJTAX.js.map → sitemaps-7KHY2KXI.js.map} +0 -0
- /package/dist/{sites-262H6LM4.js.map → sites-6B76JW6C.js.map} +0 -0
- /package/dist/{skills-6TQZLIMP.js.map → skills-SCTT3LCM.js.map} +0 -0
- /package/dist/{sources-ICMUQMCJ.js.map → sources-ODJBHNGY.js.map} +0 -0
- /package/dist/{stale-KBY5WARW.js.map → stale-2O54QXY2.js.map} +0 -0
- /package/dist/{stats-NNXZMPZR.js.map → stats-4NBOAOR2.js.map} +0 -0
- /package/dist/{status-ZX5WM5PJ.js.map → status-NE5OBM4B.js.map} +0 -0
- /package/dist/{sticker-4KMBSMP5.js.map → sticker-NLXBIOBO.js.map} +0 -0
- /package/dist/{stock-2YCDN3N6.js.map → stock-F3SA4VHV.js.map} +0 -0
- /package/dist/{studio-RA7QQH4O.js.map → studio-ZPDIOFKL.js.map} +0 -0
- /package/dist/{sync-TZNIPZRX.js.map → sync-5GJNZDGZ.js.map} +0 -0
- /package/dist/{sync-ZSNUBYPM.js.map → sync-FCNFXTFD.js.map} +0 -0
- /package/dist/{sync-CF7FVUQJ.js.map → sync-YXCZ3DHY.js.map} +0 -0
- /package/dist/{tag-manager-DYZUOIAS.js.map → tag-manager-YM4Q3CZT.js.map} +0 -0
- /package/dist/{tags-4PXXFIPU.js.map → tags-456UOYJU.js.map} +0 -0
- /package/dist/{tags-4OZCALA3.js.map → tags-5YPYHV5V.js.map} +0 -0
- /package/dist/{tags-TESETZGC.js.map → tags-HXMHEHG2.js.map} +0 -0
- /package/dist/{tags-WIMUIZHU.js.map → tags-K34666RY.js.map} +0 -0
- /package/dist/{tags-KFVUEPL6.js.map → tags-NB35ISO3.js.map} +0 -0
- /package/dist/{targeting-constants-XJ2VOW7K.js.map → targeting-constants-3CMGPWRI.js.map} +0 -0
- /package/dist/{targeting-criteria-VRI7V6C5.js.map → targeting-criteria-UKQ4WF5C.js.map} +0 -0
- /package/dist/{targets-ERVS2VEU.js.map → targets-VQ4BQ657.js.map} +0 -0
- /package/dist/{templates-TE6LBUIP.js.map → templates-PMUIOVDX.js.map} +0 -0
- /package/dist/{testimonials-FV7KPAPK.js.map → testimonials-XZCGVD6V.js.map} +0 -0
- /package/dist/{top-companies-B5M43KGJ.js.map → top-companies-VMRIDOOH.js.map} +0 -0
- /package/dist/{translate-OKADZCBC.js.map → translate-F5KR62LF.js.map} +0 -0
- /package/dist/{triggers-JLJQOSKI.js.map → triggers-2MZX7W6Y.js.map} +0 -0
- /package/dist/{tweets-ATP3FQAC.js.map → tweets-XWE3VYQ4.js.map} +0 -0
- /package/dist/{unfollow-CBVPGPF7.js.map → unfollow-7U4UBAJX.js.map} +0 -0
- /package/dist/{unlink-KMWDKVIC.js.map → unlink-AWSNY3QS.js.map} +0 -0
- /package/dist/{unstage-4ZEULXEQ.js.map → unstage-OGB43ZXO.js.map} +0 -0
- /package/dist/{unstage-M4IQKJIO.js.map → unstage-RQBOQ4DY.js.map} +0 -0
- /package/dist/{update-K6LFJHNI.js.map → update-4KWYHMLS.js.map} +0 -0
- /package/dist/{update-AHDGHOCP.js.map → update-6DKEWM64.js.map} +0 -0
- /package/dist/{update-5MBR4TPK.js.map → update-G6EKHPIF.js.map} +0 -0
- /package/dist/{update-PNRNYXUW.js.map → update-OFV452AC.js.map} +0 -0
- /package/dist/{upload-KAQC4AH7.js.map → upload-6CJWMQ24.js.map} +0 -0
- /package/dist/{upload-L5SYZB3X.js.map → upload-GUKMQ5MT.js.map} +0 -0
- /package/dist/{upscale-YWRLFU22.js.map → upscale-A456MESF.js.map} +0 -0
- /package/dist/{url-params-SM32OOXZ.js.map → url-params-OE3UMYMM.js.map} +0 -0
- /package/dist/{use-UT2DIZOG.js.map → use-HBVKVT5S.js.map} +0 -0
- /package/dist/{variant-FLZJYGYL.js.map → variant-HULP57YI.js.map} +0 -0
- /package/dist/{videos-A32DPGHD.js.map → videos-ION7UT3M.js.map} +0 -0
- /package/dist/{view-NPAG66QK.js.map → view-GCDEJZII.js.map} +0 -0
- /package/dist/{web-TZEIFUYY.js.map → web-CCVD6UZ4.js.map} +0 -0
- /package/dist/{write-commands-WTRSOSO3.js.map → write-commands-47OP673X.js.map} +0 -0
- /package/dist/{write-commands-CT74VHH6.js.map → write-commands-IJ5IFHS6.js.map} +0 -0
- /package/dist/{write-commands-CE4FIQ6Y.js.map → write-commands-NNVDWBLG.js.map} +0 -0
- /package/dist/{write-commands-ERKVRHTC.js.map → write-commands-OBMIVFZJ.js.map} +0 -0
- /package/dist/{x-YXABYM5U.js.map → x-U32DT24S.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/flows/connect.ts"],"sourcesContent":["/**\n * `connect`: fill a Form's step or destination yourself once you know which\n * resource is meant, instead of parking the turn on the chat's picker card.\n *\n * Three sources, one write:\n * - `--hubspot-form <id>` — a HubSpot form as a `hubspotForm` destination.\n * - `--resource <id>` / `--new-sheet <title>` / nothing — Calendly, SavvyCal\n * and GoHighLevel steps; Google Sheets, Pipedrive and GoHighLevel\n * destinations. The backend reads the resource through the company's\n * connected account and answers with exactly what the card would write,\n * sealed under the flow key where it is a destination — so this command\n * writes ciphertext it cannot read.\n * - `--same-as <slug>:<id>` — the destination or step another Form already\n * has, copied as-is. No platform is asked anything.\n *\n * `request_flow_input` stays the path when nothing is connected, when a\n * spreadsheet has never been chosen, or when the agent cannot tell which\n * resource is meant.\n */\n\nimport {\n FLOW_AGENT_DESTINATION_KINDS,\n FLOW_PROVIDER_TYPE,\n type FlowAgentDestinationKind,\n type FlowsResolveResponse,\n type FlowsSealRequest,\n type FlowsSealResponse,\n type HubspotFormsDestinationResponse,\n} from \"@baker/api\";\nimport { defineCommand } from \"citty\";\nimport { ApiError, apiPost } from \"../../client.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { failApi } from \"../actions/shared.ts\";\nimport { hubspotRefusal } from \"../hubspot/refusal.ts\";\nimport { collectSideEffects, readFlowTree, walkNodes, writeFlowTree } from \"./shared.ts\";\n\ntype AnyRecord = Record<string, unknown>;\n\ntype Sealed = { oauthProviderId: string; encryptedConfig: string };\n\ntype Attached = { ok: true; nodeId: string; sideEffectId: string } | { ok: false; message: string; fix: string };\n\ntype Stepped = { ok: true; nodeId: string; type: string } | { ok: false; message: string; fix: string };\n\nconst STEP_KINDS = new Set([\"calendly\", \"savvycal\", \"highlevel\", \"highlevelForm\", \"hubspot\", \"hubspotMeeting\"]);\nconst OAUTH_SIDE_EFFECTS = new Set([\"hubspotForm\", \"googleSpreadsheet\", \"pipedrive\", \"goHighlevelContact\"]);\n\n/**\n * Put the sealed destination on the side effect `named` picks — or, with no\n * name, on the form's only one of `type`. Mutates `tree`; the caller writes it.\n */\nexport function attachDestination(\n tree: AnyRecord,\n named: string | undefined,\n sealed: Sealed,\n type = \"hubspotForm\",\n): Attached {\n const ofType = collectSideEffects(tree).filter((entry) => entry.sideEffect.type === type);\n const inventory = ofType.map((entry) => String(entry.sideEffect.id)).join(\", \") || \"none\";\n const chosen = named\n ? collectSideEffects(tree).find((entry) => entry.sideEffect.id === named)\n : ofType.length === 1\n ? ofType[0]\n : undefined;\n if (!chosen) {\n return {\n ok: false,\n message: named\n ? `No side effect with id \"${named}\" in this form.`\n : `This form has ${ofType.length} ${type} side effects — name one with --side-effect <id>.`,\n fix:\n ofType.length === 0\n ? `Add one first: baker flows add-side-effect <slug> --node <stepId> --type ${type}`\n : `${type} side effects in this form: ${inventory}`,\n };\n }\n if (chosen.sideEffect.type !== type) {\n return {\n ok: false,\n message: `Side effect \"${named}\" is a ${String(chosen.sideEffect.type)}, not a ${type}.`,\n fix: `${type} side effects in this form: ${inventory}`,\n };\n }\n chosen.sideEffect.oauthProviderId = sealed.oauthProviderId;\n chosen.sideEffect.encryptedConfig = sealed.encryptedConfig;\n return { ok: true, nodeId: String(chosen.node.id), sideEffectId: String(chosen.sideEffect.id) };\n}\n\nfunction isSet(value: unknown): boolean {\n return typeof value === \"string\" && value.length > 0;\n}\n\n/**\n * Every side effect of `type` that still lacks its account or its config — what\n * `--all` wires. One already wired is left alone, so re-running after a partial\n * setup never repoints a destination someone chose.\n */\nexport function unwiredSideEffects(tree: AnyRecord, type: string): string[] {\n return collectSideEffects(tree)\n .filter(({ sideEffect }) => sideEffect.type === type)\n .filter(\n ({ sideEffect }) =>\n (OAUTH_SIDE_EFFECTS.has(type) && !isSet(sideEffect.oauthProviderId)) || !isSet(sideEffect.encryptedConfig),\n )\n .map(({ sideEffect }) => String(sideEffect.id));\n}\n\nexport function unwiredHubspotForms(tree: AnyRecord): string[] {\n return unwiredSideEffects(tree, \"hubspotForm\");\n}\n\n/** Destinations with nothing confidential in them: the agent states them, no card. */\nconst STATED_KINDS = new Set([\"email\", \"httpWebhook\"]);\n\n/** The stated kind an `--email` / `--subject` / `--url` call is about. */\nfunction statedKind(args: AnyRecord): string | undefined {\n if (typeof args.email === \"string\" || typeof args.subject === \"string\") return \"email\";\n if (typeof args.url === \"string\") return \"httpWebhook\";\n return undefined;\n}\n\ntype SealPlan = { ok: true; request: FlowsSealRequest } | { ok: false; message: string; fix: string };\n\n/** What `--email/--subject` or `--url` say, as the request the backend seals — or why not. */\nexport function sealRequestFor(kind: string, args: AnyRecord): SealPlan {\n const text = (key: string) => (typeof args[key] === \"string\" && args[key].trim() ? args[key].trim() : undefined);\n if (kind === \"email\") {\n const email = text(\"email\");\n const subject = text(\"subject\");\n if (!email || !subject) {\n return {\n ok: false,\n message: \"An email destination needs both who receives it and its subject.\",\n fix: 'Pass --email \"a@x.com, b@x.com\" --subject \"New lead — <Form name>\". Write the subject yourself from the Form; ask the user only for an address you were not given.',\n };\n }\n return { ok: true, request: { type: \"email\", email, subject } };\n }\n if (kind === \"httpWebhook\") {\n const apiUrl = text(\"url\");\n if (!apiUrl) {\n return { ok: false, message: \"A webhook destination needs its address.\", fix: \"Pass --url https://…\" };\n }\n return { ok: true, request: { type: \"httpWebhook\", apiUrl } };\n }\n return {\n ok: false,\n message: `A ${kind} destination holds a credential, so it is not one you can state.`,\n fix: \"Its token or URL is the user's to enter: request_flow_input.\",\n };\n}\n\n/** Write sealed settings onto a destination that has no account (email, webhook). Mutates `tree`. */\nexport function attachSettings(tree: AnyRecord, id: string, encryptedConfig: string, type: string): Attached {\n const chosen = collectSideEffects(tree).find((entry) => entry.sideEffect.id === id);\n if (!chosen || chosen.sideEffect.type !== type) {\n const ofType = collectSideEffects(tree).filter((entry) => entry.sideEffect.type === type);\n return {\n ok: false,\n message: chosen\n ? `Side effect \"${id}\" is a ${String(chosen.sideEffect.type)}, not a ${type}.`\n : `No side effect with id \"${id}\" in this form.`,\n fix: `${type} side effects in this form: ${ofType.map((entry) => String(entry.sideEffect.id)).join(\", \") || \"none\"}`,\n };\n }\n chosen.sideEffect.encryptedConfig = encryptedConfig;\n return { ok: true, nodeId: String(chosen.node.id), sideEffectId: id };\n}\n\nfunction stepType(node: AnyRecord | undefined): string | undefined {\n const type = (node?.nodeData as AnyRecord | undefined)?.type;\n return typeof type === \"string\" ? type : undefined;\n}\n\nfunction findStep(tree: AnyRecord, nodeId: string): AnyRecord | undefined {\n return walkNodes(tree).find((node) => node.id === nodeId);\n}\n\n/** Write a picked resource into a step's `form.external`, keeping what the step autofills. */\nexport function attachStep(tree: AnyRecord, nodeId: string, external: AnyRecord): Stepped {\n const node = findStep(tree, nodeId);\n const type = stepType(node);\n if (!node || !type) {\n return {\n ok: false,\n message: `No step with id \"${nodeId}\" in this form.`,\n fix: \"Step ids: baker flows show <slug>\",\n };\n }\n if (!STEP_KINDS.has(type)) {\n return {\n ok: false,\n message: `Step \"${nodeId}\" is a ${type}, which embeds nothing from another platform.`,\n fix: \"Only calendly, savvycal, highlevel, highlevelForm, hubspot and hubspotMeeting steps take a resource.\",\n };\n }\n const nodeData = node.nodeData as AnyRecord;\n const form = (nodeData.form as AnyRecord | undefined) ?? {};\n nodeData.form = { autofilledFields: {}, ...form, external };\n return { ok: true, nodeId, type };\n}\n\n/** Steps of `type` with nothing picked yet — what `--all` fills for a step kind. */\nexport function unpickedSteps(tree: AnyRecord, type: string): string[] {\n return walkNodes(tree)\n .filter((node) => stepType(node) === type)\n .filter((node) => ((node.nodeData as AnyRecord).form as AnyRecord | undefined)?.external == null)\n .map((node) => String(node.id));\n}\n\n/**\n * Give `targetId` exactly the destination (or picked resource) `sourceId`\n * already has in another Form. Only between the same type: a sheet's sealed\n * config means nothing to Pipedrive.\n */\nexport function copyDestination(source: AnyRecord, sourceId: string, target: AnyRecord, targetId: string): Stepped {\n const from = collectSideEffects(source).find((entry) => entry.sideEffect.id === sourceId);\n if (from) {\n const type = String(from.sideEffect.type);\n if (!isSet(from.sideEffect.oauthProviderId) || !isSet(from.sideEffect.encryptedConfig)) {\n return {\n ok: false,\n message: `\"${sourceId}\" is not wired itself — nothing to copy.`,\n fix: \"Copy from one that is.\",\n };\n }\n const attached = attachDestination(\n target,\n targetId,\n {\n oauthProviderId: String(from.sideEffect.oauthProviderId),\n encryptedConfig: String(from.sideEffect.encryptedConfig),\n },\n type,\n );\n return attached.ok ? { ok: true, nodeId: attached.nodeId, type } : attached;\n }\n const step = findStep(source, sourceId);\n const external = ((step?.nodeData as AnyRecord | undefined)?.form as AnyRecord | undefined)?.external;\n if (!step || external == null || typeof external !== \"object\") {\n return {\n ok: false,\n message: `No wired side effect or picked step \"${sourceId}\" in the source form.`,\n fix: \"Ids: baker flows show <slug>\",\n };\n }\n const targetType = stepType(findStep(target, targetId));\n if (targetType !== stepType(step)) {\n return {\n ok: false,\n message: `\"${sourceId}\" is a ${String(stepType(step))} and \"${targetId}\" a ${String(targetType)} — copy only between the same type.`,\n fix: \"Pick a source of the same type.\",\n };\n }\n return attachStep(target, targetId, structuredClone(external as AnyRecord));\n}\n\nfunction refuse(\n message: string,\n fix: string | { action: string; explanation: string },\n code = \"VALIDATION_ERROR\",\n): never {\n writeJson({ ok: false, error: { code, message, fix } });\n process.exit(1);\n}\n\ntype Target = { kind: string; on: \"node\" | \"sideEffect\"; ids: string[] };\n\nfunction allTargets(tree: AnyRecord, kind: string | undefined): Target {\n if (!kind) refuse(\"--all needs --type <kind> to know what to wire.\", \"e.g. --all --type googleSpreadsheet\");\n const on = STEP_KINDS.has(kind) ? \"node\" : \"sideEffect\";\n // A stated destination is restated whole (\"every lead to Vicente and Fran\"), set or not.\n const ids = STATED_KINDS.has(kind)\n ? collectSideEffects(tree)\n .filter(({ sideEffect }) => sideEffect.type === kind)\n .map(({ sideEffect }) => String(sideEffect.id))\n : on === \"node\"\n ? unpickedSteps(tree, kind)\n : unwiredSideEffects(tree, kind);\n if (ids.length === 0 && STATED_KINDS.has(kind)) {\n refuse(\n `This Form has no ${kind} destination.`,\n `Add one: baker flows add-side-effect <slug> --node <stepId> --type ${kind}`,\n );\n }\n if (ids.length === 0) {\n refuse(\n `Every ${kind} in this Form is already wired.`,\n \"Repoint one by naming it with --node / --side-effect instead of --all.\",\n );\n }\n return { kind, on, ids };\n}\n\nfunction onlyOfType(tree: AnyRecord, type: string): string {\n const probe = attachDestination(tree, undefined, { oauthProviderId: \"\", encryptedConfig: \"\" }, type);\n if (!probe.ok) refuse(probe.message, probe.fix);\n return probe.sideEffectId;\n}\n\nfunction stepTarget(tree: AnyRecord, node: string): Target {\n const type = stepType(findStep(tree, node));\n if (!type) refuse(`No step with id \"${node}\" in this form.`, \"Step ids: baker flows show <slug>\");\n return { kind: type, on: \"node\", ids: [node] };\n}\n\nfunction sideEffectTarget(tree: AnyRecord, named: string): Target {\n const found = collectSideEffects(tree).find((entry) => entry.sideEffect.id === named);\n if (!found) refuse(`No side effect with id \"${named}\" in this form.`, \"Side-effect ids: baker flows show <slug>\");\n return { kind: String(found.sideEffect.type), on: \"sideEffect\", ids: [named] };\n}\n\n/** Which steps or side effects this call fills, resolved before any platform is asked anything. */\nexport function targetsFor(tree: AnyRecord, args: AnyRecord): Target {\n const node = typeof args.node === \"string\" ? args.node : undefined;\n const named = typeof args[\"side-effect\"] === \"string\" ? args[\"side-effect\"] : undefined;\n if ([node, named, args.all === true ? \"all\" : undefined].filter(Boolean).length > 1) {\n refuse(\"Pass one of --node, --side-effect or --all.\", \"One target per call; --all for every unwired one.\");\n }\n if (args.all === true) {\n const kind = typeof args.type === \"string\" ? args.type : args[\"hubspot-form\"] ? \"hubspotForm\" : statedKind(args);\n return allTargets(tree, kind);\n }\n if (node) return stepTarget(tree, node);\n if (named) return sideEffectTarget(tree, named);\n if (args[\"hubspot-form\"]) return { kind: \"hubspotForm\", on: \"sideEffect\", ids: [onlyOfType(tree, \"hubspotForm\")] };\n const stated = statedKind(args);\n if (stated) return { kind: stated, on: \"sideEffect\", ids: [onlyOfType(tree, stated)] };\n return refuse(\n \"Name what to fill: --node <stepId>, --side-effect <id>, or --all --type <kind>.\",\n \"Ids: baker flows show <slug>\",\n );\n}\n\nasync function sealHubspotForm(formId: string): Promise<HubspotFormsDestinationResponse[\"data\"]> {\n try {\n return (await apiPost<HubspotFormsDestinationResponse>(\"/api/hubspot/forms/destination\", { formId })).data;\n } catch (err) {\n const refusal = err instanceof ApiError ? hubspotRefusal(err.code, err.message) : null;\n if (err instanceof ApiError && refusal !== null) refuse(err.message, refusal.fix, refusal.code);\n failApi(err);\n }\n}\n\nfunction isAgentKind(kind: string): kind is FlowAgentDestinationKind {\n return (FLOW_AGENT_DESTINATION_KINDS as readonly string[]).includes(kind);\n}\n\n/**\n * The refusals only the user can clear, as the call that clears them: nothing\n * connected is the connect card; two accounts is a question only when the\n * agent cannot tell which one the user means.\n */\nexport function destinationRefusal(\n kind: FlowAgentDestinationKind,\n err: ApiError,\n): { code: string; fix: string } | null {\n if (err.code === \"NOT_FOUND\" && err.message.includes(\"is connected to this company\")) {\n return {\n code: \"NOT_CONNECTED\",\n fix: `AGENT INSTRUCTION: only the user can connect it. Call request_connection with { platform: \"${FLOW_PROVIDER_TYPE[kind]}\", reason } — reason in their words — then run this again. Keep going with the rest of the task meanwhile.`,\n };\n }\n if (err.code === \"CONFLICT\" && err.message.includes(\"--account\")) {\n return {\n code: \"SEVERAL_ACCOUNTS\",\n fix: \"Pass --account <id> when the user or the brief makes clear which one; otherwise ask them which (AskUserQuestion), naming the accounts above.\",\n };\n }\n return null;\n}\n\nfunction resolveBody(kind: FlowAgentDestinationKind, args: AnyRecord): AnyRecord {\n const columns =\n typeof args.columns === \"string\"\n ? args.columns\n .split(\",\")\n .map((column) => column.trim())\n .filter(Boolean)\n : undefined;\n return {\n kind,\n ...(typeof args.account === \"string\" ? { account: args.account } : {}),\n ...(typeof args.resource === \"string\" ? { resourceId: args.resource } : {}),\n ...(typeof args.tab === \"string\" ? { tab: args.tab } : {}),\n ...(typeof args[\"new-sheet\"] === \"string\" ? { newSheet: { title: args[\"new-sheet\"], columns } } : {}),\n };\n}\n\nasync function resolveDestination(\n kind: FlowAgentDestinationKind,\n args: AnyRecord,\n): Promise<FlowsResolveResponse[\"data\"]> {\n try {\n return (await apiPost<FlowsResolveResponse>(\"/api/flows/destinations/resolve\", resolveBody(kind, args))).data;\n } catch (err) {\n const refusal = err instanceof ApiError ? destinationRefusal(kind, err) : null;\n if (err instanceof ApiError && refusal !== null) refuse(err.message, refusal.fix, refusal.code);\n failApi(err);\n }\n}\n\ntype Wired = { wired: { nodeId: string; sideEffectId?: string }[]; destination: unknown; hints: string[] };\n\nfunction applyAll(target: Target, apply: (id: string) => Stepped | Attached): Wired[\"wired\"] {\n return target.ids.map((id) => {\n const done = apply(id);\n if (!done.ok) refuse(done.message, done.fix);\n return \"sideEffectId\" in done ? { nodeId: done.nodeId, sideEffectId: done.sideEffectId } : { nodeId: done.nodeId };\n });\n}\n\nfunction sameAs(tree: AnyRecord, target: Target, ref: string): Wired {\n const [slug, id] = ref.split(\":\");\n if (!slug || !id) refuse(`--same-as takes <slug>:<id>, got \"${ref}\".`, \"e.g. --same-as madrid:se-gsheet-1\");\n const source = readFlowTree(slug);\n const wired = applyAll(target, (targetId) => copyDestination(source, id, tree, targetId));\n return { wired, destination: { sameAs: ref }, hints: [] };\n}\n\nasync function fromHubspot(tree: AnyRecord, target: Target, formId: string, slug: string): Promise<Wired> {\n if (target.kind !== \"hubspotForm\") {\n refuse(\n `--hubspot-form wires a hubspotForm side effect, not a ${target.kind}.`,\n \"A HubSpot step takes `baker hubspot forms view <id> --as-node` (or `meetings view <slug> --as-node`).\",\n );\n }\n const sealed = await sealHubspotForm(formId);\n const wired = applyAll(target, (id) => attachDestination(tree, id, sealed));\n return {\n wired,\n destination: { formGuid: sealed.formGuid, formName: sealed.formName, portalId: sealed.portalId },\n hints: [\n `Now map each step's answers onto it: baker flows map ${slug} --side-effect <id> --hubspot-form ${sealed.formGuid} --map email=<value> … --write. Field names come from \\`baker hubspot forms view ${sealed.formGuid}\\`.`,\n ],\n };\n}\n\nfunction sheetHints(slug: string, data: Extract<FlowsResolveResponse[\"data\"], { target: \"sideEffect\" }>): string[] {\n const sheet = data.destination;\n if (!sheet)\n return [`Now map the fields: baker flows map ${slug} --side-effect <id> --map <fieldKey>=<value> … --write.`];\n const columns = sheet.columns.map((column) => `${column.letter}=${column.header}`).join(\", \");\n return [\n ...(sheet.created\n ? [\n `Created \"${sheet.name}\" in the connected Google account${sheet.url ? ` (${sheet.url})` : \"\"} — tell the user where their leads will land.`,\n ]\n : []),\n columns\n ? `Columns: ${columns}. Map by letter: baker flows map ${slug} --side-effect <id> --map A=<value> … --write.`\n : `The \"${sheet.tab}\" tab has no header row. Map by letter anyway, and say which column holds what.`,\n ];\n}\n\nasync function fromStated(tree: AnyRecord, target: Target, args: AnyRecord): Promise<Wired> {\n const plan = sealRequestFor(target.kind, args);\n if (!plan.ok) refuse(plan.message, plan.fix);\n let sealed: FlowsSealResponse[\"data\"];\n try {\n sealed = (await apiPost<FlowsSealResponse>(\"/api/flows/destinations/seal\", plan.request)).data;\n } catch (err) {\n failApi(err);\n }\n const wired = applyAll(target, (id) => attachSettings(tree, id, sealed.encryptedConfig, target.kind));\n return {\n wired,\n destination: sealed.settings,\n hints: [\n target.kind === \"email\"\n ? `Leads from these steps now go to ${String(sealed.settings.email)} with the subject \"${String(sealed.settings.subject)}\". Tell the user in those words.`\n : `Submissions now go to ${String(sealed.settings.apiUrl)}.`,\n ],\n };\n}\n\nasync function fromPlatform(tree: AnyRecord, target: Target, args: AnyRecord, slug: string): Promise<Wired> {\n const kind = target.kind;\n if (!isAgentKind(kind)) {\n const hubspotStep = kind === \"hubspot\" || kind === \"hubspotMeeting\";\n refuse(\n `A ${kind} ${target.on === \"node\" ? \"step\" : \"side effect\"} is not something this command can fill from a platform.`,\n hubspotStep\n ? \"Write the blob from `baker hubspot forms view <id> --as-node` (or `meetings view <slug> --as-node`) into the step's form.external.\"\n : OAUTH_SIDE_EFFECTS.has(kind)\n ? \"Pass --hubspot-form <formId>.\"\n : \"It takes typed credentials only the user has: request_flow_input.\",\n );\n }\n const data = await resolveDestination(kind, args);\n if (data.target === \"node\") {\n const wired = applyAll(target, (id) => attachStep(tree, id, data.external));\n return {\n wired,\n destination: { name: data.name, account: data.account },\n hints: [`Picked \"${data.name}\". Autofill its fields from earlier answers in the step's form.autofilledFields.`],\n };\n }\n const sealed = { oauthProviderId: data.oauthProviderId, encryptedConfig: data.encryptedConfig };\n const wired = applyAll(target, (id) => attachDestination(tree, id, sealed, kind));\n return {\n wired,\n destination: data.destination ? { ...data.destination, account: data.account } : { account: data.account },\n hints: sheetHints(slug, data),\n };\n}\n\nregisterSchema({\n command: \"flows.connect\",\n description:\n 'Fill a Form\\'s step or destination yourself — no card for the user. Steps: Calendly, SavvyCal, GoHighLevel calendar/form (`--node <id> --resource <id>`). Destinations: HubSpot form (`--hubspot-form <id>`), Google Sheets (`--resource <spreadsheetId>` or `--new-sheet <title> --columns …`), Pipedrive and GoHighLevel contact (no resource: the connected account is the destination), email (`--email \"a@x.com, b@x.com\" --subject \"New lead — <Form>\"`, never a card), webhook without a credential (`--url`). `--same-as <slug>:<id>` copies what another Form already has. `--all --type <kind>` fills every unwired one of that kind at once. Ids come from `baker flows options <kind>`. Fall back to request_flow_input only when nothing is connected, the sheet was never chosen, or several resources plausibly match.',\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n node: {\n type: \"string\",\n description: \"Step id to fill (calendly, savvycal, highlevel, highlevelForm)\",\n required: false,\n },\n \"side-effect\": { type: \"string\", description: \"Side-effect id to wire\", required: false },\n all: { type: \"boolean\", description: \"Every unwired one of --type in this Form\", required: false, default: false },\n type: { type: \"string\", description: \"The kind --all wires (e.g. googleSpreadsheet, calendly)\", required: false },\n resource: { type: \"string\", description: \"Option id from `baker flows options <kind>`\", required: false },\n \"hubspot-form\": {\n type: \"string\",\n description: \"HubSpot form id (from `baker hubspot forms list`)\",\n required: false,\n },\n \"new-sheet\": {\n type: \"string\",\n description: \"Create a Google spreadsheet with this title and wire it\",\n required: false,\n },\n columns: {\n type: \"string\",\n description: \"With --new-sheet: header row, comma-separated, from column A\",\n required: false,\n },\n tab: { type: \"string\", description: \"Google Sheets tab to append to (default: the first)\", required: false },\n \"same-as\": {\n type: \"string\",\n description: \"<slug>:<id> — copy another Form's wired destination or picked step\",\n required: false,\n },\n account: {\n type: \"string\",\n description: \"Connection id, when more than one account of the platform is connected\",\n required: false,\n },\n email: {\n type: \"string\",\n description:\n 'Email destination: who receives each lead, comma-separated for several (--email \"ana@x.com, luis@x.com\"). Never a card: you state it.',\n required: false,\n },\n subject: {\n type: \"string\",\n description:\n 'Email destination: the subject line. Write it yourself from the Form (\"New lead — Private events\").',\n required: false,\n },\n url: {\n type: \"string\",\n description:\n \"Webhook destination with no credential: its https address. One that needs a token goes to request_flow_input.\",\n required: false,\n },\n },\n});\n\nexport const connectCommand = defineCommand({\n meta: {\n name: \"connect\",\n description:\n 'Fill a step or destination yourself. Start here: baker flows options calendly, then baker flows connect contact --node book --resource <id>. Email: --side-effect se-email-1 --email \"ana@x.com, luis@x.com\" --subject \"New lead — Contact\". Sheets: --side-effect se-gsheet-1 --new-sheet \"Leads\" --columns \"Name,Email\". Same as another Form: --same-as madrid:se-gsheet-1',\n },\n args: {\n slug: { type: \"positional\", description: \"Form slug\", required: true },\n node: { type: \"string\", description: \"Step id to fill\" },\n \"side-effect\": { type: \"string\", description: \"Side-effect id to wire\" },\n all: { type: \"boolean\", description: \"Every unwired one of --type\" },\n type: { type: \"string\", description: \"The kind --all wires\" },\n resource: { type: \"string\", description: \"Option id from baker flows options <kind>\" },\n \"hubspot-form\": { type: \"string\", description: \"HubSpot form id (from baker hubspot forms list)\" },\n \"new-sheet\": { type: \"string\", description: \"Create a spreadsheet with this title\" },\n columns: { type: \"string\", description: \"Header row for --new-sheet, comma-separated\" },\n tab: { type: \"string\", description: \"Sheet tab (default: the first)\" },\n \"same-as\": { type: \"string\", description: \"<slug>:<id> to copy\" },\n account: { type: \"string\", description: \"Connection id when several are connected\" },\n email: { type: \"string\", description: \"Email destination: recipients, comma-separated\" },\n subject: { type: \"string\", description: \"Email destination: subject line\" },\n url: { type: \"string\", description: \"Webhook destination with no credential: its address\" },\n },\n run: async ({ args }) => {\n const slug = String(args.slug);\n const target = targetsFor(readFlowTree(slug), args);\n\n const tree = readFlowTree(slug);\n const result =\n typeof args[\"same-as\"] === \"string\"\n ? sameAs(tree, target, args[\"same-as\"])\n : typeof args[\"hubspot-form\"] === \"string\"\n ? await fromHubspot(tree, target, args[\"hubspot-form\"], slug)\n : STATED_KINDS.has(target.kind)\n ? await fromStated(tree, target, args)\n : await fromPlatform(tree, target, args, slug);\n writeFlowTree(slug, tree);\n\n writeJson({\n ok: true,\n data: {\n slug,\n kind: target.kind,\n [target.on === \"node\" ? \"steps\" : \"sideEffects\"]: result.wired,\n destination: result.destination,\n connected: true,\n },\n hints: [...result.hints, \"Staged like any other edit in this chat: it goes live when the chat is published.\"],\n });\n },\n});\n"],"mappings":"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","names":["wired"]}
|
package/dist/chunk-ZJWUBJYQ.js
DELETED
|
@@ -1,204 +0,0 @@
|
|
|
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
|
-
];
|
|
12
|
-
var CAPABILITY_SURFACE_SPECS = {
|
|
13
|
-
"google-ads": {
|
|
14
|
-
id: "google-ads",
|
|
15
|
-
label: "Google Ads",
|
|
16
|
-
provider: "google-ads",
|
|
17
|
-
resourceNoun: "ad account",
|
|
18
|
-
writePath: "staged-live",
|
|
19
|
-
writeScopes: ["https://www.googleapis.com/auth/adwords"],
|
|
20
|
-
commands: "baker ads google"
|
|
21
|
-
},
|
|
22
|
-
"meta-ads": {
|
|
23
|
-
id: "meta-ads",
|
|
24
|
-
label: "Meta Ads",
|
|
25
|
-
provider: "meta",
|
|
26
|
-
resourceNoun: "ad account",
|
|
27
|
-
writePath: "staged-live",
|
|
28
|
-
writeScopes: ["ads_management"],
|
|
29
|
-
commands: "baker ads meta"
|
|
30
|
-
},
|
|
31
|
-
"linkedin-ads": {
|
|
32
|
-
id: "linkedin-ads",
|
|
33
|
-
label: "LinkedIn Ads",
|
|
34
|
-
provider: "linkedin",
|
|
35
|
-
resourceNoun: "ad account",
|
|
36
|
-
writePath: "staged-live",
|
|
37
|
-
writeScopes: ["rw_ads"],
|
|
38
|
-
commands: "baker ads linkedin"
|
|
39
|
-
},
|
|
40
|
-
"x-ads": {
|
|
41
|
-
id: "x-ads",
|
|
42
|
-
label: "X Ads",
|
|
43
|
-
provider: "x-ads",
|
|
44
|
-
resourceNoun: "ad account",
|
|
45
|
-
writePath: "staged-live",
|
|
46
|
-
/**
|
|
47
|
-
* Empty on purpose, and the one surface where that does NOT mean read-only.
|
|
48
|
-
* X Ads authenticates with OAuth 1.0a, which has no scope strings at all —
|
|
49
|
-
* write access is granted to the *app* by X's Ads API access review, not
|
|
50
|
-
* per connection. There is therefore no scope to check, and inventing one
|
|
51
|
-
* would make `scopeBlockers` refuse every X write for a permission that
|
|
52
|
-
* does not exist.
|
|
53
|
-
*/
|
|
54
|
-
writeScopes: [],
|
|
55
|
-
commands: "baker ads x"
|
|
56
|
-
},
|
|
57
|
-
"chatgpt-ads": {
|
|
58
|
-
id: "chatgpt-ads",
|
|
59
|
-
label: "ChatGPT Ads",
|
|
60
|
-
// Connected with the client's own Ads API key (`chatgptAdsConnections`), not an OAuth grant.
|
|
61
|
-
provider: "chatgpt-ads",
|
|
62
|
-
resourceNoun: "ad account",
|
|
63
|
-
writePath: "staged-live",
|
|
64
|
-
/**
|
|
65
|
-
* Empty because the pasted key has no scopes: it reaches its one account
|
|
66
|
-
* whole. When OpenAI approves Baker's OAuth app this becomes
|
|
67
|
-
* `ads.admin.all.write` and `connectsWith` goes away.
|
|
68
|
-
*/
|
|
69
|
-
writeScopes: [],
|
|
70
|
-
commands: "baker ads chatgpt",
|
|
71
|
-
connectsWith: "api-key"
|
|
72
|
-
},
|
|
73
|
-
"tag-manager": {
|
|
74
|
-
id: "tag-manager",
|
|
75
|
-
label: "Tag Manager",
|
|
76
|
-
provider: "google-tag-manager",
|
|
77
|
-
resourceNoun: "container",
|
|
78
|
-
writePath: "staged-immediate",
|
|
79
|
-
writeScopes: [
|
|
80
|
-
"https://www.googleapis.com/auth/tagmanager.edit.containers",
|
|
81
|
-
"https://www.googleapis.com/auth/tagmanager.edit.containerversions",
|
|
82
|
-
"https://www.googleapis.com/auth/tagmanager.publish"
|
|
83
|
-
],
|
|
84
|
-
commands: "baker tag-manager"
|
|
85
|
-
},
|
|
86
|
-
ga4: {
|
|
87
|
-
id: "ga4",
|
|
88
|
-
label: "Google Analytics 4",
|
|
89
|
-
provider: "google-analytics",
|
|
90
|
-
resourceNoun: "property",
|
|
91
|
-
// Like Tag Manager: staged during the chat, applied for real at publish,
|
|
92
|
-
// every time. A connection made before writes existed is
|
|
93
|
-
// read-only until it is reconnected, and `access` does NOT say so — it
|
|
94
|
-
// reports what the Baker app asks Google for, which is now app-wide
|
|
95
|
-
// read-write. The per-company signal is `scopeBlockers`, which compares
|
|
96
|
-
// `writeScopes` against the scopes that connection actually recorded.
|
|
97
|
-
writePath: "staged-immediate",
|
|
98
|
-
writeScopes: ["https://www.googleapis.com/auth/analytics.edit"],
|
|
99
|
-
commands: "baker ga4"
|
|
100
|
-
},
|
|
101
|
-
gsc: {
|
|
102
|
-
id: "gsc",
|
|
103
|
-
label: "Search Console",
|
|
104
|
-
provider: "google-search-console",
|
|
105
|
-
resourceNoun: "site",
|
|
106
|
-
writePath: "read-only",
|
|
107
|
-
writeScopes: ["https://www.googleapis.com/auth/webmasters"],
|
|
108
|
-
commands: "baker gsc"
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
// ../api/src/capabilities/index.ts
|
|
113
|
-
import { z } from "zod";
|
|
114
|
-
var capabilitySurfaceSchema = z.enum(CAPABILITY_SURFACES);
|
|
115
|
-
var capabilitiesRequestSchema = z.object({
|
|
116
|
-
/** Narrow to one surface. Omit for every surface the company could use. */
|
|
117
|
-
surface: capabilitySurfaceSchema.optional(),
|
|
118
|
-
/** Include the field-level contract of every op, not just the entity list. */
|
|
119
|
-
full: z.boolean().optional(),
|
|
120
|
-
/**
|
|
121
|
-
* Who the chat acts as (`BAKER_ACTING_USER_ID`). Adds that person's own
|
|
122
|
-
* connected tools — they load for this turn, and for nobody else's.
|
|
123
|
-
*/
|
|
124
|
-
actingUserId: z.string().optional()
|
|
125
|
-
});
|
|
126
|
-
var capabilityResourceSchema = z.object({
|
|
127
|
-
id: z.string(),
|
|
128
|
-
name: z.string().optional()
|
|
129
|
-
});
|
|
130
|
-
var capabilityOpSchema = z.object({
|
|
131
|
-
kind: z.string(),
|
|
132
|
-
/** True when the op changes something that already exists and must be named. */
|
|
133
|
-
needsTarget: z.boolean(),
|
|
134
|
-
required: z.array(z.string()),
|
|
135
|
-
optional: z.array(z.string()),
|
|
136
|
-
/** Field → the values it accepts, for fields that take a fixed set. */
|
|
137
|
-
choices: z.record(z.string(), z.array(z.string())),
|
|
138
|
-
/** False when the platform accepts fields beyond the listed ones. */
|
|
139
|
-
fieldsAreComplete: z.boolean()
|
|
140
|
-
});
|
|
141
|
-
var capabilityLimitViewSchema = z.object({
|
|
142
|
-
capability: z.string(),
|
|
143
|
-
cause: z.enum(["not_built", "provider_forbids", "no_permission"]),
|
|
144
|
-
detail: z.string()
|
|
145
|
-
});
|
|
146
|
-
var capabilityWriteModeSchema = z.enum(["live", "applies-at-publish", "none"]);
|
|
147
|
-
var capabilitySurfaceReportSchema = z.object({
|
|
148
|
-
surface: capabilitySurfaceSchema,
|
|
149
|
-
label: z.string(),
|
|
150
|
-
connected: z.boolean(),
|
|
151
|
-
/** What the user picked when connecting. Empty when nothing is selected yet. */
|
|
152
|
-
resources: z.array(capabilityResourceSchema),
|
|
153
|
-
access: z.enum(["read-write", "read-only", "not-connected"]),
|
|
154
|
-
writeMode: capabilityWriteModeSchema,
|
|
155
|
-
/** One sentence about the write mode, safe to repeat to the user. */
|
|
156
|
-
writeModeNote: z.string(),
|
|
157
|
-
/** Entities this surface can change at all, e.g. "campaign", "keyword". */
|
|
158
|
-
writableEntities: z.array(z.string()),
|
|
159
|
-
/** Things wrong with the connection itself: needs reconnecting, missing a permission. */
|
|
160
|
-
blockers: z.array(z.string()),
|
|
161
|
-
/** What cannot be done here, and why. */
|
|
162
|
-
limits: z.array(capabilityLimitViewSchema),
|
|
163
|
-
/** The per-op contract. Present when one surface was asked for, or with `full`. */
|
|
164
|
-
ops: z.array(capabilityOpSchema).optional(),
|
|
165
|
-
/** Where to look next: `baker ads google`, `baker ga4`, … */
|
|
166
|
-
commands: z.string()
|
|
167
|
-
});
|
|
168
|
-
var capabilityToolSchema = z.object({
|
|
169
|
-
/** `microsoft_clarity`, `hubspot`, or the name the user gave a custom server. */
|
|
170
|
-
key: z.string(),
|
|
171
|
-
label: z.string(),
|
|
172
|
-
/** `mcp` — tools in the agent's own list. `platform` — signed in, read through the CLI. */
|
|
173
|
-
kind: z.enum(["mcp", "platform"]),
|
|
174
|
-
/** How to actually reach it, in one phrase the agent can act on. */
|
|
175
|
-
reach: z.string(),
|
|
176
|
-
/**
|
|
177
|
-
* Whether it can be used right now.
|
|
178
|
-
*
|
|
179
|
-
* A connection that exists and is expired is worse than one that is absent:
|
|
180
|
-
* it reads as available and fails at the moment it is needed, which on an
|
|
181
|
-
* unattended run is a report with a hole in it and no explanation.
|
|
182
|
-
*/
|
|
183
|
-
ready: z.boolean(),
|
|
184
|
-
/** Why it is not ready, or what it is for. Absent when neither needs saying. */
|
|
185
|
-
note: z.string().optional()
|
|
186
|
-
});
|
|
187
|
-
var capabilitiesResponseSchema = z.object({
|
|
188
|
-
ok: z.literal(true),
|
|
189
|
-
data: z.object({
|
|
190
|
-
surfaces: z.array(capabilitySurfaceReportSchema),
|
|
191
|
-
/**
|
|
192
|
-
* Everything else this company can reach. Shared connections only —
|
|
193
|
-
* a teammate's private per-user connection belongs to whoever started the
|
|
194
|
-
* session and is visible in the agent's own tool list, not here.
|
|
195
|
-
*/
|
|
196
|
-
tools: z.array(capabilityToolSchema)
|
|
197
|
-
})
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
export {
|
|
201
|
-
CAPABILITY_SURFACES,
|
|
202
|
-
CAPABILITY_SURFACE_SPECS
|
|
203
|
-
};
|
|
204
|
-
//# sourceMappingURL=chunk-ZJWUBJYQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../api/src/capabilities/surfaces.ts","../../api/src/capabilities/index.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] 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};\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: \"ga4\",\n capability:\n \"Create, merge or delete a property; add or edit a data stream; 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 — plus the property's name, industry category and Google Ads link. It does not create or merge properties or touch data streams. 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: \"x-ads\",\n capability: \"Change anything in X Ads — create or edit campaigns, line items, or promoted posts\",\n cause: \"not_built\",\n detail:\n \"X Ads is a read-only surface in Baker: there are no staged write ops for it, so nothing can be staged and nothing publishes. Report on it freely; route any change to the user in X Ads Manager.\",\n evidence: { kind: \"noOpKind\", kinds: [\"x.campaign.create\", \"x.campaign.update\", \"x.lineItem.create\"] },\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: \"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 account settings, 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.\",\n evidence: {\n kind: \"noOpKind\",\n kinds: [\"google.account.update\", \"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: \"linkedin-ads\",\n capability: \"Use a video from the Baker media library, or a document, as LinkedIn ad creative\",\n cause: \"not_built\",\n detail:\n \"Only images upload to LinkedIn today; video and document creative are not built. Stage an image creative, or tell the user to upload the video in Campaign Manager, and carry on with the rest of the job.\",\n evidence: {\n kind: \"asserted\",\n note: \"Enforced by a throw inside the LinkedIn media uploader (ads/linkedin/writes/media.ts), not by the shared op contract — the op kind exists and accepts the reference, so no schema or op-kind check can see it.\",\n },\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 { 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. */\n kind: z.enum([\"mcp\", \"platform\"]),\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"],"mappings":";AAqBO,IAAM,sBAAsB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AA6CO,IAAM,2BAAyF;AAAA,EACpG,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,IACX,aAAa,CAAC,yCAAyC;AAAA,IACvD,UAAU;AAAA,EACZ;AAAA,EACA,YAAY;AAAA,IACV,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,IACX,aAAa,CAAC,gBAAgB;AAAA,IAC9B,UAAU;AAAA,EACZ;AAAA,EACA,gBAAgB;AAAA,IACd,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,IACX,aAAa,CAAC,QAAQ;AAAA,IACtB,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASX,aAAa,CAAC;AAAA,IACd,UAAU;AAAA,EACZ;AAAA,EACA,eAAe;AAAA,IACb,IAAI;AAAA,IACJ,OAAO;AAAA;AAAA,IAEP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMX,aAAa,CAAC;AAAA,IACd,UAAU;AAAA,IACV,cAAc;AAAA,EAChB;AAAA,EACA,eAAe;AAAA,IACb,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,IACX,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU;AAAA,EACZ;AAAA,EACA,KAAK;AAAA,IACH,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOd,WAAW;AAAA,IACX,aAAa,CAAC,gDAAgD;AAAA,IAC9D,UAAU;AAAA,EACZ;AAAA,EACA,KAAK;AAAA,IACH,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,WAAW;AAAA,IACX,aAAa,CAAC,4CAA4C;AAAA,IAC1D,UAAU;AAAA,EACZ;AACF;;;ACpKA,SAAS,SAAS;AAgBX,IAAM,0BAA0B,EAAE,KAAK,mBAAmB;AAE1D,IAAM,4BAA4B,EAAE,OAAO;AAAA;AAAA,EAEhD,SAAS,wBAAwB,SAAS;AAAA;AAAA,EAE1C,MAAM,EAAE,QAAQ,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAK3B,cAAc,EAAE,OAAO,EAAE,SAAS;AACpC,CAAC;AAIM,IAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,IAAI,EAAE,OAAO;AAAA,EACb,MAAM,EAAE,OAAO,EAAE,SAAS;AAC5B,CAAC;AAGM,IAAM,qBAAqB,EAAE,OAAO;AAAA,EACzC,MAAM,EAAE,OAAO;AAAA;AAAA,EAEf,aAAa,EAAE,QAAQ;AAAA,EACvB,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA,EAC5B,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA;AAAA,EAE5B,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAAA;AAAA,EAEjD,mBAAmB,EAAE,QAAQ;AAC/B,CAAC;AAGM,IAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,YAAY,EAAE,OAAO;AAAA,EACrB,OAAO,EAAE,KAAK,CAAC,aAAa,oBAAoB,eAAe,CAAC;AAAA,EAChE,QAAQ,EAAE,OAAO;AACnB,CAAC;AAaM,IAAM,4BAA4B,EAAE,KAAK,CAAC,QAAQ,sBAAsB,MAAM,CAAC;AAG/E,IAAM,gCAAgC,EAAE,OAAO;AAAA,EACpD,SAAS;AAAA,EACT,OAAO,EAAE,OAAO;AAAA,EAChB,WAAW,EAAE,QAAQ;AAAA;AAAA,EAErB,WAAW,EAAE,MAAM,wBAAwB;AAAA,EAC3C,QAAQ,EAAE,KAAK,CAAC,cAAc,aAAa,eAAe,CAAC;AAAA,EAC3D,WAAW;AAAA;AAAA,EAEX,eAAe,EAAE,OAAO;AAAA;AAAA,EAExB,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA;AAAA,EAEpC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA;AAAA,EAE5B,QAAQ,EAAE,MAAM,yBAAyB;AAAA;AAAA,EAEzC,KAAK,EAAE,MAAM,kBAAkB,EAAE,SAAS;AAAA;AAAA,EAE1C,UAAU,EAAE,OAAO;AACrB,CAAC;AAoBM,IAAM,uBAAuB,EAAE,OAAO;AAAA;AAAA,EAE3C,KAAK,EAAE,OAAO;AAAA,EACd,OAAO,EAAE,OAAO;AAAA;AAAA,EAEhB,MAAM,EAAE,KAAK,CAAC,OAAO,UAAU,CAAC;AAAA;AAAA,EAEhC,OAAO,EAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQhB,OAAO,EAAE,QAAQ;AAAA;AAAA,EAEjB,MAAM,EAAE,OAAO,EAAE,SAAS;AAC5B,CAAC;AAGM,IAAM,6BAA6B,EAAE,OAAO;AAAA,EACjD,IAAI,EAAE,QAAQ,IAAI;AAAA,EAClB,MAAM,EAAE,OAAO;AAAA,IACb,UAAU,EAAE,MAAM,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAM/C,OAAO,EAAE,MAAM,oBAAoB;AAAA,EACrC,CAAC;AACH,CAAC;","names":[]}
|
package/dist/chunk-ZZQXVYUY.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
canvasOutputsRoot
|
|
3
|
-
} from "./chunk-DZSIUEGH.js";
|
|
4
|
-
import {
|
|
5
|
-
optionalChatId
|
|
6
|
-
} from "./chunk-NAWWC5I3.js";
|
|
7
|
-
|
|
8
|
-
// src/commands/canvas/creative-limit.ts
|
|
9
|
-
import { existsSync } from "fs";
|
|
10
|
-
import { mkdir, readdir, writeFile } from "fs/promises";
|
|
11
|
-
import path from "path";
|
|
12
|
-
var NEW_CREATIVES_PER_CHAT = 10;
|
|
13
|
-
function claimNewCreative(made, slug) {
|
|
14
|
-
if (made.includes(slug)) return { allowed: true, count: made.length };
|
|
15
|
-
if (made.length >= NEW_CREATIVES_PER_CHAT) return { allowed: false, count: made.length };
|
|
16
|
-
return { allowed: true, count: made.length + 1 };
|
|
17
|
-
}
|
|
18
|
-
function chatDir(canvasRoot, chatId) {
|
|
19
|
-
return path.join(canvasRoot, ".creative-limit", (chatId ?? "no-chat").replace(/[^A-Za-z0-9_-]/g, "_"));
|
|
20
|
-
}
|
|
21
|
-
async function madeInChat(dir) {
|
|
22
|
-
return readdir(dir).catch(() => []);
|
|
23
|
-
}
|
|
24
|
-
async function claimNewCreativeInWorkspace(canvasRoot, slug, chatId, definitionPath, exists = existsSync) {
|
|
25
|
-
const dir = chatDir(canvasRoot, chatId);
|
|
26
|
-
const made = await madeInChat(dir);
|
|
27
|
-
if (!made.includes(slug) && exists(definitionPath)) return { allowed: true, count: made.length };
|
|
28
|
-
const claim = claimNewCreative(made, slug);
|
|
29
|
-
if (claim.allowed && !made.includes(slug)) {
|
|
30
|
-
try {
|
|
31
|
-
await mkdir(dir, { recursive: true });
|
|
32
|
-
await writeFile(path.join(dir, slug), "", { flag: "wx" });
|
|
33
|
-
} catch {
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return claim;
|
|
37
|
-
}
|
|
38
|
-
function creativeLimitRefusal(slug) {
|
|
39
|
-
return {
|
|
40
|
-
ok: false,
|
|
41
|
-
error: {
|
|
42
|
-
code: "CREATIVE_LIMIT",
|
|
43
|
-
message: `${slug} would be new creative number ${NEW_CREATIVES_PER_CHAT + 1} in this chat. A chat makes at most ${NEW_CREATIVES_PER_CHAT} new creatives.`,
|
|
44
|
-
fix: `Build nothing more. Finish and show the ${NEW_CREATIVES_PER_CHAT} you have, and tell the person in one line that a chat makes up to ${NEW_CREATIVES_PER_CHAT} new creatives, so the rest go in a new chat. Editing or resizing the ones already made still works here. Working as a subagent: return now and say the limit was reached.`
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
async function enforceNewCreativeLimit(slug, canvasPath) {
|
|
49
|
-
const claim = await claimNewCreativeInWorkspace(
|
|
50
|
-
canvasOutputsRoot(canvasPath),
|
|
51
|
-
slug,
|
|
52
|
-
optionalChatId() ?? null,
|
|
53
|
-
path.join(path.dirname(path.resolve(canvasPath)), "_definition.md")
|
|
54
|
-
);
|
|
55
|
-
if (claim.allowed) return;
|
|
56
|
-
process.stderr.write(`${JSON.stringify(creativeLimitRefusal(slug), null, 2)}
|
|
57
|
-
`);
|
|
58
|
-
process.exit(2);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export {
|
|
62
|
-
claimNewCreativeInWorkspace,
|
|
63
|
-
creativeLimitRefusal,
|
|
64
|
-
enforceNewCreativeLimit
|
|
65
|
-
};
|
|
66
|
-
//# sourceMappingURL=chunk-ZZQXVYUY.js.map
|
package/dist/claim-25JJM4AG.js
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
failApi,
|
|
3
|
-
failValidation
|
|
4
|
-
} from "./chunk-ZDNOCKKY.js";
|
|
5
|
-
import "./chunk-K6WVV74H.js";
|
|
6
|
-
import "./chunk-GXDLWBOY.js";
|
|
7
|
-
import "./chunk-TEINLN64.js";
|
|
8
|
-
import "./chunk-ZJWUBJYQ.js";
|
|
9
|
-
import "./chunk-NE4F3FHN.js";
|
|
10
|
-
import {
|
|
11
|
-
apiPost,
|
|
12
|
-
validateConvexId
|
|
13
|
-
} from "./chunk-XBOK23HI.js";
|
|
14
|
-
import "./chunk-IFWP3ZDO.js";
|
|
15
|
-
import {
|
|
16
|
-
requireChatId
|
|
17
|
-
} from "./chunk-NAWWC5I3.js";
|
|
18
|
-
import {
|
|
19
|
-
registerSchema,
|
|
20
|
-
writeJson
|
|
21
|
-
} from "./chunk-NU7JSWVA.js";
|
|
22
|
-
import "./chunk-YQSBHWOI.js";
|
|
23
|
-
|
|
24
|
-
// src/commands/actions/claim.ts
|
|
25
|
-
import { defineCommand } from "citty";
|
|
26
|
-
|
|
27
|
-
// src/commands/actions/skillCatalog.ts
|
|
28
|
-
import { existsSync, readdirSync, readFileSync } from "fs";
|
|
29
|
-
import { dirname, join } from "path";
|
|
30
|
-
var DESCRIPTION_MAX = 600;
|
|
31
|
-
var SKILLS_SUBPATH = join(".claude", "skills");
|
|
32
|
-
var EXCLUDED_SKILLS = /* @__PURE__ */ new Set(["actions"]);
|
|
33
|
-
function stripQuotes(value) {
|
|
34
|
-
const trimmed = value.trim();
|
|
35
|
-
if (trimmed.startsWith('"') && trimmed.endsWith('"')) {
|
|
36
|
-
return trimmed.slice(1, -1).replace(/\\"/g, '"').replace(/\\n/g, "\n");
|
|
37
|
-
}
|
|
38
|
-
if (trimmed.startsWith("'") && trimmed.endsWith("'")) {
|
|
39
|
-
return trimmed.slice(1, -1).replace(/''/g, "'");
|
|
40
|
-
}
|
|
41
|
-
return trimmed;
|
|
42
|
-
}
|
|
43
|
-
function extractFrontmatterLines(md) {
|
|
44
|
-
if (!md.startsWith("---")) return null;
|
|
45
|
-
const end = md.indexOf("\n---", 3);
|
|
46
|
-
if (end === -1) return null;
|
|
47
|
-
return md.slice(md.indexOf("\n", 3) + 1, end).split("\n");
|
|
48
|
-
}
|
|
49
|
-
var BLOCK_SCALAR = /^([|>])[+-]?$/;
|
|
50
|
-
function collectBlockLines(lines, start) {
|
|
51
|
-
const collected = [];
|
|
52
|
-
for (let i = start; i < lines.length; i++) {
|
|
53
|
-
const line = lines[i] ?? "";
|
|
54
|
-
if (line.trim() === "") {
|
|
55
|
-
collected.push("");
|
|
56
|
-
} else if (/^\s/.test(line)) {
|
|
57
|
-
collected.push(line.trim());
|
|
58
|
-
} else {
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
while (collected.length > 0 && collected.at(-1) === "") collected.pop();
|
|
63
|
-
return collected;
|
|
64
|
-
}
|
|
65
|
-
function foldLines(collected) {
|
|
66
|
-
const paragraphs = [];
|
|
67
|
-
let buffer = [];
|
|
68
|
-
for (const line of collected) {
|
|
69
|
-
if (line === "") {
|
|
70
|
-
if (buffer.length > 0) paragraphs.push(buffer.join(" "));
|
|
71
|
-
buffer = [];
|
|
72
|
-
} else {
|
|
73
|
-
buffer.push(line);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
if (buffer.length > 0) paragraphs.push(buffer.join(" "));
|
|
77
|
-
return paragraphs.join("\n");
|
|
78
|
-
}
|
|
79
|
-
function readBlockScalar(lines, start, style) {
|
|
80
|
-
const collected = collectBlockLines(lines, start);
|
|
81
|
-
return style === "|" ? collected.join("\n") : foldLines(collected);
|
|
82
|
-
}
|
|
83
|
-
function readField(lines, field) {
|
|
84
|
-
for (let i = 0; i < lines.length; i++) {
|
|
85
|
-
const match = (lines[i] ?? "").match(/^([A-Za-z0-9_-]+):\s*(.*)$/);
|
|
86
|
-
if (!match || match[1] !== field) continue;
|
|
87
|
-
const inline = (match[2] ?? "").trim();
|
|
88
|
-
const scalar = inline.match(BLOCK_SCALAR);
|
|
89
|
-
if (scalar) {
|
|
90
|
-
return readBlockScalar(lines, i + 1, scalar[1]);
|
|
91
|
-
}
|
|
92
|
-
return stripQuotes(inline);
|
|
93
|
-
}
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
function parseSkillFrontmatter(md) {
|
|
97
|
-
const lines = extractFrontmatterLines(md);
|
|
98
|
-
if (!lines) return null;
|
|
99
|
-
const name = readField(lines, "name");
|
|
100
|
-
const description = readField(lines, "description");
|
|
101
|
-
if (!name || !description) return null;
|
|
102
|
-
const trimmed = description.length > DESCRIPTION_MAX ? `${description.slice(0, DESCRIPTION_MAX)}\u2026` : description;
|
|
103
|
-
return { name, description: trimmed };
|
|
104
|
-
}
|
|
105
|
-
function findSkillsDir(startDir) {
|
|
106
|
-
let dir = startDir;
|
|
107
|
-
for (; ; ) {
|
|
108
|
-
const candidate = join(dir, SKILLS_SUBPATH);
|
|
109
|
-
if (existsSync(candidate)) return candidate;
|
|
110
|
-
const parent = dirname(dir);
|
|
111
|
-
if (parent === dir) return null;
|
|
112
|
-
dir = parent;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
function readSkillCatalog(startDir) {
|
|
116
|
-
const skillsDir = findSkillsDir(startDir);
|
|
117
|
-
if (!skillsDir) return [];
|
|
118
|
-
const entries = [];
|
|
119
|
-
for (const dirent of readdirSync(skillsDir, { withFileTypes: true })) {
|
|
120
|
-
if (!dirent.isDirectory() || EXCLUDED_SKILLS.has(dirent.name)) continue;
|
|
121
|
-
const skillFile = join(skillsDir, dirent.name, "SKILL.md");
|
|
122
|
-
if (!existsSync(skillFile)) continue;
|
|
123
|
-
try {
|
|
124
|
-
const parsed = parseSkillFrontmatter(readFileSync(skillFile, "utf8"));
|
|
125
|
-
if (parsed) entries.push(parsed);
|
|
126
|
-
} catch {
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return entries.sort((a, b) => a.name.localeCompare(b.name));
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// src/commands/actions/claim.ts
|
|
133
|
-
registerSchema({
|
|
134
|
-
command: "actions.claim",
|
|
135
|
-
description: "Claim an action for the current chat (live \u2014 visible to other chats immediately). Claim only what you're actively working on now: it's required before `complete`, but NOT for `update` or `discard` (those stage without a claim). Returns action details plus a fast-model recommendation of which skills to load for the work (`recommendedSkills`) and a routing hint: load every skill that owns part of the work and the tool doc for each baker CLI family you'll use.",
|
|
136
|
-
args: {
|
|
137
|
-
id: { type: "string", description: "Action ID", required: true }
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
async function recommendSkills(actionId) {
|
|
141
|
-
const skills = readSkillCatalog(process.cwd());
|
|
142
|
-
if (skills.length === 0) return [];
|
|
143
|
-
const response = await apiPost("/api/actions/recommend-skills", {
|
|
144
|
-
actionId,
|
|
145
|
-
skills
|
|
146
|
-
});
|
|
147
|
-
return response.data.recommendations;
|
|
148
|
-
}
|
|
149
|
-
var ROUTING_HINT = "Actions often span several surfaces (a landing page plus a Google Ads change, a sheet pull plus an audience upload). Before starting, load EVERY skill that owns part of the work and read the tool doc (__tooling__/docs/tools/baker/<family>.md) for each baker CLI family you'll use. If the action references source material living in a connected tool (an email attachment, a call, a CRM record, a spreadsheet), reach for that tool too. If it describes recurring or future-dated work, it belongs on a schedule \u2014 see __tooling__/docs/tools/baker/scheduled-agents.md.";
|
|
150
|
-
function buildHints(recommendations) {
|
|
151
|
-
if (recommendations.length === 0) {
|
|
152
|
-
return ["Review the action name, description, and tags above.", ROUTING_HINT];
|
|
153
|
-
}
|
|
154
|
-
return [
|
|
155
|
-
"Recommended skills for this action (load the ones you'll use):",
|
|
156
|
-
...recommendations.map((r) => ` /${r.name} \u2014 ${r.reason}`),
|
|
157
|
-
"Suggestions come from the action's name/description/tags only \u2014 the work may need more.",
|
|
158
|
-
ROUTING_HINT
|
|
159
|
-
];
|
|
160
|
-
}
|
|
161
|
-
var claimCommand = defineCommand({
|
|
162
|
-
meta: {
|
|
163
|
-
name: "claim",
|
|
164
|
-
description: "Claim an action so other chats see you're working on it. Required before `complete` (update and discard don't need a claim). Example: baker actions claim <action-id>"
|
|
165
|
-
},
|
|
166
|
-
args: {
|
|
167
|
-
id: { type: "positional", description: "Action ID", required: false },
|
|
168
|
-
"action-id": { type: "string", description: "Action ID", required: false }
|
|
169
|
-
},
|
|
170
|
-
run: async ({ args }) => {
|
|
171
|
-
try {
|
|
172
|
-
const id = args.id || args["action-id"];
|
|
173
|
-
if (!id) {
|
|
174
|
-
failValidation("Action ID is required.");
|
|
175
|
-
}
|
|
176
|
-
validateConvexId(id);
|
|
177
|
-
const chatId = requireChatId();
|
|
178
|
-
const response = await apiPost("/api/actions/claim", {
|
|
179
|
-
actionId: id,
|
|
180
|
-
chatId
|
|
181
|
-
});
|
|
182
|
-
let recommendedSkills = [];
|
|
183
|
-
try {
|
|
184
|
-
recommendedSkills = await recommendSkills(id);
|
|
185
|
-
} catch {
|
|
186
|
-
}
|
|
187
|
-
const data = response.data ? { ...response.data, recommendedSkills } : response.data;
|
|
188
|
-
writeJson({ ok: response.ok, data, hints: buildHints(recommendedSkills) });
|
|
189
|
-
} catch (err) {
|
|
190
|
-
failApi(err);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
});
|
|
194
|
-
export {
|
|
195
|
-
claimCommand
|
|
196
|
-
};
|
|
197
|
-
//# sourceMappingURL=claim-25JJM4AG.js.map
|