@koda-sl/baker-cli 0.409.0 → 0.410.0-dev.53b577900

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/dist/cli.js CHANGED
@@ -97,7 +97,7 @@ import {
97
97
  withoutCastName,
98
98
  wordCount,
99
99
  ytDlpBlockSignal
100
- } from "./chunk-QWRXQ2UC.js";
100
+ } from "./chunk-TI5KBK4V.js";
101
101
  import {
102
102
  NAME_CONTAINS_ARG,
103
103
  csvOrJson,
@@ -173,9 +173,9 @@ import {
173
173
  writeOutput
174
174
  } from "./chunk-ISCXDKWB.js";
175
175
 
176
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/af.json
176
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/af.json
177
177
  var require_af = __commonJS({
178
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/af.json"(exports, module) {
178
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/af.json"(exports, module) {
179
179
  module.exports = {
180
180
  locale: "af",
181
181
  countries: {
@@ -434,9 +434,9 @@ var require_af = __commonJS({
434
434
  }
435
435
  });
436
436
 
437
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/am.json
437
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/am.json
438
438
  var require_am = __commonJS({
439
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/am.json"(exports, module) {
439
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/am.json"(exports, module) {
440
440
  module.exports = {
441
441
  locale: "am",
442
442
  countries: {
@@ -695,9 +695,9 @@ var require_am = __commonJS({
695
695
  }
696
696
  });
697
697
 
698
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ar.json
698
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ar.json
699
699
  var require_ar = __commonJS({
700
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ar.json"(exports, module) {
700
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ar.json"(exports, module) {
701
701
  module.exports = {
702
702
  locale: "ar",
703
703
  countries: {
@@ -956,9 +956,9 @@ var require_ar = __commonJS({
956
956
  }
957
957
  });
958
958
 
959
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/az.json
959
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/az.json
960
960
  var require_az = __commonJS({
961
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/az.json"(exports, module) {
961
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/az.json"(exports, module) {
962
962
  module.exports = {
963
963
  locale: "az",
964
964
  countries: {
@@ -1217,9 +1217,9 @@ var require_az = __commonJS({
1217
1217
  }
1218
1218
  });
1219
1219
 
1220
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/be.json
1220
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/be.json
1221
1221
  var require_be = __commonJS({
1222
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/be.json"(exports, module) {
1222
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/be.json"(exports, module) {
1223
1223
  module.exports = {
1224
1224
  locale: "be",
1225
1225
  countries: {
@@ -1478,9 +1478,9 @@ var require_be = __commonJS({
1478
1478
  }
1479
1479
  });
1480
1480
 
1481
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/bg.json
1481
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/bg.json
1482
1482
  var require_bg = __commonJS({
1483
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/bg.json"(exports, module) {
1483
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/bg.json"(exports, module) {
1484
1484
  module.exports = {
1485
1485
  locale: "bg",
1486
1486
  countries: {
@@ -1739,9 +1739,9 @@ var require_bg = __commonJS({
1739
1739
  }
1740
1740
  });
1741
1741
 
1742
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/bn.json
1742
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/bn.json
1743
1743
  var require_bn = __commonJS({
1744
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/bn.json"(exports, module) {
1744
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/bn.json"(exports, module) {
1745
1745
  module.exports = {
1746
1746
  locale: "bn",
1747
1747
  countries: {
@@ -2000,9 +2000,9 @@ var require_bn = __commonJS({
2000
2000
  }
2001
2001
  });
2002
2002
 
2003
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/br.json
2003
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/br.json
2004
2004
  var require_br = __commonJS({
2005
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/br.json"(exports, module) {
2005
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/br.json"(exports, module) {
2006
2006
  module.exports = {
2007
2007
  locale: "br",
2008
2008
  countries: {
@@ -2261,9 +2261,9 @@ var require_br = __commonJS({
2261
2261
  }
2262
2262
  });
2263
2263
 
2264
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/bs.json
2264
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/bs.json
2265
2265
  var require_bs = __commonJS({
2266
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/bs.json"(exports, module) {
2266
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/bs.json"(exports, module) {
2267
2267
  module.exports = {
2268
2268
  locale: "bs",
2269
2269
  countries: {
@@ -2522,9 +2522,9 @@ var require_bs = __commonJS({
2522
2522
  }
2523
2523
  });
2524
2524
 
2525
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ca.json
2525
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ca.json
2526
2526
  var require_ca = __commonJS({
2527
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ca.json"(exports, module) {
2527
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ca.json"(exports, module) {
2528
2528
  module.exports = {
2529
2529
  locale: "ca",
2530
2530
  countries: {
@@ -2783,9 +2783,9 @@ var require_ca = __commonJS({
2783
2783
  }
2784
2784
  });
2785
2785
 
2786
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/cs.json
2786
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/cs.json
2787
2787
  var require_cs = __commonJS({
2788
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/cs.json"(exports, module) {
2788
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/cs.json"(exports, module) {
2789
2789
  module.exports = {
2790
2790
  locale: "cs",
2791
2791
  countries: {
@@ -3044,9 +3044,9 @@ var require_cs = __commonJS({
3044
3044
  }
3045
3045
  });
3046
3046
 
3047
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/cy.json
3047
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/cy.json
3048
3048
  var require_cy = __commonJS({
3049
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/cy.json"(exports, module) {
3049
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/cy.json"(exports, module) {
3050
3050
  module.exports = {
3051
3051
  locale: "cy",
3052
3052
  countries: {
@@ -3305,9 +3305,9 @@ var require_cy = __commonJS({
3305
3305
  }
3306
3306
  });
3307
3307
 
3308
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/da.json
3308
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/da.json
3309
3309
  var require_da = __commonJS({
3310
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/da.json"(exports, module) {
3310
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/da.json"(exports, module) {
3311
3311
  module.exports = {
3312
3312
  locale: "da",
3313
3313
  countries: {
@@ -3566,9 +3566,9 @@ var require_da = __commonJS({
3566
3566
  }
3567
3567
  });
3568
3568
 
3569
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/de.json
3569
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/de.json
3570
3570
  var require_de = __commonJS({
3571
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/de.json"(exports, module) {
3571
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/de.json"(exports, module) {
3572
3572
  module.exports = {
3573
3573
  locale: "de",
3574
3574
  countries: {
@@ -3827,9 +3827,9 @@ var require_de = __commonJS({
3827
3827
  }
3828
3828
  });
3829
3829
 
3830
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/dv.json
3830
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/dv.json
3831
3831
  var require_dv = __commonJS({
3832
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/dv.json"(exports, module) {
3832
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/dv.json"(exports, module) {
3833
3833
  module.exports = {
3834
3834
  locale: "dv",
3835
3835
  countries: {
@@ -4088,9 +4088,9 @@ var require_dv = __commonJS({
4088
4088
  }
4089
4089
  });
4090
4090
 
4091
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/el.json
4091
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/el.json
4092
4092
  var require_el = __commonJS({
4093
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/el.json"(exports, module) {
4093
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/el.json"(exports, module) {
4094
4094
  module.exports = {
4095
4095
  locale: "el",
4096
4096
  countries: {
@@ -4416,9 +4416,9 @@ var require_el = __commonJS({
4416
4416
  }
4417
4417
  });
4418
4418
 
4419
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/en.json
4419
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/en.json
4420
4420
  var require_en = __commonJS({
4421
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/en.json"(exports, module) {
4421
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/en.json"(exports, module) {
4422
4422
  module.exports = {
4423
4423
  locale: "en",
4424
4424
  countries: {
@@ -4677,9 +4677,9 @@ var require_en = __commonJS({
4677
4677
  }
4678
4678
  });
4679
4679
 
4680
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/es.json
4680
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/es.json
4681
4681
  var require_es = __commonJS({
4682
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/es.json"(exports, module) {
4682
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/es.json"(exports, module) {
4683
4683
  module.exports = {
4684
4684
  locale: "es",
4685
4685
  countries: {
@@ -4938,9 +4938,9 @@ var require_es = __commonJS({
4938
4938
  }
4939
4939
  });
4940
4940
 
4941
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/et.json
4941
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/et.json
4942
4942
  var require_et = __commonJS({
4943
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/et.json"(exports, module) {
4943
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/et.json"(exports, module) {
4944
4944
  module.exports = {
4945
4945
  locale: "et",
4946
4946
  countries: {
@@ -5199,9 +5199,9 @@ var require_et = __commonJS({
5199
5199
  }
5200
5200
  });
5201
5201
 
5202
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/eu.json
5202
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/eu.json
5203
5203
  var require_eu = __commonJS({
5204
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/eu.json"(exports, module) {
5204
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/eu.json"(exports, module) {
5205
5205
  module.exports = {
5206
5206
  locale: "eu",
5207
5207
  countries: {
@@ -5460,9 +5460,9 @@ var require_eu = __commonJS({
5460
5460
  }
5461
5461
  });
5462
5462
 
5463
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/fa.json
5463
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/fa.json
5464
5464
  var require_fa = __commonJS({
5465
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/fa.json"(exports, module) {
5465
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/fa.json"(exports, module) {
5466
5466
  module.exports = {
5467
5467
  locale: "fa",
5468
5468
  countries: {
@@ -5721,9 +5721,9 @@ var require_fa = __commonJS({
5721
5721
  }
5722
5722
  });
5723
5723
 
5724
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/fi.json
5724
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/fi.json
5725
5725
  var require_fi = __commonJS({
5726
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/fi.json"(exports, module) {
5726
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/fi.json"(exports, module) {
5727
5727
  module.exports = {
5728
5728
  locale: "fi",
5729
5729
  countries: {
@@ -5982,9 +5982,9 @@ var require_fi = __commonJS({
5982
5982
  }
5983
5983
  });
5984
5984
 
5985
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/fr.json
5985
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/fr.json
5986
5986
  var require_fr = __commonJS({
5987
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/fr.json"(exports, module) {
5987
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/fr.json"(exports, module) {
5988
5988
  module.exports = {
5989
5989
  locale: "fr",
5990
5990
  countries: {
@@ -6243,9 +6243,9 @@ var require_fr = __commonJS({
6243
6243
  }
6244
6244
  });
6245
6245
 
6246
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ga.json
6246
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ga.json
6247
6247
  var require_ga = __commonJS({
6248
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ga.json"(exports, module) {
6248
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ga.json"(exports, module) {
6249
6249
  module.exports = {
6250
6250
  locale: "ga",
6251
6251
  countries: {
@@ -6504,9 +6504,9 @@ var require_ga = __commonJS({
6504
6504
  }
6505
6505
  });
6506
6506
 
6507
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/gl.json
6507
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/gl.json
6508
6508
  var require_gl = __commonJS({
6509
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/gl.json"(exports, module) {
6509
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/gl.json"(exports, module) {
6510
6510
  module.exports = {
6511
6511
  locale: "gl",
6512
6512
  countries: {
@@ -6765,9 +6765,9 @@ var require_gl = __commonJS({
6765
6765
  }
6766
6766
  });
6767
6767
 
6768
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ha.json
6768
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ha.json
6769
6769
  var require_ha = __commonJS({
6770
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ha.json"(exports, module) {
6770
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ha.json"(exports, module) {
6771
6771
  module.exports = {
6772
6772
  locale: "ha",
6773
6773
  countries: {
@@ -7026,9 +7026,9 @@ var require_ha = __commonJS({
7026
7026
  }
7027
7027
  });
7028
7028
 
7029
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/he.json
7029
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/he.json
7030
7030
  var require_he = __commonJS({
7031
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/he.json"(exports, module) {
7031
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/he.json"(exports, module) {
7032
7032
  module.exports = {
7033
7033
  locale: "he",
7034
7034
  countries: {
@@ -7287,9 +7287,9 @@ var require_he = __commonJS({
7287
7287
  }
7288
7288
  });
7289
7289
 
7290
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/hi.json
7290
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/hi.json
7291
7291
  var require_hi = __commonJS({
7292
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/hi.json"(exports, module) {
7292
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/hi.json"(exports, module) {
7293
7293
  module.exports = {
7294
7294
  locale: "hi",
7295
7295
  countries: {
@@ -7548,9 +7548,9 @@ var require_hi = __commonJS({
7548
7548
  }
7549
7549
  });
7550
7550
 
7551
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/hr.json
7551
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/hr.json
7552
7552
  var require_hr = __commonJS({
7553
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/hr.json"(exports, module) {
7553
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/hr.json"(exports, module) {
7554
7554
  module.exports = {
7555
7555
  locale: "hr",
7556
7556
  countries: {
@@ -7809,9 +7809,9 @@ var require_hr = __commonJS({
7809
7809
  }
7810
7810
  });
7811
7811
 
7812
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/hu.json
7812
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/hu.json
7813
7813
  var require_hu = __commonJS({
7814
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/hu.json"(exports, module) {
7814
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/hu.json"(exports, module) {
7815
7815
  module.exports = {
7816
7816
  locale: "hu",
7817
7817
  countries: {
@@ -8070,9 +8070,9 @@ var require_hu = __commonJS({
8070
8070
  }
8071
8071
  });
8072
8072
 
8073
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/hy.json
8073
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/hy.json
8074
8074
  var require_hy = __commonJS({
8075
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/hy.json"(exports, module) {
8075
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/hy.json"(exports, module) {
8076
8076
  module.exports = {
8077
8077
  locale: "hy",
8078
8078
  countries: {
@@ -8331,9 +8331,9 @@ var require_hy = __commonJS({
8331
8331
  }
8332
8332
  });
8333
8333
 
8334
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/id.json
8334
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/id.json
8335
8335
  var require_id = __commonJS({
8336
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/id.json"(exports, module) {
8336
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/id.json"(exports, module) {
8337
8337
  module.exports = {
8338
8338
  locale: "id",
8339
8339
  countries: {
@@ -8592,9 +8592,9 @@ var require_id = __commonJS({
8592
8592
  }
8593
8593
  });
8594
8594
 
8595
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/is.json
8595
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/is.json
8596
8596
  var require_is = __commonJS({
8597
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/is.json"(exports, module) {
8597
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/is.json"(exports, module) {
8598
8598
  module.exports = {
8599
8599
  locale: "is",
8600
8600
  countries: {
@@ -8853,9 +8853,9 @@ var require_is = __commonJS({
8853
8853
  }
8854
8854
  });
8855
8855
 
8856
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/it.json
8856
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/it.json
8857
8857
  var require_it = __commonJS({
8858
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/it.json"(exports, module) {
8858
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/it.json"(exports, module) {
8859
8859
  module.exports = {
8860
8860
  locale: "it",
8861
8861
  countries: {
@@ -9114,9 +9114,9 @@ var require_it = __commonJS({
9114
9114
  }
9115
9115
  });
9116
9116
 
9117
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ja.json
9117
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ja.json
9118
9118
  var require_ja = __commonJS({
9119
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ja.json"(exports, module) {
9119
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ja.json"(exports, module) {
9120
9120
  module.exports = {
9121
9121
  locale: "ja",
9122
9122
  countries: {
@@ -9375,9 +9375,9 @@ var require_ja = __commonJS({
9375
9375
  }
9376
9376
  });
9377
9377
 
9378
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ka.json
9378
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ka.json
9379
9379
  var require_ka = __commonJS({
9380
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ka.json"(exports, module) {
9380
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ka.json"(exports, module) {
9381
9381
  module.exports = {
9382
9382
  locale: "ka",
9383
9383
  countries: {
@@ -9636,9 +9636,9 @@ var require_ka = __commonJS({
9636
9636
  }
9637
9637
  });
9638
9638
 
9639
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/kk.json
9639
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/kk.json
9640
9640
  var require_kk = __commonJS({
9641
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/kk.json"(exports, module) {
9641
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/kk.json"(exports, module) {
9642
9642
  module.exports = {
9643
9643
  locale: "kk",
9644
9644
  countries: {
@@ -9897,9 +9897,9 @@ var require_kk = __commonJS({
9897
9897
  }
9898
9898
  });
9899
9899
 
9900
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/km.json
9900
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/km.json
9901
9901
  var require_km = __commonJS({
9902
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/km.json"(exports, module) {
9902
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/km.json"(exports, module) {
9903
9903
  module.exports = {
9904
9904
  locale: "km",
9905
9905
  countries: {
@@ -10158,9 +10158,9 @@ var require_km = __commonJS({
10158
10158
  }
10159
10159
  });
10160
10160
 
10161
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ko.json
10161
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ko.json
10162
10162
  var require_ko = __commonJS({
10163
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ko.json"(exports, module) {
10163
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ko.json"(exports, module) {
10164
10164
  module.exports = {
10165
10165
  locale: "ko",
10166
10166
  countries: {
@@ -10419,9 +10419,9 @@ var require_ko = __commonJS({
10419
10419
  }
10420
10420
  });
10421
10421
 
10422
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ku.json
10422
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ku.json
10423
10423
  var require_ku = __commonJS({
10424
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ku.json"(exports, module) {
10424
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ku.json"(exports, module) {
10425
10425
  module.exports = {
10426
10426
  locale: "ku",
10427
10427
  countries: {
@@ -10680,9 +10680,9 @@ var require_ku = __commonJS({
10680
10680
  }
10681
10681
  });
10682
10682
 
10683
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ky.json
10683
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ky.json
10684
10684
  var require_ky = __commonJS({
10685
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ky.json"(exports, module) {
10685
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ky.json"(exports, module) {
10686
10686
  module.exports = {
10687
10687
  locale: "ky",
10688
10688
  countries: {
@@ -10941,9 +10941,9 @@ var require_ky = __commonJS({
10941
10941
  }
10942
10942
  });
10943
10943
 
10944
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/lt.json
10944
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/lt.json
10945
10945
  var require_lt = __commonJS({
10946
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/lt.json"(exports, module) {
10946
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/lt.json"(exports, module) {
10947
10947
  module.exports = {
10948
10948
  locale: "lt",
10949
10949
  countries: {
@@ -11202,9 +11202,9 @@ var require_lt = __commonJS({
11202
11202
  }
11203
11203
  });
11204
11204
 
11205
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/lv.json
11205
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/lv.json
11206
11206
  var require_lv = __commonJS({
11207
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/lv.json"(exports, module) {
11207
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/lv.json"(exports, module) {
11208
11208
  module.exports = {
11209
11209
  locale: "lv",
11210
11210
  countries: {
@@ -11463,9 +11463,9 @@ var require_lv = __commonJS({
11463
11463
  }
11464
11464
  });
11465
11465
 
11466
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/mk.json
11466
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/mk.json
11467
11467
  var require_mk = __commonJS({
11468
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/mk.json"(exports, module) {
11468
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/mk.json"(exports, module) {
11469
11469
  module.exports = {
11470
11470
  locale: "mk",
11471
11471
  countries: {
@@ -11724,9 +11724,9 @@ var require_mk = __commonJS({
11724
11724
  }
11725
11725
  });
11726
11726
 
11727
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ml.json
11727
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ml.json
11728
11728
  var require_ml = __commonJS({
11729
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ml.json"(exports, module) {
11729
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ml.json"(exports, module) {
11730
11730
  module.exports = {
11731
11731
  locale: "ml",
11732
11732
  countries: {
@@ -11985,9 +11985,9 @@ var require_ml = __commonJS({
11985
11985
  }
11986
11986
  });
11987
11987
 
11988
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/mn.json
11988
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/mn.json
11989
11989
  var require_mn = __commonJS({
11990
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/mn.json"(exports, module) {
11990
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/mn.json"(exports, module) {
11991
11991
  module.exports = {
11992
11992
  locale: "mn",
11993
11993
  countries: {
@@ -12246,9 +12246,9 @@ var require_mn = __commonJS({
12246
12246
  }
12247
12247
  });
12248
12248
 
12249
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/mr.json
12249
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/mr.json
12250
12250
  var require_mr = __commonJS({
12251
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/mr.json"(exports, module) {
12251
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/mr.json"(exports, module) {
12252
12252
  module.exports = {
12253
12253
  locale: "mr",
12254
12254
  countries: {
@@ -12507,9 +12507,9 @@ var require_mr = __commonJS({
12507
12507
  }
12508
12508
  });
12509
12509
 
12510
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ms.json
12510
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ms.json
12511
12511
  var require_ms = __commonJS({
12512
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ms.json"(exports, module) {
12512
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ms.json"(exports, module) {
12513
12513
  module.exports = {
12514
12514
  locale: "ms",
12515
12515
  countries: {
@@ -12768,9 +12768,9 @@ var require_ms = __commonJS({
12768
12768
  }
12769
12769
  });
12770
12770
 
12771
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/mt.json
12771
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/mt.json
12772
12772
  var require_mt = __commonJS({
12773
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/mt.json"(exports, module) {
12773
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/mt.json"(exports, module) {
12774
12774
  module.exports = {
12775
12775
  locale: "mt",
12776
12776
  countries: {
@@ -13029,9 +13029,9 @@ var require_mt = __commonJS({
13029
13029
  }
13030
13030
  });
13031
13031
 
13032
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/nb.json
13032
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/nb.json
13033
13033
  var require_nb = __commonJS({
13034
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/nb.json"(exports, module) {
13034
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/nb.json"(exports, module) {
13035
13035
  module.exports = {
13036
13036
  locale: "nb",
13037
13037
  countries: {
@@ -13290,9 +13290,9 @@ var require_nb = __commonJS({
13290
13290
  }
13291
13291
  });
13292
13292
 
13293
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/nl.json
13293
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/nl.json
13294
13294
  var require_nl = __commonJS({
13295
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/nl.json"(exports, module) {
13295
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/nl.json"(exports, module) {
13296
13296
  module.exports = {
13297
13297
  locale: "nl",
13298
13298
  countries: {
@@ -13566,9 +13566,9 @@ var require_nl = __commonJS({
13566
13566
  }
13567
13567
  });
13568
13568
 
13569
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/nn.json
13569
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/nn.json
13570
13570
  var require_nn = __commonJS({
13571
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/nn.json"(exports, module) {
13571
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/nn.json"(exports, module) {
13572
13572
  module.exports = {
13573
13573
  locale: "nn",
13574
13574
  countries: {
@@ -13827,9 +13827,9 @@ var require_nn = __commonJS({
13827
13827
  }
13828
13828
  });
13829
13829
 
13830
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/no.json
13830
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/no.json
13831
13831
  var require_no = __commonJS({
13832
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/no.json"(exports, module) {
13832
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/no.json"(exports, module) {
13833
13833
  module.exports = {
13834
13834
  locale: "no",
13835
13835
  countries: {
@@ -14088,9 +14088,9 @@ var require_no = __commonJS({
14088
14088
  }
14089
14089
  });
14090
14090
 
14091
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/pl.json
14091
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/pl.json
14092
14092
  var require_pl = __commonJS({
14093
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/pl.json"(exports, module) {
14093
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/pl.json"(exports, module) {
14094
14094
  module.exports = {
14095
14095
  locale: "pl",
14096
14096
  countries: {
@@ -14349,9 +14349,9 @@ var require_pl = __commonJS({
14349
14349
  }
14350
14350
  });
14351
14351
 
14352
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ps.json
14352
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ps.json
14353
14353
  var require_ps = __commonJS({
14354
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ps.json"(exports, module) {
14354
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ps.json"(exports, module) {
14355
14355
  module.exports = {
14356
14356
  locale: "ps",
14357
14357
  countries: {
@@ -14610,9 +14610,9 @@ var require_ps = __commonJS({
14610
14610
  }
14611
14611
  });
14612
14612
 
14613
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/pt.json
14613
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/pt.json
14614
14614
  var require_pt = __commonJS({
14615
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/pt.json"(exports, module) {
14615
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/pt.json"(exports, module) {
14616
14616
  module.exports = {
14617
14617
  locale: "pt",
14618
14618
  countries: {
@@ -14871,9 +14871,9 @@ var require_pt = __commonJS({
14871
14871
  }
14872
14872
  });
14873
14873
 
14874
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ro.json
14874
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ro.json
14875
14875
  var require_ro = __commonJS({
14876
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ro.json"(exports, module) {
14876
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ro.json"(exports, module) {
14877
14877
  module.exports = {
14878
14878
  locale: "ro",
14879
14879
  countries: {
@@ -15132,9 +15132,9 @@ var require_ro = __commonJS({
15132
15132
  }
15133
15133
  });
15134
15134
 
15135
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ru.json
15135
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ru.json
15136
15136
  var require_ru = __commonJS({
15137
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ru.json"(exports, module) {
15137
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ru.json"(exports, module) {
15138
15138
  module.exports = {
15139
15139
  locale: "ru",
15140
15140
  countries: {
@@ -15393,9 +15393,9 @@ var require_ru = __commonJS({
15393
15393
  }
15394
15394
  });
15395
15395
 
15396
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sd.json
15396
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sd.json
15397
15397
  var require_sd = __commonJS({
15398
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sd.json"(exports, module) {
15398
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sd.json"(exports, module) {
15399
15399
  module.exports = {
15400
15400
  locale: "sd",
15401
15401
  countries: {
@@ -15654,9 +15654,9 @@ var require_sd = __commonJS({
15654
15654
  }
15655
15655
  });
15656
15656
 
15657
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sk.json
15657
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sk.json
15658
15658
  var require_sk = __commonJS({
15659
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sk.json"(exports, module) {
15659
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sk.json"(exports, module) {
15660
15660
  module.exports = {
15661
15661
  locale: "sk",
15662
15662
  countries: {
@@ -15915,9 +15915,9 @@ var require_sk = __commonJS({
15915
15915
  }
15916
15916
  });
15917
15917
 
15918
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sl.json
15918
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sl.json
15919
15919
  var require_sl = __commonJS({
15920
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sl.json"(exports, module) {
15920
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sl.json"(exports, module) {
15921
15921
  module.exports = {
15922
15922
  locale: "sl",
15923
15923
  countries: {
@@ -16176,9 +16176,9 @@ var require_sl = __commonJS({
16176
16176
  }
16177
16177
  });
16178
16178
 
16179
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/so.json
16179
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/so.json
16180
16180
  var require_so = __commonJS({
16181
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/so.json"(exports, module) {
16181
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/so.json"(exports, module) {
16182
16182
  module.exports = {
16183
16183
  locale: "so",
16184
16184
  countries: {
@@ -16437,9 +16437,9 @@ var require_so = __commonJS({
16437
16437
  }
16438
16438
  });
16439
16439
 
16440
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sq.json
16440
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sq.json
16441
16441
  var require_sq = __commonJS({
16442
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sq.json"(exports, module) {
16442
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sq.json"(exports, module) {
16443
16443
  module.exports = {
16444
16444
  locale: "sq",
16445
16445
  countries: {
@@ -16698,9 +16698,9 @@ var require_sq = __commonJS({
16698
16698
  }
16699
16699
  });
16700
16700
 
16701
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sr.json
16701
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sr.json
16702
16702
  var require_sr = __commonJS({
16703
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sr.json"(exports, module) {
16703
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sr.json"(exports, module) {
16704
16704
  module.exports = {
16705
16705
  locale: "sr",
16706
16706
  countries: {
@@ -16959,9 +16959,9 @@ var require_sr = __commonJS({
16959
16959
  }
16960
16960
  });
16961
16961
 
16962
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sv.json
16962
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sv.json
16963
16963
  var require_sv = __commonJS({
16964
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sv.json"(exports, module) {
16964
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sv.json"(exports, module) {
16965
16965
  module.exports = {
16966
16966
  locale: "sv",
16967
16967
  countries: {
@@ -17220,9 +17220,9 @@ var require_sv = __commonJS({
17220
17220
  }
17221
17221
  });
17222
17222
 
17223
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sw.json
17223
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sw.json
17224
17224
  var require_sw = __commonJS({
17225
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/sw.json"(exports, module) {
17225
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/sw.json"(exports, module) {
17226
17226
  module.exports = {
17227
17227
  locale: "sw",
17228
17228
  countries: {
@@ -17481,9 +17481,9 @@ var require_sw = __commonJS({
17481
17481
  }
17482
17482
  });
17483
17483
 
17484
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ta.json
17484
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ta.json
17485
17485
  var require_ta = __commonJS({
17486
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ta.json"(exports, module) {
17486
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ta.json"(exports, module) {
17487
17487
  module.exports = {
17488
17488
  locale: "ta",
17489
17489
  countries: {
@@ -17742,9 +17742,9 @@ var require_ta = __commonJS({
17742
17742
  }
17743
17743
  });
17744
17744
 
17745
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/tg.json
17745
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/tg.json
17746
17746
  var require_tg = __commonJS({
17747
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/tg.json"(exports, module) {
17747
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/tg.json"(exports, module) {
17748
17748
  module.exports = {
17749
17749
  locale: "tg",
17750
17750
  countries: {
@@ -18003,9 +18003,9 @@ var require_tg = __commonJS({
18003
18003
  }
18004
18004
  });
18005
18005
 
18006
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/th.json
18006
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/th.json
18007
18007
  var require_th = __commonJS({
18008
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/th.json"(exports, module) {
18008
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/th.json"(exports, module) {
18009
18009
  module.exports = {
18010
18010
  locale: "th",
18011
18011
  countries: {
@@ -18264,9 +18264,9 @@ var require_th = __commonJS({
18264
18264
  }
18265
18265
  });
18266
18266
 
18267
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/tk.json
18267
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/tk.json
18268
18268
  var require_tk = __commonJS({
18269
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/tk.json"(exports, module) {
18269
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/tk.json"(exports, module) {
18270
18270
  module.exports = {
18271
18271
  locale: "tk",
18272
18272
  countries: {
@@ -18525,9 +18525,9 @@ var require_tk = __commonJS({
18525
18525
  }
18526
18526
  });
18527
18527
 
18528
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/tr.json
18528
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/tr.json
18529
18529
  var require_tr = __commonJS({
18530
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/tr.json"(exports, module) {
18530
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/tr.json"(exports, module) {
18531
18531
  module.exports = {
18532
18532
  locale: "tr",
18533
18533
  countries: {
@@ -18786,9 +18786,9 @@ var require_tr = __commonJS({
18786
18786
  }
18787
18787
  });
18788
18788
 
18789
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/tt.json
18789
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/tt.json
18790
18790
  var require_tt = __commonJS({
18791
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/tt.json"(exports, module) {
18791
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/tt.json"(exports, module) {
18792
18792
  module.exports = {
18793
18793
  locale: "tt",
18794
18794
  countries: {
@@ -19047,9 +19047,9 @@ var require_tt = __commonJS({
19047
19047
  }
19048
19048
  });
19049
19049
 
19050
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ug.json
19050
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ug.json
19051
19051
  var require_ug = __commonJS({
19052
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ug.json"(exports, module) {
19052
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ug.json"(exports, module) {
19053
19053
  module.exports = {
19054
19054
  locale: "ug",
19055
19055
  countries: {
@@ -19308,9 +19308,9 @@ var require_ug = __commonJS({
19308
19308
  }
19309
19309
  });
19310
19310
 
19311
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/uk.json
19311
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/uk.json
19312
19312
  var require_uk = __commonJS({
19313
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/uk.json"(exports, module) {
19313
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/uk.json"(exports, module) {
19314
19314
  module.exports = {
19315
19315
  locale: "uk",
19316
19316
  countries: {
@@ -19569,9 +19569,9 @@ var require_uk = __commonJS({
19569
19569
  }
19570
19570
  });
19571
19571
 
19572
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ur.json
19572
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ur.json
19573
19573
  var require_ur = __commonJS({
19574
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/ur.json"(exports, module) {
19574
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/ur.json"(exports, module) {
19575
19575
  module.exports = {
19576
19576
  locale: "ur",
19577
19577
  countries: {
@@ -19830,9 +19830,9 @@ var require_ur = __commonJS({
19830
19830
  }
19831
19831
  });
19832
19832
 
19833
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/uz.json
19833
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/uz.json
19834
19834
  var require_uz = __commonJS({
19835
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/uz.json"(exports, module) {
19835
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/uz.json"(exports, module) {
19836
19836
  module.exports = {
19837
19837
  locale: "uz",
19838
19838
  countries: {
@@ -20091,9 +20091,9 @@ var require_uz = __commonJS({
20091
20091
  }
20092
20092
  });
20093
20093
 
20094
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/vi.json
20094
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/vi.json
20095
20095
  var require_vi = __commonJS({
20096
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/vi.json"(exports, module) {
20096
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/vi.json"(exports, module) {
20097
20097
  module.exports = {
20098
20098
  locale: "vi",
20099
20099
  countries: {
@@ -20352,9 +20352,9 @@ var require_vi = __commonJS({
20352
20352
  }
20353
20353
  });
20354
20354
 
20355
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/zh.json
20355
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/zh.json
20356
20356
  var require_zh = __commonJS({
20357
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/langs/zh.json"(exports, module) {
20357
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/langs/zh.json"(exports, module) {
20358
20358
  module.exports = {
20359
20359
  locale: "zh",
20360
20360
  countries: {
@@ -20613,10 +20613,10 @@ var require_zh = __commonJS({
20613
20613
  }
20614
20614
  });
20615
20615
 
20616
- // require("./langs/**/*.json") in ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/entry-node.js
20616
+ // require("./langs/**/*.json") in ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/entry-node.js
20617
20617
  var globRequire_langs_json;
20618
20618
  var init_ = __esm({
20619
- 'require("./langs/**/*.json") in ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/entry-node.js'() {
20619
+ 'require("./langs/**/*.json") in ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/entry-node.js'() {
20620
20620
  globRequire_langs_json = __glob({
20621
20621
  "./langs/af.json": () => require_af(),
20622
20622
  "./langs/am.json": () => require_am(),
@@ -20700,9 +20700,9 @@ var init_ = __esm({
20700
20700
  }
20701
20701
  });
20702
20702
 
20703
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/codes.json
20703
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/codes.json
20704
20704
  var require_codes = __commonJS({
20705
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/codes.json"(exports, module) {
20705
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/codes.json"(exports, module) {
20706
20706
  module.exports = [
20707
20707
  ["AF", "AFG", "004", "ISO 3166-2:AF"],
20708
20708
  ["AL", "ALB", "008", "ISO 3166-2:AL"],
@@ -20958,9 +20958,9 @@ var require_codes = __commonJS({
20958
20958
  }
20959
20959
  });
20960
20960
 
20961
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/supportedLocales.json
20961
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/supportedLocales.json
20962
20962
  var require_supportedLocales = __commonJS({
20963
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/supportedLocales.json"(exports, module) {
20963
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/supportedLocales.json"(exports, module) {
20964
20964
  module.exports = [
20965
20965
  "br",
20966
20966
  "cy",
@@ -21044,9 +21044,9 @@ var require_supportedLocales = __commonJS({
21044
21044
  }
21045
21045
  });
21046
21046
 
21047
- // ../../node_modules/.pnpm/diacritics@1.3.0/node_modules/diacritics/index.js
21047
+ // ../../.pnpm-store/v10/links/@/diacritics/1.3.0/901e489f892c550ec2aae6ccb228516ccd6f6804963b70fa26eac86a1a210bf5/node_modules/diacritics/index.js
21048
21048
  var require_diacritics = __commonJS({
21049
- "../../node_modules/.pnpm/diacritics@1.3.0/node_modules/diacritics/index.js"(exports) {
21049
+ "../../.pnpm-store/v10/links/@/diacritics/1.3.0/901e489f892c550ec2aae6ccb228516ccd6f6804963b70fa26eac86a1a210bf5/node_modules/diacritics/index.js"(exports) {
21050
21050
  "use strict";
21051
21051
  exports.remove = removeDiacritics;
21052
21052
  var replacementList = [
@@ -21463,9 +21463,9 @@ var require_diacritics = __commonJS({
21463
21463
  }
21464
21464
  });
21465
21465
 
21466
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/index.js
21466
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/index.js
21467
21467
  var require_i18n_iso_countries = __commonJS({
21468
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/index.js"(exports) {
21468
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/index.js"(exports) {
21469
21469
  "use strict";
21470
21470
  var codes = require_codes();
21471
21471
  var supportedLocales = require_supportedLocales();
@@ -21697,9 +21697,9 @@ var require_i18n_iso_countries = __commonJS({
21697
21697
  }
21698
21698
  });
21699
21699
 
21700
- // ../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/entry-node.js
21700
+ // ../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/entry-node.js
21701
21701
  var require_entry_node = __commonJS({
21702
- "../../node_modules/.pnpm/i18n-iso-countries@7.14.0/node_modules/i18n-iso-countries/entry-node.js"(exports, module) {
21702
+ "../../.pnpm-store/v10/links/@/i18n-iso-countries/7.14.0/5e6699c273c94e2e87598072b13ced7dbfb8ba9153290de3d03d5f711e81fac0/node_modules/i18n-iso-countries/entry-node.js"(exports, module) {
21703
21703
  "use strict";
21704
21704
  init_();
21705
21705
  var library = require_i18n_iso_countries();
@@ -21715,7 +21715,7 @@ var require_entry_node = __commonJS({
21715
21715
  });
21716
21716
 
21717
21717
  // src/cli.ts
21718
- import { defineCommand as defineCommand278, runMain } from "citty";
21718
+ import { defineCommand as defineCommand284, runMain } from "citty";
21719
21719
 
21720
21720
  // src/cache-flag.ts
21721
21721
  var NO_CACHE_ARG = {
@@ -26265,6 +26265,9 @@ var chatChangeTypeSchema = z13.enum([
26265
26265
  // A connected social account feeding the image and video libraries, keyed
26266
26266
  // on `platform:handle`. Immediate — see convex/mediaSources/mutations.ts.
26267
26267
  "media-source",
26268
+ // A review site listing feeding the testimonials library, keyed on the
26269
+ // source's id. Immediate — see convex/testimonials/mutations.ts.
26270
+ "testimonial-source",
26268
26271
  // A landing page saved to the reference library, keyed on the page.
26269
26272
  "landing-reference",
26270
26273
  // One Studio batch — the takes of one brief, as a set. See convex/lib/validators.ts.
@@ -28445,6 +28448,13 @@ var imageSourceSchema = z25.enum([
28445
28448
  "website",
28446
28449
  "google_testimonial",
28447
28450
  "trustpilot_testimonial",
28451
+ "yelp_testimonial",
28452
+ "tripadvisor_testimonial",
28453
+ "g2_testimonial",
28454
+ "capterra_testimonial",
28455
+ "amazon_testimonial",
28456
+ "app_store_testimonial",
28457
+ "google_play_testimonial",
28448
28458
  "instagram",
28449
28459
  "tiktok",
28450
28460
  "linkedin",
@@ -30186,7 +30196,17 @@ var tagChangeToolResultSchema = z33.object({
30186
30196
 
30187
30197
  // ../api/src/testimonials.ts
30188
30198
  import { z as z34 } from "zod";
30189
- var testimonialSourceTypeSchema = z34.enum(["google", "trustpilot"]);
30199
+ var testimonialSourceTypeSchema = z34.enum([
30200
+ "google",
30201
+ "trustpilot",
30202
+ "yelp",
30203
+ "tripadvisor",
30204
+ "g2",
30205
+ "capterra",
30206
+ "amazon",
30207
+ "app_store",
30208
+ "google_play"
30209
+ ]);
30190
30210
  var testimonialStatusSchema = z34.enum(["pending", "processing", "ready", "error"]);
30191
30211
  var testimonialSentimentSchema = z34.enum(["positive", "neutral", "negative"]);
30192
30212
  var testimonialDocSchema = z34.object({
@@ -30254,6 +30274,35 @@ var testimonialsOutscraperWebhookResponseSchema = z34.object({
30254
30274
  ok: z34.literal(true),
30255
30275
  note: z34.string().optional()
30256
30276
  });
30277
+ var testimonialSourceRefreshIntervalSchema = z34.enum(["never", "daily", "weekly", "monthly"]);
30278
+ var testimonialSourceSummarySchema = z34.object({
30279
+ id: z34.string(),
30280
+ platform: testimonialSourceTypeSchema,
30281
+ platformLabel: z34.string(),
30282
+ label: z34.string(),
30283
+ pageUrl: z34.string().optional(),
30284
+ status: z34.enum(["importing", "idle", "error"]),
30285
+ reviews: z34.number(),
30286
+ refreshInterval: z34.string(),
30287
+ lastSyncedAt: z34.number().optional(),
30288
+ error: z34.string().optional(),
30289
+ createdAt: z34.number()
30290
+ });
30291
+ var testimonialSourcesAddRequestSchema = z34.object({
30292
+ /** The review page's link; for Google Maps also the business name. */
30293
+ input: z34.string().trim().min(1, "Pass the review page's link, or a business name for Google Maps"),
30294
+ /** Needed only to force a site: a business name is Google, a link names its own site. */
30295
+ platform: testimonialSourceTypeSchema.optional(),
30296
+ /** Auto-sync cadence. Omitted = never, like the dashboard. */
30297
+ every: testimonialSourceRefreshIntervalSchema.optional()
30298
+ });
30299
+ var sourceIdSchema = z34.string().trim().min(1, "Pass a source id from `baker testimonials sources list`");
30300
+ var testimonialSourcesSyncRequestSchema = z34.object({ id: sourceIdSchema });
30301
+ var testimonialSourcesRemoveRequestSchema = z34.object({ id: sourceIdSchema });
30302
+ var testimonialSourcesScheduleRequestSchema = z34.object({
30303
+ id: sourceIdSchema,
30304
+ every: testimonialSourceRefreshIntervalSchema
30305
+ });
30257
30306
 
30258
30307
  // ../api/src/videos.ts
30259
30308
  import { z as z35 } from "zod";
@@ -34492,16 +34541,16 @@ async function runChatgptRead(reference, read, hintsFor4) {
34492
34541
  }
34493
34542
  }
34494
34543
  var TRUNCATED_HINT = "These rows are the first 2,000, not the whole account \u2014 narrow the read (--campaign-id, --ad-group-id) before counting them or concluding something is missing.";
34495
- async function getChatgptList(path59, params) {
34496
- const { data, headers } = await apiGetWithHeaders(path59, params);
34544
+ async function getChatgptList(path58, params) {
34545
+ const { data, headers } = await apiGetWithHeaders(path58, params);
34497
34546
  return { data, truncated: headers.get(CHATGPT_ADS_TRUNCATED_HEADER) === "true" };
34498
34547
  }
34499
- async function runChatgptListRead(reference, path59, params, hintsFor4) {
34548
+ async function runChatgptListRead(reference, path58, params, hintsFor4) {
34500
34549
  let truncated = false;
34501
34550
  await runChatgptRead(
34502
34551
  reference,
34503
34552
  async () => {
34504
- const read = await getChatgptList(path59, params);
34553
+ const read = await getChatgptList(path58, params);
34505
34554
  truncated = read.truncated;
34506
34555
  return read.data;
34507
34556
  },
@@ -35306,7 +35355,7 @@ var MEMBER_ARGS = {
35306
35355
  },
35307
35356
  country: { type: "string", description: "Country of phones written without a +code, e.g. ES" }
35308
35357
  };
35309
- function membersFromArgs(args8, readFile43 = (path59) => readFileSync2(path59, "utf8")) {
35358
+ function membersFromArgs(args8, readFile43 = (path58) => readFileSync2(path58, "utf8")) {
35310
35359
  const fromFile = typeof args8.file === "string" && args8.file ? membersFromFile(readFile43(args8.file)) : { emails: [], phones: [] };
35311
35360
  const given = [...csvArg(args8.emails) ?? [], ...fromFile.emails];
35312
35361
  const givenPhones = [...csvArg(args8.phones) ?? [], ...fromFile.phones];
@@ -38681,9 +38730,9 @@ var COPY_LIST_FLAG = {
38681
38730
  descriptions: "--descriptions",
38682
38731
  longHeadlines: "--long-headlines"
38683
38732
  };
38684
- function valueAt(root, path59) {
38733
+ function valueAt(root, path58) {
38685
38734
  let node = root;
38686
- for (const key of path59) {
38735
+ for (const key of path58) {
38687
38736
  if (node === null || typeof node !== "object") return void 0;
38688
38737
  node = node[key];
38689
38738
  }
@@ -38916,11 +38965,11 @@ function parseKeywordEntry(raw, defaultMatch) {
38916
38965
  function rawTextEntries(value2, rawArgs) {
38917
38966
  return repeatedValues(rawArgs, "text", value2).flatMap((v) => v.split(",")).map((v) => v.trim()).filter(Boolean);
38918
38967
  }
38919
- function rawFileEntries(path59) {
38920
- if (typeof path59 !== "string" || path59.length === 0) {
38968
+ function rawFileEntries(path58) {
38969
+ if (typeof path58 !== "string" || path58.length === 0) {
38921
38970
  return [];
38922
38971
  }
38923
- return readFileSync4(path59, "utf8").split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0 && !line.startsWith("#"));
38972
+ return readFileSync4(path58, "utf8").split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0 && !line.startsWith("#"));
38924
38973
  }
38925
38974
  function keywordEntries(args8, rawArgs) {
38926
38975
  const defaultMatch = typeof args8["match-type"] === "string" ? args8["match-type"].toUpperCase() : void 0;
@@ -38943,14 +38992,14 @@ function keywordEntries(args8, rawArgs) {
38943
38992
  }
38944
38993
  return entries;
38945
38994
  }
38946
- function loadJsonFileArg(path59) {
38947
- if (typeof path59 !== "string" || path59.length === 0) {
38995
+ function loadJsonFileArg(path58) {
38996
+ if (typeof path58 !== "string" || path58.length === 0) {
38948
38997
  return {};
38949
38998
  }
38950
- const inline = path59.trimStart().startsWith("{");
38951
- const source = inline ? "inline JSON" : path59;
38999
+ const inline = path58.trimStart().startsWith("{");
39000
+ const source = inline ? "inline JSON" : path58;
38952
39001
  try {
38953
- const parsed = JSON.parse(inline ? path59 : readFileSync4(path59, "utf8"));
39002
+ const parsed = JSON.parse(inline ? path58 : readFileSync4(path58, "utf8"));
38954
39003
  if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
38955
39004
  failWriteValidation2(`${source} must contain a JSON object`);
38956
39005
  }
@@ -39087,10 +39136,10 @@ async function stageUpdate(kind, customerId, target2, payload, hints2) {
39087
39136
  async function stageTarget(kind, customerId, target2, hints2) {
39088
39137
  await stageGoogleOp({ kind, customerId, target: target2 }, hints2);
39089
39138
  }
39090
- async function draftAction(path59, body, chat) {
39139
+ async function draftAction(path58, body, chat) {
39091
39140
  try {
39092
39141
  const chatId = resolveChatId(chat);
39093
- const response = await apiPost(path59, { chatId, ...body });
39142
+ const response = await apiPost(path58, { chatId, ...body });
39094
39143
  writeJsonEnvelope(response);
39095
39144
  } catch (err) {
39096
39145
  handleGoogleError(err);
@@ -41510,14 +41559,14 @@ function mappingRowProblem(row) {
41510
41559
 
41511
41560
  // ../api/src/event-sources/template.ts
41512
41561
  var MENTION = /\{\{\s*([^{}]+?)\s*\}\}/g;
41513
- function mentionOf(path59) {
41514
- return `{{${path59}}}`;
41562
+ function mentionOf(path58) {
41563
+ return `{{${path58}}}`;
41515
41564
  }
41516
41565
  function templateMentions(template) {
41517
41566
  const seen = [];
41518
41567
  for (const match of template.matchAll(MENTION)) {
41519
- const path59 = (match[1] ?? "").trim();
41520
- if (path59 !== "" && !seen.includes(path59)) seen.push(path59);
41568
+ const path58 = (match[1] ?? "").trim();
41569
+ if (path58 !== "" && !seen.includes(path58)) seen.push(path58);
41521
41570
  }
41522
41571
  return seen;
41523
41572
  }
@@ -44892,17 +44941,17 @@ function ignoredColumnHints(columns) {
44892
44941
  `Ignored ${columns.length} column(s) that are not part of a conversion: ${columns.join(", ")}. A conversion carries an order id, a date, and something to match on: a click id (gclid / gbraid / wbraid), an email, a phone, or all four of givenName + familyName + country + postalCode. Optionally a value + currency, conversionCount, and eventSource (WEB / APP / IN_STORE / PHONE / OTHER). A column named just \`Name\` is ignored on purpose \u2014 Google needs the first and last name separately, so split it before re-running.`
44893
44942
  ];
44894
44943
  }
44895
- function readRowsFile(path59) {
44896
- const inline = path59.trimStart().startsWith("[") || path59.trimStart().startsWith("{");
44944
+ function readRowsFile(path58) {
44945
+ const inline = path58.trimStart().startsWith("[") || path58.trimStart().startsWith("{");
44897
44946
  let text2;
44898
44947
  try {
44899
- text2 = inline ? path59 : readFileSync6(path59, "utf8");
44948
+ text2 = inline ? path58 : readFileSync6(path58, "utf8");
44900
44949
  } catch (err) {
44901
- failWriteValidation2(`could not read ${path59}: ${err instanceof Error ? err.message : String(err)}`);
44950
+ failWriteValidation2(`could not read ${path58}: ${err instanceof Error ? err.message : String(err)}`);
44902
44951
  }
44903
44952
  const parsed = parseConversionRowsText(text2);
44904
44953
  if (!parsed.ok) {
44905
- failWriteValidation2(`${inline ? "the conversions passed inline" : path59}: ${parsed.error}`);
44954
+ failWriteValidation2(`${inline ? "the conversions passed inline" : path58}: ${parsed.error}`);
44906
44955
  }
44907
44956
  return { rows: parsed.rows, ignoredColumns: parsed.ignoredColumns };
44908
44957
  }
@@ -46803,19 +46852,19 @@ function failWriteValidation3(message) {
46803
46852
  writeJsonEnvelope({ ok: false, error: { code: "VALIDATION_ERROR", message } });
46804
46853
  process.exit(1);
46805
46854
  }
46806
- function loadJsonFileArg2(path59) {
46807
- if (typeof path59 !== "string" || path59.length === 0) {
46855
+ function loadJsonFileArg2(path58) {
46856
+ if (typeof path58 !== "string" || path58.length === 0) {
46808
46857
  return {};
46809
46858
  }
46810
46859
  try {
46811
- const parsed = JSON.parse(readFileSync7(path59, "utf8"));
46860
+ const parsed = JSON.parse(readFileSync7(path58, "utf8"));
46812
46861
  if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
46813
- failWriteValidation3(`${path59} must contain a JSON object`);
46862
+ failWriteValidation3(`${path58} must contain a JSON object`);
46814
46863
  }
46815
46864
  return parsed;
46816
46865
  } catch (err) {
46817
46866
  if (err instanceof SyntaxError) {
46818
- failWriteValidation3(`${path59} is not valid JSON: ${err.message}`);
46867
+ failWriteValidation3(`${path58} is not valid JSON: ${err.message}`);
46819
46868
  }
46820
46869
  throw err;
46821
46870
  }
@@ -46900,15 +46949,15 @@ function parseLocaleFlag(value2) {
46900
46949
  }
46901
46950
  return { language: match[1], country: match[2].toUpperCase() };
46902
46951
  }
46903
- function loadTargetingFileArg(path59) {
46904
- if (typeof path59 !== "string" || path59.length === 0) {
46952
+ function loadTargetingFileArg(path58) {
46953
+ if (typeof path58 !== "string" || path58.length === 0) {
46905
46954
  return void 0;
46906
46955
  }
46907
- const parsed = loadJsonFileArg2(path59);
46956
+ const parsed = loadJsonFileArg2(path58);
46908
46957
  const criteria = parsed.targetingCriteria ?? parsed;
46909
46958
  if (!criteria.include) {
46910
46959
  failWriteValidation3(
46911
- `${path59} must contain targeting criteria with an "include" block (see baker schema ads.linkedin.campaigns.create)`
46960
+ `${path58} must contain targeting criteria with an "include" block (see baker schema ads.linkedin.campaigns.create)`
46912
46961
  );
46913
46962
  }
46914
46963
  return criteria;
@@ -46943,14 +46992,14 @@ function parseCsvLine(line) {
46943
46992
  cells.push(current);
46944
46993
  return cells.map((cell3) => cell3.trim());
46945
46994
  }
46946
- function parseListFileArg(path59, maxRows) {
46947
- if (typeof path59 !== "string" || path59.length === 0) {
46995
+ function parseListFileArg(path58, maxRows) {
46996
+ if (typeof path58 !== "string" || path58.length === 0) {
46948
46997
  return void 0;
46949
46998
  }
46950
- const raw = readFileSync7(path59, "utf8");
46999
+ const raw = readFileSync7(path58, "utf8");
46951
47000
  const lines = raw.split(/\r?\n/).filter((line) => line.trim().length > 0);
46952
47001
  if (lines.length < 2) {
46953
- failWriteValidation3(`${path59} needs a header row and at least one data row`);
47002
+ failWriteValidation3(`${path58} needs a header row and at least one data row`);
46954
47003
  }
46955
47004
  const columns = parseCsvLine(lines[0]).map((column) => column.trim());
46956
47005
  const rows = [];
@@ -46969,7 +47018,7 @@ function parseListFileArg(path59, maxRows) {
46969
47018
  }
46970
47019
  }
46971
47020
  if (rows.length > maxRows) {
46972
- failWriteValidation3(`${path59} has ${rows.length} rows \u2014 the inline limit is ${maxRows}. Split the list.`);
47021
+ failWriteValidation3(`${path58} has ${rows.length} rows \u2014 the inline limit is ${maxRows}. Split the list.`);
46973
47022
  }
46974
47023
  return { columns, rows };
46975
47024
  }
@@ -47065,11 +47114,11 @@ function readPositionals(args8) {
47065
47114
  function splitIdList(raw) {
47066
47115
  return raw.split(",").map((id) => id.trim()).filter(Boolean);
47067
47116
  }
47068
- function idsFileEntries(path59) {
47069
- if (typeof path59 !== "string" || path59.length === 0) {
47117
+ function idsFileEntries(path58) {
47118
+ if (typeof path58 !== "string" || path58.length === 0) {
47070
47119
  return [];
47071
47120
  }
47072
- return readFileSync7(path59, "utf8").split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0 && !line.startsWith("#")).flatMap(splitIdList);
47121
+ return readFileSync7(path58, "utf8").split(/\r?\n/).map((line) => line.trim()).filter((line) => line.length > 0 && !line.startsWith("#")).flatMap(splitIdList);
47073
47122
  }
47074
47123
  function requireTargets2(args8, entity) {
47075
47124
  const positionals = readPositionals(args8);
@@ -49830,9 +49879,9 @@ import { defineCommand as defineCommand64 } from "citty";
49830
49879
  function asRecord(value2) {
49831
49880
  return typeof value2 === "object" && value2 !== null && !Array.isArray(value2) ? value2 : void 0;
49832
49881
  }
49833
- function readPath2(row, path59) {
49882
+ function readPath2(row, path58) {
49834
49883
  let current = row;
49835
- for (const segment of path59.split(".")) {
49884
+ for (const segment of path58.split(".")) {
49836
49885
  const record = asRecord(current);
49837
49886
  if (!record) return void 0;
49838
49887
  current = record[segment];
@@ -49842,10 +49891,10 @@ function readPath2(row, path59) {
49842
49891
  function projectFields(rows, paths) {
49843
49892
  return rows.map((row) => {
49844
49893
  const projected = {};
49845
- for (const path59 of paths) {
49846
- const value2 = readPath2(row, path59);
49894
+ for (const path58 of paths) {
49895
+ const value2 = readPath2(row, path58);
49847
49896
  if (value2 !== void 0) {
49848
- projected[path59] = value2;
49897
+ projected[path58] = value2;
49849
49898
  }
49850
49899
  }
49851
49900
  return projected;
@@ -49858,16 +49907,16 @@ function shapeListRows(rows, args8, compact5) {
49858
49907
  const paths = fields.split(",").map((field) => field.trim()).filter((field) => field.length > 0);
49859
49908
  if (paths.length > 0) {
49860
49909
  const projected = projectFields(raw, paths).map((row, i) => {
49861
- const missing = paths.filter((path59) => row[path59] === void 0);
49910
+ const missing = paths.filter((path58) => row[path58] === void 0);
49862
49911
  const source = rows[i];
49863
49912
  if (missing.length === 0 || source === void 0) return row;
49864
49913
  const compactRow3 = compact5.row(source);
49865
- for (const path59 of missing) {
49866
- if (compactRow3[path59] !== void 0) row[path59] = compactRow3[path59];
49914
+ for (const path58 of missing) {
49915
+ if (compactRow3[path58] !== void 0) row[path58] = compactRow3[path58];
49867
49916
  }
49868
49917
  return row;
49869
49918
  });
49870
- const unmatched = paths.filter((path59) => projected.every((row) => row[path59] === void 0));
49919
+ const unmatched = paths.filter((path58) => projected.every((row) => row[path58] === void 0));
49871
49920
  if (projected.length === 0 || unmatched.length === 0) return { rows: projected, fields: paths };
49872
49921
  const carried = /* @__PURE__ */ new Set([...compact5.columns, ...raw.flatMap((row) => Object.keys(row))]);
49873
49922
  return {
@@ -51227,54 +51276,54 @@ function ruleFields(node) {
51227
51276
  ([key, value2]) => (key === "and" || key === "or") && Array.isArray(value2) ? value2.flatMap(ruleFields) : [key]
51228
51277
  );
51229
51278
  }
51230
- function branchRefusal(key, value2, path59) {
51279
+ function branchRefusal(key, value2, path58) {
51231
51280
  if (!Array.isArray(value2) || value2.length === 0) {
51232
- return `${path59}.${key} must be a non-empty array of conditions \u2014 an empty one counts every event the pixel sends`;
51281
+ return `${path58}.${key} must be a non-empty array of conditions \u2014 an empty one counts every event the pixel sends`;
51233
51282
  }
51234
51283
  for (const [index, child] of value2.entries()) {
51235
- const refusal = ruleNodeRefusal(child, `${path59}.${key}[${index}]`);
51284
+ const refusal = ruleNodeRefusal(child, `${path58}.${key}[${index}]`);
51236
51285
  if (refusal) {
51237
51286
  return refusal;
51238
51287
  }
51239
51288
  }
51240
51289
  return void 0;
51241
51290
  }
51242
- function conditionRefusal(key, value2, path59) {
51243
- return key === "and" || key === "or" ? branchRefusal(key, value2, path59) : leafRefusal(key, value2, path59);
51291
+ function conditionRefusal(key, value2, path58) {
51292
+ return key === "and" || key === "or" ? branchRefusal(key, value2, path58) : leafRefusal(key, value2, path58);
51244
51293
  }
51245
- function ruleNodeRefusal(node, path59) {
51294
+ function ruleNodeRefusal(node, path58) {
51246
51295
  if (!isRecord2(node)) {
51247
- return `${path59} must be an object like {"URL":{"i_contains":"/thank-you"}}`;
51296
+ return `${path58} must be an object like {"URL":{"i_contains":"/thank-you"}}`;
51248
51297
  }
51249
51298
  const entries = Object.entries(node);
51250
51299
  if (entries.length === 0) {
51251
- return `${path59} is empty \u2014 a rule with no condition counts every event the pixel sends`;
51300
+ return `${path58} is empty \u2014 a rule with no condition counts every event the pixel sends`;
51252
51301
  }
51253
51302
  if (entries.length > 1) {
51254
- return `${path59} names ${entries.length} conditions side by side (${entries.map(([key]) => key).join(", ")}) \u2014 Meta reads one branch or one field test per object, so combine them with {"and":[\u2026]}`;
51303
+ return `${path58} names ${entries.length} conditions side by side (${entries.map(([key]) => key).join(", ")}) \u2014 Meta reads one branch or one field test per object, so combine them with {"and":[\u2026]}`;
51255
51304
  }
51256
51305
  for (const [key, value2] of entries) {
51257
- const refusal = conditionRefusal(key, value2, path59);
51306
+ const refusal = conditionRefusal(key, value2, path58);
51258
51307
  if (refusal) {
51259
51308
  return refusal;
51260
51309
  }
51261
51310
  }
51262
51311
  return void 0;
51263
51312
  }
51264
- function leafRefusal(field, condition, path59) {
51313
+ function leafRefusal(field, condition, path58) {
51265
51314
  if (!isRecord2(condition)) {
51266
- return `${path59}.${field} must be a test like {"i_contains":"/thank-you"}, not a bare value`;
51315
+ return `${path58}.${field} must be a test like {"i_contains":"/thank-you"}, not a bare value`;
51267
51316
  }
51268
51317
  const tests = Object.entries(condition);
51269
51318
  if (tests.length === 0) {
51270
- return `${path59}.${field} names no test \u2014 use one of ${Object.keys(RULE_OPERATORS).join(", ")}`;
51319
+ return `${path58}.${field} names no test \u2014 use one of ${Object.keys(RULE_OPERATORS).join(", ")}`;
51271
51320
  }
51272
51321
  if (tests.length > 1) {
51273
- return `${path59}.${field} names ${tests.length} operators at once (${tests.map(([operator]) => operator).join(", ")}) \u2014 test a field once per condition and combine them with {"and":[\u2026]}`;
51322
+ return `${path58}.${field} names ${tests.length} operators at once (${tests.map(([operator]) => operator).join(", ")}) \u2014 test a field once per condition and combine them with {"and":[\u2026]}`;
51274
51323
  }
51275
51324
  for (const [operator] of tests) {
51276
51325
  if (!RULE_OPERATORS[operator]) {
51277
- return `${path59}.${field} uses "${operator}", which is not a Meta rule operator \u2014 use one of ${Object.keys(RULE_OPERATORS).join(", ")} (URL matching is i_contains, not contains or includes)`;
51326
+ return `${path58}.${field} uses "${operator}", which is not a Meta rule operator \u2014 use one of ${Object.keys(RULE_OPERATORS).join(", ")} (URL matching is i_contains, not contains or includes)`;
51278
51327
  }
51279
51328
  }
51280
51329
  return void 0;
@@ -51990,11 +52039,11 @@ var updateStatusSchema2 = z45.enum(UPDATE_STATUSES);
51990
52039
  function currencyMinimums2(currencyCode) {
51991
52040
  return CURRENCY_MINIMUMS2[currencyCode] ?? DEFAULT_CURRENCY_MINIMUM2;
51992
52041
  }
51993
- function validateDailyBudgetFloor(money, ctx, path59) {
52042
+ function validateDailyBudgetFloor(money, ctx, path58) {
51994
52043
  if (money?.currencyCode) {
51995
52044
  const min = currencyMinimums2(money.currencyCode).dailyBudgetMin;
51996
52045
  if (Number(money.amount) < min) {
51997
- ctx.addIssue({ code: "custom", path: path59, message: `below the ${min} ${money.currencyCode} daily minimum` });
52046
+ ctx.addIssue({ code: "custom", path: path58, message: `below the ${min} ${money.currencyCode} daily minimum` });
51998
52047
  }
51999
52048
  }
52000
52049
  }
@@ -52912,19 +52961,19 @@ function refuseDeleteByUpdate(payload, group) {
52912
52961
  );
52913
52962
  }
52914
52963
  }
52915
- function loadJsonFileArg3(path59) {
52916
- if (typeof path59 !== "string" || path59.length === 0) {
52964
+ function loadJsonFileArg3(path58) {
52965
+ if (typeof path58 !== "string" || path58.length === 0) {
52917
52966
  return {};
52918
52967
  }
52919
52968
  try {
52920
- const parsed = JSON.parse(readFileSync11(path59, "utf8"));
52969
+ const parsed = JSON.parse(readFileSync11(path58, "utf8"));
52921
52970
  if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
52922
- failWriteValidation4(`${path59} must contain a JSON object`);
52971
+ failWriteValidation4(`${path58} must contain a JSON object`);
52923
52972
  }
52924
52973
  return parsed;
52925
52974
  } catch (err) {
52926
52975
  if (err instanceof SyntaxError) {
52927
- failWriteValidation4(`${path59} is not valid JSON: ${err.message}`);
52976
+ failWriteValidation4(`${path58} is not valid JSON: ${err.message}`);
52928
52977
  }
52929
52978
  throw err;
52930
52979
  }
@@ -58695,12 +58744,12 @@ function flowExists(slug) {
58695
58744
  return existsSync3(join2(flowsDir(), slug, "_data.json"));
58696
58745
  }
58697
58746
  function readFlowTree(slug) {
58698
- const path59 = join2(flowsDir(), slug, "_data.json");
58699
- if (!existsSync3(path59)) {
58747
+ const path58 = join2(flowsDir(), slug, "_data.json");
58748
+ if (!existsSync3(path58)) {
58700
58749
  failLocal(`No form "${slug}". Run "baker flows list" to see the forms in this workspace.`);
58701
58750
  }
58702
58751
  try {
58703
- return JSON.parse(readFileSync13(path59, "utf-8"));
58752
+ return JSON.parse(readFileSync13(path58, "utf-8"));
58704
58753
  } catch (error) {
58705
58754
  failLocal(`Could not read form "${slug}": ${error instanceof Error ? error.message : String(error)}`);
58706
58755
  }
@@ -59660,12 +59709,12 @@ function readPeopleFile(args8) {
59660
59709
  }
59661
59710
  function unreadablePeopleFile(args8) {
59662
59711
  if (!args8["people-file"]) return void 0;
59663
- const path59 = String(args8["people-file"]);
59712
+ const path58 = String(args8["people-file"]);
59664
59713
  try {
59665
- readFileSync14(path59, "utf8");
59714
+ readFileSync14(path58, "utf8");
59666
59715
  return void 0;
59667
59716
  } catch {
59668
- return `Couldn't read --people-file ${path59}. Check the path, or pass the people inline with --person.`;
59717
+ return `Couldn't read --people-file ${path58}. Check the path, or pass the people inline with --person.`;
59669
59718
  }
59670
59719
  }
59671
59720
  function peopleLimitError(args8) {
@@ -60214,7 +60263,7 @@ var SOURCE_KINDS = ["webhook", "hubspot"];
60214
60263
  var SOURCE_STATUSES = ["learning", "counting", "paused"];
60215
60264
  var SOURCE_NAME_MAX = 80;
60216
60265
  var sourceNameSchema = z49.string().trim().min(1).max(SOURCE_NAME_MAX).refine((name) => validateEventName(name) === null, REJECTION_MESSAGES.invalid_name);
60217
- var sourceIdSchema = z49.string().min(1);
60266
+ var sourceIdSchema2 = z49.string().min(1);
60218
60267
  var sourceMappingSchema = z49.record(z49.string(), z49.string().min(1)).superRefine((mapping, ctx) => {
60219
60268
  for (const row of Object.keys(mapping)) {
60220
60269
  const problem = mappingRowProblem(row);
@@ -60312,7 +60361,7 @@ var sourcesRequestSchema = z49.strictObject({
60312
60361
  }).optional(),
60313
60362
  /** Change what a HubSpot event watches. It counts from now on under the new trigger; the rows stay. The object cannot change: the rows read it. */
60314
60363
  setTrigger: z49.strictObject({
60315
- sourceId: sourceIdSchema,
60364
+ sourceId: sourceIdSchema2,
60316
60365
  trigger: hubspotTriggerInputSchema,
60317
60366
  contacts: hubspotDealContactsSchema.optional()
60318
60367
  }).optional(),
@@ -60320,7 +60369,7 @@ var sourcesRequestSchema = z49.strictObject({
60320
60369
  preview: hubspotPreviewRequestSchema.optional(),
60321
60370
  /** Change where a HubSpot-read source takes its amount from; no `amountProperty` clears it. Sugar over `map`. */
60322
60371
  setAmount: z49.strictObject({
60323
- sourceId: sourceIdSchema,
60372
+ sourceId: sourceIdSchema2,
60324
60373
  amountProperty: z49.string().trim().min(1).optional(),
60325
60374
  currency: currencyCodeSchema.optional()
60326
60375
  }).optional(),
@@ -60334,7 +60383,7 @@ var sourcesRequestSchema = z49.strictObject({
60334
60383
  * has a timestamp for, so nothing is invented. Dry unless `write`.
60335
60384
  */
60336
60385
  backfill: z49.strictObject({
60337
- sourceId: sourceIdSchema,
60386
+ sourceId: sourceIdSchema2,
60338
60387
  /** ISO instant, or Unix milliseconds. Bounded by the 400 days the store keeps. */
60339
60388
  since: z49.union([z49.string().trim().min(1), z49.number()]),
60340
60389
  /**
@@ -60353,10 +60402,10 @@ var sourcesRequestSchema = z49.strictObject({
60353
60402
  /** Without it, nothing is counted and the answer says what would be. */
60354
60403
  write: z49.boolean().optional()
60355
60404
  }).optional(),
60356
- map: z49.strictObject({ sourceId: sourceIdSchema, mapping: sourceMappingSchema }).optional(),
60357
- pause: z49.strictObject({ sourceId: sourceIdSchema }).optional(),
60358
- resume: z49.strictObject({ sourceId: sourceIdSchema }).optional(),
60359
- remove: z49.strictObject({ sourceId: sourceIdSchema }).optional()
60405
+ map: z49.strictObject({ sourceId: sourceIdSchema2, mapping: sourceMappingSchema }).optional(),
60406
+ pause: z49.strictObject({ sourceId: sourceIdSchema2 }).optional(),
60407
+ resume: z49.strictObject({ sourceId: sourceIdSchema2 }).optional(),
60408
+ remove: z49.strictObject({ sourceId: sourceIdSchema2 }).optional()
60360
60409
  });
60361
60410
  var sourceRefusalSchema = z49.strictObject({
60362
60411
  at: z49.number(),
@@ -60637,11 +60686,11 @@ function parseFieldArgs(argv) {
60637
60686
  for (const pair of parseRepeated(argv, "--field")) {
60638
60687
  const eq = pair.indexOf("=");
60639
60688
  const field = eq === -1 ? pair : pair.slice(0, eq);
60640
- const path59 = eq === -1 ? "" : pair.slice(eq + 1).trim();
60689
+ const path58 = eq === -1 ? "" : pair.slice(eq + 1).trim();
60641
60690
  const problem = mappingRowProblem(field);
60642
60691
  if (problem !== null) throw new ConversionArgsError(problem);
60643
- if (path59 === "") throw new ConversionArgsError(`--field ${field} needs a path: --field ${field}=<dotted.path>.`);
60644
- mapping[field] = path59;
60692
+ if (path58 === "") throw new ConversionArgsError(`--field ${field} needs a path: --field ${field}=<dotted.path>.`);
60693
+ mapping[field] = path58;
60645
60694
  }
60646
60695
  return mapping;
60647
60696
  }
@@ -62243,11 +62292,11 @@ function unwrap(response) {
62243
62292
  }
62244
62293
  return response.data;
62245
62294
  }
62246
- async function readAvatars(path59, params) {
62247
- return unwrap(await apiGet(path59, params));
62295
+ async function readAvatars(path58, params) {
62296
+ return unwrap(await apiGet(path58, params));
62248
62297
  }
62249
- async function writeAvatars(path59, body) {
62250
- return unwrap(await apiPost(path59, body));
62298
+ async function writeAvatars(path58, body) {
62299
+ return unwrap(await apiPost(path58, body));
62251
62300
  }
62252
62301
 
62253
62302
  // src/commands/avatars/create.ts
@@ -63156,12 +63205,12 @@ function missingFontFiles(urls, available) {
63156
63205
  function planFontAdoption(sources, families) {
63157
63206
  const wanted = new Map(families.map((family) => [normalizeFamily(family), family]));
63158
63207
  const byFamily = /* @__PURE__ */ new Map();
63159
- for (const { path: path59, source } of sources) {
63160
- const dir = posix.dirname(path59);
63208
+ for (const { path: path58, source } of sources) {
63209
+ const dir = posix.dirname(path58);
63161
63210
  for (const face of declaredFontFaces(source)) {
63162
63211
  if (!wanted.has(face.family)) continue;
63163
63212
  const perFile = byFamily.get(face.family) ?? /* @__PURE__ */ new Map();
63164
- perFile.set(path59, [...perFile.get(path59) ?? [], rebaseFontFaceSrc(face.block, dir)]);
63213
+ perFile.set(path58, [...perFile.get(path58) ?? [], rebaseFontFaceSrc(face.block, dir)]);
63165
63214
  byFamily.set(face.family, perFile);
63166
63215
  }
63167
63216
  }
@@ -68168,8 +68217,8 @@ function relayPrompt(args8) {
68168
68217
  ...args8.exclusionsLast ? ["", EXCLUSIONS] : []
68169
68218
  ].join("\n");
68170
68219
  }
68171
- function ingestNode(id, path59, expect) {
68172
- return { id, type: "ingest", params: { source: "path", path: path59, expect } };
68220
+ function ingestNode(id, path58, expect) {
68221
+ return { id, type: "ingest", params: { source: "path", path: path58, expect } };
68173
68222
  }
68174
68223
  function annotateBlueprintWithLabels(blueprintInput, elementsInput) {
68175
68224
  if (!blueprintInput || typeof blueprintInput !== "object") return blueprintInput;
@@ -68424,8 +68473,7 @@ function fontLabel(font) {
68424
68473
  const origin = {
68425
68474
  brand_file: "the brand's font file",
68426
68475
  tokens: "named in tokens.json, loaded as a web font",
68427
- brand_md: "named in BRAND.md, loaded as a web font",
68428
- default: "the default, since the brand names no typeface"
68476
+ brand_md: "named in BRAND.md, loaded as a web font"
68429
68477
  };
68430
68478
  const name = font.family ?? ("path" in font.slot ? font.slot.path.split("/").pop() ?? font.slot.path : "a web font");
68431
68479
  return `${name} (${origin[font.origin]})`;
@@ -71547,7 +71595,7 @@ var rerunCommand = defineCommand132({
71547
71595
 
71548
71596
  // src/commands/canvas/scaffold-static-ad.ts
71549
71597
  import { mkdir as mkdir8, readFile as readFile24, writeFile as writeFile12 } from "fs/promises";
71550
- import path31 from "path";
71598
+ import path30 from "path";
71551
71599
  import { defineCommand as defineCommand134 } from "citty";
71552
71600
 
71553
71601
  // src/commands/canvas/creative-limit.ts
@@ -71609,7 +71657,7 @@ import path26 from "path";
71609
71657
 
71610
71658
  // src/engine/scaffold/static-fonts.ts
71611
71659
  import { marked } from "marked";
71612
- var DEFAULT_FONTS = { headline: { family: "Inter", weight: 800 }, body: { family: "Inter", weight: 400 } };
71660
+ var HEADLINE_WEIGHT = 800;
71613
71661
  var HEADLINE_WORDS = /\b(headings?|headlines?|display|titles?|h[1-3])\b/i;
71614
71662
  var BODY_WORDS = /\b(body|paragraphs?|text|copy)\b/i;
71615
71663
  var PROHIBITION = /\b(never|don'?t|do not|avoid|instead of|ban(?:ned)?|no)\b/i;
@@ -71713,7 +71761,7 @@ async function brandHeadlineFont(args8) {
71713
71761
  if (args8.file) return fileFace(args8.file);
71714
71762
  const named = args8.named.headline ?? args8.named.body;
71715
71763
  if (!named) return null;
71716
- const url = await args8.resolveUrl(named.family, DEFAULT_FONTS.headline.weight);
71764
+ const url = await args8.resolveUrl(named.family, HEADLINE_WEIGHT);
71717
71765
  return url ? { slot: { url }, family: named.family, origin: named.origin } : null;
71718
71766
  }
71719
71767
 
@@ -71886,7 +71934,6 @@ function fileExists(target2) {
71886
71934
  }
71887
71935
 
71888
71936
  // src/commands/canvas/creative-definition.ts
71889
- import path28 from "path";
71890
71937
  import { parseDocument as parseDocument2 } from "yaml";
71891
71938
  var PLATFORM_VALUES = ["meta", "google", "linkedin", "tiktok", "youtube", "x", "other"];
71892
71939
  var FORMAT_VALUES = ["1:1", "4:5", "9:16", "16:9", "1.91:1"];
@@ -71951,16 +71998,16 @@ function parseDefinitionSourceFields(raw) {
71951
71998
  }
71952
71999
 
71953
72000
  // src/commands/canvas/scaffold-static-ad-paths.ts
71954
- import path29 from "path";
72001
+ import path28 from "path";
71955
72002
  function resolveScaffoldStaticAdPaths(rawFile, out, cwd = process.cwd(), slug) {
71956
72003
  const file = rawFile.trim();
71957
72004
  const imageIsUrl = /^https?:\/\//i.test(file);
71958
- const imageSource = imageIsUrl ? file : path29.resolve(cwd, file);
71959
- const outPath = out ? path29.resolve(cwd, out) : slug ? path29.join(cwd, "src", "creatives", slug, `${slug}.canvas.json`) : imageIsUrl ? path29.join(cwd, "static-ad.canvas.json") : path29.join(path29.dirname(imageSource), "static-ad.canvas.json");
71960
- const blueprintPath2 = path29.join(path29.dirname(outPath), "prompt.json");
71961
- const creativeDir = slug ? path29.dirname(outPath) : null;
71962
- const definitionPath = creativeDir ? path29.join(creativeDir, "_definition.md") : null;
71963
- const referencesDir = creativeDir ? path29.join(creativeDir, "references") : null;
72005
+ const imageSource = imageIsUrl ? file : path28.resolve(cwd, file);
72006
+ const outPath = out ? path28.resolve(cwd, out) : slug ? path28.join(cwd, "src", "creatives", slug, `${slug}.canvas.json`) : imageIsUrl ? path28.join(cwd, "static-ad.canvas.json") : path28.join(path28.dirname(imageSource), "static-ad.canvas.json");
72007
+ const blueprintPath2 = path28.join(path28.dirname(outPath), "prompt.json");
72008
+ const creativeDir = slug ? path28.dirname(outPath) : null;
72009
+ const definitionPath = creativeDir ? path28.join(creativeDir, "_definition.md") : null;
72010
+ const referencesDir = creativeDir ? path28.join(creativeDir, "references") : null;
71964
72011
  return { imageIsUrl, imageSource, outPath, blueprintPath: blueprintPath2, creativeDir, definitionPath, referencesDir };
71965
72012
  }
71966
72013
  var SCAFFOLD_SLUG_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
@@ -71971,7 +72018,7 @@ function isValidScaffoldSlug(slug) {
71971
72018
 
71972
72019
  // src/commands/canvas/sync-definition.ts
71973
72020
  import { readdir as readdir11, readFile as readFile23, stat as stat4 } from "fs/promises";
71974
- import path30 from "path";
72021
+ import path29 from "path";
71975
72022
  import { defineCommand as defineCommand133 } from "citty";
71976
72023
 
71977
72024
  // src/commands/canvas/definition-graph.ts
@@ -72028,7 +72075,7 @@ function buildDefinitionSyncPayload(input, graph, chatId) {
72028
72075
  }
72029
72076
  async function readDefinitionSourceFields(canvasPath) {
72030
72077
  try {
72031
- return parseDefinitionSourceFields(await readFile23(path30.join(path30.dirname(canvasPath), "_definition.md"), "utf8"));
72078
+ return parseDefinitionSourceFields(await readFile23(path29.join(path29.dirname(canvasPath), "_definition.md"), "utf8"));
72032
72079
  } catch {
72033
72080
  return {};
72034
72081
  }
@@ -72051,15 +72098,15 @@ async function syncCreativeDefinitionBestEffort(input) {
72051
72098
  }
72052
72099
  }
72053
72100
  async function resolveCanvasPath(inputPath) {
72054
- const resolved = path30.resolve(inputPath);
72101
+ const resolved = path29.resolve(inputPath);
72055
72102
  let dir = resolved;
72056
72103
  try {
72057
72104
  if ((await stat4(resolved)).isFile()) {
72058
72105
  if (resolved.endsWith(".canvas.json")) return resolved;
72059
- dir = path30.dirname(resolved);
72106
+ dir = path29.dirname(resolved);
72060
72107
  }
72061
72108
  } catch {
72062
- dir = resolved.endsWith(".canvas.json") ? path30.dirname(resolved) : resolved;
72109
+ dir = resolved.endsWith(".canvas.json") ? path29.dirname(resolved) : resolved;
72063
72110
  }
72064
72111
  let entries;
72065
72112
  try {
@@ -72070,7 +72117,7 @@ async function resolveCanvasPath(inputPath) {
72070
72117
  const canvases = entries.filter((name) => name.endsWith(".canvas.json"));
72071
72118
  const slug = creativeSlugFromCanvasPath(`${dir}/x/`);
72072
72119
  const chosen = (slug ? canvases.find((name) => name === `${slug}.canvas.json`) : void 0) ?? canvases[0];
72073
- return chosen ? path30.join(dir, chosen) : null;
72120
+ return chosen ? path29.join(dir, chosen) : null;
72074
72121
  }
72075
72122
  var syncDefinitionCommand = defineCommand133({
72076
72123
  meta: {
@@ -72246,7 +72293,7 @@ function mergeReferenceIntoBlueprint(blueprint, reference) {
72246
72293
 
72247
72294
  // src/commands/canvas/scaffold-static-ad.ts
72248
72295
  function toCanvasRelative2(canvasDir, file) {
72249
- const rel = path31.relative(canvasDir, file).split(path31.sep).join("/");
72296
+ const rel = path30.relative(canvasDir, file).split(path30.sep).join("/");
72250
72297
  return rel.startsWith(".") ? rel : `./${rel}`;
72251
72298
  }
72252
72299
  async function uploadSourceAsReference(source, isUrl, client) {
@@ -72559,7 +72606,7 @@ var scaffoldStaticAdCommand = defineCommand134({
72559
72606
  }
72560
72607
  const { imageIsUrl, imageSource, outPath, blueprintPath: blueprintPath2, definitionPath, referencesDir } = resolveScaffoldStaticAdPaths(sourceFile, args8.out ? String(args8.out) : void 0, process.cwd(), slug);
72561
72608
  if (slug) await enforceNewCreativeLimit(slug, outPath);
72562
- await mkdir8(path31.dirname(outPath), { recursive: true });
72609
+ await mkdir8(path30.dirname(outPath), { recursive: true });
72563
72610
  let models;
72564
72611
  try {
72565
72612
  models = resolveModels(args8);
@@ -72592,7 +72639,7 @@ var scaffoldStaticAdCommand = defineCommand134({
72592
72639
  const blueprint = mergeReferenceIntoBlueprint(vision.blueprint, reference);
72593
72640
  const elements = castAvatarsOnStaticElements(vision.elements, cast.avatars);
72594
72641
  const uncast = staticAvatarsNotCast(vision.elements, cast.handles);
72595
- const canvasDir = path31.dirname(outPath);
72642
+ const canvasDir = path30.dirname(outPath);
72596
72643
  const workspaceRoot = await findBrandRoot(canvasDir) ?? process.cwd();
72597
72644
  const kit = await readStaticBrandKit(workspaceRoot);
72598
72645
  const annotated = annotateBlueprintWithLabels(blueprint, elements);
@@ -72640,7 +72687,7 @@ var scaffoldStaticAdCommand = defineCommand134({
72640
72687
  } catch (e) {
72641
72688
  return fail4("scaffold", e instanceof Error ? e.message : String(e));
72642
72689
  }
72643
- const validation = await validateScaffoldedStaticAd(canvas, path31.dirname(outPath));
72690
+ const validation = await validateScaffoldedStaticAd(canvas, path30.dirname(outPath));
72644
72691
  if (validation.blocking.length > 0) {
72645
72692
  process.stderr.write(
72646
72693
  `${JSON.stringify({ ok: false, error: { code: "validation", issues: validation.blocking } }, null, 2)}
@@ -72729,7 +72776,7 @@ var scaffoldStaticAdCommand = defineCommand134({
72729
72776
  run_estimated_credits: validation.estimatedCredits
72730
72777
  },
72731
72778
  checklist: {
72732
- edit_prompt: `Edit ${path31.basename(blueprintPath2)} \u2014 it is the blueprint generated from your image; rewrite it into the ad you want (palette, copy, claims, subjects). It feeds the generator directly.${reference ? " Its `reference` block is the library's read of the source ad (container, layout, mechanism, offer, text blocks): keep it as the account of why the ad won, and rebuild it for our brand." : ""}`,
72779
+ edit_prompt: `Edit ${path30.basename(blueprintPath2)} \u2014 it is the blueprint generated from your image; rewrite it into the ad you want (palette, copy, claims, subjects). It feeds the generator directly.${reference ? " Its `reference` block is the library's read of the source ad (container, layout, mechanism, offer, text blocks): keep it as the account of why the ad won, and rebuild it for our brand." : ""}`,
72733
72780
  winning_mechanisms: report.winning_mechanisms,
72734
72781
  rebuild_the_mechanism: "`winning_mechanisms` is WHY the source ad works. Rewrite each one for our brand in prompt.json (a rhyme stays a rhyme in our words, a before/after stays a before/after of our product); never copy the source's literal copy.",
72735
72782
  assets_to_supply: report.elements,
@@ -72791,7 +72838,7 @@ function clientLogoMissNote(decision, domain) {
72791
72838
 
72792
72839
  // src/commands/canvas/scaffold-ad.ts
72793
72840
  import { copyFile, cp, mkdir as mkdir9, readFile as readFile26, stat as stat5, writeFile as writeFile14 } from "fs/promises";
72794
- import path33 from "path";
72841
+ import path32 from "path";
72795
72842
  import { defineCommand as defineCommand135 } from "citty";
72796
72843
 
72797
72844
  // src/engine/scaffold/ad-spec.ts
@@ -73506,7 +73553,7 @@ function injectAdBrandOverlay(indexHtml, overlayHtml, style = {}) {
73506
73553
 
73507
73554
  // src/commands/canvas/composition-dims.ts
73508
73555
  import { readFile as readFile25, writeFile as writeFile13 } from "fs/promises";
73509
- import path32 from "path";
73556
+ import path31 from "path";
73510
73557
  function patchCompositionMeta(metaJson, dims) {
73511
73558
  try {
73512
73559
  const meta = JSON.parse(metaJson);
@@ -73521,10 +73568,10 @@ function patchCompositionHtml(html, dims) {
73521
73568
  return html.replace(/(<meta\s+name="viewport"\s+content="width=)\d+(,\s*height=)\d+(")/i, `$1${dims.w}$2${dims.h}$3`).replace(/(width:\s*)\d+(px;\s*height:\s*)\d+(px;)/i, `$1${dims.w}$2${dims.h}$3`).replace(/(data-width=")\d+(")/i, `$1${dims.w}$2`).replace(/(data-height=")\d+(")/i, `$1${dims.h}$2`);
73522
73569
  }
73523
73570
  async function stampCompositionDims(compositionDir, dims) {
73524
- const metaPath = path32.join(compositionDir, "meta.json");
73571
+ const metaPath = path31.join(compositionDir, "meta.json");
73525
73572
  const rawMeta = await readFile25(metaPath, "utf8");
73526
73573
  await writeFile13(metaPath, patchCompositionMeta(rawMeta, dims), "utf8");
73527
- const htmlPath = path32.join(compositionDir, "index.html");
73574
+ const htmlPath = path31.join(compositionDir, "index.html");
73528
73575
  const rawHtml = await readFile25(htmlPath, "utf8");
73529
73576
  await writeFile13(htmlPath, patchCompositionHtml(rawHtml, dims), "utf8");
73530
73577
  }
@@ -73821,8 +73868,8 @@ var scaffoldAdCommand = defineCommand135({
73821
73868
  videoModel: chosenVideoModel,
73822
73869
  ...avatarVoice ? { avatarVoice } : {}
73823
73870
  });
73824
- const slug = args8.slug ?? path33.basename(specPath).replace(/\.[^.]+$/, "");
73825
- const outPath = args8.out ?? (args8.slug ? path33.join("src/creatives", slug, `${slug}.canvas.json`) : path33.join(path33.dirname(specPath), `${slug}.canvas.json`));
73871
+ const slug = args8.slug ?? path32.basename(specPath).replace(/\.[^.]+$/, "");
73872
+ const outPath = args8.out ?? (args8.slug ? path32.join("src/creatives", slug, `${slug}.canvas.json`) : path32.join(path32.dirname(specPath), `${slug}.canvas.json`));
73826
73873
  if (args8.slug) await enforceNewCreativeLimit(slug, outPath);
73827
73874
  let outAr;
73828
73875
  try {
@@ -73840,28 +73887,28 @@ var scaffoldAdCommand = defineCommand135({
73840
73887
  return;
73841
73888
  }
73842
73889
  const outDims = canvasDims(outAr);
73843
- const outDir = path33.dirname(outPath);
73890
+ const outDir = path32.dirname(outPath);
73844
73891
  await mkdir9(outDir, { recursive: true });
73845
- const compositionDest = path33.join(outDir, "video-overlay-composition");
73846
- const captionsDest = path33.join(outDir, "tiktok-captions-composition");
73892
+ const compositionDest = path32.join(outDir, "video-overlay-composition");
73893
+ const captionsDest = path32.join(outDir, "tiktok-captions-composition");
73847
73894
  await cp(SHIPPED_OVERLAY_COMPOSITION_DIR, compositionDest, { recursive: true });
73848
73895
  await cp(SHIPPED_CAPTIONS_DIR, captionsDest, { recursive: true });
73849
73896
  await stampCompositionDims(compositionDest, outDims);
73850
73897
  await stampCompositionDims(captionsDest, outDims);
73851
- const captionsIndex = path33.join(captionsDest, "index.html");
73898
+ const captionsIndex = path32.join(captionsDest, "index.html");
73852
73899
  await writeFile14(captionsIndex, injectAdCaptionPlacement(await readFile26(captionsIndex, "utf-8"), outAr), "utf-8");
73853
73900
  const face = await stageBrandDisplayFace(outDir, captionsDest);
73854
73901
  if (face) {
73855
73902
  await writeFile14(captionsIndex, injectAdDisplayFace(await readFile26(captionsIndex, "utf-8"), face.file), "utf-8");
73856
73903
  }
73857
- const blueprintPath2 = path33.join(outDir, "prompt.json");
73858
- const blueprintStylePath = path33.join(outDir, "prompt.style.json");
73904
+ const blueprintPath2 = path32.join(outDir, "prompt.json");
73905
+ const blueprintStylePath = path32.join(outDir, "prompt.style.json");
73859
73906
  await writeSceneFiles(outDir, blueprint);
73860
73907
  await writeFile14(blueprintStylePath, renderStyleProjectionFromValue(blueprint), "utf8");
73861
- await writeFile14(path33.join(outDir, AD_SPEC_FILE), `${JSON.stringify(specArtifact, null, 2)}
73908
+ await writeFile14(path32.join(outDir, AD_SPEC_FILE), `${JSON.stringify(specArtifact, null, 2)}
73862
73909
  `, "utf8");
73863
73910
  const logoPath = noBrand ? void 0 : spec.data.brand?.logo?.trim();
73864
- const transcriptPath = path33.join(outDir, "transcript.json");
73911
+ const transcriptPath = path32.join(outDir, "transcript.json");
73865
73912
  if (spec.data.voiceover === false) {
73866
73913
  await writeFile14(transcriptPath, `${JSON.stringify(staticTranscript(spec.data, chosenVideoModel), null, 2)}
73867
73914
  `, "utf-8");
@@ -73873,10 +73920,10 @@ var scaffoldAdCommand = defineCommand135({
73873
73920
  // that stops the whole canvas. The same sheet model every other scaffold uses.
73874
73921
  sheetModel: ACTOR_SHEET_MODEL,
73875
73922
  videoModel: chosenVideoModel,
73876
- overlayCompositionPath: path33.relative(outDir, compositionDest),
73877
- captionsCompositionPath: path33.relative(outDir, captionsDest),
73878
- blueprintPath: path33.relative(outDir, blueprintPath2),
73879
- blueprintStylePath: path33.relative(outDir, blueprintStylePath),
73923
+ overlayCompositionPath: path32.relative(outDir, compositionDest),
73924
+ captionsCompositionPath: path32.relative(outDir, captionsDest),
73925
+ blueprintPath: path32.relative(outDir, blueprintPath2),
73926
+ blueprintStylePath: path32.relative(outDir, blueprintStylePath),
73880
73927
  aspect: spec.data.format.aspect_ratio,
73881
73928
  resolution: spec.data.format.resolution,
73882
73929
  // A beat is one clause and one card, so the cap has to clear a whole clause.
@@ -73915,17 +73962,17 @@ var scaffoldAdCommand = defineCommand135({
73915
73962
  // the stock voice this exists to avoid. It is to convert the LATER extracts onto the
73916
73963
  // first beat of the same speaker, which keeps a voice the clip really produced.
73917
73964
  ...avatar ? { keepRenderedVoice: true } : {},
73918
- ...spec.data.voiceover === false ? { staticTranscriptPath: path33.relative(outDir, transcriptPath) } : {}
73965
+ ...spec.data.voiceover === false ? { staticTranscriptPath: path32.relative(outDir, transcriptPath) } : {}
73919
73966
  };
73920
73967
  const canvas = scaffoldVideoCanvas(blueprint, adSpecCastElements(spec.data, avatar), opts);
73921
73968
  const renderNode5 = canvas.nodes.find((n) => n.type === "hyperframe_render");
73922
- const renderedDir = renderNode5 ? path33.join(outDir, String(renderNode5.params?.composition ?? "")) : null;
73969
+ const renderedDir = renderNode5 ? path32.join(outDir, String(renderNode5.params?.composition ?? "")) : null;
73923
73970
  let staged = null;
73924
73971
  let markIsLight = false;
73925
73972
  if (logoPath && renderedDir) {
73926
- const ext = path33.extname(logoPath) || ".png";
73973
+ const ext = path32.extname(logoPath) || ".png";
73927
73974
  try {
73928
- await copyFile(logoPath, path33.join(renderedDir, `brand-mark${ext}`));
73975
+ await copyFile(logoPath, path32.join(renderedDir, `brand-mark${ext}`));
73929
73976
  staged = { file: `brand-mark${ext}`, alt: spec.data.brand?.name ?? "brand" };
73930
73977
  markIsLight = await markInkIsLight(logoPath);
73931
73978
  } catch {
@@ -73944,12 +73991,12 @@ var scaffoldAdCommand = defineCommand135({
73944
73991
  plateIsDark: plateIsDark(spec.data.brand?.palette)
73945
73992
  }) : "";
73946
73993
  if (overlayHtml && renderedDir) {
73947
- const indexPath = path33.join(renderedDir, "index.html");
73994
+ const indexPath = path32.join(renderedDir, "index.html");
73948
73995
  const html = await readFile26(indexPath, "utf-8");
73949
73996
  await writeFile14(indexPath, injectAdBrandOverlay(html, overlayHtml, { aspect: outAr, ...face ? { face: AD_DISPLAY_FAMILY } : {} }), "utf-8");
73950
73997
  }
73951
73998
  await writeFile14(
73952
- path33.join(outDir, REBUILD_FILE),
73999
+ path32.join(outDir, REBUILD_FILE),
73953
74000
  `${JSON.stringify({ elements: adSpecCastElements(spec.data, avatar), opts }, null, 2)}
73954
74001
  `,
73955
74002
  "utf8"
@@ -73979,7 +74026,7 @@ var scaffoldAdCommand = defineCommand135({
73979
74026
  return;
73980
74027
  }
73981
74028
  if (args8.slug) {
73982
- const definitionPath = path33.join(outDir, "_definition.md");
74029
+ const definitionPath = path32.join(outDir, "_definition.md");
73983
74030
  const definitionExists = await stat5(definitionPath).then(() => true, () => false);
73984
74031
  if (!definitionExists) {
73985
74032
  await writeFile14(
@@ -74097,9 +74144,9 @@ async function fetchClientLogo() {
74097
74144
  if (!response.ok) return { ok: false, reason: clientLogoMissNote({ use: false, reason: "no_hits" }, domain) };
74098
74145
  const bytes = Buffer.from(await response.arrayBuffer());
74099
74146
  const extension = /\.(svg|png|jpg|jpeg|webp)(?:\?|$)/i.exec(decision.url)?.[1]?.toLowerCase() ?? "svg";
74100
- const dir = path33.join(BRAND_DIR, "logos");
74147
+ const dir = path32.join(BRAND_DIR, "logos");
74101
74148
  await mkdir9(dir, { recursive: true });
74102
- const file = path33.join(dir, `brand-mark.${extension}`);
74149
+ const file = path32.join(dir, `brand-mark.${extension}`);
74103
74150
  await writeFile14(file, bytes);
74104
74151
  return { ok: true, path: file };
74105
74152
  } catch {
@@ -74118,14 +74165,14 @@ async function stageBrandDisplayFace(outDir, compositionDir) {
74118
74165
  if (!face) return null;
74119
74166
  try {
74120
74167
  if ("path" in face.slot) {
74121
- const file2 = `brand-face${path33.extname(face.slot.path).toLowerCase()}`;
74122
- await copyFile(face.slot.path, path33.join(compositionDir, file2));
74123
- return { file: file2, label: `the font file \`${path33.relative(root, face.slot.path)}\`` };
74168
+ const file2 = `brand-face${path32.extname(face.slot.path).toLowerCase()}`;
74169
+ await copyFile(face.slot.path, path32.join(compositionDir, file2));
74170
+ return { file: file2, label: `the font file \`${path32.relative(root, face.slot.path)}\`` };
74124
74171
  }
74125
74172
  const { buffer } = await fetchExternalBytes(face.slot.url, { maxBytes: MAX_FONT_BYTES });
74126
74173
  const extension = /\.(woff2|woff|ttf|otf)(?:\?|$)/i.exec(face.slot.url)?.[1]?.toLowerCase() ?? "woff2";
74127
74174
  const file = `brand-face.${extension}`;
74128
- await writeFile14(path33.join(compositionDir, file), buffer);
74175
+ await writeFile14(path32.join(compositionDir, file), buffer);
74129
74176
  return { file, label: `${face.family ?? "the brand's typeface"}, loaded as a web font` };
74130
74177
  } catch {
74131
74178
  return null;
@@ -74135,7 +74182,7 @@ async function stageBrandDisplayFace(outDir, compositionDir) {
74135
74182
  // src/commands/canvas/scaffold-video.ts
74136
74183
  import { cp as cp2, mkdir as mkdir10, readFile as readFile29, rm as rm8, writeFile as writeFile15 } from "fs/promises";
74137
74184
  import { tmpdir as tmpdir3 } from "os";
74138
- import path35 from "path";
74185
+ import path34 from "path";
74139
74186
  import { defineCommand as defineCommand136 } from "citty";
74140
74187
 
74141
74188
  // src/engine/scaffold/lib/model-router.ts
@@ -74276,7 +74323,7 @@ async function detectSceneCutsPySceneDetect(filePath, opts = {}) {
74276
74323
 
74277
74324
  // src/commands/canvas/gitignore.ts
74278
74325
  import { appendFile, readFile as readFile28 } from "fs/promises";
74279
- import path34 from "path";
74326
+ import path33 from "path";
74280
74327
  function missingGitignoreEntries(existing, entries) {
74281
74328
  const present2 = new Set(
74282
74329
  existing.split("\n").map((l) => l.trim().replace(/\/+$/, "")).filter((l) => l.length > 0 && !l.startsWith("#"))
@@ -74284,7 +74331,7 @@ function missingGitignoreEntries(existing, entries) {
74284
74331
  return entries.filter((e) => !present2.has(e.trim().replace(/\/+$/, "")));
74285
74332
  }
74286
74333
  async function ensureGitignore(dir, entries) {
74287
- const file = path34.join(dir, ".gitignore");
74334
+ const file = path33.join(dir, ".gitignore");
74288
74335
  let existing;
74289
74336
  try {
74290
74337
  existing = await readFile28(file, "utf8");
@@ -74329,7 +74376,7 @@ async function loadTranscriptBestEffort(ref2) {
74329
74376
  async function stageCaptions(outDir, transcript) {
74330
74377
  const text2 = transcript?.trim();
74331
74378
  if (!text2 || text2 === "[]") return {};
74332
- const compositionPath = path35.join(outDir, "tiktok-captions-composition");
74379
+ const compositionPath = path34.join(outDir, "tiktok-captions-composition");
74333
74380
  await cp2(SHIPPED_CAPTIONS_DIR, compositionPath, { recursive: true });
74334
74381
  return { compositionPath };
74335
74382
  }
@@ -74365,7 +74412,7 @@ var VIDEO_EXT_BY_MIME = {
74365
74412
  "video/x-matroska": ".mkv"
74366
74413
  };
74367
74414
  function referenceVideoExt(url, contentType) {
74368
- const fromPath = path35.extname(new URL(url).pathname).toLowerCase();
74415
+ const fromPath = path34.extname(new URL(url).pathname).toLowerCase();
74369
74416
  if (fromPath && fromPath.length <= 5) return fromPath;
74370
74417
  const mime = (contentType ?? "").split(";")[0]?.trim().toLowerCase();
74371
74418
  return mime && VIDEO_EXT_BY_MIME[mime] || ".mp4";
@@ -74391,7 +74438,7 @@ function framesModeReport(canvas, requested) {
74391
74438
  return { frames_mode: mode, ...refused ? { frames_reuse_refused: refused } : {} };
74392
74439
  }
74393
74440
  async function materializeReferenceVideo(fileArg2) {
74394
- if (!/^https?:\/\//i.test(fileArg2)) return path35.resolve(fileArg2);
74441
+ if (!/^https?:\/\//i.test(fileArg2)) return path34.resolve(fileArg2);
74395
74442
  let bytes;
74396
74443
  let contentType;
74397
74444
  try {
@@ -74403,7 +74450,7 @@ async function materializeReferenceVideo(fileArg2) {
74403
74450
  throw new Error(`failed to download reference video: ${e instanceof Error ? e.message : String(e)}`);
74404
74451
  }
74405
74452
  if (bytes.length === 0) throw new Error("reference video download was empty");
74406
- const dest = path35.join(
74453
+ const dest = path34.join(
74407
74454
  tmpdir3(),
74408
74455
  `baker-ref-${sha256Hex(bytes).slice(0, 16)}${referenceVideoExt(fileArg2, contentType)}`
74409
74456
  );
@@ -74630,12 +74677,12 @@ var scaffoldVideoCommand = defineCommand136({
74630
74677
  } catch (e) {
74631
74678
  return fail4("download", e instanceof Error ? e.message : String(e));
74632
74679
  }
74633
- const base = path35.basename(videoPath, path35.extname(videoPath));
74634
- const outPath = args8.out ? path35.resolve(String(args8.out)) : slug ? path35.join(process.cwd(), "src", "creatives", slug, `${slug}.canvas.json`) : path35.join(path35.dirname(videoPath), `${base}.video.canvas.json`);
74680
+ const base = path34.basename(videoPath, path34.extname(videoPath));
74681
+ const outPath = args8.out ? path34.resolve(String(args8.out)) : slug ? path34.join(process.cwd(), "src", "creatives", slug, `${slug}.canvas.json`) : path34.join(path34.dirname(videoPath), `${base}.video.canvas.json`);
74635
74682
  if (slug) await enforceNewCreativeLimit(slug, outPath);
74636
- const outDir = path35.dirname(outPath);
74637
- const blueprintPath2 = path35.join(outDir, "prompt.json");
74638
- const blueprintStylePath = path35.join(outDir, "prompt.style.json");
74683
+ const outDir = path34.dirname(outPath);
74684
+ const blueprintPath2 = path34.join(outDir, "prompt.json");
74685
+ const blueprintStylePath = path34.join(outDir, "prompt.style.json");
74639
74686
  const frames = args8.frames === "reuse" ? "reuse" : "generate";
74640
74687
  const maxScenes = args8["max-scenes"] ? Number(args8["max-scenes"]) : void 0;
74641
74688
  if (Number.isFinite(maxScenes)) {
@@ -74704,10 +74751,10 @@ var scaffoldVideoCommand = defineCommand136({
74704
74751
  `
74705
74752
  );
74706
74753
  }
74707
- const compositionDest = path35.join(outDir, "video-overlay-composition");
74754
+ const compositionDest = path34.join(outDir, "video-overlay-composition");
74708
74755
  await cp2(SHIPPED_OVERLAY_COMPOSITION_DIR, compositionDest, { recursive: true });
74709
74756
  await stampCompositionDims(compositionDest, outDims);
74710
- const indexPath = path35.join(compositionDest, "index.html");
74757
+ const indexPath = path34.join(compositionDest, "index.html");
74711
74758
  const overlayHtml = buildOverlayHtml(blueprint, { captionsActive: Boolean(transcript), videoModel });
74712
74759
  const indexHtml = await readFile29(indexPath, "utf8");
74713
74760
  const injected = indexHtml.replace("<!--OVERLAYS-->", () => overlayHtml);
@@ -74723,10 +74770,10 @@ var scaffoldVideoCommand = defineCommand136({
74723
74770
  const opts = {
74724
74771
  imageModel,
74725
74772
  videoModel,
74726
- overlayCompositionPath: path35.relative(outDir, compositionDest),
74727
- captionsCompositionPath: captions.compositionPath ? path35.relative(outDir, captions.compositionPath) : void 0,
74728
- blueprintPath: path35.relative(outDir, blueprintPath2),
74729
- blueprintStylePath: path35.relative(outDir, blueprintStylePath),
74773
+ overlayCompositionPath: path34.relative(outDir, compositionDest),
74774
+ captionsCompositionPath: captions.compositionPath ? path34.relative(outDir, captions.compositionPath) : void 0,
74775
+ blueprintPath: path34.relative(outDir, blueprintPath2),
74776
+ blueprintStylePath: path34.relative(outDir, blueprintStylePath),
74730
74777
  frames,
74731
74778
  ambient: Boolean(args8.ambient),
74732
74779
  seamDedup: resolveSeamDedup(args8["seam-dedup"]),
@@ -74754,7 +74801,7 @@ var scaffoldVideoCommand = defineCommand136({
74754
74801
  await writeFile15(outPath, `${JSON.stringify(canvas, null, 2)}
74755
74802
  `, "utf8");
74756
74803
  await writeFile15(
74757
- path35.join(outDir, REBUILD_FILE),
74804
+ path34.join(outDir, REBUILD_FILE),
74758
74805
  `${JSON.stringify({ elements, opts }, null, 2)}
74759
74806
  `,
74760
74807
  "utf8"
@@ -74781,7 +74828,7 @@ var scaffoldVideoCommand = defineCommand136({
74781
74828
  await ensureGitignore(process.cwd(), ["canvas/", ".context/"]);
74782
74829
  const sourceRef = videoSourceReference(blueprint, fileArg2);
74783
74830
  if (slug) {
74784
- const definitionPath = path35.join(outDir, "_definition.md");
74831
+ const definitionPath = path34.join(outDir, "_definition.md");
74785
74832
  if (!await fileExists(definitionPath)) {
74786
74833
  await writeFile15(
74787
74834
  definitionPath,
@@ -74837,7 +74884,7 @@ var scaffoldVideoCommand = defineCommand136({
74837
74884
  graph: canvas.metadata?.video?.graph_stats
74838
74885
  },
74839
74886
  checklist: {
74840
- edit_prompt: `The blueprint is split so you edit ONE small file at a time \u2014 never a giant one. Per-scene content (a scene's dialogue, action, frame prompts, overlays) lives in \`scenes/sNN.json\` \u2014 edit the single scene you want to change. Global cast/palette/brand/copy lives in \`${path35.basename(blueprintPath2)}\`. \`baker canvas validate\`/\`run\` re-assemble the blueprint and re-flow every edited scene back into the render (and regenerate ${path35.basename(blueprintStylePath)}, the projection each frame's target_blueprint reads) \u2014 so your scene edits reach the render automatically. Never hand-edit the inlined node prompts in the canvas or the derived ${path35.basename(blueprintStylePath)}; both are regenerated.`,
74887
+ edit_prompt: `The blueprint is split so you edit ONE small file at a time \u2014 never a giant one. Per-scene content (a scene's dialogue, action, frame prompts, overlays) lives in \`scenes/sNN.json\` \u2014 edit the single scene you want to change. Global cast/palette/brand/copy lives in \`${path34.basename(blueprintPath2)}\`. \`baker canvas validate\`/\`run\` re-assemble the blueprint and re-flow every edited scene back into the render (and regenerate ${path34.basename(blueprintStylePath)}, the projection each frame's target_blueprint reads) \u2014 so your scene edits reach the render automatically. Never hand-edit the inlined node prompts in the canvas or the derived ${path34.basename(blueprintStylePath)}; both are regenerated.`,
74841
74888
  recurring_elements_to_supply: report.elements,
74842
74889
  voices_to_confirm: report.dialogue.map((d) => ({
74843
74890
  scene: d.scene,
@@ -74875,7 +74922,7 @@ var scaffoldVideoCommand = defineCommand136({
74875
74922
 
74876
74923
  // src/commands/canvas/set-prompt.ts
74877
74924
  import { readFile as readFile30, writeFile as writeFile16 } from "fs/promises";
74878
- import path36 from "path";
74925
+ import path35 from "path";
74879
74926
  import { defineCommand as defineCommand137 } from "citty";
74880
74927
  function setNodePrompt(canvas, nodeId, text2) {
74881
74928
  const nodes = canvas?.nodes;
@@ -74904,7 +74951,7 @@ var SetPromptError = class extends Error {
74904
74951
  }
74905
74952
  };
74906
74953
  async function setPromptInCanvasFile(canvasPath, nodeId, text2) {
74907
- const filePath = path36.resolve(canvasPath);
74954
+ const filePath = path35.resolve(canvasPath);
74908
74955
  const original = await readFile30(filePath, "utf8");
74909
74956
  let canvas;
74910
74957
  try {
@@ -74972,7 +75019,7 @@ var setPromptCommand = defineCommand137({
74972
75019
  },
74973
75020
  async run({ args: args8 }) {
74974
75021
  let text2;
74975
- if (args8["text-file"]) text2 = await readFile30(path36.resolve(String(args8["text-file"])), "utf8");
75022
+ if (args8["text-file"]) text2 = await readFile30(path35.resolve(String(args8["text-file"])), "utf8");
74976
75023
  else if (args8.text !== void 0) text2 = String(args8.text);
74977
75024
  else {
74978
75025
  process.stderr.write(
@@ -75029,7 +75076,7 @@ var staleCommand = defineCommand138({
75029
75076
  });
75030
75077
 
75031
75078
  // src/commands/canvas/validate.ts
75032
- import path37 from "path";
75079
+ import path36 from "path";
75033
75080
  import { defineCommand as defineCommand139 } from "citty";
75034
75081
  var validateCommand = defineCommand139({
75035
75082
  meta: {
@@ -75038,7 +75085,7 @@ var validateCommand = defineCommand139({
75038
75085
  },
75039
75086
  args: { file: { type: "positional", required: true, description: "Path to canvas JSON" } },
75040
75087
  async run({ args: args8 }) {
75041
- const filePath = path37.resolve(String(args8.file));
75088
+ const filePath = path36.resolve(String(args8.file));
75042
75089
  let prepared;
75043
75090
  try {
75044
75091
  prepared = await prepareCanvas(filePath, { log: (line) => process.stderr.write(`${line}
@@ -75600,7 +75647,7 @@ var feedbackCommand = defineCommand144({
75600
75647
 
75601
75648
  // src/commands/creatives/performance.ts
75602
75649
  import { readFileSync as readFileSync16 } from "fs";
75603
- import path38 from "path";
75650
+ import path37 from "path";
75604
75651
  import { defineCommand as defineCommand145 } from "citty";
75605
75652
  import { parse as parseYaml2 } from "yaml";
75606
75653
  var DESCRIPTION4 = `How each Baker creative is doing in the live Meta ads that show it: spend, impressions, CTR, CPC, results, cost per result, frequency and a fatigue verdict, next to the angle, hook, mechanism and dominant slot its definition set out to test. Video creatives add hookRate (percent of impressions that watched 3 seconds) and holdRate (percent of those that reached a ThruPlay). Use it before briefing new creatives, to learn which angle and mechanism to make next and which creatives to replace.
@@ -75653,7 +75700,7 @@ function definitionInsights(markdown) {
75653
75700
  }
75654
75701
  function readLocalDefinition(slug) {
75655
75702
  try {
75656
- return readFileSync16(path38.join(process.cwd(), "src", "creatives", slug, "_definition.md"), "utf8");
75703
+ return readFileSync16(path37.join(process.cwd(), "src", "creatives", slug, "_definition.md"), "utf8");
75657
75704
  } catch {
75658
75705
  return null;
75659
75706
  }
@@ -76213,11 +76260,11 @@ import { defineCommand as defineCommand149 } from "citty";
76213
76260
 
76214
76261
  // src/commands/experiment/composition.ts
76215
76262
  import { readdir as readdir14, readFile as readFile34 } from "fs/promises";
76216
- import path40 from "path";
76263
+ import path39 from "path";
76217
76264
 
76218
76265
  // src/commands/landing/import-graph.ts
76219
76266
  import { readdir as readdir13, readFile as readFile33, stat as stat6 } from "fs/promises";
76220
- import path39 from "path";
76267
+ import path38 from "path";
76221
76268
  var SOURCE_EXT = /\.(astro|ts|tsx|js|jsx|mjs|cjs|vue|svelte)$/;
76222
76269
  var RESOLVE_CANDIDATES = [
76223
76270
  "",
@@ -76250,7 +76297,7 @@ async function walkFiles(dir) {
76250
76297
  }
76251
76298
  const out = [];
76252
76299
  for (const entry of entries) {
76253
- const full = path39.join(dir, entry.name);
76300
+ const full = path38.join(dir, entry.name);
76254
76301
  if (entry.isDirectory()) {
76255
76302
  if (entry.name === "node_modules" || entry.name === "dist") continue;
76256
76303
  out.push(...await walkFiles(full));
@@ -76264,8 +76311,8 @@ async function resolveSpecifier(specifier, fromFile, root) {
76264
76311
  const bare = specifier.split("?")[0] ?? "";
76265
76312
  if (bare.includes("*")) return null;
76266
76313
  let base;
76267
- if (bare.startsWith("/")) base = path39.join(root, bare.slice(1));
76268
- else if (bare.startsWith(".")) base = path39.resolve(path39.dirname(fromFile), bare);
76314
+ if (bare.startsWith("/")) base = path38.join(root, bare.slice(1));
76315
+ else if (bare.startsWith(".")) base = path38.resolve(path38.dirname(fromFile), bare);
76269
76316
  else return null;
76270
76317
  for (const suffix of RESOLVE_CANDIDATES) {
76271
76318
  const candidate = base + suffix;
@@ -76287,7 +76334,7 @@ async function importedFiles(text2, file, root) {
76287
76334
  }
76288
76335
  async function landingGraphFiles(root, slug) {
76289
76336
  const seen = /* @__PURE__ */ new Set();
76290
- const queue = await walkFiles(path39.join(root, "src/pages", slug));
76337
+ const queue = await walkFiles(path38.join(root, "src/pages", slug));
76291
76338
  while (queue.length > 0) {
76292
76339
  const file = queue.pop();
76293
76340
  if (file === void 0 || seen.has(file)) continue;
@@ -76302,7 +76349,7 @@ async function landingGraphFiles(root, slug) {
76302
76349
  if (!seen.has(target2)) queue.push(target2);
76303
76350
  }
76304
76351
  }
76305
- return new Set([...seen].map((abs) => path39.relative(root, abs).split(path39.sep).join("/")));
76352
+ return new Set([...seen].map((abs) => path38.relative(root, abs).split(path38.sep).join("/")));
76306
76353
  }
76307
76354
 
76308
76355
  // src/commands/experiment/composition.ts
@@ -76347,7 +76394,7 @@ function formsOnlyIn(these, those) {
76347
76394
  }
76348
76395
  async function knownFlows(root) {
76349
76396
  try {
76350
- const entries = await readdir14(path40.join(root, "src/lib/flow-engine/flows"), { withFileTypes: true });
76397
+ const entries = await readdir14(path39.join(root, "src/lib/flow-engine/flows"), { withFileTypes: true });
76351
76398
  return new Set(entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name));
76352
76399
  } catch {
76353
76400
  return /* @__PURE__ */ new Set();
@@ -76358,7 +76405,7 @@ async function readForms(root, slug) {
76358
76405
  const [files, flows] = await Promise.all([landingGraphFiles(root, slug), knownFlows(root)]);
76359
76406
  if (flows.size === 0) return [];
76360
76407
  const texts = await Promise.all(
76361
- [...files].filter((file) => /\.(astro|ts|tsx|js|mjs)$/.test(file)).map((file) => readFile34(path40.join(root, file), "utf8"))
76408
+ [...files].filter((file) => /\.(astro|ts|tsx|js|mjs)$/.test(file)).map((file) => readFile34(path39.join(root, file), "utf8"))
76362
76409
  );
76363
76410
  return formsReferenced(texts, flows);
76364
76411
  } catch {
@@ -76369,7 +76416,7 @@ async function readForms(root, slug) {
76369
76416
  // src/commands/experiment/fold.ts
76370
76417
  import { statSync } from "fs";
76371
76418
  import { cp as cp3, mkdir as mkdir11, readdir as readdir15, readFile as readFile35, rm as rm9, stat as stat7, writeFile as writeFile17 } from "fs/promises";
76372
- import path42 from "path";
76419
+ import path41 from "path";
76373
76420
 
76374
76421
  // ../api/src/experiments/variants.ts
76375
76422
  var VARIANT_SEPARATOR = "--";
@@ -76394,21 +76441,21 @@ function nextVariantNumber(page, existingSlugs, archived) {
76394
76441
  }
76395
76442
 
76396
76443
  // src/commands/landing/repoint.ts
76397
- import path41 from "path";
76444
+ import path40 from "path";
76398
76445
  var QUOTED_RELATIVE = /(['"])(\.\.?\/[^'"]*)\1/g;
76399
76446
  function isInside3(abs, dir) {
76400
- return abs === dir || abs.startsWith(dir + path41.sep);
76447
+ return abs === dir || abs.startsWith(dir + path40.sep);
76401
76448
  }
76402
76449
  function toSpecifier(from, to) {
76403
- const rel = path41.relative(from, to).split(path41.sep).join("/");
76450
+ const rel = path40.relative(from, to).split(path40.sep).join("/");
76404
76451
  return rel.startsWith(".") ? rel : `./${rel}`;
76405
76452
  }
76406
76453
  function repointSpecifier(spec, opts) {
76407
76454
  if (!spec.startsWith(".")) return spec;
76408
- const abs = path41.resolve(opts.fromDir, spec);
76455
+ const abs = path40.resolve(opts.fromDir, spec);
76409
76456
  if (opts.forkedTargets?.has(abs)) {
76410
- const withinControl = path41.relative(opts.controlDir, abs);
76411
- return toSpecifier(opts.toDir, path41.resolve(opts.variantDir, withinControl));
76457
+ const withinControl = path40.relative(opts.controlDir, abs);
76458
+ return toSpecifier(opts.toDir, path40.resolve(opts.variantDir, withinControl));
76412
76459
  }
76413
76460
  if (!isInside3(abs, opts.controlDir)) return spec;
76414
76461
  return toSpecifier(opts.toDir, abs);
@@ -76420,9 +76467,9 @@ function repointFile(text2, opts) {
76420
76467
  }
76421
76468
  function repointMoved(text2, opts) {
76422
76469
  return text2.replace(QUOTED_RELATIVE, (_match, quote, spec) => {
76423
- const abs = path41.resolve(opts.fromDir, spec);
76424
- const within = path41.relative(opts.movedFrom, abs);
76425
- const target2 = within.startsWith("..") || path41.isAbsolute(within) ? abs : path41.resolve(opts.movedTo, within);
76470
+ const abs = path40.resolve(opts.fromDir, spec);
76471
+ const within = path40.relative(opts.movedFrom, abs);
76472
+ const target2 = within.startsWith("..") || path40.isAbsolute(within) ? abs : path40.resolve(opts.movedTo, within);
76426
76473
  return `${quote}${toSpecifier(opts.toDir, target2)}${quote}`;
76427
76474
  });
76428
76475
  }
@@ -76431,7 +76478,7 @@ function repointMoved(text2, opts) {
76431
76478
  var ARCHIVE_ROOT = "src/_variants";
76432
76479
  var QUOTED_RELATIVE2 = /(['"])(\.\.?\/[^'"]*)\1/g;
76433
76480
  function posix2(p) {
76434
- return p.split(path42.sep).join("/");
76481
+ return p.split(path41.sep).join("/");
76435
76482
  }
76436
76483
  async function isDir(p) {
76437
76484
  try {
@@ -76450,39 +76497,39 @@ async function filesUnder(dir, prefix = "") {
76450
76497
  const out = [];
76451
76498
  for (const entry of entries) {
76452
76499
  const rel = prefix ? `${prefix}/${entry.name}` : entry.name;
76453
- if (entry.isDirectory()) out.push(...await filesUnder(path42.join(dir, entry.name), rel));
76500
+ if (entry.isDirectory()) out.push(...await filesUnder(path41.join(dir, entry.name), rel));
76454
76501
  else out.push(rel);
76455
76502
  }
76456
76503
  return out.sort();
76457
76504
  }
76458
76505
  var TEXT_EXT = /\.(astro|ts|tsx|js|jsx|mjs|cjs|vue|svelte|md|json|css)$/;
76459
76506
  function archiveRelPath(abs, base) {
76460
- if (!abs.startsWith(base + path42.sep)) return null;
76461
- return posix2(path42.relative(base, abs));
76507
+ if (!abs.startsWith(base + path41.sep)) return null;
76508
+ return posix2(path41.relative(base, abs));
76462
76509
  }
76463
76510
  async function archiveArm(opts) {
76464
76511
  const { root, armDir, pageDir, archiveDir, armSlug } = opts;
76465
76512
  const targets = await archiveContents({ root, armDir, pageDir, armSlug });
76466
- const archivedBySource = new Map([...targets].map(([rel, abs]) => [abs, path42.join(archiveDir, rel)]));
76513
+ const archivedBySource = new Map([...targets].map(([rel, abs]) => [abs, path41.join(archiveDir, rel)]));
76467
76514
  const written = [];
76468
76515
  for (const [rel, abs] of [...targets].sort()) {
76469
- const dest = path42.join(archiveDir, rel);
76470
- await mkdir11(path42.dirname(dest), { recursive: true });
76516
+ const dest = path41.join(archiveDir, rel);
76517
+ await mkdir11(path41.dirname(dest), { recursive: true });
76471
76518
  if (!TEXT_EXT.test(rel)) {
76472
76519
  await cp3(abs, dest);
76473
76520
  } else {
76474
76521
  const text2 = await readFile35(abs, "utf8");
76475
76522
  await writeFile17(dest, repointIntoArchive(text2, abs, dest, archivedBySource), "utf8");
76476
76523
  }
76477
- written.push(posix2(path42.relative(root, dest)));
76524
+ written.push(posix2(path41.relative(root, dest)));
76478
76525
  }
76479
76526
  return written;
76480
76527
  }
76481
76528
  async function archiveContents(opts) {
76482
76529
  const { root, armDir, pageDir, armSlug } = opts;
76483
76530
  const graph = await landingGraphFiles(root, armSlug);
76484
- const reachable = new Set([...graph].map((rel) => path42.resolve(root, rel)));
76485
- for (const rel of await filesUnder(armDir)) reachable.add(path42.join(armDir, rel));
76531
+ const reachable = new Set([...graph].map((rel) => path41.resolve(root, rel)));
76532
+ for (const rel of await filesUnder(armDir)) reachable.add(path41.join(armDir, rel));
76486
76533
  const sorted = [...reachable].sort();
76487
76534
  const targets = /* @__PURE__ */ new Map();
76488
76535
  for (const base of [pageDir, armDir]) {
@@ -76495,14 +76542,14 @@ async function archiveContents(opts) {
76495
76542
  return targets;
76496
76543
  }
76497
76544
  function repointIntoArchive(text2, sourceAbs, destAbs, archivedBySource) {
76498
- const fromDir = path42.dirname(sourceAbs);
76499
- const toDir = path42.dirname(destAbs);
76545
+ const fromDir = path41.dirname(sourceAbs);
76546
+ const toDir = path41.dirname(destAbs);
76500
76547
  return text2.replace(QUOTED_RELATIVE2, (match, quote, spec, offset) => {
76501
76548
  const [specPath, suffix] = splitSuffix(spec);
76502
- const target2 = path42.resolve(fromDir, specPath);
76549
+ const target2 = path41.resolve(fromDir, specPath);
76503
76550
  const resolved = resolveInArchive(target2, archivedBySource) ?? resolveOnDisk(target2, isImportPosition(text2, offset));
76504
76551
  if (resolved === null) return match;
76505
- const rel = posix2(path42.relative(toDir, resolved));
76552
+ const rel = posix2(path41.relative(toDir, resolved));
76506
76553
  return `${quote}${rel.startsWith(".") ? rel : `./${rel}`}${suffix}${quote}`;
76507
76554
  });
76508
76555
  }
@@ -76536,9 +76583,9 @@ async function promoteVariantFiles(opts) {
76536
76583
  const written = [];
76537
76584
  for (const rel of await filesUnder(variantDir)) {
76538
76585
  if (rel === "_definition.md") continue;
76539
- const from = path42.join(variantDir, rel);
76540
- const to = path42.join(pageDir, rel);
76541
- await mkdir11(path42.dirname(to), { recursive: true });
76586
+ const from = path41.join(variantDir, rel);
76587
+ const to = path41.join(pageDir, rel);
76588
+ await mkdir11(path41.dirname(to), { recursive: true });
76542
76589
  if (!TEXT_EXT.test(rel)) {
76543
76590
  await cp3(from, to);
76544
76591
  } else {
@@ -76546,15 +76593,15 @@ async function promoteVariantFiles(opts) {
76546
76593
  await writeFile17(
76547
76594
  to,
76548
76595
  repointMoved(text2, {
76549
- fromDir: path42.dirname(from),
76550
- toDir: path42.dirname(to),
76596
+ fromDir: path41.dirname(from),
76597
+ toDir: path41.dirname(to),
76551
76598
  movedFrom: variantDir,
76552
76599
  movedTo: pageDir
76553
76600
  }),
76554
76601
  "utf8"
76555
76602
  );
76556
76603
  }
76557
- written.push(posix2(path42.relative(root, to)));
76604
+ written.push(posix2(path41.relative(root, to)));
76558
76605
  }
76559
76606
  return written;
76560
76607
  }
@@ -76578,8 +76625,8 @@ function archiveRecord(target2, variantNumber) {
76578
76625
  `;
76579
76626
  }
76580
76627
  async function foldExperiment(root, target2) {
76581
- const pageDir = path42.resolve(root, "src/pages", target2.landingSlug);
76582
- const variantDir = path42.resolve(root, "src/pages", target2.variantSlug);
76628
+ const pageDir = path41.resolve(root, "src/pages", target2.landingSlug);
76629
+ const variantDir = path41.resolve(root, "src/pages", target2.variantSlug);
76583
76630
  const variantNumber = variantNumberOf(target2.variantSlug);
76584
76631
  if (variantNumber === null) {
76585
76632
  return {
@@ -76593,7 +76640,7 @@ async function foldExperiment(root, target2) {
76593
76640
  return { error: `src/pages/${target2.variantSlug}/ is already gone \u2014 this test looks folded in already` };
76594
76641
  }
76595
76642
  const archiveKey = target2.landingInternalId ?? target2.landingSlug;
76596
- const archiveDir = path42.resolve(root, ARCHIVE_ROOT, archiveKey, String(variantNumber));
76643
+ const archiveDir = path41.resolve(root, ARCHIVE_ROOT, archiveKey, String(variantNumber));
76597
76644
  await rm9(archiveDir, { recursive: true, force: true });
76598
76645
  await mkdir11(archiveDir, { recursive: true });
76599
76646
  const written = await archiveArm({
@@ -76603,8 +76650,8 @@ async function foldExperiment(root, target2) {
76603
76650
  archiveDir,
76604
76651
  armSlug: target2.survivor === "variant" ? target2.landingSlug : target2.variantSlug
76605
76652
  });
76606
- await writeFile17(path42.join(archiveDir, "_variant.json"), archiveRecord(target2, variantNumber), "utf8");
76607
- written.push(posix2(path42.join(ARCHIVE_ROOT, archiveKey, String(variantNumber), "_variant.json")));
76653
+ await writeFile17(path41.join(archiveDir, "_variant.json"), archiveRecord(target2, variantNumber), "utf8");
76654
+ written.push(posix2(path41.join(ARCHIVE_ROOT, archiveKey, String(variantNumber), "_variant.json")));
76608
76655
  if (target2.survivor === "variant") {
76609
76656
  written.push(...await promoteVariantFiles({ root, pageDir, variantDir }));
76610
76657
  }
@@ -76612,7 +76659,7 @@ async function foldExperiment(root, target2) {
76612
76659
  return {
76613
76660
  experimentId: target2.experimentId,
76614
76661
  page: target2.landingSlug,
76615
- archivedTo: posix2(path42.join(ARCHIVE_ROOT, archiveKey, String(variantNumber))),
76662
+ archivedTo: posix2(path41.join(ARCHIVE_ROOT, archiveKey, String(variantNumber))),
76616
76663
  written,
76617
76664
  removed: [`src/pages/${target2.variantSlug}`]
76618
76665
  };
@@ -77385,10 +77432,10 @@ function parseEvidence(raw, rawArgs) {
77385
77432
 
77386
77433
  // src/commands/experiment/identity.ts
77387
77434
  import { readFile as readFile36 } from "fs/promises";
77388
- import path43 from "path";
77435
+ import path42 from "path";
77389
77436
  async function readPageInternalId(root, slug) {
77390
77437
  try {
77391
- const text2 = await readFile36(path43.resolve(root, "src", "pages", slug, "_definition.md"), "utf8");
77438
+ const text2 = await readFile36(path42.resolve(root, "src", "pages", slug, "_definition.md"), "utf8");
77392
77439
  return /^internalId:\s*"?([^"\s]+)"?\s*$/m.exec(text2)?.[1];
77393
77440
  } catch {
77394
77441
  return void 0;
@@ -77397,7 +77444,7 @@ async function readPageInternalId(root, slug) {
77397
77444
 
77398
77445
  // src/commands/experiment/measurement.ts
77399
77446
  import { readFile as readFile37 } from "fs/promises";
77400
- import path44 from "path";
77447
+ import path43 from "path";
77401
77448
  function eventDeclarationsIn(source) {
77402
77449
  const found = [];
77403
77450
  const pattern = /\b(data-baker-(?:view|event))\s*=\s*["']([^"']+)["']/g;
@@ -77457,7 +77504,7 @@ function sectionsOf(files, slug) {
77457
77504
  return files.filter((file) => file.startsWith(prefix) && !file.slice(prefix.length).startsWith("index."));
77458
77505
  }
77459
77506
  async function declarationsOf(root, files) {
77460
- const sources = await Promise.all(files.map((file) => readFile37(path44.join(root, file), "utf8").catch(() => "")));
77507
+ const sources = await Promise.all(files.map((file) => readFile37(path43.join(root, file), "utf8").catch(() => "")));
77461
77508
  return sources.flatMap(eventDeclarationsIn);
77462
77509
  }
77463
77510
 
@@ -78509,10 +78556,10 @@ function parseValueExpression(raw) {
78509
78556
  return parts.map(parsePart);
78510
78557
  }
78511
78558
  function trackingFieldIds() {
78512
- const path59 = join4(flowsDir(), "..", "tracking.ts");
78513
- if (!existsSync9(path59)) return null;
78559
+ const path58 = join4(flowsDir(), "..", "tracking.ts");
78560
+ if (!existsSync9(path58)) return null;
78514
78561
  try {
78515
- const source = readFileSync17(path59, "utf-8");
78562
+ const source = readFileSync17(path58, "utf-8");
78516
78563
  const block2 = source.match(/TRACKING_FIELD_IDS\s*=\s*\[([\s\S]*?)\]\s*as const/)?.[1];
78517
78564
  if (!block2) return null;
78518
78565
  const ids2 = [...block2.matchAll(/"(tracking\.[a-z0-9_]+)"/g)].map((match) => match[1]);
@@ -79094,13 +79141,13 @@ function specsFromFile(parsed) {
79094
79141
  return `${destField}${type}=${entry?.value ?? ""}`;
79095
79142
  });
79096
79143
  }
79097
- function readSpecFile(path59) {
79144
+ function readSpecFile(path58) {
79098
79145
  let raw;
79099
79146
  try {
79100
- raw = path59 === "-" ? readFileSync18(0, "utf-8") : readFileSync18(path59, "utf-8");
79147
+ raw = path58 === "-" ? readFileSync18(0, "utf-8") : readFileSync18(path58, "utf-8");
79101
79148
  } catch (error) {
79102
79149
  refuse(
79103
- `Could not read ${path59 === "-" ? "the mapping from stdin" : `"${path59}"`}: ${error instanceof Error ? error.message : String(error)}`
79150
+ `Could not read ${path58 === "-" ? "the mapping from stdin" : `"${path58}"`}: ${error instanceof Error ? error.message : String(error)}`
79104
79151
  );
79105
79152
  }
79106
79153
  let parsed;
@@ -79108,7 +79155,7 @@ function readSpecFile(path59) {
79108
79155
  parsed = JSON.parse(raw);
79109
79156
  } catch (error) {
79110
79157
  refuse(
79111
- `${path59 === "-" ? "stdin" : `"${path59}"`} is not valid JSON: ${error instanceof Error ? error.message : String(error)}`,
79158
+ `${path58 === "-" ? "stdin" : `"${path58}"`} is not valid JSON: ${error instanceof Error ? error.message : String(error)}`,
79112
79159
  'Expected { "map": { "<destField>": "<value>", \u2026 } }'
79113
79160
  );
79114
79161
  }
@@ -79407,21 +79454,21 @@ var ARRAY_FIELDS = [
79407
79454
  "tagIds"
79408
79455
  ];
79409
79456
  var ARRAY_OWNERS = ["", "body"];
79410
- function dropUnsetOptionals(sideEffect, path59) {
79457
+ function dropUnsetOptionals(sideEffect, path58) {
79411
79458
  return OPTIONAL_STRINGS.flatMap((key) => {
79412
79459
  if (!(key in sideEffect) || sideEffect[key] !== null && sideEffect[key] !== "") return [];
79413
79460
  delete sideEffect[key];
79414
- return [{ path: path59, change: `dropped \`${key}\` (an optional string is absent, never null)` }];
79461
+ return [{ path: path58, change: `dropped \`${key}\` (an optional string is absent, never null)` }];
79415
79462
  });
79416
79463
  }
79417
- function fillNulledArrays(target2, prefix, path59) {
79464
+ function fillNulledArrays(target2, prefix, path58) {
79418
79465
  return ARRAY_FIELDS.flatMap((key) => {
79419
79466
  if (!(key in target2) || target2[key] !== null) return [];
79420
79467
  target2[key] = [];
79421
- return [{ path: path59, change: `\`${prefix}${key}: null\` \u2192 \`[]\`` }];
79468
+ return [{ path: path58, change: `\`${prefix}${key}: null\` \u2192 \`[]\`` }];
79422
79469
  });
79423
79470
  }
79424
- function tidyEmailRecipients(sideEffect, path59) {
79471
+ function tidyEmailRecipients(sideEffect, path58) {
79425
79472
  if (sideEffect.type !== "email") return [];
79426
79473
  const config = sideEffect.encryptedConfig;
79427
79474
  if (!config || typeof config !== "object" || Array.isArray(config)) return [];
@@ -79432,7 +79479,7 @@ function tidyEmailRecipients(sideEffect, path59) {
79432
79479
  const tidied = to.join(", ");
79433
79480
  if (tidied === raw) return [];
79434
79481
  config.email = tidied;
79435
- return [{ path: path59, change: "tidied the recipient list's spacing and separators" }];
79482
+ return [{ path: path58, change: "tidied the recipient list's spacing and separators" }];
79436
79483
  }
79437
79484
  function sideEffectsOf(node) {
79438
79485
  if (!Array.isArray(node.sideEffects)) return [];
@@ -79441,13 +79488,13 @@ function sideEffectsOf(node) {
79441
79488
  );
79442
79489
  }
79443
79490
  function normalizeSideEffect(sideEffect, where) {
79444
- const path59 = `${where} \u2192 ${String(sideEffect.id ?? "side effect")}`;
79491
+ const path58 = `${where} \u2192 ${String(sideEffect.id ?? "side effect")}`;
79445
79492
  const arrays = ARRAY_OWNERS.flatMap((owner) => {
79446
79493
  const target2 = owner ? sideEffect[owner] : sideEffect;
79447
79494
  if (!target2 || typeof target2 !== "object") return [];
79448
- return fillNulledArrays(target2, owner ? `${owner}.` : "", path59);
79495
+ return fillNulledArrays(target2, owner ? `${owner}.` : "", path58);
79449
79496
  });
79450
- return [...dropUnsetOptionals(sideEffect, path59), ...arrays, ...tidyEmailRecipients(sideEffect, path59)];
79497
+ return [...dropUnsetOptionals(sideEffect, path58), ...arrays, ...tidyEmailRecipients(sideEffect, path58)];
79451
79498
  }
79452
79499
  function normalizeFlowTree(tree) {
79453
79500
  const changes = [];
@@ -80839,10 +80886,10 @@ async function stageOps(ops) {
80839
80886
  handleError5(err);
80840
80887
  }
80841
80888
  }
80842
- async function draftAction2(path59, body, chat) {
80889
+ async function draftAction2(path58, body, chat) {
80843
80890
  const chatId = resolveChatId(chat);
80844
80891
  try {
80845
- const { data, hints: hints2 } = splitHints(await apiPost(path59, { chatId, ...body }));
80892
+ const { data, hints: hints2 } = splitHints(await apiPost(path58, { chatId, ...body }));
80846
80893
  writeJsonEnvelope({ ok: true, data, ...hints2.length > 0 ? { hints: hints2 } : {} });
80847
80894
  return data;
80848
80895
  } catch (err) {
@@ -83372,9 +83419,9 @@ async function readImageBuffer(pathOrUrl) {
83372
83419
  }
83373
83420
  return readFile38(pathOrUrl);
83374
83421
  }
83375
- async function isDirectory(path59) {
83422
+ async function isDirectory(path58) {
83376
83423
  try {
83377
- const s = await stat8(path59);
83424
+ const s = await stat8(path58);
83378
83425
  return s.isDirectory();
83379
83426
  } catch {
83380
83427
  return false;
@@ -83802,13 +83849,13 @@ function resolveDownloadPath({ baseName, extension, out, outIsDirectory: outIsDi
83802
83849
  }
83803
83850
  function disambiguate(paths) {
83804
83851
  const taken = /* @__PURE__ */ new Set();
83805
- return paths.map((path59) => {
83806
- if (!taken.has(path59)) {
83807
- taken.add(path59);
83808
- return path59;
83852
+ return paths.map((path58) => {
83853
+ if (!taken.has(path58)) {
83854
+ taken.add(path58);
83855
+ return path58;
83809
83856
  }
83810
- const ext = extname4(path59);
83811
- const stem = path59.slice(0, path59.length - ext.length);
83857
+ const ext = extname4(path58);
83858
+ const stem = path58.slice(0, path58.length - ext.length);
83812
83859
  let n = 2;
83813
83860
  while (taken.has(`${stem}-${n}${ext}`)) n += 1;
83814
83861
  const unique = `${stem}-${n}${ext}`;
@@ -83934,10 +83981,10 @@ async function runDownloads(plan) {
83934
83981
  const paths = disambiguate(fetched.map((item) => item.path));
83935
83982
  const downloaded = [];
83936
83983
  for (const [index, item] of fetched.entries()) {
83937
- const path59 = paths[index] ?? item.path;
83984
+ const path58 = paths[index] ?? item.path;
83938
83985
  try {
83939
- await atomicWrite(path59, item.buffer);
83940
- downloaded.push({ input: item.input, output: path59, bytes: item.buffer.length, contentType: item.contentType });
83986
+ await atomicWrite(path58, item.buffer);
83987
+ downloaded.push({ input: item.input, output: path58, bytes: item.buffer.length, contentType: item.contentType });
83941
83988
  } catch (err) {
83942
83989
  failed.push({ input: item.input, error: failureMessage(err, "Write failed") });
83943
83990
  }
@@ -86920,7 +86967,7 @@ import { defineCommand as defineCommand207 } from "citty";
86920
86967
 
86921
86968
  // src/commands/landing/critique.ts
86922
86969
  import { readdir as readdir17, readFile as readFile40, stat as stat10 } from "fs/promises";
86923
- import path47 from "path";
86970
+ import path46 from "path";
86924
86971
  import { defineCommand as defineCommand196 } from "citty";
86925
86972
 
86926
86973
  // src/engine/landing/lib/constants.ts
@@ -88112,13 +88159,13 @@ function describeCounts(findings) {
88112
88159
 
88113
88160
  // src/commands/landing/snapshot.ts
88114
88161
  import { mkdir as mkdir12, rename as rename2, writeFile as writeFile19 } from "fs/promises";
88115
- import path45 from "path";
88162
+ import path44 from "path";
88116
88163
  var CRITIC_VERSION = "4";
88117
88164
  function critiqueCacheDir(projectRoot) {
88118
- return path45.join(projectRoot, ".cache", "landing-critique");
88165
+ return path44.join(projectRoot, ".cache", "landing-critique");
88119
88166
  }
88120
88167
  function snapshotPath(projectRoot, slug) {
88121
- return path45.join(critiqueCacheDir(projectRoot), `${slug}.json`);
88168
+ return path44.join(critiqueCacheDir(projectRoot), `${slug}.json`);
88122
88169
  }
88123
88170
  async function writeCritiqueSnapshot(projectRoot, snapshot) {
88124
88171
  await mkdir12(critiqueCacheDir(projectRoot), { recursive: true });
@@ -88131,7 +88178,7 @@ async function writeCritiqueSnapshot(projectRoot, snapshot) {
88131
88178
 
88132
88179
  // src/commands/landing/source-version.ts
88133
88180
  import { readdir as readdir16, readFile as readFile39, stat as stat9 } from "fs/promises";
88134
- import path46 from "path";
88181
+ import path45 from "path";
88135
88182
  var CRITIQUED_ROOTS = ["src/pages/", "src/components/"];
88136
88183
  async function landingSourceRelPaths(root, slug) {
88137
88184
  const files = await landingGraphFiles(root, slug);
@@ -88140,7 +88187,7 @@ async function landingSourceRelPaths(root, slug) {
88140
88187
  async function readLandingSources(root, slug) {
88141
88188
  const rel = await landingSourceRelPaths(root, slug);
88142
88189
  const out = [];
88143
- for (const r of rel) out.push({ path: r, text: await readFile39(path46.join(root, r), "utf8") });
88190
+ for (const r of rel) out.push({ path: r, text: await readFile39(path45.join(root, r), "utf8") });
88144
88191
  return out;
88145
88192
  }
88146
88193
  async function computeLandingSourceSha(root, slug) {
@@ -88149,7 +88196,7 @@ async function computeLandingSourceSha(root, slug) {
88149
88196
  for (const r of rel) {
88150
88197
  let bytes;
88151
88198
  try {
88152
- bytes = await readFile39(path46.join(root, r));
88199
+ bytes = await readFile39(path45.join(root, r));
88153
88200
  } catch {
88154
88201
  bytes = Buffer.alloc(0);
88155
88202
  }
@@ -88159,16 +88206,16 @@ async function computeLandingSourceSha(root, slug) {
88159
88206
  }
88160
88207
  async function computeLegacyLandingSourceSha(landingDir) {
88161
88208
  const rel = [];
88162
- if (await isFile2(path46.join(landingDir, "index.astro"))) rel.push("index.astro");
88163
- for (const abs of await walkAstro(path46.join(landingDir, "_components"))) {
88164
- rel.push(path46.relative(landingDir, abs).split(path46.sep).join("/"));
88209
+ if (await isFile2(path45.join(landingDir, "index.astro"))) rel.push("index.astro");
88210
+ for (const abs of await walkAstro(path45.join(landingDir, "_components"))) {
88211
+ rel.push(path45.relative(landingDir, abs).split(path45.sep).join("/"));
88165
88212
  }
88166
88213
  rel.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
88167
88214
  const parts = [];
88168
88215
  for (const r of rel) {
88169
88216
  let bytes;
88170
88217
  try {
88171
- bytes = await readFile39(path46.join(landingDir, r));
88218
+ bytes = await readFile39(path45.join(landingDir, r));
88172
88219
  } catch {
88173
88220
  bytes = Buffer.alloc(0);
88174
88221
  }
@@ -88192,7 +88239,7 @@ async function walkAstro(dir) {
88192
88239
  }
88193
88240
  const out = [];
88194
88241
  for (const entry of entries) {
88195
- const abs = path46.join(dir, entry.name);
88242
+ const abs = path45.join(dir, entry.name);
88196
88243
  if (entry.isDirectory()) out.push(...await walkAstro(abs));
88197
88244
  else if (entry.isFile() && entry.name.endsWith(".astro")) out.push(abs);
88198
88245
  }
@@ -88253,7 +88300,7 @@ var critiqueCommand2 = defineCommand196({
88253
88300
  { availableSlugs: await listLandingSlugs(projectRoot) }
88254
88301
  );
88255
88302
  }
88256
- if (!await isDir2(path47.resolve(projectRoot, "src", "pages", slug))) {
88303
+ if (!await isDir2(path46.resolve(projectRoot, "src", "pages", slug))) {
88257
88304
  fail8("NOT_FOUND", `No landing at src/pages/${slug}/`, {
88258
88305
  availableSlugs: await listLandingSlugs(projectRoot)
88259
88306
  });
@@ -88296,7 +88343,7 @@ async function critiqueOne(projectRoot, slug, brand, competitors) {
88296
88343
  const [sources, compositionSha, sourceSha] = await Promise.all([
88297
88344
  readLandingSources(projectRoot, slug),
88298
88345
  computeLandingSourceSha(projectRoot, slug),
88299
- computeLegacyLandingSourceSha(path47.resolve(projectRoot, "src", "pages", slug))
88346
+ computeLegacyLandingSourceSha(path46.resolve(projectRoot, "src", "pages", slug))
88300
88347
  ]);
88301
88348
  const report = critiqueLanding({ slug, sources, brand, competitors });
88302
88349
  let snapshotFailed = false;
@@ -88316,7 +88363,7 @@ async function critiqueOne(projectRoot, slug, brand, competitors) {
88316
88363
  return { slug, report, snapshotFailed };
88317
88364
  }
88318
88365
  async function readCompetitorNames(projectRoot) {
88319
- const dir = path47.join(projectRoot, "src", "content", "competitors");
88366
+ const dir = path46.join(projectRoot, "src", "content", "competitors");
88320
88367
  let entries;
88321
88368
  try {
88322
88369
  entries = (await readdir17(dir)).filter((f) => f.endsWith(".md"));
@@ -88325,9 +88372,9 @@ async function readCompetitorNames(projectRoot) {
88325
88372
  }
88326
88373
  const names = [];
88327
88374
  for (const entry of entries) {
88328
- names.push(path47.basename(entry, ".md").replace(/[-_]+/g, " "));
88375
+ names.push(path46.basename(entry, ".md").replace(/[-_]+/g, " "));
88329
88376
  try {
88330
- const head = (await readFile40(path47.join(dir, entry), "utf8")).slice(0, 2e3);
88377
+ const head = (await readFile40(path46.join(dir, entry), "utf8")).slice(0, 2e3);
88331
88378
  const titled = /^\s*(?:title|name)\s*:\s*["']?([^"'\n]+)["']?\s*$/im.exec(head);
88332
88379
  if (titled?.[1]) names.push(titled[1].trim());
88333
88380
  } catch {
@@ -88337,7 +88384,7 @@ async function readCompetitorNames(projectRoot) {
88337
88384
  }
88338
88385
  async function listLandingSlugs(projectRoot) {
88339
88386
  try {
88340
- const entries = await readdir17(path47.join(projectRoot, "src", "pages"), { withFileTypes: true });
88387
+ const entries = await readdir17(path46.join(projectRoot, "src", "pages"), { withFileTypes: true });
88341
88388
  return entries.filter((e) => e.isDirectory() && !e.name.startsWith("_") && !e.name.startsWith(".")).map((e) => e.name).sort();
88342
88389
  } catch {
88343
88390
  return [];
@@ -88489,7 +88536,7 @@ var addCommand = defineCommand197({
88489
88536
 
88490
88537
  // src/commands/landing/inspiration/code.ts
88491
88538
  import { mkdir as mkdir13, writeFile as writeFile20 } from "fs/promises";
88492
- import path48 from "path";
88539
+ import path47 from "path";
88493
88540
  import { defineCommand as defineCommand198 } from "citty";
88494
88541
  registerSchema({
88495
88542
  command: "landing.inspiration.code",
@@ -88512,9 +88559,9 @@ var codeCommand = defineCommand198({
88512
88559
  try {
88513
88560
  const id = args8.id;
88514
88561
  const data = await apiGet("/api/landing-inspiration/section-code", { id });
88515
- const dir = path48.join(process.cwd(), ".baker", "inspiration", id);
88562
+ const dir = path47.join(process.cwd(), ".baker", "inspiration", id);
88516
88563
  await mkdir13(dir, { recursive: true });
88517
- const file = path48.join(dir, "section.html");
88564
+ const file = path47.join(dir, "section.html");
88518
88565
  await writeFile20(file, data.html);
88519
88566
  const hints2 = [INSPIRATION_HINTS.structureNotCopy, INSPIRATION_HINTS.adapt];
88520
88567
  const fidelity = fidelityHint(data.fidelity);
@@ -88524,7 +88571,7 @@ var codeCommand = defineCommand198({
88524
88571
  ok: true,
88525
88572
  data: {
88526
88573
  id,
88527
- file: path48.relative(process.cwd(), file),
88574
+ file: path47.relative(process.cwd(), file),
88528
88575
  bytes: data.html.length,
88529
88576
  fidelity: data.fidelity,
88530
88577
  reproduction_notes: data.reproductionNotes,
@@ -88956,7 +89003,7 @@ function classifyCaptureFailure(error) {
88956
89003
 
88957
89004
  // src/engine/landing-library/run.ts
88958
89005
  import { mkdir as mkdir14, writeFile as writeFile22 } from "fs/promises";
88959
- import path50 from "path";
89006
+ import path49 from "path";
88960
89007
 
88961
89008
  // ../proxy/src/preflight.ts
88962
89009
  import http from "http";
@@ -90372,9 +90419,9 @@ async function renderBundleToPng(browser, html, viewportWidth, options = {}) {
90372
90419
 
90373
90420
  // src/engine/landing-library/report.ts
90374
90421
  import { writeFile as writeFile21 } from "fs/promises";
90375
- import path49 from "path";
90422
+ import path48 from "path";
90376
90423
  async function writeCaptureReport(manifest, outDir) {
90377
- const file = path49.join(outDir, "report.html");
90424
+ const file = path48.join(outDir, "report.html");
90378
90425
  await writeFile21(file, renderReport(manifest));
90379
90426
  return file;
90380
90427
  }
@@ -90553,32 +90600,32 @@ async function reproducePage(args8) {
90553
90600
  const { browser, page, outDir, pageUrl, livePageShot } = args8;
90554
90601
  const built = await buildSectionBundle(page, "body", pageUrl).catch(() => null);
90555
90602
  if (!built) return { bundle: null, fidelity: null };
90556
- await writeFile22(path50.join(outDir, "page.html"), built.html);
90603
+ await writeFile22(path49.join(outDir, "page.html"), built.html);
90557
90604
  const rendered = await renderBundleToPng(browser, built.html, DESKTOP_VIEWPORT.width, {
90558
90605
  wholePage: true,
90559
90606
  timeoutMs: 6e4
90560
90607
  });
90561
90608
  if (!rendered || !livePageShot) return { bundle: "page.html", fidelity: null };
90562
- await writeFile22(path50.join(outDir, "page-rendered.png"), rendered);
90609
+ await writeFile22(path49.join(outDir, "page-rendered.png"), rendered);
90563
90610
  const { score, note } = await scoreFidelity(livePageShot, rendered);
90564
90611
  return { bundle: "page.html", fidelity: score, ...note ? { fidelityNote: note } : {} };
90565
90612
  }
90566
90613
  async function captureOneSection(args8) {
90567
90614
  const { browser, page, candidate, sectionsDir, outDir, pageUrl, withCode } = args8;
90568
- const dir = path50.join(sectionsDir, String(candidate.index).padStart(2, "0"));
90615
+ const dir = path49.join(sectionsDir, String(candidate.index).padStart(2, "0"));
90569
90616
  await mkdir14(dir, { recursive: true });
90570
90617
  const desktop = await captureSection(page, candidate);
90571
- if (desktop) await writeFile22(path50.join(dir, "desktop.png"), desktop);
90618
+ if (desktop) await writeFile22(path49.join(dir, "desktop.png"), desktop);
90572
90619
  const visualHash = desktop ? await perceptualHash(desktop) : null;
90573
90620
  const motion = await collectMotion(page, candidate.selector);
90574
90621
  const built = withCode ? await buildSectionBundle(page, candidate.selector, pageUrl) : null;
90575
90622
  let fidelity = null;
90576
90623
  let fidelityNote;
90577
90624
  if (built) {
90578
- await writeFile22(path50.join(dir, "section.html"), built.html);
90625
+ await writeFile22(path49.join(dir, "section.html"), built.html);
90579
90626
  const rendered = await renderBundleToPng(browser, built.html, DESKTOP_VIEWPORT.width);
90580
90627
  if (rendered && desktop) {
90581
- await writeFile22(path50.join(dir, "section-rendered.png"), rendered);
90628
+ await writeFile22(path49.join(dir, "section-rendered.png"), rendered);
90582
90629
  const result = await scoreFidelity(desktop, rendered);
90583
90630
  fidelity = result.score;
90584
90631
  fidelityNote = result.note;
@@ -90586,9 +90633,9 @@ async function captureOneSection(args8) {
90586
90633
  }
90587
90634
  return {
90588
90635
  ...candidate,
90589
- desktopShot: desktop ? path50.relative(outDir, path50.join(dir, "desktop.png")) : null,
90636
+ desktopShot: desktop ? path49.relative(outDir, path49.join(dir, "desktop.png")) : null,
90590
90637
  mobileShot: null,
90591
- bundle: built ? path50.relative(outDir, path50.join(dir, "section.html")) : null,
90638
+ bundle: built ? path49.relative(outDir, path49.join(dir, "section.html")) : null,
90592
90639
  fidelity,
90593
90640
  ...fidelityNote ? { fidelityNote } : {},
90594
90641
  ...built ? { cssStats: built.stats } : {},
@@ -90607,9 +90654,9 @@ async function captureMobileShots(args8) {
90607
90654
  for (const section of sections) {
90608
90655
  const shot = await captureSectionOnMobile(mobile.page, section);
90609
90656
  if (!shot) continue;
90610
- const file = path50.join(sectionsDir, String(section.index).padStart(2, "0"), "mobile.png");
90657
+ const file = path49.join(sectionsDir, String(section.index).padStart(2, "0"), "mobile.png");
90611
90658
  await writeFile22(file, shot);
90612
- section.mobileShot = path50.relative(outDir, file);
90659
+ section.mobileShot = path49.relative(outDir, file);
90613
90660
  }
90614
90661
  } finally {
90615
90662
  await mobile.context.close();
@@ -90624,10 +90671,10 @@ async function captureMotionTakes(args8) {
90624
90671
  const filmOne = async (section) => {
90625
90672
  const take = await captureMotionTake(browser, pageUrl, section.selector).catch(() => null);
90626
90673
  if (!take) return;
90627
- const dir = path50.join(sectionsDir, String(section.index).padStart(2, "0"));
90628
- const file = path50.join(dir, "motion-filmstrip.png");
90674
+ const dir = path49.join(sectionsDir, String(section.index).padStart(2, "0"));
90675
+ const file = path49.join(dir, "motion-filmstrip.png");
90629
90676
  await writeFile22(file, take.filmstrip);
90630
- section.motionFilmstrip = path50.relative(outDir, file);
90677
+ section.motionFilmstrip = path49.relative(outDir, file);
90631
90678
  log(` [${section.index}] ${section.motion.summary}`);
90632
90679
  };
90633
90680
  const queue = [...moving];
@@ -90684,7 +90731,7 @@ async function captureAlternateViews(args8) {
90684
90731
  async function reproduceWholePage(args8) {
90685
90732
  const { browser, page, outDir, pageUrl, withCode, log } = args8;
90686
90733
  const fullPage = await page.screenshot({ type: "png", fullPage: true }).catch(() => null);
90687
- if (fullPage) await writeFile22(path50.join(outDir, "full-page.png"), fullPage);
90734
+ if (fullPage) await writeFile22(path49.join(outDir, "full-page.png"), fullPage);
90688
90735
  if (!withCode) return { bundle: null, fidelity: null };
90689
90736
  const reproduction = await reproducePage({ browser, page, outDir, pageUrl, livePageShot: fullPage });
90690
90737
  log(`page reproduction: ${reproduction.fidelity === null ? "unavailable" : reproduction.fidelity.toFixed(2)}`);
@@ -90755,7 +90802,7 @@ async function openViaLadder(args8) {
90755
90802
  async function scrapeLanding(options) {
90756
90803
  const timeoutMs = options.timeoutMs ?? 45e3;
90757
90804
  const log = options.onProgress ?? (() => void 0);
90758
- const sectionsDir = path50.join(options.outDir, "sections");
90805
+ const sectionsDir = path49.join(options.outDir, "sections");
90759
90806
  const nonPublic = refuseNonPublicUrl(options.url);
90760
90807
  if (nonPublic) {
90761
90808
  throw new BlockedPageError({
@@ -90817,7 +90864,7 @@ async function scrapeLanding(options) {
90817
90864
  security: prepared.security,
90818
90865
  captureTier: tier
90819
90866
  };
90820
- await writeFile22(path50.join(options.outDir, "manifest.json"), `${JSON.stringify(manifest, null, 2)}
90867
+ await writeFile22(path49.join(options.outDir, "manifest.json"), `${JSON.stringify(manifest, null, 2)}
90821
90868
  `);
90822
90869
  if (options.report !== false) {
90823
90870
  const reportPath = await writeCaptureReport(manifest, options.outDir);
@@ -90832,28 +90879,28 @@ async function scrapeLanding(options) {
90832
90879
 
90833
90880
  // src/commands/landing/inspiration/captureOut.ts
90834
90881
  import { existsSync as existsSync12 } from "fs";
90835
- import path51 from "path";
90882
+ import path50 from "path";
90836
90883
  var SCRATCH_DIR = ".baker";
90837
90884
  function isWithin(parent, target2) {
90838
- const relative = path51.relative(parent, target2);
90839
- return relative === "" || !relative.startsWith("..") && !path51.isAbsolute(relative);
90885
+ const relative = path50.relative(parent, target2);
90886
+ return relative === "" || !relative.startsWith("..") && !path50.isAbsolute(relative);
90840
90887
  }
90841
90888
  function findRepoRoot(from) {
90842
- let dir = path51.resolve(from);
90889
+ let dir = path50.resolve(from);
90843
90890
  for (; ; ) {
90844
- if (existsSync12(path51.join(dir, ".git"))) return dir;
90845
- const parent = path51.dirname(dir);
90891
+ if (existsSync12(path50.join(dir, ".git"))) return dir;
90892
+ const parent = path50.dirname(dir);
90846
90893
  if (parent === dir) return null;
90847
90894
  dir = parent;
90848
90895
  }
90849
90896
  }
90850
90897
  function checkCaptureOut(out, options) {
90851
90898
  const { cwd, repoRoot } = options;
90852
- const resolved = path51.resolve(cwd, out);
90899
+ const resolved = path50.resolve(cwd, out);
90853
90900
  if (repoRoot === null || !isWithin(repoRoot, resolved)) return { ok: true };
90854
- const scratch = path51.join(repoRoot, SCRATCH_DIR);
90901
+ const scratch = path50.join(repoRoot, SCRATCH_DIR);
90855
90902
  if (isWithin(scratch, resolved)) return { ok: true };
90856
- const suggestion = path51.posix.join(SCRATCH_DIR, "teardowns", path51.basename(resolved) || "capture");
90903
+ const suggestion = path50.posix.join(SCRATCH_DIR, "teardowns", path50.basename(resolved) || "capture");
90857
90904
  return {
90858
90905
  ok: false,
90859
90906
  error: {
@@ -91027,12 +91074,12 @@ var scrapeCommand = defineCommand201({
91027
91074
  });
91028
91075
 
91029
91076
  // src/commands/landing/inspiration/search.ts
91030
- import path53 from "path";
91077
+ import path52 from "path";
91031
91078
  import { defineCommand as defineCommand202 } from "citty";
91032
91079
 
91033
91080
  // src/commands/landing/inspiration/shot.ts
91034
91081
  import { mkdir as mkdir15, writeFile as writeFile23 } from "fs/promises";
91035
- import path52 from "path";
91082
+ import path51 from "path";
91036
91083
  import sharp8 from "sharp";
91037
91084
  var READABLE_SHOT = {
91038
91085
  maxWidth: 1440,
@@ -91058,9 +91105,9 @@ async function downloadReadableShot(url, file) {
91058
91105
  const response = await fetch(url);
91059
91106
  if (!response.ok) return null;
91060
91107
  const shot = await toReadableShot(Buffer.from(await response.arrayBuffer()));
91061
- await mkdir15(path52.dirname(file), { recursive: true });
91108
+ await mkdir15(path51.dirname(file), { recursive: true });
91062
91109
  await writeFile23(file, shot);
91063
- return path52.relative(process.cwd(), file);
91110
+ return path51.relative(process.cwd(), file);
91064
91111
  } catch {
91065
91112
  return null;
91066
91113
  }
@@ -91152,13 +91199,13 @@ function buildSearchBody(args8) {
91152
91199
  return body;
91153
91200
  }
91154
91201
  async function downloadShots(results) {
91155
- const dir = path53.join(process.cwd(), ".baker", "inspiration");
91202
+ const dir = path52.join(process.cwd(), ".baker", "inspiration");
91156
91203
  const saved = /* @__PURE__ */ new Map();
91157
91204
  await Promise.all(
91158
91205
  results.map(async (result) => {
91159
91206
  const file = await downloadReadableShot(
91160
91207
  result.desktopShotUrl,
91161
- path53.join(dir, `${result.id}.${READABLE_SHOT.extension}`)
91208
+ path52.join(dir, `${result.id}.${READABLE_SHOT.extension}`)
91162
91209
  );
91163
91210
  if (file) saved.set(result.id, file);
91164
91211
  })
@@ -91386,7 +91433,7 @@ var sequencesCommand = defineCommand203({
91386
91433
  });
91387
91434
 
91388
91435
  // src/commands/landing/inspiration/view.ts
91389
- import path54 from "path";
91436
+ import path53 from "path";
91390
91437
  import { defineCommand as defineCommand204 } from "citty";
91391
91438
  registerSchema({
91392
91439
  command: "landing.inspiration.view",
@@ -91419,12 +91466,12 @@ var viewCommand2 = defineCommand204({
91419
91466
  const id = args8.id;
91420
91467
  const data = await apiGet("/api/landing-inspiration/section", { id });
91421
91468
  const section = data.section;
91422
- const dir = path54.join(process.cwd(), ".baker", "inspiration", id);
91469
+ const dir = path53.join(process.cwd(), ".baker", "inspiration", id);
91423
91470
  const ext = READABLE_SHOT.extension;
91424
91471
  const [desktop, mobile, filmstrip] = await Promise.all([
91425
- downloadReadableShot(section.desktopShotUrl, path54.join(dir, `desktop.${ext}`)),
91426
- downloadReadableShot(section.mobileShotUrl, path54.join(dir, `mobile.${ext}`)),
91427
- downloadReadableShot(section.motionFilmstripUrl, path54.join(dir, `motion-filmstrip.${ext}`))
91472
+ downloadReadableShot(section.desktopShotUrl, path53.join(dir, `desktop.${ext}`)),
91473
+ downloadReadableShot(section.mobileShotUrl, path53.join(dir, `mobile.${ext}`)),
91474
+ downloadReadableShot(section.motionFilmstripUrl, path53.join(dir, `motion-filmstrip.${ext}`))
91428
91475
  ]);
91429
91476
  const full = args8.full;
91430
91477
  const hints2 = [INSPIRATION_HINTS.structureNotCopy, INSPIRATION_HINTS.adapt];
@@ -91531,7 +91578,7 @@ Full guide: __tooling__/docs/tools/baker/landing.md`
91531
91578
  // src/commands/landing/variant.ts
91532
91579
  import { randomUUID as randomUUID3 } from "crypto";
91533
91580
  import { mkdir as mkdir16, readdir as readdir18, readFile as readFile41, stat as stat11, writeFile as writeFile24 } from "fs/promises";
91534
- import path55 from "path";
91581
+ import path54 from "path";
91535
91582
  import { defineCommand as defineCommand206 } from "citty";
91536
91583
  registerSchema({
91537
91584
  command: "landing.variant",
@@ -91567,7 +91614,7 @@ async function readInternalId(definitionPath) {
91567
91614
  async function archivedVariantNumbers(root, internalId) {
91568
91615
  if (!internalId) return [];
91569
91616
  try {
91570
- const entries = await readdir18(path55.resolve(root, "src/_variants", internalId), { withFileTypes: true });
91617
+ const entries = await readdir18(path54.resolve(root, "src/_variants", internalId), { withFileTypes: true });
91571
91618
  return entries.filter((entry) => entry.isDirectory()).map((entry) => Number(entry.name)).filter((n) => Number.isInteger(n) && n > 0);
91572
91619
  } catch {
91573
91620
  return [];
@@ -91597,7 +91644,7 @@ async function exists2(p) {
91597
91644
  }
91598
91645
  async function listLandingSlugs2(root) {
91599
91646
  try {
91600
- const entries = await readdir18(path55.resolve(root, "src", "pages"), { withFileTypes: true });
91647
+ const entries = await readdir18(path54.resolve(root, "src", "pages"), { withFileTypes: true });
91601
91648
  return entries.filter((e) => e.isDirectory() && !e.name.startsWith("_") && !e.name.startsWith(".")).map((e) => e.name).sort();
91602
91649
  } catch {
91603
91650
  return [];
@@ -91613,7 +91660,7 @@ async function listComponents(componentsDir, prefix = "") {
91613
91660
  const out = [];
91614
91661
  for (const entry of entries) {
91615
91662
  const rel = prefix ? `${prefix}/${entry.name}` : entry.name;
91616
- if (entry.isDirectory()) out.push(...await listComponents(path55.join(componentsDir, entry.name), rel));
91663
+ if (entry.isDirectory()) out.push(...await listComponents(path54.join(componentsDir, entry.name), rel));
91617
91664
  else if (entry.name.endsWith(".astro")) out.push(rel);
91618
91665
  }
91619
91666
  return out.sort();
@@ -91680,16 +91727,16 @@ async function resolveTargets(projectRoot, opts) {
91680
91727
  `"${controlSlug}" is already a variant of "${variantOfSlug(controlSlug)}". Make the next variant of the page itself: \`baker landing variant ${variantOfSlug(controlSlug)}\`.`
91681
91728
  );
91682
91729
  }
91683
- const controlDir = path55.resolve(projectRoot, "src", "pages", controlSlug);
91730
+ const controlDir = path54.resolve(projectRoot, "src", "pages", controlSlug);
91684
91731
  if (!await isDir3(controlDir)) {
91685
91732
  fail9("NOT_FOUND", `No page at src/pages/${controlSlug}/`, {
91686
91733
  availableSlugs: await listLandingSlugs2(projectRoot)
91687
91734
  });
91688
91735
  }
91689
- if (!await exists2(path55.join(controlDir, "index.astro"))) {
91736
+ if (!await exists2(path54.join(controlDir, "index.astro"))) {
91690
91737
  fail9("NOT_FOUND", `src/pages/${controlSlug}/index.astro is missing, so there is no page to make a variant of.`);
91691
91738
  }
91692
- const internalId = await readInternalId(path55.join(controlDir, "_definition.md"));
91739
+ const internalId = await readInternalId(path54.join(controlDir, "_definition.md"));
91693
91740
  const variantSlugValue = variantSlug(
91694
91741
  controlSlug,
91695
91742
  nextVariantNumber(
@@ -91698,8 +91745,8 @@ async function resolveTargets(projectRoot, opts) {
91698
91745
  await archivedVariantNumbers(projectRoot, internalId)
91699
91746
  )
91700
91747
  );
91701
- const variantDir = path55.resolve(projectRoot, "src", "pages", variantSlugValue);
91702
- const available = await listComponents(path55.join(controlDir, "_components"));
91748
+ const variantDir = path54.resolve(projectRoot, "src", "pages", variantSlugValue);
91749
+ const available = await listComponents(path54.join(controlDir, "_components"));
91703
91750
  const forks = [];
91704
91751
  for (const name of parseForks(opts.fork, opts.rawArgs)) {
91705
91752
  const resolved = resolveForkName(name, available);
@@ -91715,26 +91762,26 @@ async function resolveTargets(projectRoot, opts) {
91715
91762
  }
91716
91763
  async function writeVariant(opts) {
91717
91764
  const { controlDir, variantDir, controlSlug, variantSlug: variantSlug2, forks } = opts;
91718
- const forkedTargets = new Set(forks.map((f) => path55.join(controlDir, "_components", f)));
91765
+ const forkedTargets = new Set(forks.map((f) => path54.join(controlDir, "_components", f)));
91719
91766
  const written = [];
91720
- const indexText = await readFile41(path55.join(controlDir, "index.astro"), "utf8");
91767
+ const indexText = await readFile41(path54.join(controlDir, "index.astro"), "utf8");
91721
91768
  await mkdir16(variantDir, { recursive: true });
91722
91769
  await writeFile24(
91723
- path55.join(variantDir, "index.astro"),
91770
+ path54.join(variantDir, "index.astro"),
91724
91771
  repointFile(indexText, { fromDir: controlDir, toDir: variantDir, controlDir, variantDir, forkedTargets }),
91725
91772
  "utf8"
91726
91773
  );
91727
91774
  written.push(`src/pages/${variantSlug2}/index.astro`);
91728
91775
  for (const fork of forks) {
91729
- const fromFile = path55.join(controlDir, "_components", fork);
91730
- const toFile = path55.join(variantDir, "_components", fork);
91776
+ const fromFile = path54.join(controlDir, "_components", fork);
91777
+ const toFile = path54.join(variantDir, "_components", fork);
91731
91778
  const text2 = await readFile41(fromFile, "utf8");
91732
- await mkdir16(path55.dirname(toFile), { recursive: true });
91779
+ await mkdir16(path54.dirname(toFile), { recursive: true });
91733
91780
  await writeFile24(
91734
91781
  toFile,
91735
91782
  repointFile(text2, {
91736
- fromDir: path55.dirname(fromFile),
91737
- toDir: path55.dirname(toFile),
91783
+ fromDir: path54.dirname(fromFile),
91784
+ toDir: path54.dirname(toFile),
91738
91785
  controlDir,
91739
91786
  variantDir,
91740
91787
  forkedTargets
@@ -91743,7 +91790,7 @@ async function writeVariant(opts) {
91743
91790
  );
91744
91791
  written.push(`src/pages/${variantSlug2}/_components/${fork}`);
91745
91792
  }
91746
- const controlDefinitionPath = path55.join(controlDir, "_definition.md");
91793
+ const controlDefinitionPath = path54.join(controlDir, "_definition.md");
91747
91794
  if (await exists2(controlDefinitionPath)) {
91748
91795
  const definition = buildVariantDefinition(await readFile41(controlDefinitionPath, "utf8"), {
91749
91796
  internalId: randomUUID3().replace(/-/g, "").slice(0, 8),
@@ -91753,11 +91800,11 @@ async function writeVariant(opts) {
91753
91800
  ...opts.because ? { because: opts.because } : {},
91754
91801
  ...opts.change ? { change: opts.change } : {}
91755
91802
  });
91756
- await writeFile24(path55.join(variantDir, "_definition.md"), definition, "utf8");
91803
+ await writeFile24(path54.join(variantDir, "_definition.md"), definition, "utf8");
91757
91804
  written.push(`src/pages/${variantSlug2}/_definition.md`);
91758
91805
  }
91759
- await mkdir16(path55.join(variantDir, "_images"), { recursive: true });
91760
- await writeFile24(path55.join(variantDir, "_images", ".gitkeep"), "", "utf8");
91806
+ await mkdir16(path54.join(variantDir, "_images"), { recursive: true });
91807
+ await writeFile24(path54.join(variantDir, "_images", ".gitkeep"), "", "utf8");
91761
91808
  return written;
91762
91809
  }
91763
91810
  var variantCommand = defineCommand206({
@@ -94463,7 +94510,7 @@ Full guide: __tooling__/docs/tools/baker/scheduled-agents.md`
94463
94510
 
94464
94511
  // src/commands/scheduled-agents/templates.ts
94465
94512
  import { readFile as readFile42 } from "fs/promises";
94466
- import path56 from "path";
94513
+ import path55 from "path";
94467
94514
  import { defineCommand as defineCommand234 } from "citty";
94468
94515
  registerSchema({
94469
94516
  command: "scheduled-agents.templates",
@@ -94570,7 +94617,7 @@ Full guide: __tooling__/docs/tools/baker/scheduled-agents.md`
94570
94617
  }
94571
94618
  if (save.length > 0) {
94572
94619
  const briefFile = flag("brief-file");
94573
- const brief2 = briefFile.length > 0 ? await readFile42(path56.resolve(briefFile), "utf8") : flag("brief");
94620
+ const brief2 = briefFile.length > 0 ? await readFile42(path55.resolve(briefFile), "utf8") : flag("brief");
94574
94621
  if (brief2.trim().length === 0) {
94575
94622
  failValidation4("--brief-file (preferred) or --brief is required: the brief is the recipe.");
94576
94623
  }
@@ -95210,7 +95257,7 @@ function parseImageRefs(spec) {
95210
95257
  }
95211
95258
  var defaultDeps = {
95212
95259
  ingest: (url) => apiPost("/api/images/ingest", { url, source: "uploaded" }),
95213
- upload: (path59) => uploadLocalImage({ file: path59, contentType: detectImageContentType(path59), source: "uploaded" })
95260
+ upload: (path58) => uploadLocalImage({ file: path58, contentType: detectImageContentType(path58), source: "uploaded" })
95214
95261
  };
95215
95262
  async function resolveLibraryImageIds(spec, limit, deps = defaultDeps) {
95216
95263
  const refs = parseImageRefs(spec);
@@ -95230,10 +95277,10 @@ async function resolveLibraryImageIds(spec, limit, deps = defaultDeps) {
95230
95277
  }
95231
95278
  return { imageIds, added };
95232
95279
  }
95233
- function uploadFailure(path59) {
95280
+ function uploadFailure(path58) {
95234
95281
  return (error) => {
95235
95282
  if (error instanceof ApiError) throw error;
95236
- throw new ApiError("VALIDATION_ERROR", `Could not read "${path59}" as an image.`);
95283
+ throw new ApiError("VALIDATION_ERROR", `Could not read "${path58}" as an image.`);
95237
95284
  };
95238
95285
  }
95239
95286
 
@@ -96333,10 +96380,10 @@ async function stageOp4(op) {
96333
96380
  handleError8(err);
96334
96381
  }
96335
96382
  }
96336
- async function draftAction3(path59, body, chat) {
96383
+ async function draftAction3(path58, body, chat) {
96337
96384
  const chatId = resolveChatId(chat);
96338
96385
  try {
96339
- const { data, hints: hints2 } = splitHints(await apiPost(path59, { chatId, ...body }));
96386
+ const { data, hints: hints2 } = splitHints(await apiPost(path58, { chatId, ...body }));
96340
96387
  writeJsonEnvelope({ ok: true, data, ...hints2.length > 0 ? { hints: hints2 } : {} });
96341
96388
  return data;
96342
96389
  } catch (err) {
@@ -96928,7 +96975,7 @@ Full guide: __tooling__/docs/tools/baker/tags.md`
96928
96975
  });
96929
96976
 
96930
96977
  // src/commands/testimonials/index.ts
96931
- import { defineCommand as defineCommand257 } from "citty";
96978
+ import { defineCommand as defineCommand263 } from "citty";
96932
96979
 
96933
96980
  // src/commands/testimonials/get.ts
96934
96981
  import { defineCommand as defineCommand254 } from "citty";
@@ -96992,7 +97039,7 @@ function resolveEmptyReason({
96992
97039
  }
96993
97040
  return sourceCount === 0 ? "no_corpus_connected" : "corpus_empty";
96994
97041
  }
96995
- var NO_CORPUS_EXIT = 'Testimonials are ingested from the client\'s Google/Trustpilot reviews \u2014 an agent cannot write one \u2014 so no rewording will find quotes. Stop searching and source proof another way: a result or case study the client already published, a named-customer logo (`baker images logo`), or a founder claim attributed as a claim. Otherwise ship without a testimonial block and file the gap: `baker actions create --name "Collect customer quotes for <page>" --priority medium --tags <slug>`. Never invent, paraphrase-into-existence, or pad with unrelated praise.';
97042
+ var NO_CORPUS_EXIT = "Testimonials are ingested from the client's public review pages \u2014 an agent cannot write one \u2014 so no rewording will find quotes. If the user named the client's own review page (Google Maps, Trustpilot, Yelp, Tripadvisor, G2, Capterra, Amazon, App Store, Google Play), add it with `baker testimonials sources add <link>` \u2014 its reviews arrive over the next minutes, not in this turn. Stop searching and source proof another way: a result or case study the client already published, a named-customer logo (`baker images logo`), or a founder claim attributed as a claim. Otherwise ship without a testimonial block and file the gap: `baker actions create --name \"Collect customer quotes for <page>\" --priority medium --tags <slug>`. Never invent, paraphrase-into-existence, or pad with unrelated praise.";
96996
97043
  function emptyReasonDetail(reason, sourceCount, activeFilters) {
96997
97044
  if (reason === "filtered_out") {
96998
97045
  return `No rows matched, and ${activeFilters.join(", ")} narrowed this read. The corpus was not checked \u2014 drop every filter to see whether the library itself is empty.`;
@@ -97084,9 +97131,9 @@ registerSchema({
97084
97131
  args: {
97085
97132
  source: {
97086
97133
  type: "string",
97087
- description: "Filter by source: google|trustpilot",
97134
+ description: `Filter by source: ${testimonialSourceTypeSchema.options.join("|")}`,
97088
97135
  required: false,
97089
- enum: ["google", "trustpilot"]
97136
+ enum: [...testimonialSourceTypeSchema.options]
97090
97137
  },
97091
97138
  "rating-min": { type: "number", description: "Minimum star rating (1-5)", required: false },
97092
97139
  "rating-max": { type: "number", description: "Maximum star rating (1-5)", required: false },
@@ -97139,7 +97186,11 @@ var listCommand22 = defineCommand255({
97139
97186
  description: "List testimonials with optional filters. Example: baker testimonials list --source google --sentiment positive"
97140
97187
  },
97141
97188
  args: {
97142
- source: { type: "string", description: "Filter by source: google|trustpilot", required: false },
97189
+ source: {
97190
+ type: "string",
97191
+ description: `Filter by source: ${testimonialSourceTypeSchema.options.join("|")}`,
97192
+ required: false
97193
+ },
97143
97194
  "rating-min": { type: "string", description: "Minimum star rating (1-5)", required: false },
97144
97195
  "rating-max": { type: "string", description: "Maximum star rating (1-5)", required: false },
97145
97196
  status: { type: "string", description: "Filter by status: pending|processing|ready|error", required: false },
@@ -97222,9 +97273,9 @@ registerSchema({
97222
97273
  limit: { type: "number", description: "Maximum results to return", required: false, default: 10 },
97223
97274
  source: {
97224
97275
  type: "string",
97225
- description: "Filter by source: google|trustpilot",
97276
+ description: `Filter by source: ${testimonialSourceTypeSchema.options.join("|")}`,
97226
97277
  required: false,
97227
- enum: ["google", "trustpilot"]
97278
+ enum: [...testimonialSourceTypeSchema.options]
97228
97279
  },
97229
97280
  "rating-min": { type: "number", description: "Minimum star rating (1-5)", required: false },
97230
97281
  "rating-max": { type: "number", description: "Maximum star rating (1-5)", required: false },
@@ -97280,7 +97331,11 @@ var searchCommand3 = defineCommand256({
97280
97331
  args: {
97281
97332
  query: { type: "positional", description: "Search query text", required: false },
97282
97333
  limit: { type: "string", description: "Max results (default 10)", required: false },
97283
- source: { type: "string", description: "Filter by source: google|trustpilot", required: false },
97334
+ source: {
97335
+ type: "string",
97336
+ description: `Filter by source: ${testimonialSourceTypeSchema.options.join("|")}`,
97337
+ required: false
97338
+ },
97284
97339
  "rating-min": { type: "string", description: "Minimum star rating (1-5)", required: false },
97285
97340
  "rating-max": { type: "string", description: "Maximum star rating (1-5)", required: false },
97286
97341
  status: { type: "string", description: "Filter by status: pending|processing|ready|error", required: false },
@@ -97332,14 +97387,276 @@ var searchCommand3 = defineCommand256({
97332
97387
  }
97333
97388
  });
97334
97389
 
97390
+ // src/commands/testimonials/sources/index.ts
97391
+ import { defineCommand as defineCommand262 } from "citty";
97392
+
97393
+ // src/commands/testimonials/sources/add.ts
97394
+ import { defineCommand as defineCommand257 } from "citty";
97395
+
97396
+ // src/commands/testimonials/sources/shared.ts
97397
+ function reportError3(err) {
97398
+ if (err instanceof ApiError) {
97399
+ writeJson({ ok: false, error: { code: err.code, message: err.message } });
97400
+ process.exit(1);
97401
+ }
97402
+ writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: "Unexpected error" } });
97403
+ process.exit(1);
97404
+ }
97405
+ function reportInvalid(issue) {
97406
+ writeJson({
97407
+ ok: false,
97408
+ error: {
97409
+ code: "VALIDATION_ERROR",
97410
+ message: issue ? `${issue.path.map(String).join(".") || "input"}: ${issue.message}` : "Invalid request"
97411
+ }
97412
+ });
97413
+ process.exit(1);
97414
+ }
97415
+ function compactSource2(source) {
97416
+ return {
97417
+ id: source.id,
97418
+ platform: source.platform,
97419
+ label: source.label,
97420
+ ...source.pageUrl ? { url: source.pageUrl } : {},
97421
+ status: source.status,
97422
+ reviews: source.reviews,
97423
+ autoSync: source.refreshInterval,
97424
+ ...source.lastSyncedAt ? { lastSyncedAt: new Date(source.lastSyncedAt).toISOString() } : {},
97425
+ ...source.error ? { error: source.error } : {}
97426
+ };
97427
+ }
97428
+
97429
+ // src/commands/testimonials/sources/add.ts
97430
+ var SITES = testimonialSourceTypeSchema.options.join("|");
97431
+ registerSchema({
97432
+ command: "testimonials.sources.add",
97433
+ description: "Add a review page as a testimonial source \u2014 Google Maps, Trustpilot, Yelp, Tripadvisor, G2, Capterra, Amazon, App Store or Google Play. Pass the page's link (it names its own site), or a business name for Google Maps. Its reviews (up to 700) are imported, tagged and made searchable in the background over the next minutes. Each imported review costs a little, so add only the client's own listings the user asked for. Applies immediately and shows on the chat as an already-applied change. Adding a listing that is already a source is a no-op that starts a fresh import.",
97434
+ args: {
97435
+ input: {
97436
+ type: "string",
97437
+ description: "The review page's link, or a business name (Google Maps only)",
97438
+ required: true
97439
+ },
97440
+ platform: {
97441
+ type: "string",
97442
+ description: `Only to force a site: ${SITES}. A bare domain with trustpilot is that company's Trustpilot page.`,
97443
+ required: false
97444
+ },
97445
+ every: {
97446
+ type: "string",
97447
+ description: `Auto-sync cadence: ${testimonialSourceRefreshIntervalSchema.options.join("|")} (default never)`,
97448
+ required: false
97449
+ }
97450
+ }
97451
+ });
97452
+ function addSourceHints(input, { created, source }) {
97453
+ const hints2 = [
97454
+ created ? `Added ${source.label} on ${source.platformLabel}. Its reviews are importing in the background \u2014 they become searchable with \`baker testimonials search\` as each one is analysed, usually within a few minutes. Don't wait on them in this turn; check with \`baker testimonials sources list\`.` : `${source.label} on ${source.platformLabel} was already a source; a fresh import was started if one wasn't running.`
97455
+ ];
97456
+ if (created && source.platform === "google" && !/^https?:\/\/|\.[a-z]{2,}\//i.test(input.trim())) {
97457
+ hints2.push(
97458
+ `Matched the name to ${source.label} on Google Maps (${source.pageUrl ?? "no link"}). If that is not the client's business, run \`baker testimonials sources remove ${source.id}\` at once and add the listing's Google Maps link instead.`
97459
+ );
97460
+ }
97461
+ if (source.refreshInterval === "never") {
97462
+ hints2.push(
97463
+ `Auto-sync is off. If the user wants new reviews to keep arriving: \`baker testimonials sources schedule ${source.id} --every monthly\`.`
97464
+ );
97465
+ }
97466
+ return hints2;
97467
+ }
97468
+ var addCommand4 = defineCommand257({
97469
+ meta: {
97470
+ name: "add",
97471
+ description: `Add a review page as a testimonial source. Start here with the page's link; for Google Maps a business name also works.
97472
+
97473
+ Examples:
97474
+ baker testimonials sources add https://www.yelp.com/biz/acme-bakery-madrid
97475
+ baker testimonials sources add https://www.g2.com/products/acme --every monthly
97476
+ baker testimonials sources add "Acme Bakery Madrid" # Google Maps, found by name
97477
+ baker testimonials sources add acme.com --platform trustpilot`
97478
+ },
97479
+ args: {
97480
+ input: { type: "positional", description: "Review page link, or a business name for Google Maps", required: true },
97481
+ platform: { type: "string", description: `Force a site: ${SITES}`, required: false },
97482
+ every: { type: "string", description: "Auto-sync: never|daily|weekly|monthly", required: false }
97483
+ },
97484
+ run: async ({ args: args8 }) => {
97485
+ const parsed = testimonialSourcesAddRequestSchema.safeParse({
97486
+ input: String(args8.input ?? ""),
97487
+ platform: args8.platform ? String(args8.platform).toLowerCase().replace(/[\s-]/g, "_") : void 0,
97488
+ every: args8.every ? String(args8.every).toLowerCase() : void 0
97489
+ });
97490
+ if (!parsed.success) reportInvalid(parsed.error.issues[0]);
97491
+ try {
97492
+ const data = await apiPost("/api/testimonials/sources/add", parsed.data, {
97493
+ timeoutMs: 12e4
97494
+ });
97495
+ const hints2 = addSourceHints(parsed.data.input, data);
97496
+ writeJson({ ok: true, data: { created: data.created, source: compactSource2(data.source) }, hints: hints2 });
97497
+ } catch (err) {
97498
+ reportError3(err);
97499
+ }
97500
+ }
97501
+ });
97502
+
97503
+ // src/commands/testimonials/sources/list.ts
97504
+ import { defineCommand as defineCommand258 } from "citty";
97505
+ registerSchema({
97506
+ command: "testimonials.sources.list",
97507
+ description: "List the review pages feeding the testimonials library: each one's id, site, import status and how many reviews it has brought in.",
97508
+ args: {}
97509
+ });
97510
+ function listSourceHints(sources) {
97511
+ if (sources.length === 0) {
97512
+ return [
97513
+ "No review sources yet. If the client has a public review page (Google Maps, Trustpilot, Yelp, Tripadvisor, G2, Capterra, Amazon, App Store, Google Play), add it with `baker testimonials sources add <link>`."
97514
+ ];
97515
+ }
97516
+ const hints2 = sources.filter((source) => source.status === "error").map(
97517
+ (source) => `${source.label} on ${source.platformLabel} did not import: ${source.error ?? "the last import failed"} Retry once with \`baker testimonials sources sync ${source.id}\`; if it fails again, tell the user in plain words and carry on with the other sources.`
97518
+ );
97519
+ if (sources.some((source) => source.status === "importing")) {
97520
+ hints2.push("Some sources are still importing \u2014 their review counts will grow over the next minutes.");
97521
+ }
97522
+ return hints2;
97523
+ }
97524
+ var listCommand23 = defineCommand258({
97525
+ meta: {
97526
+ name: "list",
97527
+ description: "List testimonial sources (id, site, import status, reviews imported).\n\nExample: baker testimonials sources list"
97528
+ },
97529
+ args: {},
97530
+ run: async () => {
97531
+ try {
97532
+ const sources = await apiGet("/api/testimonials/sources/list");
97533
+ const hints2 = listSourceHints(sources);
97534
+ writeJson({ ok: true, data: sources.map(compactSource2), hints: hints2.length > 0 ? hints2 : void 0 });
97535
+ } catch (err) {
97536
+ reportError3(err);
97537
+ }
97538
+ }
97539
+ });
97540
+
97541
+ // src/commands/testimonials/sources/remove.ts
97542
+ import { defineCommand as defineCommand259 } from "citty";
97543
+ registerSchema({
97544
+ command: "testimonials.sources.remove",
97545
+ description: "Remove a review source AND every testimonial it imported (and their pictures). Applies immediately and cannot be undone \u2014 only when the user asked for it.",
97546
+ args: { id: { type: "string", description: "Source id from `testimonials sources list`", required: true } }
97547
+ });
97548
+ var removeCommand8 = defineCommand259({
97549
+ meta: {
97550
+ name: "remove",
97551
+ description: "Remove a review source and all its testimonials (cannot be undone).\n\nExample: baker testimonials sources remove <source-id>"
97552
+ },
97553
+ args: { id: { type: "positional", description: "Source id from `testimonials sources list`", required: true } },
97554
+ run: async ({ args: args8 }) => {
97555
+ const parsed = testimonialSourcesRemoveRequestSchema.safeParse({ id: String(args8.id ?? "") });
97556
+ if (!parsed.success) reportInvalid(parsed.error.issues[0]);
97557
+ try {
97558
+ const data = await apiPost("/api/testimonials/sources/remove", parsed.data);
97559
+ writeJson({ ok: true, data });
97560
+ } catch (err) {
97561
+ reportError3(err);
97562
+ }
97563
+ }
97564
+ });
97565
+
97566
+ // src/commands/testimonials/sources/schedule.ts
97567
+ import { defineCommand as defineCommand260 } from "citty";
97568
+ var INTERVALS = testimonialSourceRefreshIntervalSchema.options.join("|");
97569
+ registerSchema({
97570
+ command: "testimonials.sources.schedule",
97571
+ description: "Set how often a review source imports its new reviews on its own.",
97572
+ args: {
97573
+ id: { type: "string", description: "Source id from `testimonials sources list`", required: true },
97574
+ every: { type: "string", description: `Auto-sync cadence: ${INTERVALS}`, required: true }
97575
+ }
97576
+ });
97577
+ var scheduleCommand2 = defineCommand260({
97578
+ meta: {
97579
+ name: "schedule",
97580
+ description: "Set a review source's auto-sync cadence.\n\nExample: baker testimonials sources schedule <source-id> --every monthly"
97581
+ },
97582
+ args: {
97583
+ id: { type: "positional", description: "Source id from `testimonials sources list`", required: true },
97584
+ every: { type: "string", description: INTERVALS, required: true }
97585
+ },
97586
+ run: async ({ args: args8 }) => {
97587
+ const parsed = testimonialSourcesScheduleRequestSchema.safeParse({
97588
+ id: String(args8.id ?? ""),
97589
+ every: String(args8.every ?? "").toLowerCase()
97590
+ });
97591
+ if (!parsed.success) reportInvalid(parsed.error.issues[0]);
97592
+ try {
97593
+ const data = await apiPost("/api/testimonials/sources/schedule", parsed.data);
97594
+ writeJson({ ok: true, data: { id: data.id, autoSync: parsed.data.every } });
97595
+ } catch (err) {
97596
+ reportError3(err);
97597
+ }
97598
+ }
97599
+ });
97600
+
97601
+ // src/commands/testimonials/sources/sync.ts
97602
+ import { defineCommand as defineCommand261 } from "citty";
97603
+ registerSchema({
97604
+ command: "testimonials.sources.sync",
97605
+ description: "Import a review source's new reviews now. Only reviews newer than the last import are read where the site allows it.",
97606
+ args: { id: { type: "string", description: "Source id from `testimonials sources list`", required: true } }
97607
+ });
97608
+ var syncCommand2 = defineCommand261({
97609
+ meta: {
97610
+ name: "sync",
97611
+ description: "Import a review source's new reviews now.\n\nExample: baker testimonials sources sync <source-id>"
97612
+ },
97613
+ args: { id: { type: "positional", description: "Source id from `testimonials sources list`", required: true } },
97614
+ run: async ({ args: args8 }) => {
97615
+ const parsed = testimonialSourcesSyncRequestSchema.safeParse({ id: String(args8.id ?? "") });
97616
+ if (!parsed.success) reportInvalid(parsed.error.issues[0]);
97617
+ try {
97618
+ const data = await apiPost("/api/testimonials/sources/sync", parsed.data);
97619
+ writeJson({
97620
+ ok: true,
97621
+ data,
97622
+ hints: data.started ? void 0 : ["An import was already running for this source; nothing new was started."]
97623
+ });
97624
+ } catch (err) {
97625
+ reportError3(err);
97626
+ }
97627
+ }
97628
+ });
97629
+
97630
+ // src/commands/testimonials/sources/index.ts
97631
+ var sourcesCommand2 = defineCommand262({
97632
+ meta: {
97633
+ name: "sources",
97634
+ description: `The review pages the testimonials come from: Google Maps, Trustpilot, Yelp, Tripadvisor, G2, Capterra, Amazon, App Store, Google Play. Subcommands: add, list, sync, schedule, remove.
97635
+
97636
+ Examples:
97637
+ baker testimonials sources add https://www.trustpilot.com/review/acme.com
97638
+ baker testimonials sources list
97639
+ baker testimonials sources sync <source-id>
97640
+ baker testimonials sources schedule <source-id> --every monthly
97641
+ baker testimonials sources remove <source-id>`
97642
+ },
97643
+ subCommands: {
97644
+ add: addCommand4,
97645
+ list: listCommand23,
97646
+ sync: syncCommand2,
97647
+ schedule: scheduleCommand2,
97648
+ remove: removeCommand8
97649
+ }
97650
+ });
97651
+
97335
97652
  // src/commands/testimonials/tags.ts
97336
97653
  var tagsCommand5 = makeTagsCommand("testimonials", "testimonial", "/api/testimonials/tags");
97337
97654
 
97338
97655
  // src/commands/testimonials/index.ts
97339
- var testimonialsCommand = defineCommand257({
97656
+ var testimonialsCommand = defineCommand263({
97340
97657
  meta: {
97341
97658
  name: "testimonials",
97342
- description: `Find and browse testimonials in Baker. Subcommands: search, get, list, tags.
97659
+ description: `Find and browse testimonials in Baker, and manage the review pages they come from. Subcommands: search, get, list, tags, sources.
97343
97660
 
97344
97661
  Examples:
97345
97662
  baker testimonials search "great customer service" --limit 5
@@ -97347,21 +97664,23 @@ Examples:
97347
97664
  baker testimonials get <testimonial-id>
97348
97665
  baker testimonials list --source google --sentiment positive
97349
97666
  baker testimonials tags
97667
+ baker testimonials sources add https://www.yelp.com/biz/acme-bakery-madrid
97350
97668
  Full guide: __tooling__/docs/tools/baker/testimonials.md`
97351
97669
  },
97352
97670
  subCommands: {
97353
97671
  get: getCommand6,
97354
97672
  search: searchCommand3,
97355
97673
  list: listCommand22,
97356
- tags: tagsCommand5
97674
+ tags: tagsCommand5,
97675
+ sources: sourcesCommand2
97357
97676
  }
97358
97677
  });
97359
97678
 
97360
97679
  // src/commands/videos/index.ts
97361
- import { defineCommand as defineCommand266 } from "citty";
97680
+ import { defineCommand as defineCommand272 } from "citty";
97362
97681
 
97363
97682
  // src/commands/videos/delete.ts
97364
- import { defineCommand as defineCommand258 } from "citty";
97683
+ import { defineCommand as defineCommand264 } from "citty";
97365
97684
  registerSchema({
97366
97685
  command: "videos.delete",
97367
97686
  description: "Delete a video by ID",
@@ -97375,7 +97694,7 @@ registerSchema({
97375
97694
  }
97376
97695
  }
97377
97696
  });
97378
- var deleteCommand4 = defineCommand258({
97697
+ var deleteCommand4 = defineCommand264({
97379
97698
  meta: {
97380
97699
  name: "delete",
97381
97700
  description: "Delete a video by ID. Use --dry-run to preview. Example: baker videos delete j571abc123 --dry-run"
@@ -97416,7 +97735,7 @@ var deleteCommand4 = defineCommand258({
97416
97735
  });
97417
97736
 
97418
97737
  // src/commands/videos/describe.ts
97419
- import { defineCommand as defineCommand259 } from "citty";
97738
+ import { defineCommand as defineCommand265 } from "citty";
97420
97739
  var DESCRIPTION_HELP2 = "What the clip actually shows, in the words someone would search for it by. This is what `baker videos search` retrieves on.";
97421
97740
  registerSchema({
97422
97741
  command: "videos.describe",
@@ -97433,7 +97752,7 @@ registerSchema({
97433
97752
  full: { type: "boolean", description: "Return the whole library row, not just what changed", required: false }
97434
97753
  }
97435
97754
  });
97436
- var describeCommand2 = defineCommand259({
97755
+ var describeCommand2 = defineCommand265({
97437
97756
  meta: {
97438
97757
  name: "describe",
97439
97758
  description: `Correct what the library says a video is. Only the fields you pass change; the rest keep their current values.
@@ -97494,8 +97813,8 @@ Example: baker videos describe j571abc123 --description "Customer explaining how
97494
97813
  import { constants } from "fs";
97495
97814
  import { copyFile as copyFile2, mkdir as mkdir17, mkdtemp as mkdtemp3, rm as rm10 } from "fs/promises";
97496
97815
  import { tmpdir as tmpdir4 } from "os";
97497
- import path57 from "path";
97498
- import { defineCommand as defineCommand260 } from "citty";
97816
+ import path56 from "path";
97817
+ import { defineCommand as defineCommand266 } from "citty";
97499
97818
 
97500
97819
  // src/commands/videos/videoPlatforms.ts
97501
97820
  var PLATFORM_DOMAINS = {
@@ -97633,7 +97952,7 @@ function positiveInt(value2) {
97633
97952
  const parsed = typeof value2 === "string" ? Number.parseInt(value2, 10) : Number.NaN;
97634
97953
  return Number.isInteger(parsed) && parsed > 0 ? parsed : void 0;
97635
97954
  }
97636
- var fetchCommand2 = defineCommand260({
97955
+ var fetchCommand2 = defineCommand266({
97637
97956
  meta: {
97638
97957
  name: "fetch",
97639
97958
  description: "Download a video page to a local .mp4 without adding it to the library. Same downloader as `ingest` (proxy fallback, duration check).\n\nExample: baker videos fetch https://www.youtube.com/watch?v=abc123 --out ./clips"
@@ -97662,8 +97981,8 @@ var fetchCommand2 = defineCommand260({
97662
97981
  }
97663
97982
  });
97664
97983
  async function fetchVideo(args8) {
97665
- const outDir = path57.resolve(args8.out);
97666
- const workDir = await mkdtemp3(path57.join(tmpdir4(), "videos-fetch-"));
97984
+ const outDir = path56.resolve(args8.out);
97985
+ const workDir = await mkdtemp3(path56.join(tmpdir4(), "videos-fetch-"));
97667
97986
  try {
97668
97987
  await mkdir17(outDir, { recursive: true });
97669
97988
  const vimeoCookie = captureVimeoCookie();
@@ -97708,7 +98027,7 @@ function fileStem(info) {
97708
98027
  }
97709
98028
  async function placeInto(outDir, source, stem) {
97710
98029
  for (let n = 1; ; n++) {
97711
- const target2 = path57.join(outDir, `${stem}${n === 1 ? "" : `-${n}`}${path57.extname(source)}`);
98030
+ const target2 = path56.join(outDir, `${stem}${n === 1 ? "" : `-${n}`}${path56.extname(source)}`);
97712
98031
  try {
97713
98032
  await copyFile2(source, target2, constants.COPYFILE_EXCL);
97714
98033
  return target2;
@@ -97719,7 +98038,7 @@ async function placeInto(outDir, source, stem) {
97719
98038
  }
97720
98039
 
97721
98040
  // src/commands/videos/get.ts
97722
- import { defineCommand as defineCommand261 } from "citty";
98041
+ import { defineCommand as defineCommand267 } from "citty";
97723
98042
  registerSchema({
97724
98043
  command: "videos.get",
97725
98044
  description: "Get a single video by ID",
@@ -97727,7 +98046,7 @@ registerSchema({
97727
98046
  id: { type: "string", description: "Video ID", required: true }
97728
98047
  }
97729
98048
  });
97730
- var getCommand7 = defineCommand261({
98049
+ var getCommand7 = defineCommand267({
97731
98050
  meta: { name: "get", description: "Get a single video by ID. Example: baker videos get j571abc123" },
97732
98051
  args: {
97733
98052
  id: { type: "positional", description: "Video ID", required: false },
@@ -97764,7 +98083,7 @@ var getCommand7 = defineCommand261({
97764
98083
  });
97765
98084
 
97766
98085
  // src/commands/videos/group.ts
97767
- import { defineCommand as defineCommand262 } from "citty";
98086
+ import { defineCommand as defineCommand268 } from "citty";
97768
98087
  registerSchema({
97769
98088
  command: "videos.group",
97770
98089
  description: "List every clip and image that arrived in the same set as this video (carousel slides, one page)",
@@ -97773,7 +98092,7 @@ registerSchema({
97773
98092
  "group-key": { type: "string", description: "The set key directly, when you already have it", required: false }
97774
98093
  }
97775
98094
  });
97776
- var groupCommand2 = defineCommand262({
98095
+ var groupCommand2 = defineCommand268({
97777
98096
  meta: {
97778
98097
  name: "group",
97779
98098
  description: "List every asset that arrived in the same set as this clip \u2014 the other slides of the Instagram post it came from, stills included. A carousel is authored to be read in order, so a clip pulled out of one is usually missing half its meaning. Example: baker videos group <videoId>"
@@ -97795,8 +98114,8 @@ var groupCommand2 = defineCommand262({
97795
98114
  // src/commands/videos/ingest.ts
97796
98115
  import { mkdtemp as mkdtemp4, rm as rm11, stat as stat12 } from "fs/promises";
97797
98116
  import { tmpdir as tmpdir5 } from "os";
97798
- import path58 from "path";
97799
- import { defineCommand as defineCommand263 } from "citty";
98117
+ import path57 from "path";
98118
+ import { defineCommand as defineCommand269 } from "citty";
97800
98119
 
97801
98120
  // src/lib/streamUpload.ts
97802
98121
  import { createHash as createHash3 } from "crypto";
@@ -97849,7 +98168,7 @@ registerSchema({
97849
98168
  "dry-run": { type: "boolean", description: "Preview the operation without executing", required: false }
97850
98169
  }
97851
98170
  });
97852
- var ingestCommand2 = defineCommand263({
98171
+ var ingestCommand2 = defineCommand269({
97853
98172
  meta: {
97854
98173
  name: "ingest",
97855
98174
  description: "Add a video to the library from a URL. A direct file URL is handed straight to Baker, which fetches it. A page URL (YouTube, TikTok, Vimeo, Instagram) is downloaded here first, then uploaded \u2014 and a direct URL that Baker cannot fetch falls back to that same path automatically.\n\nExample: baker videos ingest https://www.youtube.com/watch?v=abc123"
@@ -98035,7 +98354,7 @@ function ingestUrl(args8) {
98035
98354
  }
98036
98355
  async function downloadThenIngest(args8, country) {
98037
98356
  const vimeoCookie = captureVimeoCookie();
98038
- const workDir = await mkdtemp4(path58.join(tmpdir5(), "videos-ingest-"));
98357
+ const workDir = await mkdtemp4(path57.join(tmpdir5(), "videos-ingest-"));
98039
98358
  try {
98040
98359
  const probe = await probeYtDlp({ url: args8.url, country, vimeoCookie, cookieDir: workDir });
98041
98360
  if (isAudioOnly(probe.info)) {
@@ -98111,7 +98430,7 @@ async function uploadToAssetStore(filePath, sizeBytes) {
98111
98430
  }
98112
98431
 
98113
98432
  // src/commands/videos/search.ts
98114
- import { defineCommand as defineCommand264 } from "citty";
98433
+ import { defineCommand as defineCommand270 } from "citty";
98115
98434
  registerSchema({
98116
98435
  command: "videos.search",
98117
98436
  description: "Search videos by text query. Only returns ready videos.",
@@ -98121,7 +98440,7 @@ registerSchema({
98121
98440
  tags: { type: "string", description: "Comma-separated tags to filter by", required: false }
98122
98441
  }
98123
98442
  });
98124
- var searchCommand4 = defineCommand264({
98443
+ var searchCommand4 = defineCommand270({
98125
98444
  meta: {
98126
98445
  name: "search",
98127
98446
  description: "Semantic search videos by text query. Uses hybrid BM25 + vector + reranking. Example: baker videos search 'product demo' --tags tutorial"
@@ -98173,7 +98492,7 @@ var tagsCommand6 = makeTagsCommand("videos", "video", "/api/videos/tags");
98173
98492
  // src/commands/videos/upload.ts
98174
98493
  import { stat as stat13 } from "fs/promises";
98175
98494
  import { basename as basename4 } from "path";
98176
- import { defineCommand as defineCommand265 } from "citty";
98495
+ import { defineCommand as defineCommand271 } from "citty";
98177
98496
  registerSchema({
98178
98497
  command: "videos.upload",
98179
98498
  description: "Upload a video to Baker \u2014 a local file (via Mux direct upload) or a remote http(s) URL.",
@@ -98200,7 +98519,7 @@ registerSchema({
98200
98519
  function isRemoteUrl3(value2) {
98201
98520
  return /^https?:\/\//i.test(value2);
98202
98521
  }
98203
- var uploadCommand2 = defineCommand265({
98522
+ var uploadCommand2 = defineCommand271({
98204
98523
  meta: {
98205
98524
  name: "upload",
98206
98525
  description: "Upload a video to Baker \u2014 accepts a local file path OR a remote http(s) URL.\n\nLocal: auto-detects content type and uploads via Mux direct upload.\nRemote: hands off to `videos ingest` (direct fetch, or download-then-upload for a YouTube/TikTok/Vimeo page).\n\nExamples:\n baker videos upload ./demo.mp4\n baker videos upload https://www.youtube.com/watch?v=abc123"
@@ -98269,7 +98588,7 @@ var uploadCommand2 = defineCommand265({
98269
98588
  });
98270
98589
 
98271
98590
  // src/commands/videos/index.ts
98272
- var videosCommand = defineCommand266({
98591
+ var videosCommand = defineCommand272({
98273
98592
  meta: {
98274
98593
  name: "videos",
98275
98594
  description: `Find and manage videos in Baker. Subcommands: search, get, upload, ingest, fetch, describe, delete, tags.
@@ -98300,10 +98619,10 @@ Full guide: __tooling__/docs/tools/baker/videos.md`
98300
98619
  });
98301
98620
 
98302
98621
  // src/commands/winning-ads/index.ts
98303
- import { defineCommand as defineCommand277 } from "citty";
98622
+ import { defineCommand as defineCommand283 } from "citty";
98304
98623
 
98305
98624
  // src/commands/winning-ads/advertisers.ts
98306
- import { defineCommand as defineCommand267 } from "citty";
98625
+ import { defineCommand as defineCommand273 } from "citty";
98307
98626
 
98308
98627
  // src/commands/winning-ads/shared.ts
98309
98628
  function splitList4(value2) {
@@ -98312,7 +98631,7 @@ function splitList4(value2) {
98312
98631
  }
98313
98632
  return value2.split(",").map((v) => v.trim()).filter(Boolean);
98314
98633
  }
98315
- function reportError3(err) {
98634
+ function reportError4(err) {
98316
98635
  if (err instanceof ApiError) {
98317
98636
  writeJson({ ok: false, error: { code: err.code, message: err.message } });
98318
98637
  process.exit(1);
@@ -98356,7 +98675,7 @@ function advertiserNormalizer(record, full) {
98356
98675
  last_synced_at: record.last_synced_at ?? null
98357
98676
  };
98358
98677
  }
98359
- var advertisersCommand2 = defineCommand267({
98678
+ var advertisersCommand2 = defineCommand273({
98360
98679
  meta: {
98361
98680
  name: "advertisers",
98362
98681
  description: 'List corpus advertisers by name or domain. Find your own advertiser for --exclude-advertiser, or a competitor for --advertiser-id / winners. Example: baker winning-ads advertisers "Deel" --output md'
@@ -98408,13 +98727,13 @@ var advertisersCommand2 = defineCommand267({
98408
98727
  advertiserNormalizer
98409
98728
  );
98410
98729
  } catch (err) {
98411
- reportError3(err);
98730
+ reportError4(err);
98412
98731
  }
98413
98732
  }
98414
98733
  });
98415
98734
 
98416
98735
  // src/commands/winning-ads/content.ts
98417
- import { defineCommand as defineCommand268 } from "citty";
98736
+ import { defineCommand as defineCommand274 } from "citty";
98418
98737
  registerSchema({
98419
98738
  command: "winning-ads.content",
98420
98739
  description: "Read what's INSIDE one winning ad: the spoken transcript, the on-screen text, and the ad copy. Use this after `search`/`winners`/`feed` return a shortlist \u2014 pass an ad_id to understand a reference before reproducing it. Static and carousel ads return the text drawn into the image with the job each piece does (headline, benefit, cta\u2026), the card it sits on, and their format_pattern. Add --full for how it is built (composition, colours, CTA, markers), how it persuades (awareness, mechanism, pains, desires, proof, objections), what it offers (offer type, price, guarantee, urgency), plus speech, pacing and soundtrack for video.",
@@ -98427,7 +98746,7 @@ registerSchema({
98427
98746
  }
98428
98747
  }
98429
98748
  });
98430
- var contentCommand = defineCommand268({
98749
+ var contentCommand = defineCommand274({
98431
98750
  meta: {
98432
98751
  name: "content",
98433
98752
  description: "Read the transcript + on-screen text + copy of one winning ad; --full adds its build, persuasion and offer. Example: baker winning-ads content adg_123 --platform meta --full --output md"
@@ -98470,13 +98789,13 @@ var contentCommand = defineCommand268({
98470
98789
  adContentNormalizer
98471
98790
  );
98472
98791
  } catch (err) {
98473
- reportError3(err);
98792
+ reportError4(err);
98474
98793
  }
98475
98794
  }
98476
98795
  });
98477
98796
 
98478
98797
  // src/commands/winning-ads/feed.ts
98479
- import { defineCommand as defineCommand269 } from "citty";
98798
+ import { defineCommand as defineCommand275 } from "citty";
98480
98799
  function buildFeedParams(input) {
98481
98800
  const params = {};
98482
98801
  const advertiser = splitList4(input.advertiser);
@@ -98528,7 +98847,7 @@ registerSchema({
98528
98847
  format: { type: "string", description: "Comma-separated formats to include (e.g. static,video)", required: false }
98529
98848
  }
98530
98849
  });
98531
- var feedCommand2 = defineCommand269({
98850
+ var feedCommand2 = defineCommand275({
98532
98851
  meta: {
98533
98852
  name: "feed",
98534
98853
  description: "Winners across every brand you follow (browse, then trim per advertiser). Example: baker winning-ads feed --per-advertiser 5 --output md"
@@ -98607,13 +98926,13 @@ var feedCommand2 = defineCommand269({
98607
98926
  `);
98608
98927
  }
98609
98928
  } catch (err) {
98610
- reportError3(err);
98929
+ reportError4(err);
98611
98930
  }
98612
98931
  }
98613
98932
  });
98614
98933
 
98615
98934
  // src/commands/winning-ads/follow.ts
98616
- import { defineCommand as defineCommand270 } from "citty";
98935
+ import { defineCommand as defineCommand276 } from "citty";
98617
98936
  var PLATFORMS = adLibraryPlatformSchema.options;
98618
98937
  registerSchema({
98619
98938
  command: "winning-ads.follow",
@@ -98628,7 +98947,7 @@ registerSchema({
98628
98947
  label: { type: "string", description: "Optional display label (defaults to the resolved name)", required: false }
98629
98948
  }
98630
98949
  });
98631
- var followCommand = defineCommand270({
98950
+ var followCommand = defineCommand276({
98632
98951
  meta: {
98633
98952
  name: "follow",
98634
98953
  description: 'Follow a brand to track ALL its ads \u2014 every platform and country. --platform is how we read your input, not a limit. A domain tracks every platform we can resolve. Example: baker winning-ads follow "deel.com" --platform meta'
@@ -98669,13 +98988,13 @@ var followCommand = defineCommand270({
98669
98988
  }
98670
98989
  writeJson({ ok: true, data, hints: hints2 });
98671
98990
  } catch (err) {
98672
- reportError3(err);
98991
+ reportError4(err);
98673
98992
  }
98674
98993
  }
98675
98994
  });
98676
98995
 
98677
98996
  // src/commands/winning-ads/follow-competitors.ts
98678
- import { defineCommand as defineCommand271 } from "citty";
98997
+ import { defineCommand as defineCommand277 } from "citty";
98679
98998
  var PLATFORMS2 = adLibraryPlatformSchema.options;
98680
98999
  var BATCH_TIMEOUT_MS = 3e5;
98681
99000
  function buildFollowBatchBody(input) {
@@ -98708,7 +99027,7 @@ registerSchema({
98708
99027
  }
98709
99028
  }
98710
99029
  });
98711
- var followCompetitorsCommand = defineCommand271({
99030
+ var followCompetitorsCommand = defineCommand277({
98712
99031
  meta: {
98713
99032
  name: "follow-competitors",
98714
99033
  description: 'Follow many brands at once by domain \u2014 add every competitor in one call. Example: baker winning-ads follow-competitors "deel.com,notion.so,hubspot.com"'
@@ -98777,13 +99096,13 @@ var followCompetitorsCommand = defineCommand271({
98777
99096
  }
98778
99097
  writeJson({ ok: true, data, hints: hints2.length > 0 ? hints2 : void 0 });
98779
99098
  } catch (err) {
98780
- reportError3(err);
99099
+ reportError4(err);
98781
99100
  }
98782
99101
  }
98783
99102
  });
98784
99103
 
98785
99104
  // src/commands/winning-ads/following.ts
98786
- import { defineCommand as defineCommand272 } from "citty";
99105
+ import { defineCommand as defineCommand278 } from "citty";
98787
99106
  registerSchema({
98788
99107
  command: "winning-ads.following",
98789
99108
  description: "List the brands you follow in your ad-dna library, with each one's status (ready vs still adding) and cached ad counts. A brand still adding has counts that are a lie in progress; one with `discovery_failed` has counts that are short because we couldn't finish looking, which is not the same as it running no ads.",
@@ -98837,7 +99156,7 @@ function followingNormalizer(record, full) {
98837
99156
  platforms: Array.isArray(record.platforms) ? record.platforms : []
98838
99157
  };
98839
99158
  }
98840
- var followingCommand = defineCommand272({
99159
+ var followingCommand = defineCommand278({
98841
99160
  meta: {
98842
99161
  name: "following",
98843
99162
  description: "List brands you follow, with status (ready / adding\u2026) and cached counts. A brand's counts are only final once it is ready. Example: baker winning-ads following --output md"
@@ -98867,13 +99186,13 @@ var followingCommand = defineCommand272({
98867
99186
  followingNormalizer
98868
99187
  );
98869
99188
  } catch (err) {
98870
- reportError3(err);
99189
+ reportError4(err);
98871
99190
  }
98872
99191
  }
98873
99192
  });
98874
99193
 
98875
99194
  // src/commands/winning-ads/search.ts
98876
- import { defineCommand as defineCommand273 } from "citty";
99195
+ import { defineCommand as defineCommand279 } from "citty";
98877
99196
  registerSchema({
98878
99197
  command: "winning-ads.search",
98879
99198
  description: "Search the ad-dna corpus of scored winning ads, the company's followed brands first. Returns a lean shortlist (advertiser, summary, scores, days_active/active/winner_category as proof, media_url, and visual/container/mechanism when known) to pick a reference to reproduce. Each search is a paid reranker + judge call: one strong search, at most one adjusted retry. A value outside a closed list (--platform, --format, --winner-category, --awareness, --format-pattern, --sort) is refused with error.fix.validValues.",
@@ -99059,7 +99378,7 @@ function reportSearchError(err) {
99059
99378
  writeJson({ ok: false, error: { code: err.code, message: err.message, fix } });
99060
99379
  process.exit(1);
99061
99380
  }
99062
- reportError3(err);
99381
+ reportError4(err);
99063
99382
  }
99064
99383
  var FLAG_FOR_FIELD = {
99065
99384
  limit: "--limit",
@@ -99073,8 +99392,8 @@ var FLAG_FOR_FIELD = {
99073
99392
  first_seen_after: "--first-seen-after",
99074
99393
  first_seen_before: "--first-seen-before"
99075
99394
  };
99076
- function flagFor(path59) {
99077
- const field = String(path59[0] === "hard_filters" ? path59[1] : path59[0]);
99395
+ function flagFor(path58) {
99396
+ const field = String(path58[0] === "hard_filters" ? path58[1] : path58[0]);
99078
99397
  return FLAG_FOR_FIELD[field] ?? field;
99079
99398
  }
99080
99399
  function schemaRejection(body) {
@@ -99151,7 +99470,7 @@ function writeSearchResult(data, opts) {
99151
99470
  writeOutput({ ok: true, data: rawResults, ...withHints2 }, opts.output, opts.fields, opts.full, winningAdNormalizer);
99152
99471
  }
99153
99472
  var SEARCH_TIMEOUT_MS = 12e4;
99154
- var searchCommand5 = defineCommand273({
99473
+ var searchCommand5 = defineCommand279({
99155
99474
  meta: {
99156
99475
  name: "search",
99157
99476
  description: "Search winning reference ads, the company's followed brands first. Start here: baker winning-ads search 'B2B SaaS before/after AI automation' --platform meta --format static --exclude-advertiser adv_123 --output md. A set of references for N concepts in one call: add --diverse --limit N. The best proven ad in one container from any category: --format-pattern comparison_table (no query needed; add --sort longest_running to order by staying power). Each search is a paid reranker + judge call: one strong search, at most one adjusted retry."
@@ -99277,7 +99596,7 @@ var searchCommand5 = defineCommand273({
99277
99596
  });
99278
99597
 
99279
99598
  // src/commands/winning-ads/seeds.ts
99280
- import { defineCommand as defineCommand274 } from "citty";
99599
+ import { defineCommand as defineCommand280 } from "citty";
99281
99600
  function leanRow(r) {
99282
99601
  return {
99283
99602
  key: r.key,
@@ -99305,7 +99624,7 @@ function makeSeedCommand(opts) {
99305
99624
  limit: { type: "number", description: "Max keys 1-100 (default 20)", required: false, default: 20 }
99306
99625
  }
99307
99626
  });
99308
- return defineCommand274({
99627
+ return defineCommand280({
99309
99628
  meta: { name: opts.name, description: opts.description },
99310
99629
  args: {
99311
99630
  platform: { type: "string", description: "Single platform to segment on", required: false },
@@ -99332,7 +99651,7 @@ function makeSeedCommand(opts) {
99332
99651
  }
99333
99652
  writeOutput({ ok: true, data: projected }, output);
99334
99653
  } catch (err) {
99335
- reportError3(err);
99654
+ reportError4(err);
99336
99655
  }
99337
99656
  }
99338
99657
  });
@@ -99354,7 +99673,7 @@ var formatsCommand = makeSeedCommand({
99354
99673
  });
99355
99674
 
99356
99675
  // src/commands/winning-ads/unfollow.ts
99357
- import { defineCommand as defineCommand275 } from "citty";
99676
+ import { defineCommand as defineCommand281 } from "citty";
99358
99677
  registerSchema({
99359
99678
  command: "winning-ads.unfollow",
99360
99679
  description: "Stop following a brand \u2014 removes it from your ad-dna library by advertiser id.",
@@ -99362,7 +99681,7 @@ registerSchema({
99362
99681
  advertiser: { type: "string", description: "Advertiser id to unfollow", required: true }
99363
99682
  }
99364
99683
  });
99365
- var unfollowCommand = defineCommand275({
99684
+ var unfollowCommand = defineCommand281({
99366
99685
  meta: {
99367
99686
  name: "unfollow",
99368
99687
  description: "Stop following a brand by advertiser id. Example: baker winning-ads unfollow adv_123"
@@ -99377,13 +99696,13 @@ var unfollowCommand = defineCommand275({
99377
99696
  });
99378
99697
  writeJson({ ok: true, data });
99379
99698
  } catch (err) {
99380
- reportError3(err);
99699
+ reportError4(err);
99381
99700
  }
99382
99701
  }
99383
99702
  });
99384
99703
 
99385
99704
  // src/commands/winning-ads/winners.ts
99386
- import { defineCommand as defineCommand276 } from "citty";
99705
+ import { defineCommand as defineCommand282 } from "citty";
99387
99706
  registerSchema({
99388
99707
  command: "winning-ads.winners",
99389
99708
  description: "Top winning ads for one advertiser id (from `advertisers` or `following`). Returns lean winner cards; add --full for DNA + longevity.",
@@ -99393,7 +99712,7 @@ registerSchema({
99393
99712
  platform: { type: "string", description: "Filter to a single platform: meta|linkedin|tiktok", required: false }
99394
99713
  }
99395
99714
  });
99396
- var winnersCommand = defineCommand276({
99715
+ var winnersCommand = defineCommand282({
99397
99716
  meta: {
99398
99717
  name: "winners",
99399
99718
  description: "Top winning ads for a specific advertiser id. Example: baker winning-ads winners adv_123 --top 15 --output md"
@@ -99437,13 +99756,13 @@ var winnersCommand = defineCommand276({
99437
99756
  winningAdNormalizer
99438
99757
  );
99439
99758
  } catch (err) {
99440
- reportError3(err);
99759
+ reportError4(err);
99441
99760
  }
99442
99761
  }
99443
99762
  });
99444
99763
 
99445
99764
  // src/commands/winning-ads/index.ts
99446
- var winningAdsCommand = defineCommand277({
99765
+ var winningAdsCommand = defineCommand283({
99447
99766
  meta: {
99448
99767
  name: "winning-ads",
99449
99768
  description: `Search the ad-dna corpus of scored "winning" ads for reference creatives to reproduce, and manage the brands your library tracks. Proxied through the Baker backend (BAKER_API_KEY) \u2014 no separate token needed.
@@ -99511,7 +99830,7 @@ function getCliVersion() {
99511
99830
  }
99512
99831
 
99513
99832
  // src/cli.ts
99514
- var main = defineCommand278({
99833
+ var main = defineCommand284({
99515
99834
  meta: {
99516
99835
  name: "baker",
99517
99836
  version: getCliVersion(),