@koda-sl/baker-cli 0.447.0-dev.f5788a631 → 0.447.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -10
- package/dist/account-2ZMZFPIU.js +79 -0
- package/dist/account-F6MHQ64I.js +80 -0
- package/dist/account-writes-ISE4U2FQ.js +66 -0
- package/dist/accounts-RHGN5WMU.js +611 -0
- package/dist/accounts-VINHZRWA.js +77 -0
- package/dist/actions-5F4ZP6M4.js +55 -0
- package/dist/ad-group-writes-UU5NNKSO.js +170 -0
- package/dist/ad-groups-CGFXZNIA.js +68 -0
- package/dist/ad-writes-NALDYWOR.js +174 -0
- package/dist/add-KBPMSK2P.js +104 -0
- package/dist/add-OGH4DZZ5.js +280 -0
- package/dist/ads-56OWZBXZ.js +40 -0
- package/dist/ads-H7GH7A26.js +113 -0
- package/dist/ads-PV7GZXPR.js +77 -0
- package/dist/adsets-H7QT42U6.js +176 -0
- package/dist/advertisers-PM4WPG4N.js +120 -0
- package/dist/advertisers-PM4WPG4N.js.map +1 -0
- package/dist/analytics-5FALU2GL.js +433 -0
- package/dist/analytics-JVZKN735.js +1958 -0
- package/dist/animate-FWWHSYPL.js +480 -0
- package/dist/assign-KLYZ6USE.js +77 -0
- package/dist/audience-size-JHB42DB4.js +94 -0
- package/dist/audiences-JACGRBNN.js +78 -0
- package/dist/audiences-VEKGLWBG.js +268 -0
- package/dist/audit-5XH7WZIM.js +151 -0
- package/dist/autocomplete-7F3PZLEY.js +111 -0
- package/dist/autocomplete-7F3PZLEY.js.map +1 -0
- package/dist/avatars-N4SRNQI7.js +38 -0
- package/dist/bid-pricing-VYLVGU26.js +99 -0
- package/dist/brand-ASBS2HZM.js +22 -0
- package/dist/brief-JSZKDPGU.js +477 -0
- package/dist/brief-JSZKDPGU.js.map +1 -0
- package/dist/campaign-groups-ATE2DE4V.js +95 -0
- package/dist/campaign-writes-ETT57KLQ.js +165 -0
- package/dist/campaign-writes-SX52CJYW.js +170 -0
- package/dist/campaigns-FGBAS6AZ.js +107 -0
- package/dist/campaigns-J6VZBIV6.js +109 -0
- package/dist/campaigns-WBEG5QA4.js +110 -0
- package/dist/campaigns-X3DPCCSN.js +76 -0
- package/dist/canvas-K7IN7HLO.js +46 -0
- package/dist/capabilities-RDAERPYY.js +144 -0
- package/dist/catalog-MENVHL5U.js +65 -0
- package/dist/catalog-MENVHL5U.js.map +1 -0
- package/dist/catalogs-G3YEVG6S.js +128 -0
- package/dist/changes-TP7ZZHB3.js +135 -0
- package/dist/chatgpt-QNUN63YS.js +47 -0
- package/dist/chats-YIAQGQ3X.js +262 -0
- package/dist/chunk-2GK33EJV.js +382 -0
- package/dist/chunk-35XWJEWH.js +274 -0
- package/dist/chunk-3CWL2LY4.js +206 -0
- package/dist/chunk-3CWL2LY4.js.map +1 -0
- package/dist/chunk-4NBVGARW.js +1079 -0
- package/dist/chunk-5R5ADJ47.js +2880 -0
- package/dist/chunk-5R5ADJ47.js.map +1 -0
- package/dist/chunk-65RIB7A6.js +592 -0
- package/dist/chunk-6DB2B3GF.js +175 -0
- package/dist/chunk-7SDFKGQ4.js +363 -0
- package/dist/chunk-ACANMASG.js +19 -0
- package/dist/chunk-ALTBBAYU.js +96 -0
- package/dist/chunk-ANCSKUWI.js +433 -0
- package/dist/chunk-AWMFUGVX.js +160 -0
- package/dist/chunk-AWMFUGVX.js.map +1 -0
- package/dist/chunk-BA7FDXQC.js +197 -0
- package/dist/chunk-BNCW67EM.js +534 -0
- package/dist/chunk-BSC33FLJ.js +217 -0
- package/dist/chunk-CHSNHVYF.js +3182 -0
- package/dist/chunk-CHSNHVYF.js.map +1 -0
- package/dist/chunk-DKGTQSLR.js +310 -0
- package/dist/chunk-DR34ZTWD.js +207 -0
- package/dist/chunk-E4MDJBLO.js +163 -0
- package/dist/chunk-EH4C4CZK.js +455 -0
- package/dist/chunk-FXED3VZK.js +174 -0
- package/dist/chunk-G7UTTEBS.js +337 -0
- package/dist/chunk-GATKK4RJ.js +440 -0
- package/dist/chunk-GATKK4RJ.js.map +1 -0
- package/dist/chunk-GIJT3A5U.js +166 -0
- package/dist/chunk-GX6VAHY7.js +830 -0
- package/dist/chunk-HIPDMQZ6.js +136 -0
- package/dist/chunk-HQSCJYZO.js +26 -0
- package/dist/chunk-HZ5DR5MX.js +51 -0
- package/dist/chunk-I4NEHDSD.js +813 -0
- package/dist/chunk-I4NEHDSD.js.map +1 -0
- package/dist/chunk-IM52NHGL.js +390 -0
- package/dist/chunk-JF47LEPU.js +5163 -0
- package/dist/chunk-JF47LEPU.js.map +1 -0
- package/dist/chunk-K3PN7TN5.js +84 -0
- package/dist/chunk-KBP7WJQB.js +446 -0
- package/dist/chunk-KBP7WJQB.js.map +1 -0
- package/dist/chunk-KLBTXETO.js +23992 -0
- package/dist/chunk-KLBTXETO.js.map +1 -0
- package/dist/chunk-KNWHUMVZ.js +4381 -0
- package/dist/chunk-KNWHUMVZ.js.map +1 -0
- package/dist/chunk-KQTYTCKQ.js +98 -0
- package/dist/chunk-LIQ4SQ2T.js +150 -0
- package/dist/chunk-LW4VSTL5.js +304 -0
- package/dist/chunk-LW4VSTL5.js.map +1 -0
- package/dist/chunk-MADAAZZV.js +169 -0
- package/dist/chunk-MLU6STIN.js +66 -0
- package/dist/chunk-NDXBU22S.js +6145 -0
- package/dist/chunk-NDXBU22S.js.map +1 -0
- package/dist/chunk-NE4F3FHN.js +1854 -0
- package/dist/chunk-NE4F3FHN.js.map +1 -0
- package/dist/chunk-OTFHEHIU.js +1706 -0
- package/dist/chunk-OTFHEHIU.js.map +1 -0
- package/dist/chunk-PDTB5EX6.js +57 -0
- package/dist/chunk-SB3GZFCV.js +622 -0
- package/dist/chunk-T3BDNJIX.js +494 -0
- package/dist/chunk-TEINLN64.js +649 -0
- package/dist/chunk-TEINLN64.js.map +1 -0
- package/dist/chunk-TIOQ7ZFQ.js +496 -0
- package/dist/chunk-U3HAMW5W.js +133 -0
- package/dist/chunk-U6SYRIOB.js +486 -0
- package/dist/chunk-UC6BWM5J.js +159 -0
- package/dist/chunk-ULJ5RFOV.js +76 -0
- package/dist/chunk-VAISMQQB.js +346 -0
- package/dist/chunk-VB6WJJR3.js +1830 -0
- package/dist/chunk-VB6WJJR3.js.map +1 -0
- package/dist/chunk-VDHQJ6HD.js +23 -0
- package/dist/chunk-VMDAXFRI.js +111 -0
- package/dist/chunk-WNFIJAUO.js +98 -0
- package/dist/chunk-WNFIJAUO.js.map +1 -0
- package/dist/chunk-XCM6XWOB.js +417 -0
- package/dist/chunk-XMD4SHFI.js +60 -0
- package/dist/chunk-Y6QAJNKP.js +1411 -0
- package/dist/chunk-YBP7O5P4.js +103 -0
- package/dist/chunk-YC2TQ3VC.js +297 -0
- package/dist/chunk-YPZYOJP6.js +6664 -0
- package/dist/chunk-YPZYOJP6.js.map +1 -0
- package/dist/chunk-ZPU3WDVK.js +92 -0
- package/dist/claim-V4F5GZJK.js +197 -0
- package/dist/cli.js +29 -29
- package/dist/companies-NJGJ7XNN.js +195 -0
- package/dist/complete-MGNF5OAK.js +81 -0
- package/dist/connect-PJOTRTT4.js +36 -0
- package/dist/conversation-4DM26FRD.js +93 -0
- package/dist/conversion-report-N4HANYOB.js +125 -0
- package/dist/conversion-upload-command-TZTHU2CD.js +438 -0
- package/dist/conversion-writes-LW4HQKK5.js +120 -0
- package/dist/conversions-JGECVZSY.js +135 -0
- package/dist/conversions-TS723AZV.js +76 -0
- package/dist/countries-ESAKTQAE.js +82 -0
- package/dist/create-DSGQFBI7.js +207 -0
- package/dist/create-I2KVDTCQ.js +59 -0
- package/dist/create-SBQWVLXG.js +130 -0
- package/dist/create-WOHPIGBK.js +235 -0
- package/dist/creatives-4JGVZQGC.js +182 -0
- package/dist/creatives-DWO5KEQC.js +51 -0
- package/dist/creatives-PSWCNY7U.js +87 -0
- package/dist/credentials-UULYCN2L.js +1055 -0
- package/dist/credentials-UULYCN2L.js.map +1 -0
- package/dist/critique-NGMZK5LX.js +213 -0
- package/dist/critique-NGMZK5LX.js.map +1 -0
- package/dist/critique-TIZJ5GFM.js +1449 -0
- package/dist/crm-2WAR565U.js +224 -0
- package/dist/crm-VDXUO2YU.js +318 -0
- package/dist/currency-XCGKQ7FE.js +88 -0
- package/dist/custom-conversions-6P555U2K.js +125 -0
- package/dist/customers-ATENMXDO.js +56 -0
- package/dist/delete-AVMZYNVT.js +54 -0
- package/dist/delete-H744GNS4.js +63 -0
- package/dist/delete-OEYPFATY.js +66 -0
- package/dist/demographics-M5LJF3RZ.js +138 -0
- package/dist/discard-72I6SM7G.js +66 -0
- package/dist/discover-BJPZNXUQ.js +172 -0
- package/dist/domain-R4EIZD2W.js +98 -0
- package/dist/draft-34C3F5U4.js +217 -0
- package/dist/draft-BBFJNZ5X.js +328 -0
- package/dist/draft-BV2QRPZ4.js +107 -0
- package/dist/draft-THPZFASM.js +281 -0
- package/dist/draft-YYYRWF7M.js +306 -0
- package/dist/engine/index.d.ts +0 -12
- package/dist/engine/index.js +6 -7
- package/dist/facets-F2H52MS4.js +114 -0
- package/dist/feedback-IQKKT4MC.js +66 -0
- package/dist/feedback-IQKKT4MC.js.map +1 -0
- package/dist/feedback-record-UZV4Y7UD.js +175 -0
- package/dist/feedback-record-UZV4Y7UD.js.map +1 -0
- package/dist/fetch-ZUAZPLAE.js +176 -0
- package/dist/fetch-ZUAZPLAE.js.map +1 -0
- package/dist/fit-2CA4JH7N.js +45 -0
- package/dist/flows-CWXCXEUD.js +244 -0
- package/dist/follow-FN7LV3WV.js +82 -0
- package/dist/follow-competitors-MKXFHLXB.js +131 -0
- package/dist/fonts-F2XUCIIW.js +34 -0
- package/dist/forecast-IDKJYM2B.js +104 -0
- package/dist/funnel-RLGQGYKO.js +837 -0
- package/dist/generate-MMBYB44G.js +262 -0
- package/dist/get-C6UQ22HH.js +54 -0
- package/dist/get-EEUR6SAW.js +78 -0
- package/dist/google-35GDU3G3.js +1872 -0
- package/dist/google-35GDU3G3.js.map +1 -0
- package/dist/google-ads-Q37I2D5P.js +195 -0
- package/dist/google-ads-Q37I2D5P.js.map +1 -0
- package/dist/history-4II5QA4B.js +133 -0
- package/dist/history-DBIEYQHY.js +67 -0
- package/dist/hubspot-TTITJFBO.js +779 -0
- package/dist/ideas-V4Q6JDKV.js +32 -0
- package/dist/images-SP5REF6E.js +90 -0
- package/dist/ingest-574GIFAR.js +107 -0
- package/dist/ingest-IC4T76W6.js +23 -0
- package/dist/insights-ZIU6FJMS.js +122 -0
- package/dist/inspect-ATHYY6A2.js +189 -0
- package/dist/inspiration-P265QJ2H.js +53 -0
- package/dist/intent-E3UIVZBN.js +95 -0
- package/dist/keyword-gap-BG6M665A.js +130 -0
- package/dist/keyword-metrics-J4UPUDN7.js +197 -0
- package/dist/keywords-for-site-MWADFEO2.js +128 -0
- package/dist/keywords-for-site-MWADFEO2.js.map +1 -0
- package/dist/landing-R6DN7XLK.js +28 -0
- package/dist/languages-HORKPDNH.js +40 -0
- package/dist/languages-JSGWCC7Z.js +55 -0
- package/dist/leads-7EVHMNUF.js +293 -0
- package/dist/leads-JM6HUERX.js +90 -0
- package/dist/learn-LGS2F5TR.js +203 -0
- package/dist/learn-LGS2F5TR.js.map +1 -0
- package/dist/lighthouse-6ZC45E53.js +75 -0
- package/dist/line-item-writes-KUYEXSIH.js +208 -0
- package/dist/line-items-GIWLP3FL.js +103 -0
- package/dist/link-PVM7XJQI.js +64 -0
- package/dist/linkedin-WX54EAX6.js +1008 -0
- package/dist/list-4ZKQZBCL.js +151 -0
- package/dist/list-MCEFXC6L.js +63 -0
- package/dist/list-WR7QYTON.js +303 -0
- package/dist/locations-74TPQWAT.js +67 -0
- package/dist/locations-J4G5RNPH.js +40 -0
- package/dist/log-U6IWZGOF.js +92 -0
- package/dist/make-RXFHEGUI.js +593 -0
- package/dist/make-RXFHEGUI.js.map +1 -0
- package/dist/map-TWL7T4KP.js +404 -0
- package/dist/mcp-HVAVJGGS.js +476 -0
- package/dist/media-M7E6V2XU.js +15 -0
- package/dist/media-sources-JWGO23BZ.js +32 -0
- package/dist/members-5FAW4YE7.js +44 -0
- package/dist/meta-EZ4SY25M.js +69 -0
- package/dist/metrics-SQDJ5NQO.js +152 -0
- package/dist/models-7U3GRYHF.js +155 -0
- package/dist/normalize-GW4GZNVY.js +138 -0
- package/dist/options-NSUCENLU.js +121 -0
- package/dist/performance-FGCDWHMC.js +24 -0
- package/dist/pixels-45A55MOP.js +60 -0
- package/dist/promoted-tweet-writes-BPWTDESL.js +180 -0
- package/dist/promoted-tweets-OS3NHYVE.js +119 -0
- package/dist/publish-SXZEWBVJ.js +322 -0
- package/dist/query-IEZRY6HV.js +1341 -0
- package/dist/reddit-TF6K37SB.js +26 -0
- package/dist/refresh-APVDWXRZ.js +94 -0
- package/dist/release-32SEJU4L.js +60 -0
- package/dist/relevant-pages-OWMNUCP7.js +99 -0
- package/dist/remove-U64GTHLQ.js +50 -0
- package/dist/reopen-5VS233SF.js +63 -0
- package/dist/rerun-7Z45QOOO.js +85 -0
- package/dist/rerun-7Z45QOOO.js.map +1 -0
- package/dist/research-O7CJV5IS.js +62 -0
- package/dist/research-O7CJV5IS.js.map +1 -0
- package/dist/research-QYSQ6LW4.js +262 -0
- package/dist/reset-22FC7BXQ.js +54 -0
- package/dist/reset-47B5VPT4.js +54 -0
- package/dist/resolve-7KQGVTQT.js +121 -0
- package/dist/retry-J5UVLS72.js +62 -0
- package/dist/retry-UJ5UF4BM.js +60 -0
- package/dist/run-SI4FA32F.js +65 -0
- package/dist/run-TFLFBQU2.js +60 -0
- package/dist/scaffold-ad-SEXNE2K6.js +1549 -0
- package/dist/scaffold-ad-SEXNE2K6.js.map +1 -0
- package/dist/scaffold-static-ad-VBOL6CLN.js +966 -0
- package/dist/scaffold-static-ad-VBOL6CLN.js.map +1 -0
- package/dist/scaffold-video-Z37MIBDI.js +873 -0
- package/dist/scaffold-video-Z37MIBDI.js.map +1 -0
- package/dist/schedule-52ZM4KRQ.js +61 -0
- package/dist/scheduled-agents-PCWCQAKP.js +49 -0
- package/dist/schema-FY6ORDXZ.js +129 -0
- package/dist/search-NS7XNRZC.js +174 -0
- package/dist/search-UO5KJTYS.js +26 -0
- package/dist/select-4XCYVV2G.js +94 -0
- package/dist/select-4XCYVV2G.js.map +1 -0
- package/dist/set-prompt-TRJBYA3D.js +186 -0
- package/dist/set-prompt-TRJBYA3D.js.map +1 -0
- package/dist/setup-links-V3URI7DL.js +141 -0
- package/dist/site-WIQ7SSU3.js +177 -0
- package/dist/sources-DWJXOLEH.js +421 -0
- package/dist/sources-L453U5MT.js +30 -0
- package/dist/stale-6OVG6VME.js +63 -0
- package/dist/stale-6OVG6VME.js.map +1 -0
- package/dist/status-WXWU54WR.js +62 -0
- package/dist/studio-C5K3YX3P.js +49 -0
- package/dist/sync-CDZUTGV3.js +54 -0
- package/dist/sync-definition-BAJQUBE3.js +53 -0
- package/dist/tag-manager-DYZUOIAS.js +43 -0
- package/dist/tags-6RY23XOG.js +20 -0
- package/dist/tags-BHFQWNPL.js +224 -0
- package/dist/tags-SG3NVC3J.js +26 -0
- package/dist/tags-VN5HTL35.js +20 -0
- package/dist/tags-WR6PDIDR.js +20 -0
- package/dist/targeting-criteria-5EXP2NXF.js +113 -0
- package/dist/targets-WUVEJPSD.js +102 -0
- package/dist/templates-LOJQX2NG.js +178 -0
- package/dist/testimonials-6M5DXORT.js +32 -0
- package/dist/top-companies-E2OMMPSV.js +108 -0
- package/dist/translate-AW4CUKDA.js +598 -0
- package/dist/translate-AW4CUKDA.js.map +1 -0
- package/dist/triggers-MRXIDCSN.js +141 -0
- package/dist/unlink-HNL747YM.js +67 -0
- package/dist/unstage-OL2JDCLK.js +84 -0
- package/dist/update-4KGIT4BF.js +142 -0
- package/dist/update-JPBUF7M2.js +98 -0
- package/dist/update-RTTC3SAK.js +155 -0
- package/dist/update-YNNRX5B2.js +63 -0
- package/dist/upload-UIXPCSXJ.js +126 -0
- package/dist/url-options-GGXAL3J4.js +127 -0
- package/dist/url-params-K47CE7Y5.js +98 -0
- package/dist/validate-TD2BY4VE.js +89 -0
- package/dist/validate-TD2BY4VE.js.map +1 -0
- package/dist/videos-BP3BKNTY.js +39 -0
- package/dist/viewer-check-HFRUJ4ZU.js +69 -0
- package/dist/web-RPSGFN4U.js +140 -0
- package/dist/web-RPSGFN4U.js.map +1 -0
- package/dist/winning-ads-WUENRDVJ.js +62 -0
- package/dist/write-commands-4WARNR2T.js +1015 -0
- package/dist/write-commands-TAYGTJEZ.js +737 -0
- package/dist/x-VZCELH3P.js +47 -0
- package/package.json +1 -1
- package/dist/account-4H7QVBRK.js +0 -80
- package/dist/account-PCEZQUK7.js +0 -79
- package/dist/account-writes-AK42HGRM.js +0 -66
- package/dist/accounts-5AXLYU7P.js +0 -77
- package/dist/accounts-OSXDZZLY.js +0 -611
- package/dist/actions-HM4VVTGW.js +0 -55
- 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-4J2EF54O.js +0 -104
- package/dist/add-VZAY57M4.js +0 -280
- package/dist/ads-6UEDYT3O.js +0 -113
- package/dist/ads-BCOSQALY.js +0 -77
- package/dist/ads-NUME2UXH.js +0 -40
- package/dist/adsets-Q5DWGANV.js +0 -176
- package/dist/advertisers-WSNHNCBQ.js +0 -116
- package/dist/advertisers-WSNHNCBQ.js.map +0 -1
- package/dist/analytics-PHU7H5VY.js +0 -433
- package/dist/analytics-QTR2ZITZ.js +0 -1958
- package/dist/animate-3Z7HXOLE.js +0 -480
- package/dist/assign-IIAVNATI.js +0 -77
- package/dist/audience-size-2L7XMYJL.js +0 -94
- package/dist/audiences-AMRFZRZ7.js +0 -78
- package/dist/audiences-TGD5US2M.js +0 -268
- package/dist/audit-ZCUFJLUG.js +0 -151
- package/dist/autocomplete-6PYFCOMX.js +0 -107
- package/dist/autocomplete-6PYFCOMX.js.map +0 -1
- package/dist/avatars-OEK3FYKK.js +0 -38
- package/dist/bid-pricing-FDW3IY6G.js +0 -99
- package/dist/brand-OXYFSNA5.js +0 -22
- package/dist/brief-TBSXPEXI.js +0 -478
- package/dist/brief-TBSXPEXI.js.map +0 -1
- package/dist/campaign-groups-5GCFQT2W.js +0 -95
- package/dist/campaign-writes-3SJQSCUK.js +0 -165
- package/dist/campaign-writes-SXLZFYF6.js +0 -170
- package/dist/campaigns-7QDDWZ76.js +0 -107
- package/dist/campaigns-D6B6Z67Y.js +0 -110
- package/dist/campaigns-SYEOFKFV.js +0 -109
- package/dist/campaigns-YS3OGQXO.js +0 -76
- package/dist/canvas-B6DPRQGN.js +0 -46
- package/dist/capabilities-GVHPHH2G.js +0 -144
- package/dist/catalog-TNNG66MH.js +0 -66
- package/dist/catalog-TNNG66MH.js.map +0 -1
- package/dist/catalogs-BRXEDE56.js +0 -128
- package/dist/changes-6QBJMGJC.js +0 -135
- package/dist/chatgpt-7W75X3ER.js +0 -47
- package/dist/chats-54CWM7DL.js +0 -262
- package/dist/chunk-2SCPDSFN.js +0 -150
- package/dist/chunk-3X3446TG.js +0 -169
- package/dist/chunk-4SJDDGPV.js +0 -1411
- package/dist/chunk-4SNOWJV7.js +0 -103
- package/dist/chunk-5EEDEVOR.js +0 -486
- package/dist/chunk-5VC6IK7B.js +0 -390
- package/dist/chunk-654U6NU6.js +0 -534
- package/dist/chunk-6HJAHLLA.js +0 -6086
- package/dist/chunk-6HJAHLLA.js.map +0 -1
- package/dist/chunk-6TCDQSM7.js +0 -111
- package/dist/chunk-6YYEBLYI.js +0 -92
- package/dist/chunk-7FVWIZHM.js +0 -382
- package/dist/chunk-7J6EHOH6.js +0 -274
- package/dist/chunk-7JUUKYKG.js +0 -57
- package/dist/chunk-ACFWVULZ.js +0 -304
- package/dist/chunk-ACFWVULZ.js.map +0 -1
- package/dist/chunk-AO5UQQLJ.js +0 -197
- package/dist/chunk-CKU4WYTF.js +0 -175
- package/dist/chunk-CLMM6P6B.js +0 -1751
- package/dist/chunk-CLMM6P6B.js.map +0 -1
- package/dist/chunk-DE6ANJLU.js +0 -310
- package/dist/chunk-DZSIUEGH.js +0 -136
- package/dist/chunk-E5IFTZJ3.js +0 -622
- package/dist/chunk-EAHP7L2R.js +0 -363
- package/dist/chunk-EPMN4BK7.js +0 -217
- package/dist/chunk-EVYXTT7V.js +0 -417
- package/dist/chunk-F46KAIBS.js +0 -159
- package/dist/chunk-FGH4Z5K5.js +0 -433
- package/dist/chunk-FTWJFDIN.js +0 -23992
- package/dist/chunk-FTWJFDIN.js.map +0 -1
- package/dist/chunk-FYQPB2SS.js +0 -207
- package/dist/chunk-GTK46DE3.js +0 -346
- package/dist/chunk-H2QNBOPS.js +0 -819
- package/dist/chunk-H2QNBOPS.js.map +0 -1
- package/dist/chunk-HDWKLFF5.js +0 -96
- package/dist/chunk-HO3IUJ4K.js +0 -70
- package/dist/chunk-HO3IUJ4K.js.map +0 -1
- package/dist/chunk-HRYOZUSK.js +0 -1711
- package/dist/chunk-HRYOZUSK.js.map +0 -1
- package/dist/chunk-HYCIBVDW.js +0 -98
- package/dist/chunk-HYUUH4BE.js +0 -3149
- package/dist/chunk-HYUUH4BE.js.map +0 -1
- package/dist/chunk-IH4UQ2OK.js +0 -6668
- package/dist/chunk-IH4UQ2OK.js.map +0 -1
- package/dist/chunk-IKYNOT57.js +0 -131
- package/dist/chunk-IKYNOT57.js.map +0 -1
- package/dist/chunk-J5IU4OX2.js +0 -297
- package/dist/chunk-KMEMA7AZ.js +0 -496
- package/dist/chunk-KV5BCSUR.js +0 -337
- package/dist/chunk-KWAOTV7F.js +0 -830
- package/dist/chunk-L27H2R2N.js +0 -174
- package/dist/chunk-NK2UFFVH.js +0 -19
- package/dist/chunk-NSA6HRG6.js +0 -60
- package/dist/chunk-NTPXZU3V.js +0 -163
- package/dist/chunk-OAQPHP6V.js +0 -592
- package/dist/chunk-OBDAYP2P.js +0 -3155
- package/dist/chunk-OBDAYP2P.js.map +0 -1
- package/dist/chunk-PIWMNKWI.js +0 -164
- package/dist/chunk-PIWMNKWI.js.map +0 -1
- package/dist/chunk-RB5DB3WN.js +0 -1079
- package/dist/chunk-RCQJHKK5.js +0 -4374
- package/dist/chunk-RCQJHKK5.js.map +0 -1
- package/dist/chunk-SKT3SAHG.js +0 -133
- package/dist/chunk-T4DD5YMP.js +0 -166
- package/dist/chunk-TBEUMOEL.js +0 -95
- package/dist/chunk-TBEUMOEL.js.map +0 -1
- package/dist/chunk-V2X3KK52.js +0 -420
- package/dist/chunk-V2X3KK52.js.map +0 -1
- package/dist/chunk-V5WSJP5A.js +0 -51
- package/dist/chunk-VJZHVOA4.js +0 -509
- package/dist/chunk-VJZHVOA4.js.map +0 -1
- package/dist/chunk-WRIC2RPQ.js +0 -23
- package/dist/chunk-WTOYCUKH.js +0 -84
- package/dist/chunk-WYCVJIHD.js +0 -638
- package/dist/chunk-WYCVJIHD.js.map +0 -1
- package/dist/chunk-XDNEG2H6.js +0 -5189
- package/dist/chunk-XDNEG2H6.js.map +0 -1
- package/dist/chunk-XG3XCHN6.js +0 -26
- package/dist/chunk-XML7AJM3.js +0 -1854
- package/dist/chunk-XML7AJM3.js.map +0 -1
- package/dist/chunk-XV6XCFF7.js +0 -494
- package/dist/chunk-YUPRCOEN.js +0 -455
- package/dist/chunk-ZNBDKK4Y.js +0 -76
- package/dist/chunk-ZZQXVYUY.js +0 -66
- package/dist/claim-CIASHKMC.js +0 -197
- package/dist/companies-ECVMO24S.js +0 -195
- package/dist/complete-32CPBFIG.js +0 -81
- package/dist/connect-OJSOM6PY.js +0 -36
- package/dist/conversation-7FHN5ESN.js +0 -93
- package/dist/conversion-report-XQBJ6LG4.js +0 -125
- package/dist/conversion-upload-command-BBUXLFT3.js +0 -438
- package/dist/conversion-writes-UBCVXP2E.js +0 -120
- package/dist/conversions-7YJDNZ7Y.js +0 -135
- package/dist/conversions-D236RTUK.js +0 -76
- package/dist/countries-FYHM3IMJ.js +0 -82
- package/dist/create-2TBDXHAM.js +0 -130
- package/dist/create-FE5QLW7V.js +0 -207
- package/dist/create-OYT76OMJ.js +0 -235
- package/dist/create-ZGRL7YCV.js +0 -59
- package/dist/creatives-5MUTX4DQ.js +0 -51
- package/dist/creatives-IUB57I3T.js +0 -182
- package/dist/creatives-UEPLNCPN.js +0 -87
- package/dist/credentials-AETHKP5T.js +0 -1055
- package/dist/credentials-AETHKP5T.js.map +0 -1
- package/dist/critique-C53EJDPA.js +0 -214
- package/dist/critique-C53EJDPA.js.map +0 -1
- package/dist/critique-T7HJ42D4.js +0 -1449
- package/dist/crm-JP4UOPMN.js +0 -318
- package/dist/crm-KH6XX2TT.js +0 -224
- package/dist/currency-DJDVIR3C.js +0 -88
- package/dist/custom-conversions-2VLJGPRV.js +0 -125
- package/dist/customers-7I7UY5PS.js +0 -56
- package/dist/delete-6IOUDEWY.js +0 -54
- package/dist/delete-ODFKNHAI.js +0 -63
- package/dist/delete-RAETUVO2.js +0 -66
- package/dist/demographics-2FTDKPBD.js +0 -138
- package/dist/discard-ZX5TLFYH.js +0 -66
- package/dist/discover-M3ZKKFEL.js +0 -172
- package/dist/domain-TH7KIC2T.js +0 -98
- package/dist/draft-CRE2Y24G.js +0 -328
- package/dist/draft-MNFJ4G3C.js +0 -281
- package/dist/draft-S2FSQOJN.js +0 -217
- package/dist/draft-SH25PKST.js +0 -107
- package/dist/draft-YHUIFDDR.js +0 -306
- package/dist/facets-6B2U4BSM.js +0 -114
- package/dist/feedback-QGSAJJVC.js +0 -66
- package/dist/feedback-QGSAJJVC.js.map +0 -1
- package/dist/feedback-record-NUAJ6UBL.js +0 -176
- package/dist/feedback-record-NUAJ6UBL.js.map +0 -1
- package/dist/fetch-UTTJAOLC.js +0 -171
- package/dist/fetch-UTTJAOLC.js.map +0 -1
- package/dist/fit-FJ5CLQS4.js +0 -43
- package/dist/flows-OGGSWWGT.js +0 -244
- package/dist/follow-DUIEGDVK.js +0 -82
- package/dist/follow-competitors-IT5ZVJPE.js +0 -131
- package/dist/fonts-GCJRLEGD.js +0 -34
- package/dist/forecast-2AGTFMXH.js +0 -104
- package/dist/funnel-7U55LNJ4.js +0 -837
- package/dist/generate-DMQUS665.js +0 -262
- package/dist/get-IRJIHOQK.js +0 -78
- package/dist/get-N7FR6NFX.js +0 -54
- package/dist/google-NYRI2NDZ.js +0 -1872
- package/dist/google-NYRI2NDZ.js.map +0 -1
- package/dist/history-PSNJAUTW.js +0 -133
- package/dist/history-Q3QCT64S.js +0 -67
- package/dist/hubspot-2NHL47R2.js +0 -779
- package/dist/ideas-22MRXKT7.js +0 -32
- package/dist/images-LXFWEON7.js +0 -90
- package/dist/ingest-W7VEDEYD.js +0 -107
- package/dist/ingest-ZN3DEZHY.js +0 -23
- package/dist/insights-LNAXV2CG.js +0 -122
- package/dist/inspect-3LBIHMMP.js +0 -189
- package/dist/inspiration-I4MMKAWA.js +0 -53
- package/dist/intent-ICKFJRT2.js +0 -95
- package/dist/keyword-gap-NGPH32FN.js +0 -130
- package/dist/keyword-metrics-PZXFB4NG.js +0 -197
- package/dist/keywords-for-site-RH47P4GJ.js +0 -124
- package/dist/keywords-for-site-RH47P4GJ.js.map +0 -1
- package/dist/landing-D7QS42GK.js +0 -28
- package/dist/languages-JDYL2N5F.js +0 -40
- package/dist/languages-JMVNOHMG.js +0 -55
- package/dist/leads-ARUWPHBM.js +0 -293
- package/dist/leads-E22XFSX2.js +0 -90
- package/dist/learn-Y4KIZNRF.js +0 -204
- package/dist/learn-Y4KIZNRF.js.map +0 -1
- package/dist/lighthouse-NQBUCHTW.js +0 -75
- package/dist/line-item-writes-KA5PVKFO.js +0 -208
- package/dist/line-items-3ZFFZCNH.js +0 -103
- package/dist/link-AEU6BV75.js +0 -64
- package/dist/linkedin-WCB2H5NH.js +0 -1008
- package/dist/list-OLX7AI3O.js +0 -63
- package/dist/list-PAMYQS4X.js +0 -151
- package/dist/list-TOUUGHMS.js +0 -303
- package/dist/locations-2NKBJKBT.js +0 -67
- package/dist/locations-S4U6IJIS.js +0 -40
- package/dist/log-UGVWSK7Z.js +0 -92
- package/dist/make-3PZLTEXT.js +0 -516
- package/dist/make-3PZLTEXT.js.map +0 -1
- package/dist/map-BW4CHSIO.js +0 -404
- package/dist/mcp-JOXKA5HY.js +0 -476
- package/dist/media-53DJRC4N.js +0 -15
- package/dist/media-sources-SJZUOMI2.js +0 -32
- package/dist/members-VAX6KAFN.js +0 -44
- package/dist/meta-A7KM6TF5.js +0 -69
- package/dist/metrics-AY4RP54F.js +0 -152
- package/dist/models-5NTC7A5G.js +0 -155
- package/dist/normalize-IVQ7I54Z.js +0 -138
- package/dist/options-V7C6CU6M.js +0 -121
- package/dist/performance-L6RJZPXX.js +0 -24
- package/dist/pixels-TZPF746S.js +0 -60
- package/dist/promoted-tweet-writes-DBATH765.js +0 -180
- package/dist/promoted-tweets-AU3XF3JD.js +0 -119
- package/dist/publish-G6DYVT4S.js +0 -322
- package/dist/query-CPZZNMDY.js +0 -1341
- package/dist/reddit-S2S6C4RT.js +0 -26
- package/dist/refresh-ARJ2SOMY.js +0 -94
- package/dist/release-3WCBAHPO.js +0 -60
- package/dist/relevant-pages-MTMFMBPD.js +0 -99
- package/dist/remove-FUAARCSC.js +0 -50
- package/dist/reopen-PZI5H4X2.js +0 -63
- package/dist/rerun-AUP4XT6T.js +0 -86
- package/dist/rerun-AUP4XT6T.js.map +0 -1
- package/dist/research-SY3QRGOC.js +0 -262
- package/dist/research-TISR736S.js +0 -59
- package/dist/research-TISR736S.js.map +0 -1
- package/dist/reset-E6F5NXOI.js +0 -54
- package/dist/reset-ZWM7DDD7.js +0 -54
- package/dist/resolve-I5R5ELMZ.js +0 -121
- package/dist/retry-7CFZTKWI.js +0 -60
- package/dist/retry-JO3JXXT2.js +0 -62
- package/dist/run-JR6SILHL.js +0 -61
- package/dist/run-UKB647DI.js +0 -65
- package/dist/scaffold-ad-BYGVU7MT.js +0 -1550
- package/dist/scaffold-ad-BYGVU7MT.js.map +0 -1
- package/dist/scaffold-static-ad-U57V5UV3.js +0 -948
- package/dist/scaffold-static-ad-U57V5UV3.js.map +0 -1
- package/dist/scaffold-video-POZTINEV.js +0 -874
- package/dist/scaffold-video-POZTINEV.js.map +0 -1
- package/dist/schedule-SOAHLZZF.js +0 -61
- package/dist/scheduled-agents-K5WU7SVJ.js +0 -49
- package/dist/schema-SOPL6GJP.js +0 -129
- package/dist/search-5VUDFOHI.js +0 -174
- package/dist/search-XUIVHGAY.js +0 -26
- package/dist/select-T36UH4HL.js +0 -95
- package/dist/select-T36UH4HL.js.map +0 -1
- package/dist/set-prompt-Y4X7GV2Q.js +0 -187
- package/dist/set-prompt-Y4X7GV2Q.js.map +0 -1
- package/dist/setup-links-KFROCISS.js +0 -141
- package/dist/site-MXPKMRQT.js +0 -177
- package/dist/sources-FFHNWVLV.js +0 -30
- package/dist/sources-MLDLMEDT.js +0 -421
- package/dist/stale-UXL4X4AD.js +0 -64
- package/dist/stale-UXL4X4AD.js.map +0 -1
- package/dist/status-M47G5HD4.js +0 -62
- package/dist/studio-HUEBE6DS.js +0 -49
- package/dist/sync-HS7VZJ2H.js +0 -54
- package/dist/sync-definition-PY6REQ4J.js +0 -54
- package/dist/tag-manager-HREEYGVM.js +0 -43
- package/dist/tags-DIXLYB5P.js +0 -224
- package/dist/tags-DYRZTYHD.js +0 -20
- package/dist/tags-MRG56YOE.js +0 -26
- package/dist/tags-WAW6MQAY.js +0 -20
- package/dist/tags-Y4HHJJGE.js +0 -20
- package/dist/targeting-criteria-5UUESFWC.js +0 -113
- package/dist/targets-COZPVG52.js +0 -102
- package/dist/templates-75VFYZ3E.js +0 -178
- package/dist/testimonials-WJBRWLNW.js +0 -32
- package/dist/top-companies-C2R4FG6H.js +0 -108
- package/dist/translate-RYAJAFV7.js +0 -599
- package/dist/translate-RYAJAFV7.js.map +0 -1
- package/dist/triggers-5UHVJPBV.js +0 -141
- package/dist/unlink-PLOOAGM3.js +0 -67
- package/dist/unstage-JIIOTBTF.js +0 -84
- package/dist/update-G6R5ZHUI.js +0 -63
- package/dist/update-QYM6U7LL.js +0 -142
- package/dist/update-RCP7F5L5.js +0 -98
- package/dist/update-RGVNTA5X.js +0 -155
- package/dist/upload-EEJ34Q3Y.js +0 -126
- package/dist/url-options-QEWKRKZ3.js +0 -127
- package/dist/url-params-2G5M2B3J.js +0 -98
- package/dist/validate-M33VLUG4.js +0 -90
- package/dist/validate-M33VLUG4.js.map +0 -1
- package/dist/videos-FVVID55J.js +0 -39
- package/dist/viewer-check-2Q3WHSEL.js +0 -70
- package/dist/web-WUGLSULO.js +0 -135
- package/dist/web-WUGLSULO.js.map +0 -1
- package/dist/winning-ads-OSRFHVLV.js +0 -62
- package/dist/write-commands-CLJOD2XF.js +0 -1015
- package/dist/write-commands-CT74VHH6.js +0 -737
- package/dist/x-EBKLJJPJ.js +0 -47
- /package/dist/{account-PCEZQUK7.js.map → account-2ZMZFPIU.js.map} +0 -0
- /package/dist/{account-4H7QVBRK.js.map → account-F6MHQ64I.js.map} +0 -0
- /package/dist/{account-writes-AK42HGRM.js.map → account-writes-ISE4U2FQ.js.map} +0 -0
- /package/dist/{accounts-OSXDZZLY.js.map → accounts-RHGN5WMU.js.map} +0 -0
- /package/dist/{accounts-5AXLYU7P.js.map → accounts-VINHZRWA.js.map} +0 -0
- /package/dist/{actions-HM4VVTGW.js.map → actions-5F4ZP6M4.js.map} +0 -0
- /package/dist/{ad-group-writes-QQS4223F.js.map → ad-group-writes-UU5NNKSO.js.map} +0 -0
- /package/dist/{ad-groups-WGPDPUI2.js.map → ad-groups-CGFXZNIA.js.map} +0 -0
- /package/dist/{ad-writes-XE2IE4DS.js.map → ad-writes-NALDYWOR.js.map} +0 -0
- /package/dist/{add-4J2EF54O.js.map → add-KBPMSK2P.js.map} +0 -0
- /package/dist/{add-VZAY57M4.js.map → add-OGH4DZZ5.js.map} +0 -0
- /package/dist/{ads-NUME2UXH.js.map → ads-56OWZBXZ.js.map} +0 -0
- /package/dist/{ads-6UEDYT3O.js.map → ads-H7GH7A26.js.map} +0 -0
- /package/dist/{ads-BCOSQALY.js.map → ads-PV7GZXPR.js.map} +0 -0
- /package/dist/{adsets-Q5DWGANV.js.map → adsets-H7QT42U6.js.map} +0 -0
- /package/dist/{analytics-PHU7H5VY.js.map → analytics-5FALU2GL.js.map} +0 -0
- /package/dist/{analytics-QTR2ZITZ.js.map → analytics-JVZKN735.js.map} +0 -0
- /package/dist/{animate-3Z7HXOLE.js.map → animate-FWWHSYPL.js.map} +0 -0
- /package/dist/{assign-IIAVNATI.js.map → assign-KLYZ6USE.js.map} +0 -0
- /package/dist/{audience-size-2L7XMYJL.js.map → audience-size-JHB42DB4.js.map} +0 -0
- /package/dist/{audiences-AMRFZRZ7.js.map → audiences-JACGRBNN.js.map} +0 -0
- /package/dist/{audiences-TGD5US2M.js.map → audiences-VEKGLWBG.js.map} +0 -0
- /package/dist/{audit-ZCUFJLUG.js.map → audit-5XH7WZIM.js.map} +0 -0
- /package/dist/{avatars-OEK3FYKK.js.map → avatars-N4SRNQI7.js.map} +0 -0
- /package/dist/{bid-pricing-FDW3IY6G.js.map → bid-pricing-VYLVGU26.js.map} +0 -0
- /package/dist/{brand-OXYFSNA5.js.map → brand-ASBS2HZM.js.map} +0 -0
- /package/dist/{campaign-groups-5GCFQT2W.js.map → campaign-groups-ATE2DE4V.js.map} +0 -0
- /package/dist/{campaign-writes-3SJQSCUK.js.map → campaign-writes-ETT57KLQ.js.map} +0 -0
- /package/dist/{campaign-writes-SXLZFYF6.js.map → campaign-writes-SX52CJYW.js.map} +0 -0
- /package/dist/{campaigns-7QDDWZ76.js.map → campaigns-FGBAS6AZ.js.map} +0 -0
- /package/dist/{campaigns-SYEOFKFV.js.map → campaigns-J6VZBIV6.js.map} +0 -0
- /package/dist/{campaigns-D6B6Z67Y.js.map → campaigns-WBEG5QA4.js.map} +0 -0
- /package/dist/{campaigns-YS3OGQXO.js.map → campaigns-X3DPCCSN.js.map} +0 -0
- /package/dist/{canvas-B6DPRQGN.js.map → canvas-K7IN7HLO.js.map} +0 -0
- /package/dist/{capabilities-GVHPHH2G.js.map → capabilities-RDAERPYY.js.map} +0 -0
- /package/dist/{catalogs-BRXEDE56.js.map → catalogs-G3YEVG6S.js.map} +0 -0
- /package/dist/{changes-6QBJMGJC.js.map → changes-TP7ZZHB3.js.map} +0 -0
- /package/dist/{chatgpt-7W75X3ER.js.map → chatgpt-QNUN63YS.js.map} +0 -0
- /package/dist/{chats-54CWM7DL.js.map → chats-YIAQGQ3X.js.map} +0 -0
- /package/dist/{chunk-7FVWIZHM.js.map → chunk-2GK33EJV.js.map} +0 -0
- /package/dist/{chunk-7J6EHOH6.js.map → chunk-35XWJEWH.js.map} +0 -0
- /package/dist/{chunk-RB5DB3WN.js.map → chunk-4NBVGARW.js.map} +0 -0
- /package/dist/{chunk-OAQPHP6V.js.map → chunk-65RIB7A6.js.map} +0 -0
- /package/dist/{chunk-CKU4WYTF.js.map → chunk-6DB2B3GF.js.map} +0 -0
- /package/dist/{chunk-EAHP7L2R.js.map → chunk-7SDFKGQ4.js.map} +0 -0
- /package/dist/{chunk-NK2UFFVH.js.map → chunk-ACANMASG.js.map} +0 -0
- /package/dist/{chunk-HDWKLFF5.js.map → chunk-ALTBBAYU.js.map} +0 -0
- /package/dist/{chunk-FGH4Z5K5.js.map → chunk-ANCSKUWI.js.map} +0 -0
- /package/dist/{chunk-AO5UQQLJ.js.map → chunk-BA7FDXQC.js.map} +0 -0
- /package/dist/{chunk-654U6NU6.js.map → chunk-BNCW67EM.js.map} +0 -0
- /package/dist/{chunk-EPMN4BK7.js.map → chunk-BSC33FLJ.js.map} +0 -0
- /package/dist/{chunk-DE6ANJLU.js.map → chunk-DKGTQSLR.js.map} +0 -0
- /package/dist/{chunk-FYQPB2SS.js.map → chunk-DR34ZTWD.js.map} +0 -0
- /package/dist/{chunk-NTPXZU3V.js.map → chunk-E4MDJBLO.js.map} +0 -0
- /package/dist/{chunk-YUPRCOEN.js.map → chunk-EH4C4CZK.js.map} +0 -0
- /package/dist/{chunk-L27H2R2N.js.map → chunk-FXED3VZK.js.map} +0 -0
- /package/dist/{chunk-KV5BCSUR.js.map → chunk-G7UTTEBS.js.map} +0 -0
- /package/dist/{chunk-T4DD5YMP.js.map → chunk-GIJT3A5U.js.map} +0 -0
- /package/dist/{chunk-KWAOTV7F.js.map → chunk-GX6VAHY7.js.map} +0 -0
- /package/dist/{chunk-DZSIUEGH.js.map → chunk-HIPDMQZ6.js.map} +0 -0
- /package/dist/{chunk-XG3XCHN6.js.map → chunk-HQSCJYZO.js.map} +0 -0
- /package/dist/{chunk-V5WSJP5A.js.map → chunk-HZ5DR5MX.js.map} +0 -0
- /package/dist/{chunk-5VC6IK7B.js.map → chunk-IM52NHGL.js.map} +0 -0
- /package/dist/{chunk-WTOYCUKH.js.map → chunk-K3PN7TN5.js.map} +0 -0
- /package/dist/{chunk-HYCIBVDW.js.map → chunk-KQTYTCKQ.js.map} +0 -0
- /package/dist/{chunk-2SCPDSFN.js.map → chunk-LIQ4SQ2T.js.map} +0 -0
- /package/dist/{chunk-3X3446TG.js.map → chunk-MADAAZZV.js.map} +0 -0
- /package/dist/{chunk-ZZQXVYUY.js.map → chunk-MLU6STIN.js.map} +0 -0
- /package/dist/{chunk-7JUUKYKG.js.map → chunk-PDTB5EX6.js.map} +0 -0
- /package/dist/{chunk-E5IFTZJ3.js.map → chunk-SB3GZFCV.js.map} +0 -0
- /package/dist/{chunk-XV6XCFF7.js.map → chunk-T3BDNJIX.js.map} +0 -0
- /package/dist/{chunk-KMEMA7AZ.js.map → chunk-TIOQ7ZFQ.js.map} +0 -0
- /package/dist/{chunk-SKT3SAHG.js.map → chunk-U3HAMW5W.js.map} +0 -0
- /package/dist/{chunk-5EEDEVOR.js.map → chunk-U6SYRIOB.js.map} +0 -0
- /package/dist/{chunk-F46KAIBS.js.map → chunk-UC6BWM5J.js.map} +0 -0
- /package/dist/{chunk-ZNBDKK4Y.js.map → chunk-ULJ5RFOV.js.map} +0 -0
- /package/dist/{chunk-GTK46DE3.js.map → chunk-VAISMQQB.js.map} +0 -0
- /package/dist/{chunk-WRIC2RPQ.js.map → chunk-VDHQJ6HD.js.map} +0 -0
- /package/dist/{chunk-6TCDQSM7.js.map → chunk-VMDAXFRI.js.map} +0 -0
- /package/dist/{chunk-EVYXTT7V.js.map → chunk-XCM6XWOB.js.map} +0 -0
- /package/dist/{chunk-NSA6HRG6.js.map → chunk-XMD4SHFI.js.map} +0 -0
- /package/dist/{chunk-4SJDDGPV.js.map → chunk-Y6QAJNKP.js.map} +0 -0
- /package/dist/{chunk-4SNOWJV7.js.map → chunk-YBP7O5P4.js.map} +0 -0
- /package/dist/{chunk-J5IU4OX2.js.map → chunk-YC2TQ3VC.js.map} +0 -0
- /package/dist/{chunk-6YYEBLYI.js.map → chunk-ZPU3WDVK.js.map} +0 -0
- /package/dist/{claim-CIASHKMC.js.map → claim-V4F5GZJK.js.map} +0 -0
- /package/dist/{companies-ECVMO24S.js.map → companies-NJGJ7XNN.js.map} +0 -0
- /package/dist/{complete-32CPBFIG.js.map → complete-MGNF5OAK.js.map} +0 -0
- /package/dist/{connect-OJSOM6PY.js.map → connect-PJOTRTT4.js.map} +0 -0
- /package/dist/{conversation-7FHN5ESN.js.map → conversation-4DM26FRD.js.map} +0 -0
- /package/dist/{conversion-report-XQBJ6LG4.js.map → conversion-report-N4HANYOB.js.map} +0 -0
- /package/dist/{conversion-upload-command-BBUXLFT3.js.map → conversion-upload-command-TZTHU2CD.js.map} +0 -0
- /package/dist/{conversion-writes-UBCVXP2E.js.map → conversion-writes-LW4HQKK5.js.map} +0 -0
- /package/dist/{conversions-7YJDNZ7Y.js.map → conversions-JGECVZSY.js.map} +0 -0
- /package/dist/{conversions-D236RTUK.js.map → conversions-TS723AZV.js.map} +0 -0
- /package/dist/{countries-FYHM3IMJ.js.map → countries-ESAKTQAE.js.map} +0 -0
- /package/dist/{create-FE5QLW7V.js.map → create-DSGQFBI7.js.map} +0 -0
- /package/dist/{create-ZGRL7YCV.js.map → create-I2KVDTCQ.js.map} +0 -0
- /package/dist/{create-2TBDXHAM.js.map → create-SBQWVLXG.js.map} +0 -0
- /package/dist/{create-OYT76OMJ.js.map → create-WOHPIGBK.js.map} +0 -0
- /package/dist/{creatives-IUB57I3T.js.map → creatives-4JGVZQGC.js.map} +0 -0
- /package/dist/{creatives-5MUTX4DQ.js.map → creatives-DWO5KEQC.js.map} +0 -0
- /package/dist/{creatives-UEPLNCPN.js.map → creatives-PSWCNY7U.js.map} +0 -0
- /package/dist/{critique-T7HJ42D4.js.map → critique-TIZJ5GFM.js.map} +0 -0
- /package/dist/{crm-KH6XX2TT.js.map → crm-2WAR565U.js.map} +0 -0
- /package/dist/{crm-JP4UOPMN.js.map → crm-VDXUO2YU.js.map} +0 -0
- /package/dist/{currency-DJDVIR3C.js.map → currency-XCGKQ7FE.js.map} +0 -0
- /package/dist/{custom-conversions-2VLJGPRV.js.map → custom-conversions-6P555U2K.js.map} +0 -0
- /package/dist/{customers-7I7UY5PS.js.map → customers-ATENMXDO.js.map} +0 -0
- /package/dist/{delete-6IOUDEWY.js.map → delete-AVMZYNVT.js.map} +0 -0
- /package/dist/{delete-ODFKNHAI.js.map → delete-H744GNS4.js.map} +0 -0
- /package/dist/{delete-RAETUVO2.js.map → delete-OEYPFATY.js.map} +0 -0
- /package/dist/{demographics-2FTDKPBD.js.map → demographics-M5LJF3RZ.js.map} +0 -0
- /package/dist/{discard-ZX5TLFYH.js.map → discard-72I6SM7G.js.map} +0 -0
- /package/dist/{discover-M3ZKKFEL.js.map → discover-BJPZNXUQ.js.map} +0 -0
- /package/dist/{domain-TH7KIC2T.js.map → domain-R4EIZD2W.js.map} +0 -0
- /package/dist/{draft-S2FSQOJN.js.map → draft-34C3F5U4.js.map} +0 -0
- /package/dist/{draft-CRE2Y24G.js.map → draft-BBFJNZ5X.js.map} +0 -0
- /package/dist/{draft-SH25PKST.js.map → draft-BV2QRPZ4.js.map} +0 -0
- /package/dist/{draft-MNFJ4G3C.js.map → draft-THPZFASM.js.map} +0 -0
- /package/dist/{draft-YHUIFDDR.js.map → draft-YYYRWF7M.js.map} +0 -0
- /package/dist/{facets-6B2U4BSM.js.map → facets-F2H52MS4.js.map} +0 -0
- /package/dist/{fit-FJ5CLQS4.js.map → fit-2CA4JH7N.js.map} +0 -0
- /package/dist/{flows-OGGSWWGT.js.map → flows-CWXCXEUD.js.map} +0 -0
- /package/dist/{follow-DUIEGDVK.js.map → follow-FN7LV3WV.js.map} +0 -0
- /package/dist/{follow-competitors-IT5ZVJPE.js.map → follow-competitors-MKXFHLXB.js.map} +0 -0
- /package/dist/{fonts-GCJRLEGD.js.map → fonts-F2XUCIIW.js.map} +0 -0
- /package/dist/{forecast-2AGTFMXH.js.map → forecast-IDKJYM2B.js.map} +0 -0
- /package/dist/{funnel-7U55LNJ4.js.map → funnel-RLGQGYKO.js.map} +0 -0
- /package/dist/{generate-DMQUS665.js.map → generate-MMBYB44G.js.map} +0 -0
- /package/dist/{get-N7FR6NFX.js.map → get-C6UQ22HH.js.map} +0 -0
- /package/dist/{get-IRJIHOQK.js.map → get-EEUR6SAW.js.map} +0 -0
- /package/dist/{history-PSNJAUTW.js.map → history-4II5QA4B.js.map} +0 -0
- /package/dist/{history-Q3QCT64S.js.map → history-DBIEYQHY.js.map} +0 -0
- /package/dist/{hubspot-2NHL47R2.js.map → hubspot-TTITJFBO.js.map} +0 -0
- /package/dist/{ideas-22MRXKT7.js.map → ideas-V4Q6JDKV.js.map} +0 -0
- /package/dist/{images-LXFWEON7.js.map → images-SP5REF6E.js.map} +0 -0
- /package/dist/{ingest-W7VEDEYD.js.map → ingest-574GIFAR.js.map} +0 -0
- /package/dist/{ingest-ZN3DEZHY.js.map → ingest-IC4T76W6.js.map} +0 -0
- /package/dist/{insights-LNAXV2CG.js.map → insights-ZIU6FJMS.js.map} +0 -0
- /package/dist/{inspect-3LBIHMMP.js.map → inspect-ATHYY6A2.js.map} +0 -0
- /package/dist/{inspiration-I4MMKAWA.js.map → inspiration-P265QJ2H.js.map} +0 -0
- /package/dist/{intent-ICKFJRT2.js.map → intent-E3UIVZBN.js.map} +0 -0
- /package/dist/{keyword-gap-NGPH32FN.js.map → keyword-gap-BG6M665A.js.map} +0 -0
- /package/dist/{keyword-metrics-PZXFB4NG.js.map → keyword-metrics-J4UPUDN7.js.map} +0 -0
- /package/dist/{landing-D7QS42GK.js.map → landing-R6DN7XLK.js.map} +0 -0
- /package/dist/{languages-JDYL2N5F.js.map → languages-HORKPDNH.js.map} +0 -0
- /package/dist/{languages-JMVNOHMG.js.map → languages-JSGWCC7Z.js.map} +0 -0
- /package/dist/{leads-ARUWPHBM.js.map → leads-7EVHMNUF.js.map} +0 -0
- /package/dist/{leads-E22XFSX2.js.map → leads-JM6HUERX.js.map} +0 -0
- /package/dist/{lighthouse-NQBUCHTW.js.map → lighthouse-6ZC45E53.js.map} +0 -0
- /package/dist/{line-item-writes-KA5PVKFO.js.map → line-item-writes-KUYEXSIH.js.map} +0 -0
- /package/dist/{line-items-3ZFFZCNH.js.map → line-items-GIWLP3FL.js.map} +0 -0
- /package/dist/{link-AEU6BV75.js.map → link-PVM7XJQI.js.map} +0 -0
- /package/dist/{linkedin-WCB2H5NH.js.map → linkedin-WX54EAX6.js.map} +0 -0
- /package/dist/{list-PAMYQS4X.js.map → list-4ZKQZBCL.js.map} +0 -0
- /package/dist/{list-OLX7AI3O.js.map → list-MCEFXC6L.js.map} +0 -0
- /package/dist/{list-TOUUGHMS.js.map → list-WR7QYTON.js.map} +0 -0
- /package/dist/{locations-2NKBJKBT.js.map → locations-74TPQWAT.js.map} +0 -0
- /package/dist/{locations-S4U6IJIS.js.map → locations-J4G5RNPH.js.map} +0 -0
- /package/dist/{log-UGVWSK7Z.js.map → log-U6IWZGOF.js.map} +0 -0
- /package/dist/{map-BW4CHSIO.js.map → map-TWL7T4KP.js.map} +0 -0
- /package/dist/{mcp-JOXKA5HY.js.map → mcp-HVAVJGGS.js.map} +0 -0
- /package/dist/{media-53DJRC4N.js.map → media-M7E6V2XU.js.map} +0 -0
- /package/dist/{media-sources-SJZUOMI2.js.map → media-sources-JWGO23BZ.js.map} +0 -0
- /package/dist/{members-VAX6KAFN.js.map → members-5FAW4YE7.js.map} +0 -0
- /package/dist/{meta-A7KM6TF5.js.map → meta-EZ4SY25M.js.map} +0 -0
- /package/dist/{metrics-AY4RP54F.js.map → metrics-SQDJ5NQO.js.map} +0 -0
- /package/dist/{models-5NTC7A5G.js.map → models-7U3GRYHF.js.map} +0 -0
- /package/dist/{normalize-IVQ7I54Z.js.map → normalize-GW4GZNVY.js.map} +0 -0
- /package/dist/{options-V7C6CU6M.js.map → options-NSUCENLU.js.map} +0 -0
- /package/dist/{performance-L6RJZPXX.js.map → performance-FGCDWHMC.js.map} +0 -0
- /package/dist/{pixels-TZPF746S.js.map → pixels-45A55MOP.js.map} +0 -0
- /package/dist/{promoted-tweet-writes-DBATH765.js.map → promoted-tweet-writes-BPWTDESL.js.map} +0 -0
- /package/dist/{promoted-tweets-AU3XF3JD.js.map → promoted-tweets-OS3NHYVE.js.map} +0 -0
- /package/dist/{publish-G6DYVT4S.js.map → publish-SXZEWBVJ.js.map} +0 -0
- /package/dist/{query-CPZZNMDY.js.map → query-IEZRY6HV.js.map} +0 -0
- /package/dist/{reddit-S2S6C4RT.js.map → reddit-TF6K37SB.js.map} +0 -0
- /package/dist/{refresh-ARJ2SOMY.js.map → refresh-APVDWXRZ.js.map} +0 -0
- /package/dist/{release-3WCBAHPO.js.map → release-32SEJU4L.js.map} +0 -0
- /package/dist/{relevant-pages-MTMFMBPD.js.map → relevant-pages-OWMNUCP7.js.map} +0 -0
- /package/dist/{remove-FUAARCSC.js.map → remove-U64GTHLQ.js.map} +0 -0
- /package/dist/{reopen-PZI5H4X2.js.map → reopen-5VS233SF.js.map} +0 -0
- /package/dist/{research-SY3QRGOC.js.map → research-QYSQ6LW4.js.map} +0 -0
- /package/dist/{reset-E6F5NXOI.js.map → reset-22FC7BXQ.js.map} +0 -0
- /package/dist/{reset-ZWM7DDD7.js.map → reset-47B5VPT4.js.map} +0 -0
- /package/dist/{resolve-I5R5ELMZ.js.map → resolve-7KQGVTQT.js.map} +0 -0
- /package/dist/{retry-JO3JXXT2.js.map → retry-J5UVLS72.js.map} +0 -0
- /package/dist/{retry-7CFZTKWI.js.map → retry-UJ5UF4BM.js.map} +0 -0
- /package/dist/{run-UKB647DI.js.map → run-SI4FA32F.js.map} +0 -0
- /package/dist/{run-JR6SILHL.js.map → run-TFLFBQU2.js.map} +0 -0
- /package/dist/{schedule-SOAHLZZF.js.map → schedule-52ZM4KRQ.js.map} +0 -0
- /package/dist/{scheduled-agents-K5WU7SVJ.js.map → scheduled-agents-PCWCQAKP.js.map} +0 -0
- /package/dist/{schema-SOPL6GJP.js.map → schema-FY6ORDXZ.js.map} +0 -0
- /package/dist/{search-5VUDFOHI.js.map → search-NS7XNRZC.js.map} +0 -0
- /package/dist/{search-XUIVHGAY.js.map → search-UO5KJTYS.js.map} +0 -0
- /package/dist/{setup-links-KFROCISS.js.map → setup-links-V3URI7DL.js.map} +0 -0
- /package/dist/{site-MXPKMRQT.js.map → site-WIQ7SSU3.js.map} +0 -0
- /package/dist/{sources-MLDLMEDT.js.map → sources-DWJXOLEH.js.map} +0 -0
- /package/dist/{sources-FFHNWVLV.js.map → sources-L453U5MT.js.map} +0 -0
- /package/dist/{status-M47G5HD4.js.map → status-WXWU54WR.js.map} +0 -0
- /package/dist/{studio-HUEBE6DS.js.map → studio-C5K3YX3P.js.map} +0 -0
- /package/dist/{sync-HS7VZJ2H.js.map → sync-CDZUTGV3.js.map} +0 -0
- /package/dist/{sync-definition-PY6REQ4J.js.map → sync-definition-BAJQUBE3.js.map} +0 -0
- /package/dist/{tag-manager-HREEYGVM.js.map → tag-manager-DYZUOIAS.js.map} +0 -0
- /package/dist/{tags-WAW6MQAY.js.map → tags-6RY23XOG.js.map} +0 -0
- /package/dist/{tags-DIXLYB5P.js.map → tags-BHFQWNPL.js.map} +0 -0
- /package/dist/{tags-MRG56YOE.js.map → tags-SG3NVC3J.js.map} +0 -0
- /package/dist/{tags-DYRZTYHD.js.map → tags-VN5HTL35.js.map} +0 -0
- /package/dist/{tags-Y4HHJJGE.js.map → tags-WR6PDIDR.js.map} +0 -0
- /package/dist/{targeting-criteria-5UUESFWC.js.map → targeting-criteria-5EXP2NXF.js.map} +0 -0
- /package/dist/{targets-COZPVG52.js.map → targets-WUVEJPSD.js.map} +0 -0
- /package/dist/{templates-75VFYZ3E.js.map → templates-LOJQX2NG.js.map} +0 -0
- /package/dist/{testimonials-WJBRWLNW.js.map → testimonials-6M5DXORT.js.map} +0 -0
- /package/dist/{top-companies-C2R4FG6H.js.map → top-companies-E2OMMPSV.js.map} +0 -0
- /package/dist/{triggers-5UHVJPBV.js.map → triggers-MRXIDCSN.js.map} +0 -0
- /package/dist/{unlink-PLOOAGM3.js.map → unlink-HNL747YM.js.map} +0 -0
- /package/dist/{unstage-JIIOTBTF.js.map → unstage-OL2JDCLK.js.map} +0 -0
- /package/dist/{update-QYM6U7LL.js.map → update-4KGIT4BF.js.map} +0 -0
- /package/dist/{update-RCP7F5L5.js.map → update-JPBUF7M2.js.map} +0 -0
- /package/dist/{update-RGVNTA5X.js.map → update-RTTC3SAK.js.map} +0 -0
- /package/dist/{update-G6R5ZHUI.js.map → update-YNNRX5B2.js.map} +0 -0
- /package/dist/{upload-EEJ34Q3Y.js.map → upload-UIXPCSXJ.js.map} +0 -0
- /package/dist/{url-options-QEWKRKZ3.js.map → url-options-GGXAL3J4.js.map} +0 -0
- /package/dist/{url-params-2G5M2B3J.js.map → url-params-K47CE7Y5.js.map} +0 -0
- /package/dist/{videos-FVVID55J.js.map → videos-BP3BKNTY.js.map} +0 -0
- /package/dist/{viewer-check-2Q3WHSEL.js.map → viewer-check-HFRUJ4ZU.js.map} +0 -0
- /package/dist/{winning-ads-OSRFHVLV.js.map → winning-ads-WUENRDVJ.js.map} +0 -0
- /package/dist/{write-commands-CLJOD2XF.js.map → write-commands-4WARNR2T.js.map} +0 -0
- /package/dist/{write-commands-CT74VHH6.js.map → write-commands-TAYGTJEZ.js.map} +0 -0
- /package/dist/{x-EBKLJJPJ.js.map → x-VZCELH3P.js.map} +0 -0
package/README.md
CHANGED
|
@@ -723,7 +723,7 @@ Command groups: `budgets`, `campaigns`, `ad-groups`, `keywords` (add/update/remo
|
|
|
723
723
|
|
|
724
724
|
**A device criterion can be added, but never removed** — `campaign-criteria add` with a device criterion works, but Google then rejects `campaign-criteria remove` on it forever, including on a criterion you added yourself (and Baker refuses the removal before publish). Adjust it instead with `campaign-criteria update customers/<cid>/campaignCriteria/<campaignId>~<criterionId> --bid-modifier <n>`: `1` for no adjustment, `1.25` to bid 25% more, `0.9` to bid 10% less, `0` to stop serving on that device. Locations, languages and ad schedules remove normally.
|
|
725
725
|
|
|
726
|
-
**Images on a Search campaign** — `assets create` with an image publishes it into the advertiser's Google Ads asset library,
|
|
726
|
+
**Images on a Search campaign** — `assets create` with an image publishes it into the advertiser's Google Ads asset library, and `assets attach` with field type `AD_IMAGE` (campaign or ad group level) puts it on a Search campaign. Google opens Search image links per advertiser account, so staging asks Google with a check that changes nothing: an account that takes them stages the link, which applies at publish like a sitelink; one that does not — or that Google could not confirm either way — has the link **skipped** — never stored, the rest of a batch stages normally — and a **Task** is staged instead, "Add N images to <campaign> in Google Ads", which applies with the rest of the chat. An image staged with no accepted link raises that Task too, and it withdraws itself once an accepted link (or a Performance Max `asset-groups attach`) names the image. `MARKETING_IMAGE` and its square/portrait variants are Performance Max asset-group slots and are sent back to `AD_IMAGE`. The image must be 1.91:1 or 1:1; another shape is sent back to be cropped. The advertiser's logo links as `BUSINESS_LOGO`, at campaign or customer level, on a verified account.
|
|
727
727
|
|
|
728
728
|
**Primary vs secondary conversion actions** — `conversions update <id> --primary` makes an action a primary action (automated bidding optimizes toward it); `--no-primary` (or `--primary=false`) demotes it to secondary (reported only) — the spaced form `--primary false` is rejected, since a boolean flag written with a space is set to true and the word dropped. `conversions create` stages a new action as **secondary** unless its `--file` payload sets `"primaryForGoal": true`, so a new action never silently joins the bidding target of a Maximize Conversions or Target CPA campaign. The staged card shows an "Action optimization" row with the before/after role.
|
|
729
729
|
|
|
@@ -1858,7 +1858,7 @@ baker creatives learn [--days <n>] [--dry-run] # what each idea'
|
|
|
1858
1858
|
- `brief` returns a verdict, not raw numbers: `account.bottleneck` is `hook`, `after_click`, `none` or `too_little_data`. A part that cannot be read says `unavailable`; the market searches (the followed brands, and the library for what COMPANY.md's first line says the company sells, in a few words) run at once and get 12 seconds, so a slow ad library leaves them out rather than holding the brief. With few customer quotes on file it runs `research customers` itself alongside the reads (about 30 s) and returns what it wrote; `--no-research` skips that. With no ideas on file, its hint lists the values `awareness`, `angle` and `format` take. `market` says what competitors' ads already say (the followed brands, else the library), how sophisticated the market is, and which awareness stages nobody speaks to.
|
|
1859
1859
|
- `ideas` is local and nearly free: two readings of the words go to the decision model (a fraction of a cent, billed with the workspace's next run, answers kept in `canvas/.cache/`). An insight filed as `observed` reads as `interpreted` when its source cannot be opened or its quote is a statistic about people rather than someone's words ("39% de los propietarios…"), and a new idea is warned when its message says what a failed idea said, however reworded or translated. Without an answer, an insight keeps its status and only the same words count as the same message. An idea's `evidence` resolves to `src/content/insights/` entries, or it is an `explore` bet. Numbers must be in the Knowledge or our own customers' quotes (a Reddit, forum or web quote never sources a claim), no two ideas may share an angle and format, and a review or testimonial format needs a quote from our own customer.
|
|
1860
1860
|
- `learn` pools each built idea's creatives, judges them against the rest of the account's cost per result and writes `status` (`winner`, `failed`, `inconclusive`, `testing`) and a frozen `result` onto the idea. `ideas` then warns when a new idea repeats a failed one.
|
|
1861
|
-
- `make` builds one idea. A static searches the idea's container
|
|
1861
|
+
- `make` builds one idea, on a proven winning ad whenever one fits. A static searches the idea's container on the idea's message for our viewer, then for the container's strongest winners from any category (no query, by winner score), pools the candidates (each ad once, the better search first), checks up to six with `winning-ads fit`, three at a time (the next only once one does not fit), and keeps the best-ranked one that fits as soon as it and every better one have answered. The fit says what made that ad a winner, so what the creative carries of it (`reference.carry`: `whole_ad`, `layout`, `hook` or `angle`); make seeds it into `prompt.json` as `concept`, the canvas keeps the ad as its `original` node, and the renders see it for its structure only at `whole_ad` or `layout`. The first hint names the ad and what it carries (for a `--reference` chosen by hand, only the ad: nothing checked what made it win); if the concept could not be written into `prompt.json`, a hint says so and how to write it from the fit already made. For a new creative it starts scaffolding the best-ranked one while the fits are asked (kept when it fits, stopped and removed whole when another or none is kept). Finding, checking and describing a reference gets 150 seconds; past that the build is stopped and the static starts from the idea (`REFERENCE_SLOW`). A creative whose ad is already written is never built over (`ALREADY_MADE`): edit its `prompt.json`, or pass `--slug` for another ad of the same idea. A video idea takes its beats spec. Either way it records the idea on `_definition.md`, sets `prompt.json`'s `message` and syncs the definition. Drafted copy lines claiming a figure the company never wrote come back first in `hints`. Only when no proven ad fits (or with `--from-idea`) does a static start from the idea itself, and the first hint says why (none in the container, what the ones checked won on that the company lacks, the time ran out, or the proven ad it picked could not be read; a `--reference` chosen by hand that cannot be read fails instead): `prompt.json` holds the message and placeholders, and `canvas run` refuses to render until the scene and copy are written.
|
|
1862
1862
|
- `make --series <lead>` makes a static idea as another ad of a series: several messages in one style. Nothing is searched or rendered; the ad's `_definition.md` names its lead (`series: <lead>`), its `prompt.json` starts as the lead's ready version with the idea's message, and only its `copy` is written. Its canvas is written from the lead's on every run: the lead's finished picture with this ad's words, every other size the lead's own size with the same words. `baker canvas run --series <lead>` renders every ad of the series at once, one reviewed and corrected run each, skipping an ad already ready from the lead's current version.
|
|
1863
1863
|
- `translate --slug <ad> --to <langs>` makes the ad in other languages as ads of the series it leads: one creative per language or country variant, `<ad>-<lang>` (the BCP-47 tag in lowercase: `-es-mx`), whose `_definition.md` says `series: <ad>` and `language: <lang>` (canonical case, `es-MX`, as the spec's market and the dashboard store it; tags are compared without case) and whose `prompt.json` is the ad's as last drawn with its words translated. Every language is translated in one text call (transcreated, each regional tag in that country's own variety and form of address, `es-MX` and `es-CO` two ads, each line keeping its role and about its length, brand names, prices and numbers kept, a customer's quote and the name on it never translated, and the ad's `message` translated with the lines; the spend is billed with the workspace's next run), or read from `--copy-file`: `{"<lang>": ["line 1", …]}` is every line with no model call, `{"<lang>": {"headline": "…", "3": "…"}}` only the lines given (by role or number), the model writing the rest. `--note` is the agent's brief for the translator (tone, form of address, terms to keep). Each made language lists the lines it `kept` as a customer said them, and the answer warns when the ad's `prompt.json` changed after its last render, since translations are made from the version rendered. The ad may itself be an ad of a series (an angle ad), so angles × languages stay one design. A language already made is left as it is, so adding one later re-renders nothing; `--again` translates it again. Then `baker canvas run --series <ad>` renders them; a new version of the ad reaches every language on the next `--series` run.
|
|
1864
1864
|
|
|
@@ -3511,8 +3511,10 @@ baker winning-ads fit a_12345 --platform meta
|
|
|
3511
3511
|
|
|
3512
3512
|
Returns `why_it_wins` in five layers (`disguise`, `voice`, `trigger`, `attention`, `logic`), the `load_bearing`
|
|
3513
3513
|
elements that carry them (each with what it `needs`, whether the company has it: `have` | `adapt` | `missing`, and
|
|
3514
|
-
`ours`, what replaces it),
|
|
3515
|
-
|
|
3514
|
+
`ours`, what replaces it), a `verdict`: `use`, `adapt` or `reject`, and what made the ad a winner, so what an ad built
|
|
3515
|
+
on it carries (`carry`: `whole_ad`, `layout`, `hook` or `angle`, with `carry_why`; renders see the reference's picture
|
|
3516
|
+
only at `whole_ad` or `layout`). The company's Knowledge, reviews and market, and the library's evidence that the ad won
|
|
3517
|
+
(its winner category, angle, hook and composition), ground the answer. `baker canvas scaffold-static-ad --source-ad-id <adId> --source-platform <platform>` reads the cached
|
|
3516
3518
|
answer, writes it into `prompt.json` as `concept`, and refuses a `reject` with `concept_does_not_fit` before anything is
|
|
3517
3519
|
billed; the hint names the platform the fit was asked on, so a TikTok or LinkedIn reference is read from its own library.
|
|
3518
3520
|
|
|
@@ -5970,7 +5972,7 @@ A completed render the review calls ready (`verdict` `ready` or `ready_with_note
|
|
|
5970
5972
|
|
|
5971
5973
|
**Static ads: the run corrects a blocking defect itself.** When the review of a static ad finds a blocking defect, `baker canvas run` makes up to 3 more renders (`AUTO_FIX_ROUNDS` in `static-autofix.ts`) before it reports, correcting each defect at the layer that causes it: words or a logo where an interface covers them (Reels, Stories) or the frame cuts them are **placed and extended** (`withExtendedSizes`): a `static_place` node reads where everything sits and shrinks the ad (to 60% at most) into the size's safe area, and a `static_extend_merge` node has the ad's own model paint the margins that leaves and keeps its painting as one picture across the whole frame, laying the ad's own pixels back only over the words, logo and buttons the placing read (padded and feathered, so no edge of the shrunk ad shows; the whole ad is laid back, as before, when nothing was read or the painting moved the words), so the model is never asked to move anything (a size already inside its area is passed on with nothing painted or billed, and one whose words sit too far out for a shrink to clear, or that the placing found inside its area while the review still blocks it, is laid out again instead, never placed the same way twice; a button is placed by its shape, its words grown by 0.7 of their height on every side, as the review judges it); a defect the spec asked for (a second subject, stars with no named source, a concept that does not read) and any defect of a native screen corrects the spec first (`static-spec-repair.ts`: a model rewrites `prompt.json` for those findings alone, every line of the copy kept word for word), then draws the ad again from it (a native screen redraws free); a picture wrong as a whole or in three places or more is made again from its brief, told what the last one got wrong, but only in a round with another after it unless the brief caused the defect; anything else on the picture is a `--fix` of the chosen picture for its own findings (`correctionOf`: the words to erase, the line to re-letter or add), naming what the last edit was already asked for, while each re-laid size the review flagged follows as an edit of its own last layout (`withSizesFollowingFix`), keeping what an earlier round fixed in it, and a size it found nothing blocking on is delivered as it was (`keep`, nothing in it made again or placed); anything else on a re-laid size alone edits just that size from its own last layout (`withRelayEdit`); sizes that do not show the same ad (`SIZES:`) are always the re-laid ones' fault, since every size follows the chosen picture, so they are laid out again to show exactly what it shows, never the picture edited to match them. A size a round did not touch (its file the same byte for byte) keeps the round before's verdict (`carryUnchanged`) and is not read again: the review reads only the sizes the round changed. Each correction is told what earlier rounds fixed so it keeps it right (`keptRules`), and starts from the best attempt so far: one that came out with more blocking defects than an earlier attempt is set aside and the earlier one corrected instead (`correctFrom`). Each round is one render (a fix, or one request per re-laid size) and prints `[autofix] round N of 3: …` on stdout; the final JSON's hints start with "Corrected automatically before this result, …" and its review is of the corrected version. Blocking findings left after the rounds keep the hints below. A round that would only repeat the correction that just left its defect in place (a chosen option, `--use-variant`, is only ever corrected) is not run: that version is reported as it is. `--no-autofix` reports after the first render.
|
|
5972
5974
|
|
|
5973
|
-
**Static ads: correct a version, or use another of its variants.** Correct a finished version with `--fix "<what to change>"`: one render takes that version (the last one, or `--from <run_id>`) as its first reference and changes only what you said, keeping the picture, the layout and every other word
|
|
5975
|
+
**Static ads: correct a version, or use another of its variants.** Correct a finished version with `--fix "<what to change>"`: one render takes that version (the last one, or `--from <run_id>`) as its first reference and changes only what you said, keeping the picture, the layout and every other word; it replaces the variants and the judge, and every size is made again from the corrected picture. **A `prompt.json` changed only in its words, their positions or its colours** since the version shown is made the same way, as an edit of that version (`[edit]` in the output, the instruction read off the change); three new options are asked for only with `--regenerate static_variants`. A `--fix` whose defect is still blocking afterwards is recorded, and asking for it again with the same words exits 2 with `no_progress`. When every blocking finding is on re-laid-out sizes, the first hint says to lay out those sizes again (`--regenerate adapt_<size>`) before any `--fix`. Every static run's hints say what it cost in credits and what for. There is no render limit per creative. Use another variant with `--use-variant <sha256>` (`--from <run_id>`, default the last render): when the person asks in the chat for another of a version's variants over the judge's pick, every size is made again from that picture, and the only requests re-lay it out for each other size; `--regenerate adapt_9x16` lays out one size again from the same chosen picture when only that size came out wrong (after a `--fix` or `--use-variant`, from that corrected or chosen picture, so the size never brings back the uncorrected one; `--from <run_id>` names another version).
|
|
5974
5976
|
|
|
5975
5977
|
#### `baker canvas scaffold-video <video> [flags]`
|
|
5976
5978
|
|
|
@@ -6081,7 +6083,9 @@ The two scaffold passes are billed (the full `video_deconstruct` is the heavy on
|
|
|
6081
6083
|
|
|
6082
6084
|
Turn a source/inspiration image into a **runnable, self-validated static-ad canvas** — the static counterpart of `scaffold-video`. It runs **billed Gemini passes** up front:
|
|
6083
6085
|
|
|
6084
|
-
|
|
6086
|
+
**A library ad is read once for every company.** With `--source-ad-id` and the library's own picture (no `<image>`, `--context`, `--describe-model` or `--select-model`), both passes below come from `POST /api/ad-library/reference-read`: the backend reads the ad from Ad DNA's picture, grounded in its full DNA, and keeps the read for every company. The first build on an ad pays for it (~40 s); every later one, in any company, gets it at once and free. When the shared read cannot be had, the passes run here as before.
|
|
6087
|
+
|
|
6088
|
+
1. **`image_describe`** (`~google/gemini-flash-latest`) — reverse-engineers the image (layout by what fills each region, copy verbatim, typefaces, capture in words, the `mechanism` and the `audience` it is built for) and writes it next to the canvas as **`prompt.json`**, an **ad spec** (`"schema": "baker-static-ad/3"`; `/2` still reads) you rewrite into the ad you want: `viewer` (who sees it and what they already know), `message` (the one thing it tells them, never printed), `copy` (each line with `lettering`: `in_scene`, written on something in the picture (`on`, `look`), or `designed`, set in the brand's face), `scene` (`description`, `look`: photo | designed | illustration, `capture` in words, `mood`, `layout`), `brand`, `colors` (each tied to an object, from the brand palette), `references` (one picture each, labelled by role: `PERSON_1`, `ANIMAL_1`, `PRODUCT_1`, `BADGE_1`, `PROP_1`), `logo` (and `logo_position`), `third_party_brands` (other brands the offer is about, a car brand on a car loan: `name`, `what`, and `logo` naming the `BADGE_n` reference of its logo; their logos may appear), an optional `direction`, the `mechanism` to rebuild for our brand, and in `/3`: `viewer.market` (`country`, `language`, `currency`), `brand_presence` (`standard` | `native`: a native disguise carries the logo as its sender and no big button), `recognition` (the kind of product a stranger must take it for at a glance, never the format), `native` (the ad is a screen people know, drawn exactly from HTML at every size by the free `static_native` node instead of painted: `x_post` (a post or a thread, with `reply_to`), `whatsapp`, `imessage`, `trustpilot`, `google_reviews`, `notes`, `slack`; on a 9:16 the app is drawn full screen as a phone shows it: status bar and app header pinned at the top, the reply bar and tab bar (or a keyboard under a chat or note) pinned at the bottom, the posts or messages as large as the clear band holds, and the frame's headline, caption and logo a card in the brand's colours under the app's header; a wall of reviews (`trustpilot`, `google_reviews`) takes up to 16 real reviews, the first two (`FEATURED_REVIEWS`) the ad's copy set whole in the safe area and the rest filling the whole frame behind them as large, sharp cards, turned and cut by its edges, because a wall wins on how many there are; a review longer than 160 characters is shown cut at a word with "…", and that cut text is the copy the review reads back; a chat (`whatsapp`, `imessage`) on a 9:16 never shrinks below about 62% of the phone scale: its earliest messages scroll up under the header, as the app does, the node's optional `scrolled` output lists the copy lines scrolled off that size, and the run review expects those lines nowhere on it; a logo file whose drawing runs off its own edge is set aside for a whole one, and a square mark where a wordmark goes is drawn larger; the run review never flags the app's own interface words (status bar, keyboard) as under Reels; those words ("Today", "Verified", "Post your reply") are printed in the viewer's language: Spanish, Portuguese and English as checked against the apps, any other written once by a text model and cached per language (`scripts/interface-words-evals`), English when it cannot; the image model renders only the screen's `photos`, each a plain phone photo of ordinary people of the market; adding the block switches an existing ad on its next run, `--fix` does not apply, an invented brand handle or a rating the Knowledge does not hold (either decimal mark) is refused as `native_screen_invalid`, and a photo of ours goes in as its `image`: a native photo takes no `avatar`, since nothing would cast it), a role on each third-party brand (`partner` | `proof` | `category_signal`), a reference's `image` (wired as a picture of ours) and a person's `avatar` (the company avatar cast), and `concept` (`why_it_wins` in five layers, `load_bearing` elements with `have`/`adapt`/`missing` and `ours`, `verdict` `use`|`adapt`|`reject`, `transfer_note`; seeded from `baker winning-ads fit`). Every render keeps the load-bearing elements; `validate`/`run` refuse a `reject` or a `missing` element with nothing named (`concept_does_not_fit`) and a rating, or a promised price, share, multiple or time, the Knowledge does not hold with that unit, or a superlative it does not make (`proof_without_source`), in any language or several in one ad: a text model reads each claim of the copy and of the Knowledge as a kind, a number and a unit (cached by text, billed with the next run), code compares them exactly, and the decision model (Jev) judges a superlative; with no model, every number the copy writes in digits must be in the Knowledge (`claim-check.ts`, eval: `scripts/claim-check-evals`); a line citing a review platform gets its real badge wired (Trustpilot, G2 and the like by name; Google, Google Play or the App Store when the line shows stars or a score, or the decision model reads it as citing them for reviews in any language, `scripts/review-citation-evals`). **You never write a model prompt**: every render prompt is compiled from this file for the model it runs on (short labelled sections for gpt-image, sentences with reasons for Gemini; each line quoted once; pictures numbered with one role each; colours from the brand; realism as capture cues; the safe area from its one owner; constraints last), on every `validate` and `run`, and shown on its node. A `prompt.json` written before the ad spec (the describe blueprint) is read through an adapter and keeps working. The source's own read (`source`, and the library's `reference`) stays as bookkeeping and is never sent to a model.
|
|
6085
6089
|
2. **element selection** (`~google/gemini-flash-latest`) — picks the **main, identity-critical** elements (the brand logo, a showcased product, a trust badge) **plus any foreground/hero person or animal** — the emotional focal point — even a generic one, because a free-generated face/muzzle reads as AI and grows artifacts; the emotional hero always gets a real-reference slot. When the advertiser's logo appears in **more than one lockup** (a square/icon **mark** and a horizontal **wordmark**), each is emitted as its **own** element (e.g. `LOGO_MARK`, `LOGO_WORDMARK`). The describe pass also records the ad's **typography** (each typeface's classification, a best-guess family, and its weight/case), which seeds the spec's `brand.typeface`. Background extras are dropped. Each element becomes a `references` entry in the spec, named by its role and naming the canvas slot it fills, so the file says which slot grounds which subject.
|
|
6086
6090
|
|
|
6087
6091
|
It then scaffolds a canvas on which **the image model designs the finished ad**, holding only what `prompt.json` holds; no element is mandatory:
|
|
@@ -6098,7 +6102,7 @@ The canvas is validated before it is written. stdout returns `{ ok, canvas_path,
|
|
|
6098
6102
|
|
|
6099
6103
|
**Who sees the ad.** `--target-adset <id>` names the Meta ad set the ad will run in. Before anything is billed, the viewer its targeting reaches is read exactly as `baker ads meta adsets --audience` reads it (`temperature`, what they already `knows`, `placements`) and written to `_definition.md` as `targetAdSet` and `viewer` (an existing definition keeps every other field). The sizes, the brief and the prefilter keep clear of that viewer's placements (`staticSafeArea`; `automatic`, a bare `facebook`/`instagram` or no placements is Advantage+, Reels included), and every `baker canvas run` checks the ad against that viewer. With no ad account, give the viewer from the Knowledge: `--viewer-temperature cold|warm|hot [--viewer-knows brand,offer,product] [--viewer-placements <placement,…>]`, recorded with `source: knowledge`; next to `--target-adset` they correct the read, and its `reasons` say so. A bad value exits 2 (`invalid_viewer`) before any billed pass; an ad set that cannot be read never stops the scaffold (a hint says why, and the sizes keep clear of every placement). With neither flag, a `viewer` (or `targetAdSet`) already in `_definition.md` is used as it is. stdout carries `target_adset`, `viewer` and a `checklist.viewer` line.
|
|
6100
6104
|
|
|
6101
|
-
**After a run** the CLI reads the finished ad back on what makes a static win, not a checklist of elements: every delivered image's pixel shape against its format; **every line of `prompt.json`'s copy (in-scene and designed alike) read back with its box by a box reader and compared** (a line more than 2% off, missing, or joined by words nobody asked for is blocking; case and punctuation fold, as does a capital I read as an l (one stroke in a sans-serif), accents do not; words the picture adds are blocking only when set at the copy's usual size or making a claim (a figure, a price, an offer), and otherwise a note, as a screen's code, a poster or a mug in the scene, except a price (a currency sign beside a figure) the copy does not hold, blocking at any size and blurred by the correction, the document it is on kept; every render is asked for no readable prices on a bill, quote, receipt, screen or price tag beyond the copy; a copy line is "on the ad twice" only when most of its words repeat, never a word or two echoed on a prop; on a native screen, which code typesets from the spec, a line read differently is the reader's error and only a missing one counts); **the ad's own copy and its logo measured against the format's safe area** (`staticSafeArea`, the one owner of those areas; `must-show.ts` decides what is measured: never what the scene prints, nor a copy line printed again in the scene while the line itself sits clear). On a 9:16, which runs in Stories and Reels alike, what Stories' header or bottom bar covers (and any other app's interface named) is said as "where Stories and Reels cover it" ("where Reels covers it" for an ad set that runs only in Reels) and blocks for the logo, the button, the headline, the figure and the offer, while a supporting line (body, caption, label, small print) there is a note; what only Reels' taller footer covers is one note, and only for the lead line, since Stories shows it and the 9:16 is laid out in Stories' band; words merely close to where an app draws are no finding. The steps that place a size clear of an interface (`static_safe_fit`, `static_place`) are told the same copy (`prompt.json`'s lines, their roles, and the brand's name and the logo's words, a wordmark read close to them counting as the logo) and move the ad for those alone, a supporting line included only where the frame cuts it; on a feed image such as a 4:5, only a design margin, so words close to the edge are a warning and only words the frame cuts are blocking); a copy line written over two lines (`"15%\noff"`) is matched part by part wherever the reader finds each; designed type in a colour far from the brand palette is a warning; supporting lines too small to read on a phone are one note per size; the main line set smaller than a supporting one is a note, the brand's wordmark never counted as part of a line that starts with its name; the logo set twice is a note, a far smaller mark printed on something in the scene (a hoodie, a bag) is not. When the copy names a real person ("Lautaro Suarez, CTO at Vibiz", "田中 美咲、Acme 創業者"; read by a text model in any language, cached by copy, `scripts/named-people-evals`), the run casts them as themselves before it renders (`baker avatars research --create`, their avatar's sheet added to `prompt.json` `references` as a `PERSON_n`), and a face shown as a named person the ad has no photo of is blocking. When the reader cannot answer, the vision pass transcribes the copy instead and judges the safe zones by eye. Then one vision pass for clipping, overlaps, artifacts, one dominant idea, the brand with the logo covered and the concept's mechanisms (each finding typed by the model with the item it answers, what it is about, what is wrong and the edges that cut it, which the grading and the automatic correction read instead of its words), with every format shown a second time at phone-feed thumbnail size (240px wide, same call): a lead message unreadable at that size is blocking. A missing logo, CTA or copy is never a finding; a logo that is drawn and broken is. stdout carries `verdict` (`ready` | `ready_with_notes` | `needs_fixes` | `not_reviewed`), `judge` (the per-candidate scores) and hints that end with what the run made; the findings are stored on the run as its `review`. `needs_fixes` means the ad is not done even though every node completed, and the run is recorded with `presentable: false` so it is never shown as a version; every fix is an edit to `prompt.json` and a re-run (wrong words: the lines in `copy`; wrong picture: the `scene`; a bad roll: `--regenerate static_variants`; one size wrong while the chosen picture is right: `--regenerate adapt_<size>`, which re-lays it out, named in the hints); a blocking defect is first corrected by the run itself (`--autofix`, above). The checks rank the variants before the pick and the judge only breaks an exact tie, comparing pairwise against the compiled brief, knowing the brand and the viewer; every variant stays on offer to the person in Baker. Within one chat turn an ad gets two runs you start (each with its automatic corrections) and about 12 minutes in all: a correction round that would take it past that is not started (`[autofix] not started`), the version shown as it stands, and no render starts once it is spent
|
|
6105
|
+
**After a run** the CLI reads the finished ad back on what makes a static win, not a checklist of elements: every delivered image's pixel shape against its format; **every line of `prompt.json`'s copy (in-scene and designed alike) read back with its box by a box reader and compared** (a line more than 2% off, missing, or joined by words nobody asked for is blocking; case and punctuation fold, as does a capital I read as an l (one stroke in a sans-serif), accents do not; words the picture adds are blocking only when set at the copy's usual size or making a claim (a figure, a price, an offer), and otherwise a note, as a screen's code, a poster or a mug in the scene, except a price (a currency sign beside a figure) the copy does not hold, blocking at any size and blurred by the correction, the document it is on kept; every render is asked for no readable prices on a bill, quote, receipt, screen or price tag beyond the copy; a copy line is "on the ad twice" only when most of its words repeat, never a word or two echoed on a prop; on a native screen, which code typesets from the spec, a line read differently is the reader's error and only a missing one counts); **the ad's own copy and its logo measured against the format's safe area** (`staticSafeArea`, the one owner of those areas; `must-show.ts` decides what is measured: never what the scene prints, nor a copy line printed again in the scene while the line itself sits clear). On a 9:16, which runs in Stories and Reels alike, what Stories' header or bottom bar covers (and any other app's interface named) is said as "where Stories and Reels cover it" ("where Reels covers it" for an ad set that runs only in Reels) and blocks for the logo, the button, the headline, the figure and the offer, while a supporting line (body, caption, label, small print) there is a note; what only Reels' taller footer covers is one note, and only for the lead line, since Stories shows it and the 9:16 is laid out in Stories' band; words merely close to where an app draws are no finding. The steps that place a size clear of an interface (`static_safe_fit`, `static_place`) are told the same copy (`prompt.json`'s lines, their roles, and the brand's name and the logo's words, a wordmark read close to them counting as the logo) and move the ad for those alone, a supporting line included only where the frame cuts it; on a feed image such as a 4:5, only a design margin, so words close to the edge are a warning and only words the frame cuts are blocking); a copy line written over two lines (`"15%\noff"`) is matched part by part wherever the reader finds each; designed type in a colour far from the brand palette is a warning; supporting lines too small to read on a phone are one note per size; the main line set smaller than a supporting one is a note, the brand's wordmark never counted as part of a line that starts with its name; the logo set twice is a note, a far smaller mark printed on something in the scene (a hoodie, a bag) is not. When the copy names a real person ("Lautaro Suarez, CTO at Vibiz", "田中 美咲、Acme 創業者"; read by a text model in any language, cached by copy, `scripts/named-people-evals`), the run casts them as themselves before it renders (`baker avatars research --create`, their avatar's sheet added to `prompt.json` `references` as a `PERSON_n`), and a face shown as a named person the ad has no photo of is blocking. When the reader cannot answer, the vision pass transcribes the copy instead and judges the safe zones by eye. Then one vision pass for clipping, overlaps, artifacts, one dominant idea, the brand with the logo covered and the concept's mechanisms (each finding typed by the model with the item it answers, what it is about, what is wrong and the edges that cut it, which the grading and the automatic correction read instead of its words), with every format shown a second time at phone-feed thumbnail size (240px wide, same call): a lead message unreadable at that size is blocking. A missing logo, CTA or copy is never a finding; a logo that is drawn and broken is. stdout carries `verdict` (`ready` | `ready_with_notes` | `needs_fixes` | `not_reviewed`), `judge` (the per-candidate scores) and hints that end with what the run made; the findings are stored on the run as its `review`. `needs_fixes` means the ad is not done even though every node completed, and the run is recorded with `presentable: false` so it is never shown as a version; every fix is an edit to `prompt.json` and a re-run (wrong words: the lines in `copy`; wrong picture: the `scene`; a bad roll: `--regenerate static_variants`; one size wrong while the chosen picture is right: `--regenerate adapt_<size>`, which re-lays it out, named in the hints); a blocking defect is first corrected by the run itself (`--autofix`, above). The checks rank the variants before the pick and the judge only breaks an exact tie, comparing pairwise against the compiled brief, knowing the brand and the viewer; every variant stays on offer to the person in Baker. Within one chat turn an ad gets two runs you start (each with its automatic corrections) and about 12 minutes in all: a correction round that would take it past that is not started (`[autofix] not started`), the version shown as it stands, and no render starts once it is spent or once the ad is `ready` or `ready_with_notes`: the next is refused (`CONFLICT`, exit 2) with what to show instead; the person's next message starts a new turn (`turn-renders.ts`). When a defect still stands after the automatic rounds, the hints say to fix it with a `--fix`, then by changing the spec or the approach, and if it still cannot be fixed to show the best version and name what is left in one plain sentence, without a question.
|
|
6102
6106
|
|
|
6103
6107
|
The render prompt is **model-aware**: each model's profile (`src/engine/lib/prompt-profiles.ts`) sets its shape, word budget, picture order and request params. gpt-image gets short labelled sections with the constraints last; Gemini gets sentences that give the reason and a positive closing list of the only words allowed. A profile change, or a new model on the router (`src/engine/lib/image-model-router.ts`), is re-run on the static bench (`scripts/creative-evals`, `--job static`) before it ships. Run `baker canvas critique` on the scaffolded canvas for an advisory read before you spend.
|
|
6104
6108
|
|
|
@@ -6672,20 +6676,20 @@ Each creative reports `spend`, `impressions`, `ctr` (percent), `cpc`, `results`,
|
|
|
6672
6676
|
|
|
6673
6677
|
### `baker creatives feedback [--slug <slug>] [--full]`
|
|
6674
6678
|
|
|
6675
|
-
What
|
|
6679
|
+
What people said about creative versions in their chats (an approval, or a rejection with reasons and a note; keeping a version counts as an approval). Compact by default: approved and rejected counts, the top rejection reasons, what approved versions share (format, platform, option) and the 8 latest verdicts, plus `hints[]` saying what to do differently. `--slug` narrows to one creative; `--full` returns every verdict (up to 200) with whole notes.
|
|
6676
6680
|
|
|
6677
6681
|
```bash
|
|
6678
6682
|
baker creatives feedback
|
|
6679
6683
|
baker creatives feedback --slug spring-offer --full
|
|
6680
6684
|
```
|
|
6681
6685
|
|
|
6682
|
-
Each entry carries its `source`: `review` (the buttons
|
|
6686
|
+
Each entry carries its `source`: `review` (the review buttons Baker had before, kept on older verdicts), `selection` (choosing or saving the version) or `chat` (what the person wrote in a chat, recorded with `feedback record`).
|
|
6683
6687
|
|
|
6684
6688
|
When the person asks in the chat for another variant of a version, make every size from it with `baker canvas run --slug <slug> --use-variant <sha256> --from <runId>`; Baker has no control to choose one.
|
|
6685
6689
|
|
|
6686
6690
|
### `baker creatives feedback record`
|
|
6687
6691
|
|
|
6688
|
-
Record what the person said about one version in a chat: an approval, or a rejection with reasons and their own words. It is stored
|
|
6692
|
+
Record what the person said about one version in a chat: an approval, or a rejection with reasons and their own words. It is stored as the verdict of the person who wrote the chat's latest message (`recordedFor: "sender"`), or of the chat itself when nobody has written in it (`"chat"`). One verdict per person per version or option: a later one replaces theirs. Must run from a chat.
|
|
6689
6693
|
|
|
6690
6694
|
```bash
|
|
6691
6695
|
baker creatives feedback record --slug spring-offer --verdict rejected \
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import {
|
|
2
|
+
csvOrJson,
|
|
3
|
+
handleLinkedinError,
|
|
4
|
+
resolveAccountIdArg
|
|
5
|
+
} from "./chunk-6DB2B3GF.js";
|
|
6
|
+
import {
|
|
7
|
+
writeAdsJson,
|
|
8
|
+
writeAdsOutput
|
|
9
|
+
} from "./chunk-VFIOJD5M.js";
|
|
10
|
+
import {
|
|
11
|
+
NO_CACHE_ARG
|
|
12
|
+
} from "./chunk-X7ZODEXJ.js";
|
|
13
|
+
import "./chunk-NDXBU22S.js";
|
|
14
|
+
import "./chunk-GXDLWBOY.js";
|
|
15
|
+
import "./chunk-TEINLN64.js";
|
|
16
|
+
import "./chunk-ZJWUBJYQ.js";
|
|
17
|
+
import "./chunk-NE4F3FHN.js";
|
|
18
|
+
import {
|
|
19
|
+
apiGet
|
|
20
|
+
} from "./chunk-XBOK23HI.js";
|
|
21
|
+
import "./chunk-IFWP3ZDO.js";
|
|
22
|
+
import "./chunk-NAWWC5I3.js";
|
|
23
|
+
import "./chunk-NU7JSWVA.js";
|
|
24
|
+
import "./chunk-YQSBHWOI.js";
|
|
25
|
+
|
|
26
|
+
// src/commands/ads/linkedin/account.ts
|
|
27
|
+
import { defineCommand } from "citty";
|
|
28
|
+
var accountDetailCommand = defineCommand({
|
|
29
|
+
meta: {
|
|
30
|
+
name: "detail",
|
|
31
|
+
description: `Single LinkedIn ad account detail (currency, status, type).
|
|
32
|
+
|
|
33
|
+
Examples:
|
|
34
|
+
baker ads linkedin account --account-id 503001492
|
|
35
|
+
baker ads linkedin account --account-urn urn:li:sponsoredAccount:503001492 --output md`
|
|
36
|
+
},
|
|
37
|
+
args: {
|
|
38
|
+
"account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
|
|
39
|
+
"account-urn": { type: "string", description: "Alias for --account-id" },
|
|
40
|
+
"no-cache": NO_CACHE_ARG,
|
|
41
|
+
output: { type: "string", description: "json|csv|jsonl|md", default: "json" }
|
|
42
|
+
},
|
|
43
|
+
run: async ({ args }) => {
|
|
44
|
+
const accountId = resolveAccountIdArg(args);
|
|
45
|
+
try {
|
|
46
|
+
const params = { "account-id": accountId };
|
|
47
|
+
if (args["no-cache"]) params["skip-cache"] = "true";
|
|
48
|
+
const data = await apiGet("/api/ads/linkedin/account", params);
|
|
49
|
+
const fmt = csvOrJson(args);
|
|
50
|
+
if (fmt !== "json") {
|
|
51
|
+
writeAdsOutput([data], fmt);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
writeAdsJson({ ok: true, data });
|
|
55
|
+
} catch (err) {
|
|
56
|
+
handleLinkedinError(err);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
var accountCommand = defineCommand({
|
|
61
|
+
meta: {
|
|
62
|
+
name: "account",
|
|
63
|
+
description: `LinkedIn ad account: its detail, and the settings that apply across every ad set in it.
|
|
64
|
+
|
|
65
|
+
Examples:
|
|
66
|
+
baker ads linkedin account --account-id 503001492 \u2014 currency, status, type
|
|
67
|
+
baker ads linkedin account url-params --param utm_source=linkedin \u2014 UTMs for every ad in the account`
|
|
68
|
+
},
|
|
69
|
+
subCommands: {
|
|
70
|
+
detail: accountDetailCommand,
|
|
71
|
+
"url-params": () => import("./write-commands-4WARNR2T.js").then((m) => m.accountUrlParamsCommand)
|
|
72
|
+
},
|
|
73
|
+
args: accountDetailCommand.args,
|
|
74
|
+
default: "detail"
|
|
75
|
+
});
|
|
76
|
+
export {
|
|
77
|
+
accountCommand
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=account-2ZMZFPIU.js.map
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CHATGPT_ADS_REFERENCE,
|
|
3
|
+
runChatgptRead
|
|
4
|
+
} from "./chunk-KLBTXETO.js";
|
|
5
|
+
import "./chunk-VFIOJD5M.js";
|
|
6
|
+
import {
|
|
7
|
+
apiGet
|
|
8
|
+
} from "./chunk-XBOK23HI.js";
|
|
9
|
+
import "./chunk-IFWP3ZDO.js";
|
|
10
|
+
import "./chunk-NAWWC5I3.js";
|
|
11
|
+
import {
|
|
12
|
+
registerSchema
|
|
13
|
+
} from "./chunk-NU7JSWVA.js";
|
|
14
|
+
import "./chunk-YQSBHWOI.js";
|
|
15
|
+
|
|
16
|
+
// src/commands/ads/chatgpt/account.ts
|
|
17
|
+
import { defineCommand } from "citty";
|
|
18
|
+
registerSchema({
|
|
19
|
+
command: "ads.chatgpt.account",
|
|
20
|
+
description: "The connected ChatGPT Ads account: name, currency, timezone, status, and the brand and account reviews that decide whether anything in it can serve.",
|
|
21
|
+
args: {
|
|
22
|
+
full: { type: "boolean", description: "Return ChatGPT Ads' own account object", required: false }
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
function accountHints(account) {
|
|
26
|
+
const hints = [];
|
|
27
|
+
if (account.brandReview.status !== "approved") {
|
|
28
|
+
const reason = account.brandReview.reason ? ` (${account.brandReview.reason})` : "";
|
|
29
|
+
hints.push(
|
|
30
|
+
`Brand review is ${account.brandReview.status}${reason}: nothing in this account serves until it is approved. Fix it in ChatGPT Ads Manager before changing campaigns.`
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
if (account.accountReview && account.accountReview.status !== "approved") {
|
|
34
|
+
hints.push(`A separate account review is ${account.accountReview.status}; delivery can wait on it too.`);
|
|
35
|
+
}
|
|
36
|
+
if (account.status === "paused") {
|
|
37
|
+
hints.push("The whole account is paused, so no campaign in it serves whatever its own status says.");
|
|
38
|
+
}
|
|
39
|
+
return hints;
|
|
40
|
+
}
|
|
41
|
+
var SHOW_ARGS = {
|
|
42
|
+
full: { type: "boolean", description: "Return ChatGPT Ads' own account object", required: false }
|
|
43
|
+
};
|
|
44
|
+
var accountShowCommand = defineCommand({
|
|
45
|
+
meta: {
|
|
46
|
+
name: "show",
|
|
47
|
+
description: "The connected ChatGPT Ads account. Example: baker ads chatgpt account"
|
|
48
|
+
},
|
|
49
|
+
args: SHOW_ARGS,
|
|
50
|
+
run: async ({ args }) => {
|
|
51
|
+
await runChatgptRead(
|
|
52
|
+
CHATGPT_ADS_REFERENCE.account,
|
|
53
|
+
() => apiGet("/api/ads/chatgpt/account", args.full ? { full: "true" } : void 0),
|
|
54
|
+
(account) => args.full ? [] : accountHints(account)
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
var accountCommand = defineCommand({
|
|
59
|
+
meta: {
|
|
60
|
+
name: "account",
|
|
61
|
+
description: `The connected ChatGPT Ads account. Start here: currency and timezone for every figure, and whether reviews let anything serve.
|
|
62
|
+
|
|
63
|
+
Examples:
|
|
64
|
+
baker ads chatgpt account
|
|
65
|
+
baker ads chatgpt account --full
|
|
66
|
+
baker ads chatgpt account update --favicon-url https://example.com/icon.png \u2014 staged; applies on publish`
|
|
67
|
+
},
|
|
68
|
+
subCommands: {
|
|
69
|
+
show: accountShowCommand,
|
|
70
|
+
update: () => import("./account-writes-ISE4U2FQ.js").then((m) => m.accountUpdateCommand)
|
|
71
|
+
},
|
|
72
|
+
// A parent must never declare `run`: citty falls through to it after the matched subcommand.
|
|
73
|
+
args: SHOW_ARGS,
|
|
74
|
+
default: "show"
|
|
75
|
+
});
|
|
76
|
+
export {
|
|
77
|
+
accountCommand,
|
|
78
|
+
accountHints
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=account-F6MHQ64I.js.map
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import {
|
|
2
|
+
compact,
|
|
3
|
+
schemaArgs,
|
|
4
|
+
stageChatgptOp
|
|
5
|
+
} from "./chunk-35XWJEWH.js";
|
|
6
|
+
import {
|
|
7
|
+
CHATGPT_ADS_REFERENCE,
|
|
8
|
+
chatgptFailure
|
|
9
|
+
} from "./chunk-KLBTXETO.js";
|
|
10
|
+
import {
|
|
11
|
+
writeJsonEnvelope
|
|
12
|
+
} from "./chunk-VFIOJD5M.js";
|
|
13
|
+
import {
|
|
14
|
+
apiGet
|
|
15
|
+
} from "./chunk-XBOK23HI.js";
|
|
16
|
+
import "./chunk-IFWP3ZDO.js";
|
|
17
|
+
import "./chunk-NAWWC5I3.js";
|
|
18
|
+
import {
|
|
19
|
+
registerSchema
|
|
20
|
+
} from "./chunk-NU7JSWVA.js";
|
|
21
|
+
import "./chunk-YQSBHWOI.js";
|
|
22
|
+
|
|
23
|
+
// src/commands/ads/chatgpt/account-writes.ts
|
|
24
|
+
import { defineCommand } from "citty";
|
|
25
|
+
var REFERENCE = CHATGPT_ADS_REFERENCE.account;
|
|
26
|
+
var UPDATE_ARGS = {
|
|
27
|
+
name: { type: "string", description: "The advertiser name shown on every card" },
|
|
28
|
+
"favicon-url": { type: "string", description: "https:// square icon, at least 128 \xD7 128 px" }
|
|
29
|
+
};
|
|
30
|
+
registerSchema({
|
|
31
|
+
command: "ads.chatgpt.account.update",
|
|
32
|
+
description: "Stage a change to the advertiser's brand name or icon. It applies when the chat is published and starts a new brand review; nothing in the account serves until it is approved.",
|
|
33
|
+
args: schemaArgs(UPDATE_ARGS)
|
|
34
|
+
});
|
|
35
|
+
var accountUpdateCommand = defineCommand({
|
|
36
|
+
meta: {
|
|
37
|
+
name: "update",
|
|
38
|
+
description: `Stage a change to the brand name or icon (applies when the chat is published).
|
|
39
|
+
|
|
40
|
+
Examples:
|
|
41
|
+
baker ads chatgpt account update --favicon-url https://example.com/icon.png
|
|
42
|
+
baker ads chatgpt account update --name "GreenLeaf Energy"`
|
|
43
|
+
},
|
|
44
|
+
args: UPDATE_ARGS,
|
|
45
|
+
run: async ({ args }) => {
|
|
46
|
+
let account;
|
|
47
|
+
try {
|
|
48
|
+
account = await apiGet("/api/ads/chatgpt/account");
|
|
49
|
+
} catch (err) {
|
|
50
|
+
writeJsonEnvelope({ ...chatgptFailure(err, REFERENCE) });
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
await stageChatgptOp(
|
|
54
|
+
{
|
|
55
|
+
kind: "account.update",
|
|
56
|
+
target: account.id,
|
|
57
|
+
payload: compact({ name: args.name, faviconUrl: args["favicon-url"] })
|
|
58
|
+
},
|
|
59
|
+
REFERENCE
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
export {
|
|
64
|
+
accountUpdateCommand
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=account-writes-ISE4U2FQ.js.map
|