@koda-sl/baker-cli 0.482.0 → 0.483.0-dev.6a297fc5c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (549) hide show
  1. package/README.md +1 -1
  2. package/dist/{account-Z65CPOWE.js → account-ELL7ZZLM.js} +3 -3
  3. package/dist/{account-VH2AATWI.js → account-KZVOT6HL.js} +5 -5
  4. package/dist/{account-reads-GYI2SS6T.js → account-reads-LA45L6G3.js} +4 -4
  5. package/dist/{account-writes-4N2MA2ZR.js → account-writes-CEPERFD6.js} +3 -3
  6. package/dist/{accounts-XG472YLB.js → accounts-7G556DH4.js} +4 -4
  7. package/dist/{accounts-SPLE7URQ.js → accounts-HC7GPQNG.js} +6 -6
  8. package/dist/{actions-KQTXBNJU.js → actions-V6YP5C3X.js} +18 -18
  9. package/dist/{activecampaign-42JXANUA.js → activecampaign-CHZEHRHZ.js} +4 -4
  10. package/dist/{ad-group-writes-EUTMPBMK.js → ad-group-writes-XGSCEQTW.js} +3 -3
  11. package/dist/{ad-groups-OVPAI5RM.js → ad-groups-GKOLDGET.js} +7 -7
  12. package/dist/{ad-writes-DACTYFEO.js → ad-writes-VVD36JKH.js} +3 -3
  13. package/dist/{add-C3FQ5D62.js → add-3MD72QMT.js} +3 -3
  14. package/dist/{add-KTEJCE4L.js → add-TSQNUP5N.js} +4 -4
  15. package/dist/{ads-L65JIKCD.js → ads-EKZVHKPN.js} +8 -8
  16. package/dist/{ads-WPI3AMSR.js → ads-KRM4WAMZ.js} +5 -5
  17. package/dist/{advertisers-36HP3AOE.js → advertisers-XJG7XDK7.js} +6 -6
  18. package/dist/{analytics-IFNBT7IM.js → analytics-DO4UKW2H.js} +7 -7
  19. package/dist/{analytics-I4LZCRG2.js → analytics-JVT2OBQC.js} +4 -4
  20. package/dist/{animate-3LV3LHXQ.js → animate-G4P3OEJE.js} +4 -4
  21. package/dist/{assign-WBLSZNCO.js → assign-72YAL6TP.js} +4 -4
  22. package/dist/{audience-size-LOX5BNXI.js → audience-size-M5NU4QYN.js} +4 -4
  23. package/dist/{audiences-RPLVMO4H.js → audiences-BU4JZJT7.js} +3 -3
  24. package/dist/{audit-6AG6BPXQ.js → audit-22KQAHJR.js} +4 -4
  25. package/dist/{autocomplete-2QRU7ARD.js → autocomplete-KLNQIK5T.js} +6 -6
  26. package/dist/{avatars-EIETXCF3.js → avatars-VO6FMJFB.js} +4 -4
  27. package/dist/{bid-pricing-5LZFHQTS.js → bid-pricing-52HDANYL.js} +5 -5
  28. package/dist/{brand-CINQG3JG.js → brand-XXNOVSGE.js} +2 -2
  29. package/dist/{brief-WAQ2V6Q4.js → brief-MNWFEJ3L.js} +19 -19
  30. package/dist/{campaign-groups-5CMTEJZZ.js → campaign-groups-JFOFU76X.js} +9 -9
  31. package/dist/{campaign-writes-U5LTDTYK.js → campaign-writes-NSEJCINS.js} +3 -3
  32. package/dist/{campaign-writes-4RMPHQCT.js → campaign-writes-PKWLLKB5.js} +4 -4
  33. package/dist/{campaigns-NFRLFNXI.js → campaigns-5AZMOOID.js} +5 -5
  34. package/dist/{campaigns-PC7UAVXR.js → campaigns-H4VK3GKK.js} +12 -12
  35. package/dist/{campaigns-TFEQTSO3.js → campaigns-VWN2XPK2.js} +7 -7
  36. package/dist/{canvas-A4XKEBN7.js → canvas-TTV7QZZT.js} +14 -14
  37. package/dist/{capabilities-FNVTPCDT.js → capabilities-VJ53ROIP.js} +4 -4
  38. package/dist/{catalog-SJBGNNY4.js → catalog-43BSTAT6.js} +8 -8
  39. package/dist/{catalogs-A7XMEEEP.js → catalogs-XH5NHH4C.js} +3 -3
  40. package/dist/{changes-J67WATHX.js → changes-F6WUXFC3.js} +4 -4
  41. package/dist/{chatgpt-4PEWDJKP.js → chatgpt-K6KNTME4.js} +13 -13
  42. package/dist/{chats-S5FCV7YO.js → chats-PWLQO7UY.js} +4 -4
  43. package/dist/{check-GCZ2ZBKH.js → check-545MAB4E.js} +11 -11
  44. package/dist/{chunk-FRK7SSEH.js → chunk-2QSPPWOU.js} +2 -2
  45. package/dist/{chunk-U6IWRZQF.js → chunk-2WTD5Y34.js} +3 -3
  46. package/dist/{chunk-IG627WWY.js → chunk-3BKNGXCL.js} +169 -169
  47. package/dist/chunk-3BKNGXCL.js.map +1 -0
  48. package/dist/{chunk-AHF6TQWB.js → chunk-3UBTVAFJ.js} +2 -2
  49. package/dist/{chunk-KQDAFZKR.js → chunk-3ZHOBEQD.js} +3 -3
  50. package/dist/{chunk-RLS5OPPZ.js → chunk-46TND6YK.js} +2 -2
  51. package/dist/{chunk-3UXMQ3K2.js → chunk-5SRHACZW.js} +2 -2
  52. package/dist/{chunk-7U3V64YT.js → chunk-64HQDJ2E.js} +5 -5
  53. package/dist/{chunk-65N4ZPQD.js → chunk-6OIKNJ7G.js} +2 -2
  54. package/dist/{chunk-CXQRTLSQ.js → chunk-AOZ7547I.js} +3 -3
  55. package/dist/{chunk-ZBV5IV5T.js → chunk-B7FVPHCW.js} +2 -2
  56. package/dist/{chunk-A2FKWRKO.js → chunk-C7MENOP5.js} +6 -6
  57. package/dist/{chunk-MIOOPOG2.js → chunk-CSN6L345.js} +5 -5
  58. package/dist/{chunk-NNF4RARY.js → chunk-D6KHVUDS.js} +3 -3
  59. package/dist/{chunk-XSGO44OV.js → chunk-DDES6J6A.js} +4 -4
  60. package/dist/{chunk-T6ATGN7Y.js → chunk-F3CZFUXZ.js} +4 -4
  61. package/dist/chunk-F3CZFUXZ.js.map +1 -0
  62. package/dist/{chunk-U2452GLO.js → chunk-F5IH7G2F.js} +11 -6
  63. package/dist/chunk-F5IH7G2F.js.map +1 -0
  64. package/dist/{chunk-DCTEL4KG.js → chunk-FQXGII24.js} +4 -4
  65. package/dist/{chunk-ADSNY4KZ.js → chunk-G5GV6SUK.js} +2 -2
  66. package/dist/{chunk-IWWOGBGA.js → chunk-GD6UJDOB.js} +2 -2
  67. package/dist/{chunk-2DHHL4PU.js → chunk-GJWMPTUE.js} +4 -4
  68. package/dist/{chunk-RTWRNG3E.js → chunk-GM46ZEYP.js} +18 -8
  69. package/dist/{chunk-RTWRNG3E.js.map → chunk-GM46ZEYP.js.map} +1 -1
  70. package/dist/{chunk-GQ6JS5MR.js → chunk-HNEYIWXW.js} +56 -11
  71. package/dist/{chunk-GQ6JS5MR.js.map → chunk-HNEYIWXW.js.map} +1 -1
  72. package/dist/{chunk-ML7DLFFY.js → chunk-I2DNBEV6.js} +14 -14
  73. package/dist/chunk-I2DNBEV6.js.map +1 -0
  74. package/dist/{chunk-6KK26F2T.js → chunk-I2WRZJAC.js} +2 -2
  75. package/dist/{chunk-WNJ5SYAG.js → chunk-I44SNQ34.js} +2 -2
  76. package/dist/{chunk-R5WNYLG4.js → chunk-IYELKHBG.js} +2 -2
  77. package/dist/{chunk-XUR4QWCS.js → chunk-JQNO6JCV.js} +2 -2
  78. package/dist/{chunk-R2TAVQGZ.js → chunk-K4NMOWG7.js} +2 -2
  79. package/dist/{chunk-YD7BQDJ6.js → chunk-KOVQ2JGM.js} +2 -2
  80. package/dist/{chunk-V6PXHQSI.js → chunk-KXSXZAC2.js} +2 -2
  81. package/dist/{chunk-TNOJ6O6B.js → chunk-LFXE2G6R.js} +2 -2
  82. package/dist/{chunk-NVGXYF6K.js → chunk-LMZAOTRX.js} +2 -2
  83. package/dist/{chunk-ABXTGAG7.js → chunk-MK3OJZIU.js} +2 -2
  84. package/dist/{chunk-DF22CTXE.js → chunk-P5PX2G7E.js} +3 -3
  85. package/dist/{chunk-RMLJNHCU.js → chunk-PHPXAMY3.js} +3 -3
  86. package/dist/{chunk-5RCCESDX.js → chunk-PNVEV3XP.js} +109 -41
  87. package/dist/chunk-PNVEV3XP.js.map +1 -0
  88. package/dist/{chunk-BSEB55E6.js → chunk-QKABEX3F.js} +2 -2
  89. package/dist/{chunk-ELL2IQMF.js → chunk-QTLZXIF3.js} +9 -10
  90. package/dist/chunk-QTLZXIF3.js.map +1 -0
  91. package/dist/{chunk-JFA4R3KS.js → chunk-QYAI24PN.js} +2 -2
  92. package/dist/{chunk-DQC4NIJE.js → chunk-QZHGIJOW.js} +3 -3
  93. package/dist/{chunk-WD5BQBVY.js → chunk-REMR5FHD.js} +3 -3
  94. package/dist/{chunk-AS5VL32C.js → chunk-RGX7AQ2K.js} +2 -2
  95. package/dist/{chunk-RDCYPWQZ.js → chunk-RMNKCVRB.js} +23 -8
  96. package/dist/chunk-RMNKCVRB.js.map +1 -0
  97. package/dist/{chunk-WMVTIKET.js → chunk-ROX7LQRR.js} +2 -2
  98. package/dist/{chunk-AQ5WISEG.js → chunk-S7B2TOOU.js} +2 -2
  99. package/dist/{chunk-7VHPAGPK.js → chunk-SEPPFM5S.js} +2 -2
  100. package/dist/{chunk-ORQKMXHA.js → chunk-SIKCVWM3.js} +2 -2
  101. package/dist/{chunk-UMZIQIWN.js → chunk-SK2N45LO.js} +2 -2
  102. package/dist/{chunk-FEELV5IV.js → chunk-SQ7DRYCC.js} +2 -2
  103. package/dist/{chunk-U4W4LULB.js → chunk-TBHRRQZD.js} +8 -8
  104. package/dist/{chunk-PQTY22FR.js → chunk-TGIL4L4L.js} +9 -8
  105. package/dist/chunk-TGIL4L4L.js.map +1 -0
  106. package/dist/{chunk-CCIDHU6M.js → chunk-TKPVVD52.js} +2 -2
  107. package/dist/{chunk-NCP6RD6A.js → chunk-TNB5EIFV.js} +2 -2
  108. package/dist/{chunk-XUB2EK65.js → chunk-TUSR5R7I.js} +2 -2
  109. package/dist/{chunk-MMVLRUMK.js → chunk-TY4BDVLG.js} +23 -11
  110. package/dist/chunk-TY4BDVLG.js.map +1 -0
  111. package/dist/{chunk-4VWTIT5C.js → chunk-U63S2JWI.js} +2 -2
  112. package/dist/{chunk-3S5YZWB7.js → chunk-UTLIQBRY.js} +10 -7
  113. package/dist/chunk-UTLIQBRY.js.map +1 -0
  114. package/dist/{chunk-NR2OVOTD.js → chunk-UWT7RCL3.js} +2 -2
  115. package/dist/{chunk-DH5CKOYK.js → chunk-V4UIM4QE.js} +2 -2
  116. package/dist/{chunk-K2Z3KGOH.js → chunk-WHSTZRUY.js} +2 -2
  117. package/dist/{chunk-2K3NCVDI.js → chunk-XF5R2FQT.js} +31 -19
  118. package/dist/{chunk-2K3NCVDI.js.map → chunk-XF5R2FQT.js.map} +1 -1
  119. package/dist/{chunk-RCSOG2DV.js → chunk-XFJNCZXA.js} +5 -5
  120. package/dist/{chunk-5NS4CNF6.js → chunk-XLJVJ5TK.js} +5 -5
  121. package/dist/{chunk-Q7YZL7PG.js → chunk-XP4G2DJL.js} +2 -2
  122. package/dist/{chunk-5YKC2WWG.js → chunk-YU2XIIL3.js} +6 -6
  123. package/dist/{chunk-RD2XXQW3.js → chunk-ZBUWO4XH.js} +3 -3
  124. package/dist/{chunk-LD4CHA7U.js → chunk-ZJ6HUCRK.js} +2 -2
  125. package/dist/{claim-6MPQD43X.js → claim-QHXKN7W6.js} +4 -4
  126. package/dist/cli.js +30 -30
  127. package/dist/{companies-KRF2K4CA.js → companies-PGVT62JL.js} +4 -4
  128. package/dist/{complete-V433ON5C.js → complete-TCTR3XVD.js} +4 -4
  129. package/dist/{connect-QVIAM3GX.js → connect-4S7JLICS.js} +7 -7
  130. package/dist/{conversation-VZKBZZGG.js → conversation-DI4WMEL2.js} +4 -4
  131. package/dist/{conversion-report-REOHVLCI.js → conversion-report-KL4LIVY5.js} +2 -2
  132. package/dist/{conversion-upload-command-ASHA6T6H.js → conversion-upload-command-EIKJU5ZW.js} +4 -4
  133. package/dist/{conversion-writes-JU7Q2MUO.js → conversion-writes-MPBCTVSP.js} +3 -3
  134. package/dist/{conversions-3ISBR3TS.js → conversions-ACYT6K7H.js} +5 -5
  135. package/dist/{conversions-ZLC6YTJ5.js → conversions-JTYMFX66.js} +8 -8
  136. package/dist/{create-IFCCMKFT.js → create-3QA7X2DD.js} +3 -3
  137. package/dist/{create-R5P6JU5A.js → create-AFVT5JTH.js} +4 -4
  138. package/dist/{create-SF6DOGDJ.js → create-TYCOMVWR.js} +4 -4
  139. package/dist/{create-B3QMYSIX.js → create-VFXEJ3EV.js} +4 -4
  140. package/dist/{creatives-KD7MOCR3.js → creatives-E6N2YLHE.js} +9 -9
  141. package/dist/{creatives-U2M4F3D5.js → creatives-ZOK7PZSG.js} +12 -12
  142. package/dist/{credentials-2KJUKBMF.js → credentials-34I6ZZWU.js} +4 -4
  143. package/dist/{critique-JVKJEBAC.js → critique-JM5QADYW.js} +7 -7
  144. package/dist/{critique-43OVWKN7.js → critique-OCVV6N3U.js} +18 -18
  145. package/dist/{crm-ZYDNEME5.js → crm-4F3LFOZD.js} +5 -5
  146. package/dist/{crm-GX72E2LT.js → crm-MNBYNP5R.js} +5 -5
  147. package/dist/{currency-CGDI2NXI.js → currency-3QTI5RSB.js} +4 -4
  148. package/dist/{customers-P4N4NXLJ.js → customers-VNYNT2EQ.js} +8 -8
  149. package/dist/{delete-S4VKH7IS.js → delete-AZEVPMVO.js} +4 -4
  150. package/dist/{delete-RS7RQDUX.js → delete-PRJGFA2U.js} +4 -4
  151. package/dist/{delete-AK5IV44E.js → delete-UZRHYEPK.js} +3 -3
  152. package/dist/{demographics-IKWN2H3V.js → demographics-JMZA7MB6.js} +4 -4
  153. package/dist/{discard-H6DOHJRG.js → discard-OH3B5P4C.js} +4 -4
  154. package/dist/{discover-L4TPEKGY.js → discover-5GLET36U.js} +4 -4
  155. package/dist/{domain-US4KKAXC.js → domain-K3IILLYE.js} +4 -4
  156. package/dist/{draft-OLFQZBWL.js → draft-2KHUZTIE.js} +4 -4
  157. package/dist/{draft-IZ4YLQRD.js → draft-7RYDPOFS.js} +4 -4
  158. package/dist/{draft-R32RFDCI.js → draft-BB3UUWJP.js} +4 -4
  159. package/dist/{draft-BIQ3ZAYW.js → draft-LZL6VWHX.js} +5 -5
  160. package/dist/{draft-Y2QJE2NM.js → draft-VXGZDBC7.js} +3 -3
  161. package/dist/engine/index.js +7 -7
  162. package/dist/{facets-JBZQHN3D.js → facets-PAWOEHOK.js} +4 -4
  163. package/dist/{feedback-3GU3PAEI.js → feedback-GAGIKZ6B.js} +21 -21
  164. package/dist/{feedback-record-PIJDOJW3.js → feedback-record-ZORDBRV2.js} +22 -22
  165. package/dist/{fetch-GOY6DQRL.js → fetch-M5GIBURQ.js} +4 -4
  166. package/dist/{fit-TVQ7RK52.js → fit-DGCYW7LN.js} +13 -13
  167. package/dist/{flows-274YPU6I.js → flows-TD6PNUDM.js} +11 -11
  168. package/dist/{fonts-BMUNDGOZ.js → fonts-IQ6XOUGU.js} +9 -9
  169. package/dist/{forecast-W5F2MNOV.js → forecast-FACEH4WR.js} +5 -5
  170. package/dist/{forecast-F2CZSIMP.js → forecast-YXOKAWDZ.js} +4 -4
  171. package/dist/{funnel-LEUXICXU.js → funnel-CJRFDTCD.js} +5 -5
  172. package/dist/{generate-4HWNFAH3.js → generate-D3LUXFJT.js} +3 -3
  173. package/dist/{get-MGDY5JYZ.js → get-JRMJLLU5.js} +4 -4
  174. package/dist/{get-TY6AMFI4.js → get-NUL4YJG5.js} +4 -4
  175. package/dist/{google-ZTTE34A4.js → google-URYXWN5O.js} +22 -22
  176. package/dist/{google-ads-5ARKO757.js → google-ads-BB7CF4NV.js} +4 -4
  177. package/dist/{history-IQ33J5PB.js → history-OQAOTEO3.js} +3 -3
  178. package/dist/{history-SU7VQCDJ.js → history-Q47TKZJS.js} +4 -4
  179. package/dist/{hubspot-TJED44GO.js → hubspot-A6O5GVTH.js} +8 -8
  180. package/dist/{ideas-UTSCGCT6.js → ideas-NBQPCC5C.js} +10 -10
  181. package/dist/{images-ZMZ4WLYH.js → images-XY5DLJEA.js} +4 -4
  182. package/dist/{ingest-SGBJ3NXX.js → ingest-PUMTHASV.js} +3 -3
  183. package/dist/{ingest-DGDNZWEM.js → ingest-WWNSA6VZ.js} +4 -4
  184. package/dist/{insights-SQLE5NOJ.js → insights-PZXFCMX2.js} +2 -2
  185. package/dist/{inspect-BMQTTKMW.js → inspect-5PRLZLF5.js} +4 -4
  186. package/dist/{intent-LM36WK45.js → intent-4QVVI4FF.js} +4 -4
  187. package/dist/{keyword-gap-P652ODHN.js → keyword-gap-YMMDRYVK.js} +4 -4
  188. package/dist/{keyword-metrics-MQLGGJBT.js → keyword-metrics-FB7FCYK6.js} +6 -6
  189. package/dist/{keywords-for-site-JL6H2YGU.js → keywords-for-site-YZYALONY.js} +6 -6
  190. package/dist/{landing-AJO2BPC2.js → landing-XOCPIOWX.js} +2 -2
  191. package/dist/{languages-HL42MI7H.js → languages-R3Y2IOFU.js} +4 -4
  192. package/dist/{leads-H6JIWVI6.js → leads-SWINPYEP.js} +4 -4
  193. package/dist/{learn-RGO5KDHS.js → learn-6HVDSTTJ.js} +10 -10
  194. package/dist/{line-item-writes-V7AKAHFC.js → line-item-writes-FG3TY4W4.js} +4 -4
  195. package/dist/{line-items-GAMKVVIQ.js → line-items-ZNVBFA4H.js} +5 -5
  196. package/dist/{link-Z5AQP6JN.js → link-IFEXIUDW.js} +4 -4
  197. package/dist/{linkedin-7F6YVXQL.js → linkedin-NINSMEW6.js} +27 -27
  198. package/dist/{list-XZVQWIJN.js → list-FR2OVRVL.js} +3 -3
  199. package/dist/{list-NLGM3QDP.js → list-K65FY6SV.js} +4 -4
  200. package/dist/{list-SZH6TH74.js → list-RJG3FMZR.js} +4 -4
  201. package/dist/{locations-AEGZ36JH.js → locations-6IH7WGRG.js} +4 -4
  202. package/dist/{locations-YA7NZY44.js → locations-VL2G22Y5.js} +2 -2
  203. package/dist/{log-JM4VLJE4.js → log-TAKCMC2C.js} +4 -4
  204. package/dist/{make-IHJROEKG.js → make-EWHS4EHQ.js} +40 -34
  205. package/dist/make-EWHS4EHQ.js.map +1 -0
  206. package/dist/{map-HRLUMCR2.js → map-DWLEYXSW.js} +5 -5
  207. package/dist/{mcp-T6SAG4XB.js → mcp-NNQZ5B7N.js} +3 -3
  208. package/dist/{media-sources-7AS3274L.js → media-sources-OAFBA62X.js} +2 -2
  209. package/dist/{members-J5KWXTXY.js → members-SS7IBYVE.js} +4 -4
  210. package/dist/{metrics-VDBJ6KL7.js → metrics-YLAREC4T.js} +4 -4
  211. package/dist/{models-2DQ5NBMT.js → models-IH6KE6OH.js} +2 -2
  212. package/dist/{normalize-CHZB4QDD.js → normalize-WOZTAI6C.js} +4 -4
  213. package/dist/{options-QLXFLESP.js → options-PL44BV5E.js} +7 -7
  214. package/dist/{organization-KEGKAP4P.js → organization-SQBODZUK.js} +4 -4
  215. package/dist/{performance-SPGPGXE5.js → performance-WRARV3YR.js} +5 -5
  216. package/dist/{pixels-6IUB3Y3H.js → pixels-DWW2TDY2.js} +3 -3
  217. package/dist/{promoted-tweet-writes-TRR3KPRJ.js → promoted-tweet-writes-CAD3RGU4.js} +4 -4
  218. package/dist/{promoted-tweets-XRYZNJI2.js → promoted-tweets-NYJP3TXL.js} +3 -3
  219. package/dist/{publish-V5YGMK53.js → publish-ZW6VHB27.js} +4 -4
  220. package/dist/{query-M3IO54U2.js → query-QRPBV2AR.js} +5 -5
  221. package/dist/{reddit-STSECKMZ.js → reddit-VJTNXORD.js} +5 -5
  222. package/dist/{refresh-RQ3C2MHI.js → refresh-6I52WXG5.js} +3 -3
  223. package/dist/{release-UHGU5WBY.js → release-LSSYP2ZJ.js} +4 -4
  224. package/dist/{relevant-pages-G6SNC73K.js → relevant-pages-2XHS5WP4.js} +4 -4
  225. package/dist/{remove-LTKICIIF.js → remove-K62YJYGT.js} +3 -3
  226. package/dist/{reopen-BP5ERELB.js → reopen-RPVEBQVR.js} +4 -4
  227. package/dist/{rerun-R3DNEV5U.js → rerun-ETH2NEEX.js} +27 -27
  228. package/dist/{research-MBAPL35Y.js → research-4ASN2KMB.js} +13 -13
  229. package/dist/{research-GOYMTKZM.js → research-6J3EOBAL.js} +3 -3
  230. package/dist/{reset-SJPGSQ7I.js → reset-ETORO5UO.js} +3 -3
  231. package/dist/{reset-Q62PEGOU.js → reset-YVTYHSTY.js} +3 -3
  232. package/dist/{resolve-R45W7QEQ.js → resolve-BI7GB5U2.js} +4 -4
  233. package/dist/{retry-NBZ7Q6HK.js → retry-2ZZCKSRW.js} +3 -3
  234. package/dist/{retry-CD2Q2AJN.js → retry-QZ7YHXF3.js} +3 -3
  235. package/dist/{rules-SZIY67QF.js → rules-KEHQEXEU.js} +10 -10
  236. package/dist/{rules-add-KTLHU3YD.js → rules-add-IDBWO6XV.js} +11 -11
  237. package/dist/{run-QYIUO4NB.js → run-FFASB4YB.js} +27 -27
  238. package/dist/{run-HCJKCEOL.js → run-KYEOLJFV.js} +4 -4
  239. package/dist/{scaffold-ad-NIVJSO73.js → scaffold-ad-EKCXHZPT.js} +26 -26
  240. package/dist/{scaffold-static-ad-QX2NUXFR.js → scaffold-static-ad-MWKTXATN.js} +33 -33
  241. package/dist/{scaffold-video-NXBM54K3.js → scaffold-video-BYPPH352.js} +23 -23
  242. package/dist/{schedule-BSQHXJ5V.js → schedule-4BK2ML6F.js} +3 -3
  243. package/dist/{scheduled-agents-MFLMG34I.js → scheduled-agents-GMGP3G6T.js} +10 -10
  244. package/dist/{schema-IWPG3YSN.js → schema-QPPWADIL.js} +5 -5
  245. package/dist/{search-EGI5K77S.js → search-GCSQ6CSD.js} +3 -3
  246. package/dist/{select-Q4S4CPKV.js → select-CPFKK57J.js} +20 -20
  247. package/dist/{set-prompt-3MVZW3L6.js → set-prompt-TJ3UTNYS.js} +19 -19
  248. package/dist/{setup-links-5ILQNMFZ.js → setup-links-C3EUV2RX.js} +4 -4
  249. package/dist/{site-LBXNVRPE.js → site-W5W7FCUD.js} +5 -5
  250. package/dist/{sources-GP4PUTX2.js → sources-AWODYZDS.js} +7 -7
  251. package/dist/{sources-N4UANUHJ.js → sources-SGGLJIOA.js} +6 -6
  252. package/dist/{stale-NT2JRQHY.js → stale-KILEXX57.js} +19 -19
  253. package/dist/{status-GSFMLC6W.js → status-KUSLGZD7.js} +4 -4
  254. package/dist/{studio-YB5WXQYC.js → studio-LMDDQWRY.js} +4 -4
  255. package/dist/{sync-LIV7FU4N.js → sync-TCY4NX7J.js} +3 -3
  256. package/dist/{sync-definition-6XPX6VJU.js → sync-definition-DGSAZGQZ.js} +22 -22
  257. package/dist/{tags-ZHCGHGYC.js → tags-IHLO2NDM.js} +4 -4
  258. package/dist/{tags-6RQVXS47.js → tags-QQLYW2QQ.js} +3 -3
  259. package/dist/{tags-AAIFQ6LS.js → tags-QXRKKRIR.js} +4 -4
  260. package/dist/{tags-F355NMIR.js → tags-U5YWCPFW.js} +4 -4
  261. package/dist/{tags-4JQX7HMT.js → tags-ZYVOKGHU.js} +4 -4
  262. package/dist/{targeting-criteria-6FY2JB3V.js → targeting-criteria-AEBSY6OY.js} +3 -3
  263. package/dist/{targets-NI7TR4GV.js → targets-5Q2OFVXL.js} +4 -4
  264. package/dist/{testimonials-G7CCH7VN.js → testimonials-O52ULRAU.js} +6 -6
  265. package/dist/{themes-PXDXIKYR.js → themes-26XFWSWC.js} +4 -4
  266. package/dist/{top-companies-YH2ZJEH5.js → top-companies-OMGAFFWN.js} +4 -4
  267. package/dist/{translate-27DIFMBU.js → translate-C5LZ6KVN.js} +24 -24
  268. package/dist/{triggers-WYFM7PAH.js → triggers-PTPG6OQ6.js} +4 -4
  269. package/dist/{unlink-PTWUSM5B.js → unlink-3BAXM2OH.js} +4 -4
  270. package/dist/{unstage-MCM6EZWK.js → unstage-EFW465VN.js} +4 -4
  271. package/dist/{update-V6E3CIFD.js → update-2RCIXWP3.js} +4 -4
  272. package/dist/{update-643S2MUW.js → update-5A7Q7S6I.js} +4 -4
  273. package/dist/{update-2BDIJDHN.js → update-VTUB2M5I.js} +3 -3
  274. package/dist/{update-GUIP6G3N.js → update-XPRHUFBR.js} +4 -4
  275. package/dist/{upload-3YJJ5VID.js → upload-Y3TACPEN.js} +4 -4
  276. package/dist/{url-options-LHS4SWWB.js → url-options-6CNDIUDM.js} +4 -4
  277. package/dist/{url-params-2DKIXKHH.js → url-params-ZUYOLAJG.js} +4 -4
  278. package/dist/{validate-AYPLNS7A.js → validate-KPJLIGYY.js} +22 -22
  279. package/dist/{videos-KEDR4GG3.js → videos-EFMNE6U2.js} +5 -5
  280. package/dist/{viewer-check-TSH3SAYJ.js → viewer-check-2GI26EKA.js} +12 -12
  281. package/dist/{web-UOGBNAHR.js → web-4JGYRY36.js} +4 -4
  282. package/dist/{winning-ads-SGBI3WHK.js → winning-ads-6SXA4HGB.js} +3 -3
  283. package/dist/{write-commands-E7JOB4HX.js → write-commands-LQXKNBA5.js} +5 -5
  284. package/dist/{x-UNSN57YP.js → x-LUEUC3XO.js} +6 -6
  285. package/package.json +1 -1
  286. package/dist/chunk-3S5YZWB7.js.map +0 -1
  287. package/dist/chunk-5RCCESDX.js.map +0 -1
  288. package/dist/chunk-ELL2IQMF.js.map +0 -1
  289. package/dist/chunk-IG627WWY.js.map +0 -1
  290. package/dist/chunk-ML7DLFFY.js.map +0 -1
  291. package/dist/chunk-MMVLRUMK.js.map +0 -1
  292. package/dist/chunk-PQTY22FR.js.map +0 -1
  293. package/dist/chunk-RDCYPWQZ.js.map +0 -1
  294. package/dist/chunk-T6ATGN7Y.js.map +0 -1
  295. package/dist/chunk-U2452GLO.js.map +0 -1
  296. package/dist/make-IHJROEKG.js.map +0 -1
  297. /package/dist/{account-Z65CPOWE.js.map → account-ELL7ZZLM.js.map} +0 -0
  298. /package/dist/{account-VH2AATWI.js.map → account-KZVOT6HL.js.map} +0 -0
  299. /package/dist/{account-reads-GYI2SS6T.js.map → account-reads-LA45L6G3.js.map} +0 -0
  300. /package/dist/{account-writes-4N2MA2ZR.js.map → account-writes-CEPERFD6.js.map} +0 -0
  301. /package/dist/{accounts-XG472YLB.js.map → accounts-7G556DH4.js.map} +0 -0
  302. /package/dist/{accounts-SPLE7URQ.js.map → accounts-HC7GPQNG.js.map} +0 -0
  303. /package/dist/{actions-KQTXBNJU.js.map → actions-V6YP5C3X.js.map} +0 -0
  304. /package/dist/{activecampaign-42JXANUA.js.map → activecampaign-CHZEHRHZ.js.map} +0 -0
  305. /package/dist/{ad-group-writes-EUTMPBMK.js.map → ad-group-writes-XGSCEQTW.js.map} +0 -0
  306. /package/dist/{ad-groups-OVPAI5RM.js.map → ad-groups-GKOLDGET.js.map} +0 -0
  307. /package/dist/{ad-writes-DACTYFEO.js.map → ad-writes-VVD36JKH.js.map} +0 -0
  308. /package/dist/{add-C3FQ5D62.js.map → add-3MD72QMT.js.map} +0 -0
  309. /package/dist/{add-KTEJCE4L.js.map → add-TSQNUP5N.js.map} +0 -0
  310. /package/dist/{ads-L65JIKCD.js.map → ads-EKZVHKPN.js.map} +0 -0
  311. /package/dist/{ads-WPI3AMSR.js.map → ads-KRM4WAMZ.js.map} +0 -0
  312. /package/dist/{advertisers-36HP3AOE.js.map → advertisers-XJG7XDK7.js.map} +0 -0
  313. /package/dist/{analytics-IFNBT7IM.js.map → analytics-DO4UKW2H.js.map} +0 -0
  314. /package/dist/{analytics-I4LZCRG2.js.map → analytics-JVT2OBQC.js.map} +0 -0
  315. /package/dist/{animate-3LV3LHXQ.js.map → animate-G4P3OEJE.js.map} +0 -0
  316. /package/dist/{assign-WBLSZNCO.js.map → assign-72YAL6TP.js.map} +0 -0
  317. /package/dist/{audience-size-LOX5BNXI.js.map → audience-size-M5NU4QYN.js.map} +0 -0
  318. /package/dist/{audiences-RPLVMO4H.js.map → audiences-BU4JZJT7.js.map} +0 -0
  319. /package/dist/{audit-6AG6BPXQ.js.map → audit-22KQAHJR.js.map} +0 -0
  320. /package/dist/{autocomplete-2QRU7ARD.js.map → autocomplete-KLNQIK5T.js.map} +0 -0
  321. /package/dist/{avatars-EIETXCF3.js.map → avatars-VO6FMJFB.js.map} +0 -0
  322. /package/dist/{bid-pricing-5LZFHQTS.js.map → bid-pricing-52HDANYL.js.map} +0 -0
  323. /package/dist/{brand-CINQG3JG.js.map → brand-XXNOVSGE.js.map} +0 -0
  324. /package/dist/{brief-WAQ2V6Q4.js.map → brief-MNWFEJ3L.js.map} +0 -0
  325. /package/dist/{campaign-groups-5CMTEJZZ.js.map → campaign-groups-JFOFU76X.js.map} +0 -0
  326. /package/dist/{campaign-writes-U5LTDTYK.js.map → campaign-writes-NSEJCINS.js.map} +0 -0
  327. /package/dist/{campaign-writes-4RMPHQCT.js.map → campaign-writes-PKWLLKB5.js.map} +0 -0
  328. /package/dist/{campaigns-NFRLFNXI.js.map → campaigns-5AZMOOID.js.map} +0 -0
  329. /package/dist/{campaigns-PC7UAVXR.js.map → campaigns-H4VK3GKK.js.map} +0 -0
  330. /package/dist/{campaigns-TFEQTSO3.js.map → campaigns-VWN2XPK2.js.map} +0 -0
  331. /package/dist/{canvas-A4XKEBN7.js.map → canvas-TTV7QZZT.js.map} +0 -0
  332. /package/dist/{capabilities-FNVTPCDT.js.map → capabilities-VJ53ROIP.js.map} +0 -0
  333. /package/dist/{catalog-SJBGNNY4.js.map → catalog-43BSTAT6.js.map} +0 -0
  334. /package/dist/{catalogs-A7XMEEEP.js.map → catalogs-XH5NHH4C.js.map} +0 -0
  335. /package/dist/{changes-J67WATHX.js.map → changes-F6WUXFC3.js.map} +0 -0
  336. /package/dist/{chatgpt-4PEWDJKP.js.map → chatgpt-K6KNTME4.js.map} +0 -0
  337. /package/dist/{chats-S5FCV7YO.js.map → chats-PWLQO7UY.js.map} +0 -0
  338. /package/dist/{check-GCZ2ZBKH.js.map → check-545MAB4E.js.map} +0 -0
  339. /package/dist/{chunk-FRK7SSEH.js.map → chunk-2QSPPWOU.js.map} +0 -0
  340. /package/dist/{chunk-U6IWRZQF.js.map → chunk-2WTD5Y34.js.map} +0 -0
  341. /package/dist/{chunk-AHF6TQWB.js.map → chunk-3UBTVAFJ.js.map} +0 -0
  342. /package/dist/{chunk-KQDAFZKR.js.map → chunk-3ZHOBEQD.js.map} +0 -0
  343. /package/dist/{chunk-RLS5OPPZ.js.map → chunk-46TND6YK.js.map} +0 -0
  344. /package/dist/{chunk-3UXMQ3K2.js.map → chunk-5SRHACZW.js.map} +0 -0
  345. /package/dist/{chunk-7U3V64YT.js.map → chunk-64HQDJ2E.js.map} +0 -0
  346. /package/dist/{chunk-65N4ZPQD.js.map → chunk-6OIKNJ7G.js.map} +0 -0
  347. /package/dist/{chunk-CXQRTLSQ.js.map → chunk-AOZ7547I.js.map} +0 -0
  348. /package/dist/{chunk-ZBV5IV5T.js.map → chunk-B7FVPHCW.js.map} +0 -0
  349. /package/dist/{chunk-A2FKWRKO.js.map → chunk-C7MENOP5.js.map} +0 -0
  350. /package/dist/{chunk-MIOOPOG2.js.map → chunk-CSN6L345.js.map} +0 -0
  351. /package/dist/{chunk-NNF4RARY.js.map → chunk-D6KHVUDS.js.map} +0 -0
  352. /package/dist/{chunk-XSGO44OV.js.map → chunk-DDES6J6A.js.map} +0 -0
  353. /package/dist/{chunk-DCTEL4KG.js.map → chunk-FQXGII24.js.map} +0 -0
  354. /package/dist/{chunk-ADSNY4KZ.js.map → chunk-G5GV6SUK.js.map} +0 -0
  355. /package/dist/{chunk-IWWOGBGA.js.map → chunk-GD6UJDOB.js.map} +0 -0
  356. /package/dist/{chunk-2DHHL4PU.js.map → chunk-GJWMPTUE.js.map} +0 -0
  357. /package/dist/{chunk-6KK26F2T.js.map → chunk-I2WRZJAC.js.map} +0 -0
  358. /package/dist/{chunk-WNJ5SYAG.js.map → chunk-I44SNQ34.js.map} +0 -0
  359. /package/dist/{chunk-R5WNYLG4.js.map → chunk-IYELKHBG.js.map} +0 -0
  360. /package/dist/{chunk-XUR4QWCS.js.map → chunk-JQNO6JCV.js.map} +0 -0
  361. /package/dist/{chunk-R2TAVQGZ.js.map → chunk-K4NMOWG7.js.map} +0 -0
  362. /package/dist/{chunk-YD7BQDJ6.js.map → chunk-KOVQ2JGM.js.map} +0 -0
  363. /package/dist/{chunk-V6PXHQSI.js.map → chunk-KXSXZAC2.js.map} +0 -0
  364. /package/dist/{chunk-TNOJ6O6B.js.map → chunk-LFXE2G6R.js.map} +0 -0
  365. /package/dist/{chunk-NVGXYF6K.js.map → chunk-LMZAOTRX.js.map} +0 -0
  366. /package/dist/{chunk-ABXTGAG7.js.map → chunk-MK3OJZIU.js.map} +0 -0
  367. /package/dist/{chunk-DF22CTXE.js.map → chunk-P5PX2G7E.js.map} +0 -0
  368. /package/dist/{chunk-RMLJNHCU.js.map → chunk-PHPXAMY3.js.map} +0 -0
  369. /package/dist/{chunk-BSEB55E6.js.map → chunk-QKABEX3F.js.map} +0 -0
  370. /package/dist/{chunk-JFA4R3KS.js.map → chunk-QYAI24PN.js.map} +0 -0
  371. /package/dist/{chunk-DQC4NIJE.js.map → chunk-QZHGIJOW.js.map} +0 -0
  372. /package/dist/{chunk-WD5BQBVY.js.map → chunk-REMR5FHD.js.map} +0 -0
  373. /package/dist/{chunk-AS5VL32C.js.map → chunk-RGX7AQ2K.js.map} +0 -0
  374. /package/dist/{chunk-WMVTIKET.js.map → chunk-ROX7LQRR.js.map} +0 -0
  375. /package/dist/{chunk-AQ5WISEG.js.map → chunk-S7B2TOOU.js.map} +0 -0
  376. /package/dist/{chunk-7VHPAGPK.js.map → chunk-SEPPFM5S.js.map} +0 -0
  377. /package/dist/{chunk-ORQKMXHA.js.map → chunk-SIKCVWM3.js.map} +0 -0
  378. /package/dist/{chunk-UMZIQIWN.js.map → chunk-SK2N45LO.js.map} +0 -0
  379. /package/dist/{chunk-FEELV5IV.js.map → chunk-SQ7DRYCC.js.map} +0 -0
  380. /package/dist/{chunk-U4W4LULB.js.map → chunk-TBHRRQZD.js.map} +0 -0
  381. /package/dist/{chunk-CCIDHU6M.js.map → chunk-TKPVVD52.js.map} +0 -0
  382. /package/dist/{chunk-NCP6RD6A.js.map → chunk-TNB5EIFV.js.map} +0 -0
  383. /package/dist/{chunk-XUB2EK65.js.map → chunk-TUSR5R7I.js.map} +0 -0
  384. /package/dist/{chunk-4VWTIT5C.js.map → chunk-U63S2JWI.js.map} +0 -0
  385. /package/dist/{chunk-NR2OVOTD.js.map → chunk-UWT7RCL3.js.map} +0 -0
  386. /package/dist/{chunk-DH5CKOYK.js.map → chunk-V4UIM4QE.js.map} +0 -0
  387. /package/dist/{chunk-K2Z3KGOH.js.map → chunk-WHSTZRUY.js.map} +0 -0
  388. /package/dist/{chunk-RCSOG2DV.js.map → chunk-XFJNCZXA.js.map} +0 -0
  389. /package/dist/{chunk-5NS4CNF6.js.map → chunk-XLJVJ5TK.js.map} +0 -0
  390. /package/dist/{chunk-Q7YZL7PG.js.map → chunk-XP4G2DJL.js.map} +0 -0
  391. /package/dist/{chunk-5YKC2WWG.js.map → chunk-YU2XIIL3.js.map} +0 -0
  392. /package/dist/{chunk-RD2XXQW3.js.map → chunk-ZBUWO4XH.js.map} +0 -0
  393. /package/dist/{chunk-LD4CHA7U.js.map → chunk-ZJ6HUCRK.js.map} +0 -0
  394. /package/dist/{claim-6MPQD43X.js.map → claim-QHXKN7W6.js.map} +0 -0
  395. /package/dist/{companies-KRF2K4CA.js.map → companies-PGVT62JL.js.map} +0 -0
  396. /package/dist/{complete-V433ON5C.js.map → complete-TCTR3XVD.js.map} +0 -0
  397. /package/dist/{connect-QVIAM3GX.js.map → connect-4S7JLICS.js.map} +0 -0
  398. /package/dist/{conversation-VZKBZZGG.js.map → conversation-DI4WMEL2.js.map} +0 -0
  399. /package/dist/{conversion-report-REOHVLCI.js.map → conversion-report-KL4LIVY5.js.map} +0 -0
  400. /package/dist/{conversion-upload-command-ASHA6T6H.js.map → conversion-upload-command-EIKJU5ZW.js.map} +0 -0
  401. /package/dist/{conversion-writes-JU7Q2MUO.js.map → conversion-writes-MPBCTVSP.js.map} +0 -0
  402. /package/dist/{conversions-3ISBR3TS.js.map → conversions-ACYT6K7H.js.map} +0 -0
  403. /package/dist/{conversions-ZLC6YTJ5.js.map → conversions-JTYMFX66.js.map} +0 -0
  404. /package/dist/{create-IFCCMKFT.js.map → create-3QA7X2DD.js.map} +0 -0
  405. /package/dist/{create-R5P6JU5A.js.map → create-AFVT5JTH.js.map} +0 -0
  406. /package/dist/{create-SF6DOGDJ.js.map → create-TYCOMVWR.js.map} +0 -0
  407. /package/dist/{create-B3QMYSIX.js.map → create-VFXEJ3EV.js.map} +0 -0
  408. /package/dist/{creatives-KD7MOCR3.js.map → creatives-E6N2YLHE.js.map} +0 -0
  409. /package/dist/{creatives-U2M4F3D5.js.map → creatives-ZOK7PZSG.js.map} +0 -0
  410. /package/dist/{credentials-2KJUKBMF.js.map → credentials-34I6ZZWU.js.map} +0 -0
  411. /package/dist/{critique-JVKJEBAC.js.map → critique-JM5QADYW.js.map} +0 -0
  412. /package/dist/{critique-43OVWKN7.js.map → critique-OCVV6N3U.js.map} +0 -0
  413. /package/dist/{crm-ZYDNEME5.js.map → crm-4F3LFOZD.js.map} +0 -0
  414. /package/dist/{crm-GX72E2LT.js.map → crm-MNBYNP5R.js.map} +0 -0
  415. /package/dist/{currency-CGDI2NXI.js.map → currency-3QTI5RSB.js.map} +0 -0
  416. /package/dist/{customers-P4N4NXLJ.js.map → customers-VNYNT2EQ.js.map} +0 -0
  417. /package/dist/{delete-S4VKH7IS.js.map → delete-AZEVPMVO.js.map} +0 -0
  418. /package/dist/{delete-RS7RQDUX.js.map → delete-PRJGFA2U.js.map} +0 -0
  419. /package/dist/{delete-AK5IV44E.js.map → delete-UZRHYEPK.js.map} +0 -0
  420. /package/dist/{demographics-IKWN2H3V.js.map → demographics-JMZA7MB6.js.map} +0 -0
  421. /package/dist/{discard-H6DOHJRG.js.map → discard-OH3B5P4C.js.map} +0 -0
  422. /package/dist/{discover-L4TPEKGY.js.map → discover-5GLET36U.js.map} +0 -0
  423. /package/dist/{domain-US4KKAXC.js.map → domain-K3IILLYE.js.map} +0 -0
  424. /package/dist/{draft-OLFQZBWL.js.map → draft-2KHUZTIE.js.map} +0 -0
  425. /package/dist/{draft-IZ4YLQRD.js.map → draft-7RYDPOFS.js.map} +0 -0
  426. /package/dist/{draft-R32RFDCI.js.map → draft-BB3UUWJP.js.map} +0 -0
  427. /package/dist/{draft-BIQ3ZAYW.js.map → draft-LZL6VWHX.js.map} +0 -0
  428. /package/dist/{draft-Y2QJE2NM.js.map → draft-VXGZDBC7.js.map} +0 -0
  429. /package/dist/{facets-JBZQHN3D.js.map → facets-PAWOEHOK.js.map} +0 -0
  430. /package/dist/{feedback-3GU3PAEI.js.map → feedback-GAGIKZ6B.js.map} +0 -0
  431. /package/dist/{feedback-record-PIJDOJW3.js.map → feedback-record-ZORDBRV2.js.map} +0 -0
  432. /package/dist/{fetch-GOY6DQRL.js.map → fetch-M5GIBURQ.js.map} +0 -0
  433. /package/dist/{fit-TVQ7RK52.js.map → fit-DGCYW7LN.js.map} +0 -0
  434. /package/dist/{flows-274YPU6I.js.map → flows-TD6PNUDM.js.map} +0 -0
  435. /package/dist/{fonts-BMUNDGOZ.js.map → fonts-IQ6XOUGU.js.map} +0 -0
  436. /package/dist/{forecast-W5F2MNOV.js.map → forecast-FACEH4WR.js.map} +0 -0
  437. /package/dist/{forecast-F2CZSIMP.js.map → forecast-YXOKAWDZ.js.map} +0 -0
  438. /package/dist/{funnel-LEUXICXU.js.map → funnel-CJRFDTCD.js.map} +0 -0
  439. /package/dist/{generate-4HWNFAH3.js.map → generate-D3LUXFJT.js.map} +0 -0
  440. /package/dist/{get-MGDY5JYZ.js.map → get-JRMJLLU5.js.map} +0 -0
  441. /package/dist/{get-TY6AMFI4.js.map → get-NUL4YJG5.js.map} +0 -0
  442. /package/dist/{google-ZTTE34A4.js.map → google-URYXWN5O.js.map} +0 -0
  443. /package/dist/{google-ads-5ARKO757.js.map → google-ads-BB7CF4NV.js.map} +0 -0
  444. /package/dist/{history-IQ33J5PB.js.map → history-OQAOTEO3.js.map} +0 -0
  445. /package/dist/{history-SU7VQCDJ.js.map → history-Q47TKZJS.js.map} +0 -0
  446. /package/dist/{hubspot-TJED44GO.js.map → hubspot-A6O5GVTH.js.map} +0 -0
  447. /package/dist/{ideas-UTSCGCT6.js.map → ideas-NBQPCC5C.js.map} +0 -0
  448. /package/dist/{images-ZMZ4WLYH.js.map → images-XY5DLJEA.js.map} +0 -0
  449. /package/dist/{ingest-SGBJ3NXX.js.map → ingest-PUMTHASV.js.map} +0 -0
  450. /package/dist/{ingest-DGDNZWEM.js.map → ingest-WWNSA6VZ.js.map} +0 -0
  451. /package/dist/{insights-SQLE5NOJ.js.map → insights-PZXFCMX2.js.map} +0 -0
  452. /package/dist/{inspect-BMQTTKMW.js.map → inspect-5PRLZLF5.js.map} +0 -0
  453. /package/dist/{intent-LM36WK45.js.map → intent-4QVVI4FF.js.map} +0 -0
  454. /package/dist/{keyword-gap-P652ODHN.js.map → keyword-gap-YMMDRYVK.js.map} +0 -0
  455. /package/dist/{keyword-metrics-MQLGGJBT.js.map → keyword-metrics-FB7FCYK6.js.map} +0 -0
  456. /package/dist/{keywords-for-site-JL6H2YGU.js.map → keywords-for-site-YZYALONY.js.map} +0 -0
  457. /package/dist/{landing-AJO2BPC2.js.map → landing-XOCPIOWX.js.map} +0 -0
  458. /package/dist/{languages-HL42MI7H.js.map → languages-R3Y2IOFU.js.map} +0 -0
  459. /package/dist/{leads-H6JIWVI6.js.map → leads-SWINPYEP.js.map} +0 -0
  460. /package/dist/{learn-RGO5KDHS.js.map → learn-6HVDSTTJ.js.map} +0 -0
  461. /package/dist/{line-item-writes-V7AKAHFC.js.map → line-item-writes-FG3TY4W4.js.map} +0 -0
  462. /package/dist/{line-items-GAMKVVIQ.js.map → line-items-ZNVBFA4H.js.map} +0 -0
  463. /package/dist/{link-Z5AQP6JN.js.map → link-IFEXIUDW.js.map} +0 -0
  464. /package/dist/{linkedin-7F6YVXQL.js.map → linkedin-NINSMEW6.js.map} +0 -0
  465. /package/dist/{list-XZVQWIJN.js.map → list-FR2OVRVL.js.map} +0 -0
  466. /package/dist/{list-NLGM3QDP.js.map → list-K65FY6SV.js.map} +0 -0
  467. /package/dist/{list-SZH6TH74.js.map → list-RJG3FMZR.js.map} +0 -0
  468. /package/dist/{locations-AEGZ36JH.js.map → locations-6IH7WGRG.js.map} +0 -0
  469. /package/dist/{locations-YA7NZY44.js.map → locations-VL2G22Y5.js.map} +0 -0
  470. /package/dist/{log-JM4VLJE4.js.map → log-TAKCMC2C.js.map} +0 -0
  471. /package/dist/{map-HRLUMCR2.js.map → map-DWLEYXSW.js.map} +0 -0
  472. /package/dist/{mcp-T6SAG4XB.js.map → mcp-NNQZ5B7N.js.map} +0 -0
  473. /package/dist/{media-sources-7AS3274L.js.map → media-sources-OAFBA62X.js.map} +0 -0
  474. /package/dist/{members-J5KWXTXY.js.map → members-SS7IBYVE.js.map} +0 -0
  475. /package/dist/{metrics-VDBJ6KL7.js.map → metrics-YLAREC4T.js.map} +0 -0
  476. /package/dist/{models-2DQ5NBMT.js.map → models-IH6KE6OH.js.map} +0 -0
  477. /package/dist/{normalize-CHZB4QDD.js.map → normalize-WOZTAI6C.js.map} +0 -0
  478. /package/dist/{options-QLXFLESP.js.map → options-PL44BV5E.js.map} +0 -0
  479. /package/dist/{organization-KEGKAP4P.js.map → organization-SQBODZUK.js.map} +0 -0
  480. /package/dist/{performance-SPGPGXE5.js.map → performance-WRARV3YR.js.map} +0 -0
  481. /package/dist/{pixels-6IUB3Y3H.js.map → pixels-DWW2TDY2.js.map} +0 -0
  482. /package/dist/{promoted-tweet-writes-TRR3KPRJ.js.map → promoted-tweet-writes-CAD3RGU4.js.map} +0 -0
  483. /package/dist/{promoted-tweets-XRYZNJI2.js.map → promoted-tweets-NYJP3TXL.js.map} +0 -0
  484. /package/dist/{publish-V5YGMK53.js.map → publish-ZW6VHB27.js.map} +0 -0
  485. /package/dist/{query-M3IO54U2.js.map → query-QRPBV2AR.js.map} +0 -0
  486. /package/dist/{reddit-STSECKMZ.js.map → reddit-VJTNXORD.js.map} +0 -0
  487. /package/dist/{refresh-RQ3C2MHI.js.map → refresh-6I52WXG5.js.map} +0 -0
  488. /package/dist/{release-UHGU5WBY.js.map → release-LSSYP2ZJ.js.map} +0 -0
  489. /package/dist/{relevant-pages-G6SNC73K.js.map → relevant-pages-2XHS5WP4.js.map} +0 -0
  490. /package/dist/{remove-LTKICIIF.js.map → remove-K62YJYGT.js.map} +0 -0
  491. /package/dist/{reopen-BP5ERELB.js.map → reopen-RPVEBQVR.js.map} +0 -0
  492. /package/dist/{rerun-R3DNEV5U.js.map → rerun-ETH2NEEX.js.map} +0 -0
  493. /package/dist/{research-MBAPL35Y.js.map → research-4ASN2KMB.js.map} +0 -0
  494. /package/dist/{research-GOYMTKZM.js.map → research-6J3EOBAL.js.map} +0 -0
  495. /package/dist/{reset-SJPGSQ7I.js.map → reset-ETORO5UO.js.map} +0 -0
  496. /package/dist/{reset-Q62PEGOU.js.map → reset-YVTYHSTY.js.map} +0 -0
  497. /package/dist/{resolve-R45W7QEQ.js.map → resolve-BI7GB5U2.js.map} +0 -0
  498. /package/dist/{retry-NBZ7Q6HK.js.map → retry-2ZZCKSRW.js.map} +0 -0
  499. /package/dist/{retry-CD2Q2AJN.js.map → retry-QZ7YHXF3.js.map} +0 -0
  500. /package/dist/{rules-SZIY67QF.js.map → rules-KEHQEXEU.js.map} +0 -0
  501. /package/dist/{rules-add-KTLHU3YD.js.map → rules-add-IDBWO6XV.js.map} +0 -0
  502. /package/dist/{run-QYIUO4NB.js.map → run-FFASB4YB.js.map} +0 -0
  503. /package/dist/{run-HCJKCEOL.js.map → run-KYEOLJFV.js.map} +0 -0
  504. /package/dist/{scaffold-ad-NIVJSO73.js.map → scaffold-ad-EKCXHZPT.js.map} +0 -0
  505. /package/dist/{scaffold-static-ad-QX2NUXFR.js.map → scaffold-static-ad-MWKTXATN.js.map} +0 -0
  506. /package/dist/{scaffold-video-NXBM54K3.js.map → scaffold-video-BYPPH352.js.map} +0 -0
  507. /package/dist/{schedule-BSQHXJ5V.js.map → schedule-4BK2ML6F.js.map} +0 -0
  508. /package/dist/{scheduled-agents-MFLMG34I.js.map → scheduled-agents-GMGP3G6T.js.map} +0 -0
  509. /package/dist/{schema-IWPG3YSN.js.map → schema-QPPWADIL.js.map} +0 -0
  510. /package/dist/{search-EGI5K77S.js.map → search-GCSQ6CSD.js.map} +0 -0
  511. /package/dist/{select-Q4S4CPKV.js.map → select-CPFKK57J.js.map} +0 -0
  512. /package/dist/{set-prompt-3MVZW3L6.js.map → set-prompt-TJ3UTNYS.js.map} +0 -0
  513. /package/dist/{setup-links-5ILQNMFZ.js.map → setup-links-C3EUV2RX.js.map} +0 -0
  514. /package/dist/{site-LBXNVRPE.js.map → site-W5W7FCUD.js.map} +0 -0
  515. /package/dist/{sources-GP4PUTX2.js.map → sources-AWODYZDS.js.map} +0 -0
  516. /package/dist/{sources-N4UANUHJ.js.map → sources-SGGLJIOA.js.map} +0 -0
  517. /package/dist/{stale-NT2JRQHY.js.map → stale-KILEXX57.js.map} +0 -0
  518. /package/dist/{status-GSFMLC6W.js.map → status-KUSLGZD7.js.map} +0 -0
  519. /package/dist/{studio-YB5WXQYC.js.map → studio-LMDDQWRY.js.map} +0 -0
  520. /package/dist/{sync-LIV7FU4N.js.map → sync-TCY4NX7J.js.map} +0 -0
  521. /package/dist/{sync-definition-6XPX6VJU.js.map → sync-definition-DGSAZGQZ.js.map} +0 -0
  522. /package/dist/{tags-ZHCGHGYC.js.map → tags-IHLO2NDM.js.map} +0 -0
  523. /package/dist/{tags-6RQVXS47.js.map → tags-QQLYW2QQ.js.map} +0 -0
  524. /package/dist/{tags-AAIFQ6LS.js.map → tags-QXRKKRIR.js.map} +0 -0
  525. /package/dist/{tags-F355NMIR.js.map → tags-U5YWCPFW.js.map} +0 -0
  526. /package/dist/{tags-4JQX7HMT.js.map → tags-ZYVOKGHU.js.map} +0 -0
  527. /package/dist/{targeting-criteria-6FY2JB3V.js.map → targeting-criteria-AEBSY6OY.js.map} +0 -0
  528. /package/dist/{targets-NI7TR4GV.js.map → targets-5Q2OFVXL.js.map} +0 -0
  529. /package/dist/{testimonials-G7CCH7VN.js.map → testimonials-O52ULRAU.js.map} +0 -0
  530. /package/dist/{themes-PXDXIKYR.js.map → themes-26XFWSWC.js.map} +0 -0
  531. /package/dist/{top-companies-YH2ZJEH5.js.map → top-companies-OMGAFFWN.js.map} +0 -0
  532. /package/dist/{translate-27DIFMBU.js.map → translate-C5LZ6KVN.js.map} +0 -0
  533. /package/dist/{triggers-WYFM7PAH.js.map → triggers-PTPG6OQ6.js.map} +0 -0
  534. /package/dist/{unlink-PTWUSM5B.js.map → unlink-3BAXM2OH.js.map} +0 -0
  535. /package/dist/{unstage-MCM6EZWK.js.map → unstage-EFW465VN.js.map} +0 -0
  536. /package/dist/{update-V6E3CIFD.js.map → update-2RCIXWP3.js.map} +0 -0
  537. /package/dist/{update-643S2MUW.js.map → update-5A7Q7S6I.js.map} +0 -0
  538. /package/dist/{update-2BDIJDHN.js.map → update-VTUB2M5I.js.map} +0 -0
  539. /package/dist/{update-GUIP6G3N.js.map → update-XPRHUFBR.js.map} +0 -0
  540. /package/dist/{upload-3YJJ5VID.js.map → upload-Y3TACPEN.js.map} +0 -0
  541. /package/dist/{url-options-LHS4SWWB.js.map → url-options-6CNDIUDM.js.map} +0 -0
  542. /package/dist/{url-params-2DKIXKHH.js.map → url-params-ZUYOLAJG.js.map} +0 -0
  543. /package/dist/{validate-AYPLNS7A.js.map → validate-KPJLIGYY.js.map} +0 -0
  544. /package/dist/{videos-KEDR4GG3.js.map → videos-EFMNE6U2.js.map} +0 -0
  545. /package/dist/{viewer-check-TSH3SAYJ.js.map → viewer-check-2GI26EKA.js.map} +0 -0
  546. /package/dist/{web-UOGBNAHR.js.map → web-4JGYRY36.js.map} +0 -0
  547. /package/dist/{winning-ads-SGBI3WHK.js.map → winning-ads-6SXA4HGB.js.map} +0 -0
  548. /package/dist/{write-commands-E7JOB4HX.js.map → write-commands-LQXKNBA5.js.map} +0 -0
  549. /package/dist/{x-UNSN57YP.js.map → x-LUEUC3XO.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ACTION_TEMP_ID_PREFIX
3
- } from "./chunk-FRK7SSEH.js";
3
+ } from "./chunk-2QSPPWOU.js";
4
4
  import {
5
5
  ApiError
6
6
  } from "./chunk-XDZVBX6L.js";
@@ -169,4 +169,4 @@ export {
169
169
  buildListHints,
170
170
  buildGetHints
171
171
  };
172
- //# sourceMappingURL=chunk-JFA4R3KS.js.map
172
+ //# sourceMappingURL=chunk-QYAI24PN.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  failApi
3
- } from "./chunk-JFA4R3KS.js";
3
+ } from "./chunk-QYAI24PN.js";
4
4
  import {
5
5
  HUBSPOT_MISSING_GRANT_MARKER,
6
6
  HUBSPOT_NOT_CONNECTED_MESSAGE
7
- } from "./chunk-FRK7SSEH.js";
7
+ } from "./chunk-2QSPPWOU.js";
8
8
  import {
9
9
  ApiError
10
10
  } from "./chunk-XDZVBX6L.js";
@@ -48,4 +48,4 @@ export {
48
48
  hubspotRefusal,
49
49
  failNotConnected
50
50
  };
51
- //# sourceMappingURL=chunk-DQC4NIJE.js.map
51
+ //# sourceMappingURL=chunk-QZHGIJOW.js.map
@@ -3,10 +3,10 @@ import {
3
3
  parseDefinitionDelivery,
4
4
  resolveDelivery,
5
5
  resolveFormatList
6
- } from "./chunk-5RCCESDX.js";
6
+ } from "./chunk-PNVEV3XP.js";
7
7
  import {
8
8
  AD_PLACEMENTS
9
- } from "./chunk-T6ATGN7Y.js";
9
+ } from "./chunk-F3CZFUXZ.js";
10
10
  import {
11
11
  CAPABILITY_SURFACES
12
12
  } from "./chunk-XQIOCIDO.js";
@@ -88,4 +88,4 @@ export {
88
88
  deliveryDefinitionFields,
89
89
  deliveryNote
90
90
  };
91
- //# sourceMappingURL=chunk-WD5BQBVY.js.map
91
+ //# sourceMappingURL=chunk-REMR5FHD.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-5WMTPYKT.js";
4
4
  import {
5
5
  askAboutText
6
- } from "./chunk-ZBV5IV5T.js";
6
+ } from "./chunk-B7FVPHCW.js";
7
7
 
8
8
  // src/engine/brand/brand-doc.ts
9
9
  import { createHash } from "crypto";
@@ -128,4 +128,4 @@ export {
128
128
  LOGO_FILE,
129
129
  readWorkspaceBrandDoc
130
130
  };
131
- //# sourceMappingURL=chunk-AS5VL32C.js.map
131
+ //# sourceMappingURL=chunk-RGX7AQ2K.js.map
@@ -2,11 +2,11 @@ import {
2
2
  IDEA_VIDEO_FORMATS,
3
3
  figuresIn,
4
4
  unsourcedClaims
5
- } from "./chunk-MMVLRUMK.js";
5
+ } from "./chunk-TY4BDVLG.js";
6
6
  import {
7
7
  AD_SPEC_SCHEMA,
8
8
  unfitReasons
9
- } from "./chunk-U2452GLO.js";
9
+ } from "./chunk-F5IH7G2F.js";
10
10
  import {
11
11
  proofStrength
12
12
  } from "./chunk-WNSE7N75.js";
@@ -15,7 +15,7 @@ import {
15
15
  import { parse, parseDocument, Scalar, visit } from "yaml";
16
16
  var REFERENCE_CANDIDATES = 6;
17
17
  function isVideoIdea(idea) {
18
- return IDEA_VIDEO_FORMATS.includes(idea.format);
18
+ return IDEA_VIDEO_FORMATS.includes(idea.format ?? "");
19
19
  }
20
20
  var BY_TEMPERATURE = {
21
21
  cold: { audienceTemperature: "0_cold", excludeBrandReliant: true },
@@ -48,8 +48,20 @@ function referenceSearchesFor(idea, temperature, where = {}) {
48
48
  const { query: _query, ...winners } = anyStage;
49
49
  const { query: _anyQuery, country: _winnersCountry, ...winnersAnywhere } = anyViewer;
50
50
  const inMarket = (steps) => where.country ? steps : [];
51
+ const shows = idea.shows?.trim();
52
+ const { formatPattern: _shownPattern, ...anyCategory } = { ...anyStage, scope: "all" };
53
+ const { country: _shownCountry, ...anyCategoryAnywhere } = anyCategory;
54
+ const { country: _viewerCountry, ...anyViewerAnywhere } = anyViewer;
55
+ const { formatPattern: _anyPattern, ...shownAnyViewer } = anyViewerAnywhere;
56
+ const shown = shows ? [
57
+ ...inMarket([{ ...anyCategory, query: shows }]),
58
+ { ...anyCategoryAnywhere, query: shows },
59
+ { ...shownAnyViewer, query: shows },
60
+ ...idea.format ? [{ ...anyViewerAnywhere, query: shows }] : []
61
+ ] : [];
51
62
  const anyAd = (query) => query?.trim() ? [...inMarket([{ ...anyContainer, query: query.trim() }]), { ...anyContainerAnywhere, query: query.trim() }] : [];
52
63
  return [
64
+ ...shown,
53
65
  ...where.country ? [strict, anyStage, anyContainer] : [strict, anyStage],
54
66
  anywhere,
55
67
  anyContainerAnywhere,
@@ -83,7 +95,8 @@ function rankedForOf(brief, where, bet) {
83
95
  ...brief?.memesWhy ? { memesWhy: brief.memesWhy } : {},
84
96
  ...brief?.avoid.length ? { avoid: brief.avoid } : {},
85
97
  message: bet.message,
86
- who: bet.who
98
+ who: bet.who,
99
+ ...bet.shows ? { shows: bet.shows } : {}
87
100
  };
88
101
  }
89
102
  var brandKey = (name) => name.normalize("NFD").replace(new RegExp("\\p{M}", "gu"), "").toLowerCase().replace(/[^\p{L}\p{N}]/gu, "");
@@ -193,6 +206,7 @@ function fitBetOf(idea, personas, insights, market) {
193
206
  message: idea.message,
194
207
  awareness: idea.awareness,
195
208
  angle: idea.angle,
209
+ ...idea.shows ? { shows: idea.shows } : {},
196
210
  ...quotes.length > 0 ? { quotes } : {},
197
211
  ...market ? { market } : {}
198
212
  };
@@ -215,15 +229,16 @@ function unsourcedCopyLines(specJson, corpus) {
215
229
  }
216
230
  var PHOTO_FORMATS = /photo|lifestyle|before_after|ugc|product|selfie|street/;
217
231
  function ideaSpec(idea, who) {
218
- const container = idea.format.replace(/_/g, " ");
232
+ const container = idea.format ? `, as a ${idea.format.replace(/_/g, " ")}` : "";
233
+ const shows = idea.shows ? ` (${idea.shows})` : "";
219
234
  return {
220
235
  schema: AD_SPEC_SCHEMA,
221
236
  viewer: { who },
222
237
  message: idea.message,
223
238
  copy: [{ text: "[TODO: the headline, in the customer's words]", lettering: "designed", role: "headline" }],
224
239
  scene: {
225
- description: `[TODO: what the viewer sees, as a ${container}, that shows: ${idea.message}]`,
226
- look: PHOTO_FORMATS.test(idea.format) ? "photo" : "designed"
240
+ description: `[TODO: what the viewer sees first${shows}${container}, that shows: ${idea.message}]`,
241
+ look: PHOTO_FORMATS.test(idea.format ?? idea.shows ?? "") ? "photo" : "designed"
227
242
  },
228
243
  colors: [],
229
244
  references: [],
@@ -257,4 +272,4 @@ export {
257
272
  unsourcedCopyLines,
258
273
  ideaSpec
259
274
  };
260
- //# sourceMappingURL=chunk-RDCYPWQZ.js.map
275
+ //# sourceMappingURL=chunk-RMNKCVRB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/creatives/make-model.ts"],"sourcesContent":["/**\n * The rules `baker creatives make` applies to turn an idea into a creative: which reference to\n * look for, which one fits, and what the creative records about the idea it carries. Pure.\n */\nimport { proofStrength } from \"@baker/api/ad-library\";\nimport { parse, parseDocument, Scalar, visit } from \"yaml\";\nimport { AD_SPEC_SCHEMA, type AdSpec, unfitReasons } from \"../../engine/scaffold/static-ad-spec.ts\";\nimport type { ViewerTemperature } from \"../../viewer-profile.ts\";\nimport type { PersonaEntry } from \"../canvas/viewer-check.ts\";\nimport type { FitAnswer, FitBet } from \"../winning-ads/fit.ts\";\nimport type { WinningAdsSearchArgs } from \"../winning-ads/search.ts\";\nimport { type EvidenceLevel, figuresIn, IDEA_VIDEO_FORMATS, type Idea, unsourcedClaims } from \"./ideas-model.ts\";\nimport type { ReferenceBrief } from \"./reference-brief.ts\";\nimport type { RankedFor } from \"./reference-rank.ts\";\n\nexport const REFERENCE_CANDIDATES = 6;\n\n/** Whether the idea is a video, built from beats, rather than a static from a reference. */\nexport function isVideoIdea(idea: Pick<Idea, \"format\">): boolean {\n return (IDEA_VIDEO_FORMATS as readonly string[]).includes(idea.format ?? \"\");\n}\n\n/** Who a reference was made for, by our viewer: a stranger's ad never leans on its own brand. */\nconst BY_TEMPERATURE: Record<ViewerTemperature, { audienceTemperature: string; excludeBrandReliant?: true }> = {\n cold: { audienceTemperature: \"0_cold\", excludeBrandReliant: true },\n warm: { audienceTemperature: \"1_warm_engaged,2_hot_visited\", excludeBrandReliant: true },\n hot: { audienceTemperature: \"3_customer\" },\n};\n\n/**\n * Where a reference is looked for: the company's market (`GB`), what it sells (\"rooftop solar\") and\n * who the ad is for (\"Bill-shocked homeowner\") and its broader industry (\"home energy\"), when known.\n */\nexport type ReferenceWhere = {\n country?: string;\n category?: string;\n audience?: string;\n /** Searches that widen from the ad, closest first: adjacent products, the same buyer, the same decision. */\n wider?: readonly string[];\n industry?: string;\n};\n\n/**\n * The library search for a static idea's reference: its container, made for our viewer, on what\n * the company sells (else the idea's message), in its market when given.\n */\nexport function referenceSearchFor(\n idea: Idea,\n temperature: ViewerTemperature,\n where: ReferenceWhere = {},\n): WinningAdsSearchArgs {\n return {\n query: where.category || idea.message,\n scope: \"followed-first\",\n platform: \"meta\",\n format: \"static\",\n formatPattern: idea.format,\n awareness: idea.awareness,\n ...BY_TEMPERATURE[temperature],\n ...(where.country ? { country: where.country } : {}),\n maxPerAdvertiser: 1,\n limit: REFERENCE_CANDIDATES,\n diverse: true,\n };\n}\n\n/**\n * The searches whose candidates are tried, best first. A proven ad of what the company sells comes\n * before the idea's container: its market, viewer and objections are ours, and its container is one\n * the thinking can keep or change. So: what the company sells, in its market (in the idea's\n * container for our viewer, loosened in turn, then any container), then anywhere; then ads made for\n * the same people, whatever they sell; then wider (an adjacent product, the same buyer buying\n * something else, the same kind of decision); then ads of the broader industry; then the message;\n * then the container's proven winners from any category, in the market and anywhere.\n * The library's judge scores an ad against the query: prod, Oct 2026, a customer's sentence about\n * one product matched no ad of another category and 13 of 15 ideas found nothing; dev, Oct 2026,\n * searched with the whole message, a UK solar installer's ads were checked against a crypto\n * exchange, a clinic and an English course, while the library held UK solar ads; and with the\n * container a filter, 7 of 10 companies found 0–2 ads of their own category.\n */\nexport function referenceSearchesFor(\n idea: Idea,\n temperature: ViewerTemperature,\n where: ReferenceWhere = {},\n): WinningAdsSearchArgs[] {\n const strict = referenceSearchFor(idea, temperature, where);\n const { awareness: _awareness, ...anyStage } = strict;\n const { audienceTemperature: _temperature, excludeBrandReliant: _reliant, ...viewerAny } = anyStage;\n const anyViewer = { ...viewerAny, scope: \"all\" as const };\n const { formatPattern: _pattern, ...anyContainer } = anyViewer;\n const { country: _country, ...anywhere } = anyViewer;\n const { country: _anyCountry, ...anyContainerAnywhere } = anyContainer;\n const { query: _query, ...winners } = anyStage;\n const { query: _anyQuery, country: _winnersCountry, ...winnersAnywhere } = anyViewer;\n const inMarket = (steps: WinningAdsSearchArgs[]) => (where.country ? steps : []);\n // What the idea shows, from any category: the picture that lands the message is found where it\n // won, and the ranking then asks whether it was made for our buyer.\n const shows = idea.shows?.trim();\n const { formatPattern: _shownPattern, ...anyCategory } = { ...anyStage, scope: \"all\" as const };\n const { country: _shownCountry, ...anyCategoryAnywhere } = anyCategory;\n const { country: _viewerCountry, ...anyViewerAnywhere } = anyViewer;\n const { formatPattern: _anyPattern, ...shownAnyViewer } = anyViewerAnywhere;\n const shown: WinningAdsSearchArgs[] = shows\n ? [\n ...inMarket([{ ...anyCategory, query: shows }]),\n { ...anyCategoryAnywhere, query: shows },\n { ...shownAnyViewer, query: shows },\n ...(idea.format ? [{ ...anyViewerAnywhere, query: shows }] : []),\n ]\n : [];\n const anyAd = (query: string | undefined) =>\n query?.trim()\n ? [...inMarket([{ ...anyContainer, query: query.trim() }]), { ...anyContainerAnywhere, query: query.trim() }]\n : [];\n return [\n ...shown,\n ...(where.country ? [strict, anyStage, anyContainer] : [strict, anyStage]),\n anywhere,\n anyContainerAnywhere,\n ...anyAd(where.audience),\n ...(where.wider ?? []).flatMap((q) => (q.trim() ? [{ ...anyContainerAnywhere, query: q.trim() }] : [])),\n ...anyAd(where.industry),\n ...(where.category ? [{ ...anyContainerAnywhere, query: idea.message }] : []),\n ...inMarket([{ ...winners, sort: \"winner\" }]),\n { ...winnersAnywhere, sort: \"winner\" },\n ];\n}\n\n/**\n * Where a reference is looked for, from the brief when the model read one (its market over the\n * notes' guess; every market when it says the ad runs in several), else from the notes. Pure.\n */\nexport function referenceWhereOf(brief: ReferenceBrief | null, fallback: ReferenceWhere): ReferenceWhere {\n if (!brief) return fallback;\n const country = brief.country === null ? undefined : (brief.country ?? fallback.country);\n const audience = brief.audience ?? fallback.audience;\n return {\n ...(country ? { country } : {}),\n category: brief.category,\n ...(brief.industry ? { industry: brief.industry } : {}),\n ...(audience ? { audience } : {}),\n ...(brief.wider.length ? { wider: brief.wider } : {}),\n };\n}\n\n/** The ad being made, as candidates are ranked and picked for it: the brief's read, else the search's words. Pure. */\nexport function rankedForOf(\n brief: ReferenceBrief | null,\n where: ReferenceWhere,\n bet: Pick<FitBet, \"who\" | \"message\" | \"shows\">,\n): RankedFor {\n return {\n category: brief?.category ?? where.category ?? bet.message,\n ...(brief?.industry ? { industry: brief.industry } : {}),\n ...(brief?.buyer ? { buyer: brief.buyer } : {}),\n ...(brief?.humour ? { humour: brief.humour } : {}),\n ...(brief?.memes ? { memes: brief.memes } : {}),\n ...(brief?.memesWhy ? { memesWhy: brief.memesWhy } : {}),\n ...(brief?.avoid.length ? { avoid: brief.avoid } : {}),\n message: bet.message,\n who: bet.who,\n ...(bet.shows ? { shows: bet.shows } : {}),\n };\n}\n\n/** A name as the library and a person may both spell it: no accents, case or punctuation. Pure. */\nconst brandKey = (name: string) =>\n name\n .normalize(\"NFD\")\n .replace(/\\p{M}/gu, \"\")\n .toLowerCase()\n .replace(/[^\\p{L}\\p{N}]/gu, \"\");\n\n/** Whether an ad's advertiser is the company itself, by its brand names (three letters or more). Pure. */\nexport function isOwnBrand(advertiser: string | null | undefined, brands: readonly string[]): boolean {\n const page = brandKey(advertiser ?? \"\");\n return page !== \"\" && brands.some((b) => brandKey(b).length >= 3 && page.includes(brandKey(b)));\n}\n\ntype PoolCandidate = { ad_id?: string | null; advertiser_id?: string | null; winner_score?: number | null };\n\n/**\n * Every search's candidates in one list, the better search's first, one ad per brand (each fit\n * tried is another brand's move), the ads whose run barely proves them (`proofStrength` \"little\")\n * after the proven ones, at most `limit`. Pure.\n */\nexport function pooledCandidates<T extends PoolCandidate>(searches: readonly T[][], limit: number): T[] {\n const seen = new Set<string>();\n const pooled: T[] = [];\n for (const candidate of searches.flat()) {\n const brand = candidate.advertiser_id ? `brand:${candidate.advertiser_id}` : null;\n if (!candidate.ad_id || seen.has(candidate.ad_id) || (brand && seen.has(brand))) continue;\n seen.add(candidate.ad_id);\n if (brand) seen.add(brand);\n pooled.push(candidate);\n }\n const proven = (c: T) => proofStrength(c.winner_score) !== \"little\";\n return [...pooled.filter(proven), ...pooled.filter((c) => !proven(c))].slice(0, limit);\n}\n\n/** The proven ads, and their brands, the workspace's other creatives are already built on. */\nexport type TakenReferences = { adIds: ReadonlySet<string>; advertiserIds: ReadonlySet<string> };\n\n/**\n * The candidates no other creative is built on first (neither the ad nor its brand), then the\n * rest, each in its order: a batch of ideas is no longer built on one winning ad over and over,\n * and one already used is still built on when nothing else fits. Pure.\n */\nexport function freshReferencesFirst<T extends PoolCandidate>(candidates: readonly T[], taken: TakenReferences): T[] {\n return [\n ...candidates.filter((c) => !isTakenReference(c, taken)),\n ...candidates.filter((c) => isTakenReference(c, taken)),\n ];\n}\n\n/** Whether another creative is built on this ad or on another ad of its brand. Pure. */\nexport function isTakenReference(c: PoolCandidate, taken: TakenReferences): boolean {\n return (\n (c.ad_id != null && taken.adIds.has(c.ad_id)) ||\n (c.advertiser_id != null && taken.advertiserIds.has(c.advertiser_id))\n );\n}\n\n/** A reference fits when what it wins on is something we can supply, and our viewer would stop for it. */\nexport function fitsIdea(fit: Pick<FitAnswer, \"verdict\" | \"load_bearing\" | \"our_viewer\">): boolean {\n return fit.verdict !== \"reject\" && missingElements(fit).length === 0 && fit.our_viewer?.stops !== \"no\";\n}\n\n/** The load-bearing elements a reference wins on that we have nothing for. Pure. */\nexport function missingElements(fit: Pick<FitAnswer, \"load_bearing\">): string[] {\n return fit.load_bearing.filter((l) => l.have === \"missing\" && !l.ours?.trim()).map((l) => l.element);\n}\n\n/**\n * Why a checked reference was not built on, in one line the person can hear: what stops the scroll\n * or the proof that cannot be ours first, with the rule that forbids it; else that our viewer would\n * not stop for it; else the check's own note. Pure.\n */\nexport function whyUnfit(fit: Pick<FitAnswer, \"load_bearing\" | \"our_viewer\" | \"transfer_note\">): string {\n const reasons = unfitReasons(fit);\n if (reasons.length > 0) return reasons.join(\"; \");\n if (fit.our_viewer?.stops === \"no\") {\n return `our viewer would not stop for it${fit.our_viewer.why ? `: ${fit.our_viewer.why}` : \"\"}`;\n }\n return fit.transfer_note?.trim() || \"the check found it does not carry this ad\";\n}\n\nexport type DefinitionStrategyFields = {\n idea: string;\n message: string;\n evidence?: EvidenceLevel;\n angle: string;\n persona: string;\n awareness: string;\n hypothesis: string;\n};\n\n/** What a creative records about the idea it executes. */\nexport function definitionFieldsOf(idea: Idea, evidence: EvidenceLevel | \"explore\"): DefinitionStrategyFields {\n return {\n idea: idea.id,\n message: idea.message,\n ...(evidence !== \"explore\" ? { evidence } : {}),\n angle: idea.angle,\n persona: idea.who,\n awareness: idea.awareness,\n hypothesis: idea.why,\n };\n}\n\nconst FRONTMATTER = /^---\\r?\\n([\\s\\S]*?\\r?\\n)?---/;\n\n/** Whether a bare string reads back as the same text under YAML 1.1. */\nfunction readsAsText11(text: string): boolean {\n try {\n return parse(text, { version: \"1.1\" }) === text;\n } catch {\n return false;\n }\n}\n\n/** Set fields in a markdown file's frontmatter, keeping every other field and the body. */\nexport function setDefinitionFields(raw: string, fields: Record<string, unknown>): string {\n const match = raw.match(FRONTMATTER);\n if (!match) return raw;\n const doc = parseDocument(match[1] ?? \"\");\n if (doc.errors.length > 0) return raw;\n for (const [key, value] of Object.entries(fields)) {\n if (value === undefined) continue;\n const node = doc.createNode(value);\n // The site reads frontmatter as YAML 1.1, where a bare 2026-10-04 is a date, not text.\n visit(node, {\n Scalar(_, scalar) {\n if (typeof scalar.value === \"string\" && !readsAsText11(scalar.value)) {\n scalar.type = Scalar.QUOTE_DOUBLE;\n }\n },\n });\n doc.set(key, node);\n }\n return `---\\n${doc.toString()}---${raw.slice(match[0].length)}`;\n}\n\n/** The ad spec with the idea's message as the one thing it tells the viewer. */\nexport function setSpecMessage(specJson: string, message: string): string {\n const spec = JSON.parse(specJson) as Record<string, unknown>;\n return `${JSON.stringify({ ...spec, message }, null, 2)}\\n`;\n}\n\n/**\n * The ad spec made for the idea's persona: its title and segment from the Knowledge (\"The owner on\n * the move (Owner, 30–55, 1–10 staff)\"), else the idea's own words. The image prompt, the casting\n * check and the viewer check all read `viewer.who`; a reference-built spec held only the\n * scaffold's placeholder. The market and what the viewer knows are kept. Pure.\n */\nexport function setSpecViewer(specJson: string, idea: Pick<Idea, \"who\">, personas: readonly PersonaEntry[]): string {\n const spec = JSON.parse(specJson) as Record<string, unknown>;\n const viewer = (spec.viewer ?? {}) as Record<string, unknown>;\n return `${JSON.stringify({ ...spec, viewer: { ...viewer, who: personaWho(idea, personas) } }, null, 2)}\\n`;\n}\n\n/** Who an idea is for, in its persona's words (\"The owner on the move (Owner, 30–55)\"), else its own. Pure. */\nexport function personaWho(idea: Pick<Idea, \"who\">, personas: readonly PersonaEntry[]): string {\n const persona = personas.find((p) => p.slug === idea.who);\n if (persona?.title) return `${persona.title}${persona.segment ? ` (${persona.segment})` : \"\"}`;\n return persona?.segment ?? idea.who.replace(/[-_]/g, \" \");\n}\n\n/** The most words the audience search keeps: the library's judge reads a long query slowly. */\nconst AUDIENCE_QUERY_WORDS = 9;\n\n/**\n * The people the idea is for, as a library search: its persona's own words, cut short. Dev, Oct\n * 2026: \"homeowners worried about rising energy bills\" found twelve proven energy ads where\n * \"rooftop solar\" in the idea's container found one. Pure.\n */\nexport function audienceQuery(idea: Pick<Idea, \"who\">, personas: readonly PersonaEntry[]): string {\n return personaWho(idea, personas)\n .replace(/\\(/g, \" \")\n .replace(/\\)/g, \"\")\n .split(/\\s+/)\n .filter(Boolean)\n .slice(0, AUDIENCE_QUERY_WORDS)\n .join(\" \")\n .replace(/[\\s,;:.–—-]+$/, \"\");\n}\n\n/** The ad being made, as the fit judges a reference for it: its persona, message and the customers' words it stands on. Pure. */\nexport function fitBetOf(\n idea: Pick<Idea, \"who\" | \"message\" | \"awareness\" | \"angle\" | \"evidence\" | \"shows\">,\n personas: readonly PersonaEntry[],\n insights: readonly { id: string; quote: string }[],\n market?: string,\n): FitBet {\n const quotes = insights.filter((i) => idea.evidence.includes(i.id)).map((i) => i.quote);\n return {\n who: personaWho(idea, personas),\n message: idea.message,\n awareness: idea.awareness,\n angle: idea.angle,\n ...(idea.shows ? { shows: idea.shows } : {}),\n ...(quotes.length > 0 ? { quotes } : {}),\n ...(market ? { market } : {}),\n };\n}\n\n/**\n * The ad spec with the concept the reference's fit read (`conceptFromFit`): a build started before\n * the fit answered has none, or only the one the scaffold drafted from its describe, which names no\n * reference and nothing of what we have; without the fit's, the render never sees the reference at\n * the level that won. A concept a fit already seeded (it names its reference) stays. Pure.\n */\nexport function withFitConcept(specJson: string, seeded: Record<string, unknown>): string {\n const spec = JSON.parse(specJson) as Record<string, unknown>;\n const held = spec.concept as { reference_ad_id?: unknown } | undefined;\n if (held?.reference_ad_id) return specJson;\n return `${JSON.stringify({ ...spec, ...seeded }, null, 2)}\\n`;\n}\n\n/**\n * The copy lines the scaffold drafted that claim a figure the company never wrote: a draft written\n * beside a competitor's ad can carry the competitor's promise. `corpus` is what the company wrote.\n */\nexport function unsourcedCopyLines(specJson: string, corpus: string): string[] {\n const spec = JSON.parse(specJson) as { copy?: unknown };\n const figures = figuresIn(corpus);\n const lines = Array.isArray(spec.copy) ? spec.copy : [];\n return lines.flatMap((line) => {\n const text = typeof line === \"object\" && line !== null ? (line as { text?: unknown }).text : undefined;\n return typeof text === \"string\" && unsourcedClaims(text, figures).length > 0 ? [text] : [];\n });\n}\n\n/** Containers shown as a photograph; every other container is a designed graphic or a screen. */\nconst PHOTO_FORMATS = /photo|lifestyle|before_after|ugc|product|selfie|street/;\n\n/**\n * The ad spec an idea starts from when no proven ad fits it: the message and who it is for are\n * the idea's; the scene and the copy are placeholders the agent writes before anything renders\n * (`canvas run` refuses a placeholder). Pure.\n */\nexport function ideaSpec(idea: Idea, who: string): AdSpec {\n const container = idea.format ? `, as a ${idea.format.replace(/_/g, \" \")}` : \"\";\n const shows = idea.shows ? ` (${idea.shows})` : \"\";\n return {\n schema: AD_SPEC_SCHEMA,\n viewer: { who },\n message: idea.message,\n copy: [{ text: \"[TODO: the headline, in the customer's words]\", lettering: \"designed\", role: \"headline\" }],\n scene: {\n description: `[TODO: what the viewer sees first${shows}${container}, that shows: ${idea.message}]`,\n look: PHOTO_FORMATS.test(idea.format ?? idea.shows ?? \"\") ? \"photo\" : \"designed\",\n },\n colors: [],\n references: [],\n logo: true,\n third_party_brands: [],\n scene_text: [],\n mechanism: [],\n };\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  latestVersion
3
- } from "./chunk-KQDAFZKR.js";
3
+ } from "./chunk-3ZHOBEQD.js";
4
4
  import {
5
5
  canvasOutputsRoot
6
6
  } from "./chunk-23H4ZJRP.js";
@@ -16,4 +16,4 @@ async function versionOf(slug, run) {
16
16
  export {
17
17
  versionOf
18
18
  };
19
- //# sourceMappingURL=chunk-WMVTIKET.js.map
19
+ //# sourceMappingURL=chunk-ROX7LQRR.js.map
@@ -9,7 +9,7 @@ import {
9
9
  IMAGE_GENERATE_MODELS,
10
10
  MODEL_REGISTRY,
11
11
  VIDEO_GENERATE_MODELS
12
- } from "./chunk-T6ATGN7Y.js";
12
+ } from "./chunk-F3CZFUXZ.js";
13
13
  import {
14
14
  ApiError,
15
15
  apiPost
@@ -95,4 +95,4 @@ export {
95
95
  CLIP_PERSON_GENERATION,
96
96
  resolveLibraryImageIds
97
97
  };
98
- //# sourceMappingURL=chunk-AQ5WISEG.js.map
98
+ //# sourceMappingURL=chunk-S7B2TOOU.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NUMERIC_ID_REGEX
3
- } from "./chunk-ML7DLFFY.js";
3
+ } from "./chunk-I2DNBEV6.js";
4
4
 
5
5
  // ../api/src/ads-google/change-history.ts
6
6
  var CHANGE_SCOPES = ["detail", "summary"];
@@ -225,4 +225,4 @@ export {
225
225
  googleKeywordForecastRequestSchema,
226
226
  urlOptionsHints
227
227
  };
228
- //# sourceMappingURL=chunk-7VHPAGPK.js.map
228
+ //# sourceMappingURL=chunk-SEPPFM5S.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  MODEL_REGISTRY,
3
3
  isRegisteredModel
4
- } from "./chunk-T6ATGN7Y.js";
4
+ } from "./chunk-F3CZFUXZ.js";
5
5
 
6
6
  // src/commands/canvas/scaffold-common.ts
7
7
  import { access, readFile } from "fs/promises";
@@ -73,4 +73,4 @@ export {
73
73
  fail,
74
74
  fileExists
75
75
  };
76
- //# sourceMappingURL=chunk-ORQKMXHA.js.map
76
+ //# sourceMappingURL=chunk-SIKCVWM3.js.map
@@ -6,7 +6,7 @@ import {
6
6
  calendarDaySchema,
7
7
  todayUtc,
8
8
  windowTooLong
9
- } from "./chunk-FRK7SSEH.js";
9
+ } from "./chunk-2QSPPWOU.js";
10
10
 
11
11
  // ../api/src/accounts/crm.ts
12
12
  import { z } from "zod";
@@ -1076,4 +1076,4 @@ export {
1076
1076
  accountsCampaignsRequestSchema,
1077
1077
  ACCOUNTS_NO_SETTINGS_MESSAGE
1078
1078
  };
1079
- //# sourceMappingURL=chunk-UMZIQIWN.js.map
1079
+ //# sourceMappingURL=chunk-SK2N45LO.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  GEO_TARGET_COUNTRIES,
3
3
  LANGUAGE_CONSTANTS
4
- } from "./chunk-ML7DLFFY.js";
4
+ } from "./chunk-I2DNBEV6.js";
5
5
 
6
6
  // src/geo-context.ts
7
7
  function toOptions(names) {
@@ -147,4 +147,4 @@ export {
147
147
  buildResearchQueryContext,
148
148
  warnDefaults
149
149
  };
150
- //# sourceMappingURL=chunk-FEELV5IV.js.map
150
+ //# sourceMappingURL=chunk-SQ7DRYCC.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  finalOutputLabelsFromCanvas
3
- } from "./chunk-4VWTIT5C.js";
3
+ } from "./chunk-U63S2JWI.js";
4
4
  import {
5
5
  readRenderState
6
- } from "./chunk-KQDAFZKR.js";
6
+ } from "./chunk-3ZHOBEQD.js";
7
7
  import {
8
8
  STATIC_AD_ROLE,
9
9
  fixBriefNode,
@@ -14,10 +14,10 @@ import {
14
14
  plateFixPrompt,
15
15
  sameTag,
16
16
  seriesMemberAd
17
- } from "./chunk-5RCCESDX.js";
17
+ } from "./chunk-PNVEV3XP.js";
18
18
  import {
19
19
  fetchRunRecord
20
- } from "./chunk-ABXTGAG7.js";
20
+ } from "./chunk-MK3OJZIU.js";
21
21
  import {
22
22
  localPathParam
23
23
  } from "./chunk-23H4ZJRP.js";
@@ -42,14 +42,14 @@ import {
42
42
  relaidPictureRole,
43
43
  rolesById,
44
44
  staticMasterFormat
45
- } from "./chunk-ELL2IQMF.js";
45
+ } from "./chunk-QTLZXIF3.js";
46
46
  import {
47
47
  isAdSpec,
48
48
  readAdSpec
49
- } from "./chunk-U2452GLO.js";
49
+ } from "./chunk-F5IH7G2F.js";
50
50
  import {
51
51
  canonicalize
52
- } from "./chunk-T6ATGN7Y.js";
52
+ } from "./chunk-F3CZFUXZ.js";
53
53
  import {
54
54
  sha256Hex,
55
55
  toModelSafeImage
@@ -939,4 +939,4 @@ export {
939
939
  writeSeriesMemberCanvas,
940
940
  seriesRunHints
941
941
  };
942
- //# sourceMappingURL=chunk-U4W4LULB.js.map
942
+ //# sourceMappingURL=chunk-TBHRRQZD.js.map
@@ -7,21 +7,21 @@ import {
7
7
  readPersonaIds,
8
8
  sameMessageRead,
9
9
  workspaceIdeasJudge
10
- } from "./chunk-BSEB55E6.js";
10
+ } from "./chunk-QKABEX3F.js";
11
11
  import {
12
12
  readAllRules
13
- } from "./chunk-7U3V64YT.js";
13
+ } from "./chunk-64HQDJ2E.js";
14
14
  import {
15
15
  IDEA_ANGLES,
16
16
  IDEA_FORMATS,
17
17
  checkIdeas
18
- } from "./chunk-MMVLRUMK.js";
18
+ } from "./chunk-TY4BDVLG.js";
19
19
  import {
20
20
  findWorkspaceRoot
21
21
  } from "./chunk-23H4ZJRP.js";
22
22
  import {
23
23
  selectRules
24
- } from "./chunk-ZBV5IV5T.js";
24
+ } from "./chunk-B7FVPHCW.js";
25
25
  import {
26
26
  marketFromCompanyDoc
27
27
  } from "./chunk-KPYDTIAI.js";
@@ -37,7 +37,7 @@ import { defineCommand } from "citty";
37
37
  var BUILD_NEXT = 3;
38
38
  var DESCRIPTION = `Check and rank the ad ideas in src/creatives/_ideas/: is each backed by something a customer said (src/content/insights/), does it claim only what the Knowledge holds, is it a different ad from the others, does it fill a gap the live ads leave. Free and local.
39
39
 
40
- Start here, after writing 4-8 idea files (one per file, eight fields: who, message, evidence, awareness, angle, format, job, why):
40
+ Start here, after writing 4-8 idea files (one per file: who, message, evidence, awareness, angle, shows, job, why; format only for a video or a container the person asked for):
41
41
  baker creatives ideas # ranked, with problems; build_next names the ones to make
42
42
  baker creatives make <idea> # then build each one in build_next
43
43
  An idea with a problem is not built until it is fixed. An idea with no evidence is an explore bet: it may be built, and says so.`;
@@ -55,7 +55,7 @@ function ideasHints(report) {
55
55
  const toBuild = report.ideas.filter((i) => i.status === "idea");
56
56
  if (toBuild.length === 0 && report.unreadable.length === 0) {
57
57
  hints.push(
58
- "No ideas yet. Write 4-8 files in src/creatives/_ideas/<idea>.md (who, message, evidence, awareness, angle, format, job, why), then run this again."
58
+ "No ideas yet. Write 4-8 files in src/creatives/_ideas/<idea>.md (who, message, evidence, awareness, angle, shows, job, why), then run this again."
59
59
  );
60
60
  }
61
61
  if (report.unreadable.length > 0) {
@@ -91,7 +91,8 @@ function compactIdea(check) {
91
91
  ...check.quote ? { quote: check.quote.length > 120 ? `${check.quote.slice(0, 117)}...` : check.quote } : {},
92
92
  awareness: check.awareness,
93
93
  angle: check.angle,
94
- format: check.format,
94
+ ...check.shows ? { shows: check.shows } : {},
95
+ ...check.format ? { format: check.format } : {},
95
96
  platforms: check.platforms ?? "unset",
96
97
  ...check.problems.length > 0 ? { problems: check.problems } : {},
97
98
  ...check.warnings.length > 0 ? { warnings: check.warnings } : {}
@@ -156,4 +157,4 @@ export {
156
157
  ideasReport,
157
158
  ideasCommand
158
159
  };
159
- //# sourceMappingURL=chunk-PQTY22FR.js.map
160
+ //# sourceMappingURL=chunk-TGIL4L4L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/creatives/ideas.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { defineCommand } from \"citty\";\nimport { readAllRules } from \"../../engine/creative-context/index.ts\";\nimport { selectRules } from \"../../engine/creative-rules/select.ts\";\nimport type { AskNouls } from \"../../engine/lib/remembered-nouls.ts\";\nimport { writeJson } from \"../../output.ts\";\nimport { registerSchema } from \"../../schemas.ts\";\nimport { marketFromCompanyDoc } from \"../../viewer-profile.ts\";\nimport { findWorkspaceRoot } from \"../canvas/normalize-paths.ts\";\nimport { sameMessageRead } from \"./ideas-judgments.ts\";\nimport { checkIdeas, IDEA_ANGLES, IDEA_FORMATS, type IdeaCheck } from \"./ideas-model.ts\";\nimport {\n coverageOf,\n readCreativeRecords,\n readIdeas,\n readInsights,\n readKnowledgeCorpus,\n readPersonaIds,\n type UnreadableIdea,\n workspaceIdeasJudge,\n} from \"./ideas-workspace.ts\";\n\nconst BUILD_NEXT = 3;\n\nconst DESCRIPTION = `Check and rank the ad ideas in src/creatives/_ideas/: is each backed by something a customer said (src/content/insights/), does it claim only what the Knowledge holds, is it a different ad from the others, does it fill a gap the live ads leave. Free and local.\n\nStart here, after writing 4-8 idea files (one per file: who, message, evidence, awareness, angle, shows, job, why; format only for a video or a container the person asked for):\n baker creatives ideas # ranked, with problems; build_next names the ones to make\n baker creatives make <idea> # then build each one in build_next\nAn idea with a problem is not built until it is fixed. An idea with no evidence is an explore bet: it may be built, and says so.`;\n\nconst ARGS = {\n full: {\n type: \"boolean\",\n description: \"Every idea with its warnings and gaps, and the allowed angle and format values\",\n required: false,\n default: false,\n },\n} as const;\n\nregisterSchema({ command: \"creatives.ideas\", description: DESCRIPTION, args: ARGS });\n\ntype IdeasReport = {\n ideas: IdeaCheck[];\n unreadable: UnreadableIdea[];\n insightCount: number;\n observedCount: number;\n};\n\n/** What the agent does next. Pure. */\nexport function ideasHints(report: IdeasReport): string[] {\n const hints: string[] = [];\n const toBuild = report.ideas.filter((i) => i.status === \"idea\");\n if (toBuild.length === 0 && report.unreadable.length === 0) {\n hints.push(\n \"No ideas yet. Write 4-8 files in src/creatives/_ideas/<idea>.md (who, message, evidence, awareness, angle, shows, job, why), then run this again.\",\n );\n }\n if (report.unreadable.length > 0) {\n hints.push(`Fix ${report.unreadable.map((u) => u.id).join(\", \")}: each names what is missing or unknown.`);\n }\n const blocked = toBuild.filter((i) => i.problems.length > 0);\n if (blocked.length > 0) hints.push(`Fix before building: ${blocked.map((i) => i.id).join(\", \")}.`);\n if (report.observedCount < 3) {\n hints.push(\n \"Few customer quotes on file: run `baker research customers` so ideas stand on what customers said; until then they are explore bets.\",\n );\n } else if (toBuild.length > 0 && toBuild.every((i) => i.evidence === \"explore\")) {\n hints.push(\"No idea cites an insight: put the insight ids that back each one in its `evidence`.\");\n }\n const next = buildNext(report.ideas);\n if (next.length === 1) hints.push(`Build: \\`baker creatives make ${next[0]}\\`.`);\n // A render takes about five minutes: built one after another, three ideas took forty (dev, Oct 2026).\n if (next.length > 1)\n hints.push(\n `Build ${next.join(\", \")} at once: one \\`creative-producer\\` per idea, all spawned in one message in the background, each given its idea id, and handle each as it returns. Never build them one after another: each render takes minutes. Edited an idea after this check? Run \\`baker creatives ideas\\` again first: a producer cannot build an idea with a problem.`,\n );\n return hints;\n}\n\n/** The ideas to build now: the best-ranked ones still to build with nothing blocking. Pure. */\nexport function buildNext(ideas: readonly IdeaCheck[], count = BUILD_NEXT): string[] {\n // One explore bet a batch: the rest stand on what customers said.\n const ready = ideas.filter((i) => i.status === \"idea\" && i.problems.length === 0);\n const firstBet = ready.find((i) => i.evidence === \"explore\");\n return ready\n .filter((i) => i.evidence !== \"explore\" || i === firstBet)\n .slice(0, count)\n .map((i) => i.id);\n}\n\n/** One idea as the agent reads it by default: what decides building it, nothing more. Pure. */\nexport function compactIdea(check: IdeaCheck) {\n return {\n idea: check.id,\n status: check.status,\n evidence: check.evidence,\n ...(check.quote ? { quote: check.quote.length > 120 ? `${check.quote.slice(0, 117)}...` : check.quote } : {}),\n awareness: check.awareness,\n angle: check.angle,\n ...(check.shows ? { shows: check.shows } : {}),\n ...(check.format ? { format: check.format } : {}),\n platforms: check.platforms ?? (\"unset\" as const),\n ...(check.problems.length > 0 ? { problems: check.problems } : {}),\n ...(check.warnings.length > 0 ? { warnings: check.warnings } : {}),\n };\n}\n\n/** Everything `checkIdeas` needs, read from the workspace. */\nexport async function ideasReport(root: string, opts: { ask?: AskNouls } = {}): Promise<IdeasReport> {\n const judge = opts.ask ? { ask: opts.ask, done: () => Promise.resolve() } : workspaceIdeasJudge(root);\n const [{ ideas, unreadable }, insights, knowledge, personas, creatives, rules, companyDoc] = await Promise.all([\n readIdeas(root),\n readInsights(root, { ask: judge.ask }),\n readKnowledgeCorpus(root),\n readPersonaIds(root),\n readCreativeRecords(root),\n readAllRules(root).then((all) => selectRules(all, {})),\n readFile(path.join(root, \"COMPANY.md\"), \"utf8\").catch(() => null),\n ]);\n const language = marketFromCompanyDoc(companyDoc)?.language;\n const sameMessage = await sameMessageRead(ideas, judge.ask);\n await judge.done();\n const checked = checkIdeas({\n ideas,\n insights,\n knowledge,\n personas,\n sameMessage,\n rules,\n ...(language ? { language } : {}),\n ...coverageOf(ideas, creatives),\n });\n return {\n ideas: checked,\n unreadable,\n insightCount: insights.length,\n observedCount: insights.filter((i) => i.status === \"observed\").length,\n };\n}\n\nexport const ideasCommand = defineCommand({\n meta: { name: \"ideas\", description: DESCRIPTION },\n args: ARGS,\n async run({ args }) {\n const root = findWorkspaceRoot(process.cwd()) ?? process.cwd();\n const report = await ideasReport(root);\n const full = args.full === true;\n writeJson({\n ok: true,\n data: {\n build_next: buildNext(report.ideas),\n ideas: full ? report.ideas : report.ideas.map(compactIdea),\n ...(report.unreadable.length > 0 ? { unreadable: report.unreadable } : {}),\n customer_quotes: { total: report.insightCount, observed: report.observedCount },\n ...(full ? { allowed: { angle: IDEA_ANGLES, format: IDEA_FORMATS } } : {}),\n },\n hints: ideasHints(report),\n });\n },\n});\n"],"mappings":"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","names":[]}
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  X_DRAFT_BATCH_MAX,
13
13
  xDraftOpInputSchema
14
- } from "./chunk-FRK7SSEH.js";
14
+ } from "./chunk-2QSPPWOU.js";
15
15
  import {
16
16
  ApiError,
17
17
  apiPost
@@ -166,4 +166,4 @@ export {
166
166
  requireTarget,
167
167
  requireTargets
168
168
  };
169
- //# sourceMappingURL=chunk-CCIDHU6M.js.map
169
+ //# sourceMappingURL=chunk-TKPVVD52.js.map
@@ -13,7 +13,7 @@ import {
13
13
  MAX_EVENT_NAME,
14
14
  REJECTION_CODES,
15
15
  STANDARD_EVENT_NAMES
16
- } from "./chunk-FRK7SSEH.js";
16
+ } from "./chunk-2QSPPWOU.js";
17
17
 
18
18
  // ../api/src/event-ingest/arrivals.ts
19
19
  import { z } from "zod";
@@ -430,4 +430,4 @@ export {
430
430
  eventIngestUrl,
431
431
  ingestBrief
432
432
  };
433
- //# sourceMappingURL=chunk-NCP6RD6A.js.map
433
+ //# sourceMappingURL=chunk-TNB5EIFV.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-BC2BXRXY.js";
4
4
  import {
5
5
  flowNodeTriggers
6
- } from "./chunk-FRK7SSEH.js";
6
+ } from "./chunk-2QSPPWOU.js";
7
7
 
8
8
  // ../api/src/analytics/flowEventKeys.ts
9
9
  function flowNodes(node, acc = []) {
@@ -54,4 +54,4 @@ export {
54
54
  flowNodes,
55
55
  flowEventKeys
56
56
  };
57
- //# sourceMappingURL=chunk-XUB2EK65.js.map
57
+ //# sourceMappingURL=chunk-TUSR5R7I.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AD_PLATFORMS
3
- } from "./chunk-T6ATGN7Y.js";
3
+ } from "./chunk-F3CZFUXZ.js";
4
4
  import {
5
5
  staticFormatPatternSchema
6
6
  } from "./chunk-WNSE7N75.js";
@@ -233,8 +233,12 @@ function fieldProblems(f) {
233
233
  }
234
234
  if (!(f.angle && IDEA_ANGLES.includes(f.angle)))
235
235
  problems.push(`angle ${f.angle ? `"${f.angle}" ` : ""}must be one of ${IDEA_ANGLES.join(", ")}`);
236
- if (!(f.format && IDEA_FORMATS.includes(f.format)))
237
- problems.push(`format ${f.format ? `"${f.format}" ` : ""}must be one of ${IDEA_FORMATS.join(", ")}`);
236
+ if (f.format && !IDEA_FORMATS.includes(f.format))
237
+ problems.push(`format "${f.format}" must be one of ${IDEA_FORMATS.join(", ")}`);
238
+ if (!f.format && !f.shows)
239
+ problems.push(
240
+ "shows is missing: what the scroller sees in the first second that makes the message land (a before/after, a reaction, the product doing it, a real review, the pain itself); the proven ad is searched by it"
241
+ );
238
242
  return [...problems, ...platformProblems(f.platforms)];
239
243
  }
240
244
  function platformProblems(platforms) {
@@ -254,14 +258,15 @@ function parseIdea(id, markdown) {
254
258
  message: text(fm.message),
255
259
  why: text(fm.why),
256
260
  angle: text(fm.angle),
261
+ shows: text(fm.shows),
257
262
  format: text(fm.format),
258
263
  awareness: oneOf(AWARENESS_STAGES, fm.awareness),
259
264
  awarenessWritten: text(fm.awareness),
260
265
  platforms: platformList(fm.platforms)
261
266
  };
262
267
  const problems = fieldProblems(f);
263
- const { who, message, why, angle, format, awareness } = f;
264
- if (problems.length > 0 || !who || !message || !why || !awareness || !angle || !format) return { problems };
268
+ const { who, message, why, angle, shows, format, awareness } = f;
269
+ if (problems.length > 0 || !who || !message || !why || !awareness || !angle) return { problems };
265
270
  return {
266
271
  idea: {
267
272
  id,
@@ -270,7 +275,8 @@ function parseIdea(id, markdown) {
270
275
  evidence: evidenceList(fm.evidence),
271
276
  awareness,
272
277
  angle,
273
- format,
278
+ ...shows ? { shows } : {},
279
+ ...format ? { format } : {},
274
280
  job: fm.job === "closer" ? "closer" : "opener",
275
281
  why,
276
282
  status: oneOf(IDEA_STATUSES, fm.status) ?? "idea",
@@ -373,7 +379,7 @@ function borrowedProof(idea, insights) {
373
379
  });
374
380
  }
375
381
  function fakeReviewProblem(idea, insights) {
376
- if (!TESTIMONIAL_FORMATS.includes(idea.format)) return [];
382
+ if (!idea.format || !TESTIMONIAL_FORMATS.includes(idea.format)) return [];
377
383
  const cited = idea.evidence.flatMap((id) => insights.get(id) ?? []);
378
384
  if (cited.length === 0 || !cited.every(fromMarket)) return [];
379
385
  return [
@@ -382,6 +388,11 @@ function fakeReviewProblem(idea, insights) {
382
388
  }
383
389
  function warningsOf(idea, evidence, personas, insights) {
384
390
  const warnings = [];
391
+ const video = IDEA_VIDEO_FORMATS.includes(idea.format ?? "");
392
+ if (idea.status === "idea" && !video && !idea.shows)
393
+ warnings.push(
394
+ "say what it shows (`shows`): what the scroller sees in the first second that lands the message; the proven ad is searched by it, and without it by what the company sells"
395
+ );
385
396
  const borrowed = borrowedProof(idea, insights);
386
397
  if (borrowed) {
387
398
  warnings.push(
@@ -413,7 +424,7 @@ function checkOne(idea, ctx) {
413
424
  const duplicate = ctx.duplicateOf.get(idea.id);
414
425
  if (duplicate) {
415
426
  problems.push(
416
- `same angle and format, or the same message, as "${duplicate}": to the platform it is the same ad. Change the angle or the format`
427
+ `same angle and the same picture (format or what it shows), or the same message, as "${duplicate}": to the platform it is the same ad. Change the angle or what it shows`
417
428
  );
418
429
  }
419
430
  const gaps = [];
@@ -427,7 +438,8 @@ function checkOne(idea, ctx) {
427
438
  ...best ? { quote: best.quote } : {},
428
439
  awareness: idea.awareness,
429
440
  angle: idea.angle,
430
- format: idea.format,
441
+ ...idea.shows ? { shows: idea.shows } : {},
442
+ ...idea.format ? { format: idea.format } : {},
431
443
  ...idea.platforms ? { platforms: idea.platforms } : {},
432
444
  problems,
433
445
  warnings: [
@@ -449,7 +461,7 @@ function duplicatesOf(ideas, insights) {
449
461
  const seenMessages = /* @__PURE__ */ new Map();
450
462
  const duplicateOf = /* @__PURE__ */ new Map();
451
463
  for (const idea of order) {
452
- const pair = `${idea.angle}\xD7${idea.format}`;
464
+ const pair = `${idea.angle}\xD7${idea.format ?? normalize(idea.shows ?? "")}`;
453
465
  const message = normalize(idea.message);
454
466
  const earlier = seenPairs.get(pair) ?? seenMessages.get(message);
455
467
  if (earlier) duplicateOf.set(idea.id, earlier);
@@ -609,4 +621,4 @@ export {
609
621
  readLearnedRules,
610
622
  declaredRules
611
623
  };
612
- //# sourceMappingURL=chunk-MMVLRUMK.js.map
624
+ //# sourceMappingURL=chunk-TY4BDVLG.js.map