@koda-sl/baker-cli 0.67.0 → 0.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -11,10 +11,10 @@ import {
11
11
  } from "./chunk-K6LHXCKD.js";
12
12
 
13
13
  // src/cli.ts
14
- import { defineCommand as defineCommand143, runMain } from "citty";
14
+ import { defineCommand as defineCommand136, runMain } from "citty";
15
15
 
16
16
  // src/commands/actions/index.ts
17
- import { defineCommand as defineCommand19 } from "citty";
17
+ import { defineCommand as defineCommand12 } from "citty";
18
18
 
19
19
  // src/commands/actions/claim.ts
20
20
  import { defineCommand } from "citty";
@@ -500,7 +500,7 @@ var completeCommand = defineCommand2({
500
500
  import { defineCommand as defineCommand3 } from "citty";
501
501
  registerSchema({
502
502
  command: "actions.create",
503
- description: "Stage creation of a new action (applies when the chat is published). Returns a tempId you can use to link/tag in the same draft. After creating, check if this action blocks or is blocked by other actions and wire dependencies with `baker actions link`.",
503
+ description: "Stage creation of a new action (applies when the chat is published). Returns a tempId you can use to link in the same draft. After creating, check if this action blocks or is blocked by other actions and wire dependencies with `baker actions link`.",
504
504
  args: {
505
505
  name: { type: "string", description: "Action name (short, action-verb, \u22646 words)", required: true },
506
506
  description: {
@@ -508,19 +508,17 @@ registerSchema({
508
508
  description: "Context-complete description: what / why / where / done-when",
509
509
  required: false
510
510
  },
511
- tag: { type: "string", description: "Tag slugs (comma-separated)", required: false },
512
511
  "temp-id": { type: "string", description: "Custom tempId (auto-generated if omitted)", required: false }
513
512
  }
514
513
  });
515
514
  var createCommand = defineCommand3({
516
515
  meta: {
517
516
  name: "create",
518
- description: 'Stage a new action. Applies when the chat is published. Example: baker actions create --name "Build hero" --tag copy'
517
+ description: 'Stage a new action. Applies when the chat is published. Example: baker actions create --name "Build hero"'
519
518
  },
520
519
  args: {
521
520
  name: { type: "string", description: "Action name", required: false },
522
521
  description: { type: "string", description: "Description", required: false, default: "" },
523
- tag: { type: "string", description: "Tag slugs (comma-separated, repeatable)", required: false },
524
522
  "temp-id": { type: "string", description: "Optional custom tempId", required: false }
525
523
  },
526
524
  run: async ({ args }) => {
@@ -531,19 +529,14 @@ var createCommand = defineCommand3({
531
529
  }
532
530
  const chatId = requireChatId();
533
531
  const tempId = args["temp-id"] || generateTempId();
534
- const tagSlugs = args.tag ? args.tag.split(",").map((s) => s.trim()).filter(Boolean) : void 0;
535
532
  const response = await apiPost("/api/actions/create", {
536
533
  chatId,
537
534
  tempId,
538
535
  name,
539
- description: args.description ?? "",
540
- tagSlugs
536
+ description: args.description ?? ""
541
537
  });
542
538
  const hints = [];
543
539
  hints.push(`Link dependencies: baker actions link --blocker <id> --blocked ${tempId}`);
544
- if (!tagSlugs || tagSlugs.length === 0) {
545
- hints.push("Add tags: baker actions tag add <tempId> --slug <tag-slug>");
546
- }
547
540
  if (!args.description) {
548
541
  hints.push("Add description: baker actions update <tempId> --description '...' (what/why/where/done-when)");
549
542
  }
@@ -667,7 +660,7 @@ var linkCommand = defineCommand6({
667
660
  import { defineCommand as defineCommand7 } from "citty";
668
661
  registerSchema({
669
662
  command: "actions.list",
670
- description: "List actions for the current company. Default: pre-bucketed (claimable/myClaims/blocked/claimedByOthers/completed/discarded). Set --bucketed=false for a flat list filterable by --status / --tag.",
663
+ description: "List actions for the current company. Default: pre-bucketed (claimable/myClaims/blocked/claimedByOthers/completed/discarded). Set --bucketed=false for a flat list filterable by --status.",
671
664
  args: {
672
665
  bucketed: {
673
666
  type: "boolean",
@@ -679,23 +672,17 @@ registerSchema({
679
672
  type: "string",
680
673
  description: "Filter by status (only with --bucketed=false): pending|in_progress|completed|discarded",
681
674
  required: false
682
- },
683
- tag: {
684
- type: "string",
685
- description: "Repeatable; filter by tag slug (only with --bucketed=false)",
686
- required: false
687
675
  }
688
676
  }
689
677
  });
690
678
  var listCommand = defineCommand7({
691
679
  meta: {
692
680
  name: "list",
693
- description: "List actions. Default: bucketed view (claimable, myClaims, blocked, claimedByOthers). Use --bucketed=false for raw filter by --status / --tag."
681
+ description: "List actions. Default: bucketed view (claimable, myClaims, blocked, claimedByOthers). Use --bucketed=false for raw filter by --status."
694
682
  },
695
683
  args: {
696
684
  bucketed: { type: "boolean", description: "Pre-bucket by chat", required: false, default: true },
697
- status: { type: "string", description: "Status filter (raw mode)", required: false },
698
- tag: { type: "string", description: "Tag slug filter (raw mode, comma-separated)", required: false }
685
+ status: { type: "string", description: "Status filter (raw mode)", required: false }
699
686
  },
700
687
  run: async ({ args }) => {
701
688
  try {
@@ -709,9 +696,6 @@ var listCommand = defineCommand7({
709
696
  if (args.status) {
710
697
  body.status = args.status;
711
698
  }
712
- if (args.tag) {
713
- body.tagSlugs = args.tag.split(",").map((s) => s.trim()).filter(Boolean);
714
- }
715
699
  }
716
700
  const response = await apiPost("/api/actions/list", body);
717
701
  writeJson(response);
@@ -786,270 +770,8 @@ var statusCommand = defineCommand9({
786
770
  }
787
771
  });
788
772
 
789
- // src/commands/actions/tag/index.ts
790
- import { defineCommand as defineCommand16 } from "citty";
791
-
792
- // src/commands/actions/tag/add.ts
793
- import { defineCommand as defineCommand10 } from "citty";
794
- registerSchema({
795
- command: "actions.tag.add",
796
- description: "Stage adding a tag to an action. Action ref can be an action ID or a tempId from a create op in the same draft.",
797
- args: {
798
- "action-ref": { type: "string", description: "Action ID or tempId", required: true },
799
- slug: { type: "string", description: "Tag slug", required: true }
800
- }
801
- });
802
- var addCommand = defineCommand10({
803
- meta: {
804
- name: "add",
805
- description: "Stage adding a tag to an action. Example: baker actions tag add <action-id-or-tempId> --slug copy"
806
- },
807
- args: {
808
- "action-ref": { type: "positional", description: "Action ID or tempId", required: false },
809
- "action-id": { type: "string", description: "Action ID (alternative)", required: false },
810
- slug: { type: "string", description: "Tag slug", required: false }
811
- },
812
- run: async ({ args }) => {
813
- try {
814
- const ref = args["action-ref"] || args["action-id"];
815
- const slug = args.slug;
816
- if (!ref) {
817
- failValidation("Action ref (ID or tempId) is required.");
818
- }
819
- if (!slug) {
820
- failValidation("--slug is required.");
821
- }
822
- const chatId = requireChatId();
823
- await apiPost("/api/actions/tag/add", {
824
- chatId,
825
- actionRef: ref,
826
- tagSlug: slug
827
- });
828
- writeOk();
829
- } catch (err) {
830
- failApi(err);
831
- }
832
- }
833
- });
834
-
835
- // src/commands/actions/tag/create.ts
836
- import { defineCommand as defineCommand11 } from "citty";
837
- registerSchema({
838
- command: "actions.tag.create",
839
- description: "Create a new company-wide action tag. Applies immediately.",
840
- args: {
841
- slug: { type: "string", description: "Lowercase alphanumeric slug (hyphens allowed)", required: true },
842
- label: { type: "string", description: "Display label", required: true },
843
- color: { type: "string", description: "Hex color (e.g. #f59e0b)", required: false },
844
- description: { type: "string", description: "Optional description", required: false }
845
- }
846
- });
847
- var createCommand2 = defineCommand11({
848
- meta: {
849
- name: "create",
850
- description: 'Create a new action tag. Example: baker actions tag create --slug copy --label Copy --color "#f59e0b"'
851
- },
852
- args: {
853
- slug: { type: "string", description: "Slug", required: false },
854
- label: { type: "string", description: "Label", required: false },
855
- color: { type: "string", description: "Hex color", required: false },
856
- description: { type: "string", description: "Description", required: false }
857
- },
858
- run: async ({ args }) => {
859
- try {
860
- const slug = args.slug;
861
- const label = args.label;
862
- if (!slug) {
863
- failValidation("--slug is required.");
864
- }
865
- if (!label) {
866
- failValidation("--label is required.");
867
- }
868
- const response = await apiPost("/api/actions/tag/create", {
869
- slug,
870
- label,
871
- color: args.color,
872
- description: args.description
873
- });
874
- writeJson(response);
875
- } catch (err) {
876
- failApi(err);
877
- }
878
- }
879
- });
880
-
881
- // src/commands/actions/tag/delete.ts
882
- import { defineCommand as defineCommand12 } from "citty";
883
- registerSchema({
884
- command: "actions.tag.delete",
885
- description: "Delete a tag and all its associations. Applies immediately.",
886
- args: {
887
- id: { type: "string", description: "Tag ID", required: true }
888
- }
889
- });
890
- var deleteCommand = defineCommand12({
891
- meta: {
892
- name: "delete",
893
- description: "Delete a tag. Example: baker actions tag delete <tag-id>"
894
- },
895
- args: {
896
- id: { type: "positional", description: "Tag ID", required: false },
897
- "tag-id": { type: "string", description: "Tag ID", required: false }
898
- },
899
- run: async ({ args }) => {
900
- try {
901
- const id = args.id || args["tag-id"];
902
- if (!id) {
903
- failValidation("Tag ID is required.");
904
- }
905
- validateConvexId(id);
906
- await apiPost("/api/actions/tag/delete", { tagId: id });
907
- writeOk();
908
- } catch (err) {
909
- failApi(err);
910
- }
911
- }
912
- });
913
-
914
- // src/commands/actions/tag/list.ts
915
- import { defineCommand as defineCommand13 } from "citty";
916
- registerSchema({
917
- command: "actions.tag.list",
918
- description: "List all action tags for the current company.",
919
- args: {}
920
- });
921
- var listCommand2 = defineCommand13({
922
- meta: { name: "list", description: "List all action tags. Example: baker actions tag list" },
923
- args: {},
924
- run: async () => {
925
- try {
926
- const response = await apiPost("/api/actions/tag/list", {});
927
- writeJson(response);
928
- } catch (err) {
929
- failApi(err);
930
- }
931
- }
932
- });
933
-
934
- // src/commands/actions/tag/remove.ts
935
- import { defineCommand as defineCommand14 } from "citty";
936
- registerSchema({
937
- command: "actions.tag.remove",
938
- description: "Stage removing a tag from a claimed action.",
939
- args: {
940
- id: { type: "string", description: "Action ID (must be claimed by current chat)", required: true },
941
- slug: { type: "string", description: "Tag slug", required: true }
942
- }
943
- });
944
- var removeCommand = defineCommand14({
945
- meta: {
946
- name: "remove",
947
- description: "Stage removing a tag from a claimed action. Example: baker actions tag remove <action-id> --slug copy"
948
- },
949
- args: {
950
- id: { type: "positional", description: "Action ID", required: false },
951
- "action-id": { type: "string", description: "Action ID", required: false },
952
- slug: { type: "string", description: "Tag slug", required: false }
953
- },
954
- run: async ({ args }) => {
955
- try {
956
- const id = args.id || args["action-id"];
957
- const slug = args.slug;
958
- if (!id) {
959
- failValidation("Action ID is required.");
960
- }
961
- if (!slug) {
962
- failValidation("--slug is required.");
963
- }
964
- validateConvexId(id);
965
- const chatId = requireChatId();
966
- await apiPost("/api/actions/tag/remove", {
967
- chatId,
968
- actionId: id,
969
- tagSlug: slug
970
- });
971
- writeOk();
972
- } catch (err) {
973
- failApi(err);
974
- }
975
- }
976
- });
977
-
978
- // src/commands/actions/tag/update.ts
979
- import { defineCommand as defineCommand15 } from "citty";
980
- registerSchema({
981
- command: "actions.tag.update",
982
- description: "Update a tag's label, color, or description. Applies immediately.",
983
- args: {
984
- id: { type: "string", description: "Tag ID", required: true },
985
- label: { type: "string", description: "New label", required: false },
986
- color: { type: "string", description: "New hex color", required: false },
987
- description: { type: "string", description: "New description", required: false }
988
- }
989
- });
990
- var updateCommand = defineCommand15({
991
- meta: {
992
- name: "update",
993
- description: 'Update a tag. Example: baker actions tag update <tag-id> --label "Copywriting"'
994
- },
995
- args: {
996
- id: { type: "positional", description: "Tag ID", required: false },
997
- "tag-id": { type: "string", description: "Tag ID", required: false },
998
- label: { type: "string", description: "New label", required: false },
999
- color: { type: "string", description: "New hex color", required: false },
1000
- description: { type: "string", description: "New description", required: false }
1001
- },
1002
- run: async ({ args }) => {
1003
- try {
1004
- const id = args.id || args["tag-id"];
1005
- if (!id) {
1006
- failValidation("Tag ID is required.");
1007
- }
1008
- validateConvexId(id);
1009
- if (args.label === void 0 && args.color === void 0 && args.description === void 0) {
1010
- failValidation("Provide at least one of --label, --color, --description.");
1011
- }
1012
- await apiPost("/api/actions/tag/update", {
1013
- tagId: id,
1014
- label: args.label,
1015
- color: args.color,
1016
- description: args.description
1017
- });
1018
- writeOk();
1019
- } catch (err) {
1020
- failApi(err);
1021
- }
1022
- }
1023
- });
1024
-
1025
- // src/commands/actions/tag/index.ts
1026
- var tagCommand = defineCommand16({
1027
- meta: {
1028
- name: "tag",
1029
- description: `Manage action tags. Subcommands: add, remove, list, create, update, delete.
1030
-
1031
- Tags are company-wide. Add/remove operate on a specific action and stage on the draft (apply on publish). Create/update/delete operate on the tag definitions and apply immediately.
1032
-
1033
- Examples:
1034
- baker actions tag list
1035
- baker actions tag create --slug copy --label Copy
1036
- baker actions tag add <action-id> --slug copy
1037
- baker actions tag remove <action-id> --slug copy
1038
- baker actions tag update <tag-id> --label "Copywriting"
1039
- baker actions tag delete <tag-id>`
1040
- },
1041
- subCommands: {
1042
- list: listCommand2,
1043
- add: addCommand,
1044
- remove: removeCommand,
1045
- create: createCommand2,
1046
- update: updateCommand,
1047
- delete: deleteCommand
1048
- }
1049
- });
1050
-
1051
773
  // src/commands/actions/unlink.ts
1052
- import { defineCommand as defineCommand17 } from "citty";
774
+ import { defineCommand as defineCommand10 } from "citty";
1053
775
  registerSchema({
1054
776
  command: "actions.unlink",
1055
777
  description: "Stage removal of a 'blocker -> blocked' dependency. The blocked action must be claimed by current chat.",
@@ -1058,7 +780,7 @@ registerSchema({
1058
780
  blocked: { type: "string", description: "Blocked action ID (must be claimed by current chat)", required: true }
1059
781
  }
1060
782
  });
1061
- var unlinkCommand = defineCommand17({
783
+ var unlinkCommand = defineCommand10({
1062
784
  meta: {
1063
785
  name: "unlink",
1064
786
  description: "Stage removal of a dependency. Example: baker actions unlink --blocker <id> --blocked <id>"
@@ -1090,7 +812,7 @@ var unlinkCommand = defineCommand17({
1090
812
  });
1091
813
 
1092
814
  // src/commands/actions/update.ts
1093
- import { defineCommand as defineCommand18 } from "citty";
815
+ import { defineCommand as defineCommand11 } from "citty";
1094
816
  registerSchema({
1095
817
  command: "actions.update",
1096
818
  description: "Stage an update on a claimed action (name and/or description). Applies on publish.",
@@ -1100,7 +822,7 @@ registerSchema({
1100
822
  description: { type: "string", description: "New description", required: false }
1101
823
  }
1102
824
  });
1103
- var updateCommand2 = defineCommand18({
825
+ var updateCommand = defineCommand11({
1104
826
  meta: {
1105
827
  name: "update",
1106
828
  description: 'Stage an update on a claimed action. Example: baker actions update <id> --name "New name"'
@@ -1136,10 +858,10 @@ var updateCommand2 = defineCommand18({
1136
858
  });
1137
859
 
1138
860
  // src/commands/actions/index.ts
1139
- var actionsCommand = defineCommand19({
861
+ var actionsCommand = defineCommand12({
1140
862
  meta: {
1141
863
  name: "actions",
1142
- description: `Manage action items for the current chat. Subcommands: list, get, status, claim, release, create, update, complete, discard, link, unlink, tag.
864
+ description: `Manage action items for the current chat. Subcommands: list, get, status, claim, release, create, update, complete, discard, link, unlink.
1143
865
 
1144
866
  Lifecycle: claim an action before working on it. Stage create/complete/discard via this CLI; they apply when the chat is published. Release if you decide not to work on it after all.
1145
867
 
@@ -1147,11 +869,9 @@ Examples:
1147
869
  baker actions list # bucketed view: claimable, myClaims, blocked, claimedByOthers
1148
870
  baker actions status temp_hero jx123 # batch resolve real IDs and temp_* refs
1149
871
  baker actions claim <id>
1150
- baker actions create --name "Build hero" --description "..." --tag copy
872
+ baker actions create --name "Build hero" --description "..."
1151
873
  baker actions complete <id>
1152
- baker actions discard <id> --reason "obsolete"
1153
- baker actions tag list
1154
- baker actions tag create --slug copy --label Copy`
874
+ baker actions discard <id> --reason "obsolete"`
1155
875
  },
1156
876
  subCommands: {
1157
877
  list: listCommand,
@@ -1160,23 +880,22 @@ Examples:
1160
880
  claim: claimCommand,
1161
881
  release: releaseCommand,
1162
882
  create: createCommand,
1163
- update: updateCommand2,
883
+ update: updateCommand,
1164
884
  complete: completeCommand,
1165
885
  discard: discardCommand,
1166
886
  link: linkCommand,
1167
- unlink: unlinkCommand,
1168
- tag: tagCommand
887
+ unlink: unlinkCommand
1169
888
  }
1170
889
  });
1171
890
 
1172
891
  // src/commands/ads/index.ts
1173
- import { defineCommand as defineCommand78 } from "citty";
892
+ import { defineCommand as defineCommand71 } from "citty";
1174
893
 
1175
894
  // src/commands/ads/google/index.ts
1176
- import { defineCommand as defineCommand30 } from "citty";
895
+ import { defineCommand as defineCommand23 } from "citty";
1177
896
 
1178
897
  // src/commands/ads/google/accounts.ts
1179
- import { defineCommand as defineCommand20 } from "citty";
898
+ import { defineCommand as defineCommand13 } from "citty";
1180
899
 
1181
900
  // src/commands/ads/cache.ts
1182
901
  import { createHash } from "crypto";
@@ -1452,7 +1171,7 @@ function handleAccountsError(err) {
1452
1171
  writeAdsJson({ ok: false, error: { code: "NETWORK_ERROR", message: "Unexpected error" } });
1453
1172
  process.exit(1);
1454
1173
  }
1455
- var accountsCommand = defineCommand20({
1174
+ var accountsCommand = defineCommand13({
1456
1175
  meta: {
1457
1176
  name: "accounts",
1458
1177
  description: `List accessible Google Ads accounts. Returns customer IDs needed for all other commands.
@@ -1492,7 +1211,7 @@ Examples:
1492
1211
  });
1493
1212
 
1494
1213
  // src/commands/ads/google/changes.ts
1495
- import { defineCommand as defineCommand21 } from "citty";
1214
+ import { defineCommand as defineCommand14 } from "citty";
1496
1215
 
1497
1216
  // src/commands/ads/field-descriptions.ts
1498
1217
  var FIELD_DESCRIPTIONS = {
@@ -2044,7 +1763,7 @@ registerSchema({
2044
1763
  output: { type: "string", description: "Format: json|csv|jsonl|md", required: false, default: "json" }
2045
1764
  }
2046
1765
  });
2047
- var changesCommand = defineCommand21({
1766
+ var changesCommand = defineCommand14({
2048
1767
  meta: {
2049
1768
  name: "changes",
2050
1769
  description: `Get recent changes in a Google Ads account with performance data.
@@ -2095,7 +1814,7 @@ Examples:
2095
1814
  });
2096
1815
 
2097
1816
  // src/commands/ads/google/currency.ts
2098
- import { defineCommand as defineCommand22 } from "citty";
1817
+ import { defineCommand as defineCommand15 } from "citty";
2099
1818
  registerSchema({
2100
1819
  command: "ads.google.currency",
2101
1820
  description: "Get the currency code for a Google Ads account. Returns currency_code, customer_id, account_name, and access_type. Call this before interpreting cost_micros values.",
@@ -2107,7 +1826,7 @@ registerSchema({
2107
1826
  }
2108
1827
  }
2109
1828
  });
2110
- var currencyCommand = defineCommand22({
1829
+ var currencyCommand = defineCommand15({
2111
1830
  meta: {
2112
1831
  name: "currency",
2113
1832
  description: `Get account currency code. Use this to interpret metrics.cost_micros values.
@@ -2156,10 +1875,10 @@ Examples:
2156
1875
  });
2157
1876
 
2158
1877
  // src/commands/ads/google/keywords/index.ts
2159
- import { defineCommand as defineCommand27 } from "citty";
1878
+ import { defineCommand as defineCommand20 } from "citty";
2160
1879
 
2161
1880
  // src/commands/ads/google/keywords/discover.ts
2162
- import { defineCommand as defineCommand23 } from "citty";
1881
+ import { defineCommand as defineCommand16 } from "citty";
2163
1882
 
2164
1883
  // src/geo-context.ts
2165
1884
  var GOOGLE_ADS_LOCATIONS = [
@@ -2434,7 +2153,7 @@ function handleKeywordError(err) {
2434
2153
  writeAdsJson({ ok: false, error: { code: "NETWORK_ERROR", message: "Unexpected error" } });
2435
2154
  process.exit(1);
2436
2155
  }
2437
- var discoverCommand = defineCommand23({
2156
+ var discoverCommand = defineCommand16({
2438
2157
  meta: {
2439
2158
  name: "discover",
2440
2159
  description: `Discover new keyword ideas from seed keywords or competitor URLs.
@@ -2496,7 +2215,7 @@ Examples:
2496
2215
  });
2497
2216
 
2498
2217
  // src/commands/ads/google/keywords/languages.ts
2499
- import { defineCommand as defineCommand24 } from "citty";
2218
+ import { defineCommand as defineCommand17 } from "citty";
2500
2219
  registerSchema({
2501
2220
  command: "ads.google.keywords.languages",
2502
2221
  description: "List all supported language IDs for --language flag in Google Ads keyword commands.",
@@ -2506,7 +2225,7 @@ var FIELDS = {
2506
2225
  id: "Language ID to pass as --language",
2507
2226
  name: "Language name"
2508
2227
  };
2509
- var languagesCommand = defineCommand24({
2228
+ var languagesCommand = defineCommand17({
2510
2229
  meta: {
2511
2230
  name: "languages",
2512
2231
  description: "List all supported language IDs for --language flag."
@@ -2517,7 +2236,7 @@ var languagesCommand = defineCommand24({
2517
2236
  });
2518
2237
 
2519
2238
  // src/commands/ads/google/keywords/locations.ts
2520
- import { defineCommand as defineCommand25 } from "citty";
2239
+ import { defineCommand as defineCommand18 } from "citty";
2521
2240
  registerSchema({
2522
2241
  command: "ads.google.keywords.locations",
2523
2242
  description: "List all supported geo target IDs for --location flag in Google Ads keyword commands.",
@@ -2527,7 +2246,7 @@ var FIELDS2 = {
2527
2246
  id: "Geo target ID to pass as --location",
2528
2247
  name: "Country/region name"
2529
2248
  };
2530
- var locationsCommand = defineCommand25({
2249
+ var locationsCommand = defineCommand18({
2531
2250
  meta: {
2532
2251
  name: "locations",
2533
2252
  description: "List all supported geo target IDs for --location flag."
@@ -2538,7 +2257,7 @@ var locationsCommand = defineCommand25({
2538
2257
  });
2539
2258
 
2540
2259
  // src/commands/ads/google/keywords/metrics.ts
2541
- import { defineCommand as defineCommand26 } from "citty";
2260
+ import { defineCommand as defineCommand19 } from "citty";
2542
2261
  registerSchema({
2543
2262
  command: "ads.google.keywords.metrics",
2544
2263
  description: "Get historical metrics for specific keywords. Returns { historical_metrics: [...] } with snake_case fields matching the Google Ads API. IMPORTANT: If --location and --language are omitted, defaults to United States (2840) and English (1000). The response includes a query_context object showing which location/language were used.",
@@ -2562,7 +2281,7 @@ registerSchema({
2562
2281
  output: { type: "string", description: "Format: json|csv|jsonl|md", required: false, default: "json" }
2563
2282
  }
2564
2283
  });
2565
- var metricsCommand = defineCommand26({
2284
+ var metricsCommand = defineCommand19({
2566
2285
  meta: {
2567
2286
  name: "metrics",
2568
2287
  description: `Get historical search metrics for specific keywords.
@@ -2649,7 +2368,7 @@ Examples:
2649
2368
  });
2650
2369
 
2651
2370
  // src/commands/ads/google/keywords/index.ts
2652
- var keywordsCommand = defineCommand27({
2371
+ var keywordsCommand = defineCommand20({
2653
2372
  meta: {
2654
2373
  name: "keywords",
2655
2374
  description: `Keyword research tools. Subcommands: discover, metrics, locations, languages.
@@ -2669,8 +2388,8 @@ Examples:
2669
2388
  });
2670
2389
 
2671
2390
  // src/commands/ads/google/library/index.ts
2672
- import { defineCommand as defineCommand28 } from "citty";
2673
- var listAdvertisers = defineCommand28({
2391
+ import { defineCommand as defineCommand21 } from "citty";
2392
+ var listAdvertisers = defineCommand21({
2674
2393
  meta: {
2675
2394
  name: "list-advertisers",
2676
2395
  description: "List tracked Google advertisers and their accounts"
@@ -2687,7 +2406,7 @@ var listAdvertisers = defineCommand28({
2687
2406
  }
2688
2407
  }
2689
2408
  });
2690
- var syncStatus = defineCommand28({
2409
+ var syncStatus = defineCommand21({
2691
2410
  meta: {
2692
2411
  name: "sync-status",
2693
2412
  description: "Check the sync status and ad counts of a Google account"
@@ -2707,7 +2426,7 @@ var syncStatus = defineCommand28({
2707
2426
  writeAdsJson({ ok: true, data });
2708
2427
  }
2709
2428
  });
2710
- var searchAds = defineCommand28({
2429
+ var searchAds = defineCommand21({
2711
2430
  meta: {
2712
2431
  name: "search-ads",
2713
2432
  description: "Search and filter Google ads for an account"
@@ -2764,7 +2483,7 @@ var searchAds = defineCommand28({
2764
2483
  }
2765
2484
  }
2766
2485
  });
2767
- var searchAdvertiser = defineCommand28({
2486
+ var searchAdvertiser = defineCommand21({
2768
2487
  meta: {
2769
2488
  name: "search-advertiser",
2770
2489
  description: "Search for an advertiser on the Google Ads Transparency Center"
@@ -2799,7 +2518,7 @@ var searchAdvertiser = defineCommand28({
2799
2518
  function sleep(ms) {
2800
2519
  return new Promise((resolve5) => setTimeout(resolve5, ms));
2801
2520
  }
2802
- var track = defineCommand28({
2521
+ var track = defineCommand21({
2803
2522
  meta: {
2804
2523
  name: "track",
2805
2524
  description: "Track a new Google advertiser (from search results). Waits for initial sync to complete before returning."
@@ -2857,7 +2576,7 @@ var track = defineCommand28({
2857
2576
  process.exit(1);
2858
2577
  }
2859
2578
  });
2860
- var sync = defineCommand28({
2579
+ var sync = defineCommand21({
2861
2580
  meta: {
2862
2581
  name: "sync",
2863
2582
  description: "Trigger an immediate sync for a Google account. Waits for completion before returning."
@@ -2901,7 +2620,7 @@ var sync = defineCommand28({
2901
2620
  process.exit(1);
2902
2621
  }
2903
2622
  });
2904
- var searchCompetitors = defineCommand28({
2623
+ var searchCompetitors = defineCommand21({
2905
2624
  meta: {
2906
2625
  name: "search-competitors",
2907
2626
  description: "Search for competitors running Google ads for a keyword (DataForSEO)"
@@ -2933,7 +2652,7 @@ var searchCompetitors = defineCommand28({
2933
2652
  }
2934
2653
  }
2935
2654
  });
2936
- var library = defineCommand28({
2655
+ var library = defineCommand21({
2937
2656
  meta: {
2938
2657
  name: "library",
2939
2658
  description: "Manage and search the Google Ads Library"
@@ -2952,7 +2671,7 @@ var library = defineCommand28({
2952
2671
  // src/commands/ads/google/query.ts
2953
2672
  import { appendFileSync, existsSync as existsSync2, readFileSync as readFileSync2, writeFileSync as writeFileSync2 } from "fs";
2954
2673
  import { resolve } from "path";
2955
- import { defineCommand as defineCommand29 } from "citty";
2674
+ import { defineCommand as defineCommand22 } from "citty";
2956
2675
 
2957
2676
  // src/commands/ads/google/preflight.ts
2958
2677
  function buildCommand2(query, customerId) {
@@ -3408,7 +3127,7 @@ function handleQueryError(err, finalQuery, customerId) {
3408
3127
  });
3409
3128
  process.exit(1);
3410
3129
  }
3411
- var queryCommand = defineCommand29({
3130
+ var queryCommand = defineCommand22({
3412
3131
  meta: {
3413
3132
  name: "query",
3414
3133
  description: `Run GAQL queries against Google Ads. Supports raw GAQL, presets, pagination, file export, and caching.
@@ -3466,7 +3185,7 @@ Examples:
3466
3185
  });
3467
3186
 
3468
3187
  // src/commands/ads/google/index.ts
3469
- var googleCommand = defineCommand30({
3188
+ var googleCommand = defineCommand23({
3470
3189
  meta: {
3471
3190
  name: "google",
3472
3191
  description: `Google Ads commands. Query campaigns, keywords, search terms, and more via GAQL.
@@ -3494,7 +3213,7 @@ Examples:
3494
3213
  });
3495
3214
 
3496
3215
  // src/commands/ads/linkedin/index.ts
3497
- import { defineCommand as defineCommand47 } from "citty";
3216
+ import { defineCommand as defineCommand40 } from "citty";
3498
3217
 
3499
3218
  // src/commands/ads/linkedin/schemas.ts
3500
3219
  registerSchema({
@@ -3794,7 +3513,7 @@ registerSchema({
3794
3513
  });
3795
3514
 
3796
3515
  // src/commands/ads/linkedin/account.ts
3797
- import { defineCommand as defineCommand31 } from "citty";
3516
+ import { defineCommand as defineCommand24 } from "citty";
3798
3517
 
3799
3518
  // src/commands/ads/linkedin/shared.ts
3800
3519
  var DAY_MS = 864e5;
@@ -3897,7 +3616,7 @@ function resolveStatusFilter(args) {
3897
3616
  }
3898
3617
 
3899
3618
  // src/commands/ads/linkedin/account.ts
3900
- var accountCommand = defineCommand31({
3619
+ var accountCommand = defineCommand24({
3901
3620
  meta: {
3902
3621
  name: "account",
3903
3622
  description: `Single LinkedIn ad account detail (currency, status, type).
@@ -3931,9 +3650,9 @@ Examples:
3931
3650
  });
3932
3651
 
3933
3652
  // src/commands/ads/linkedin/accounts.ts
3934
- import { defineCommand as defineCommand32 } from "citty";
3653
+ import { defineCommand as defineCommand25 } from "citty";
3935
3654
  var ACCOUNTS_TTL_MS = 60 * 60 * 1e3;
3936
- var accountsCommand2 = defineCommand32({
3655
+ var accountsCommand2 = defineCommand25({
3937
3656
  meta: {
3938
3657
  name: "accounts",
3939
3658
  description: `List LinkedIn ad accounts in this company's connected scope.
@@ -3981,7 +3700,7 @@ Examples:
3981
3700
  });
3982
3701
 
3983
3702
  // src/commands/ads/linkedin/analytics.ts
3984
- import { defineCommand as defineCommand33 } from "citty";
3703
+ import { defineCommand as defineCommand26 } from "citty";
3985
3704
 
3986
3705
  // src/commands/ads/linkedin/presets.ts
3987
3706
  var INTENTS = {
@@ -4253,7 +3972,7 @@ function numberOf(v) {
4253
3972
  }
4254
3973
  return 0;
4255
3974
  }
4256
- var analyticsCommand = defineCommand33({
3975
+ var analyticsCommand = defineCommand26({
4257
3976
  meta: {
4258
3977
  name: "analytics",
4259
3978
  description: `Performance reporting \u2014 the workhorse for AI agents.
@@ -4381,7 +4100,7 @@ Examples \u2014 common AI questions:
4381
4100
 
4382
4101
  // src/commands/ads/linkedin/audience-size.ts
4383
4102
  import { readFileSync as readFileSync3 } from "fs";
4384
- import { defineCommand as defineCommand34 } from "citty";
4103
+ import { defineCommand as defineCommand27 } from "citty";
4385
4104
  function loadTargeting(args) {
4386
4105
  const inline = args.targeting;
4387
4106
  if (inline) {
@@ -4403,7 +4122,7 @@ function loadTargeting(args) {
4403
4122
  }
4404
4123
  handleLinkedinError(new Error("Pass --targeting-file <path> or --targeting '{...JSON...}'"));
4405
4124
  }
4406
- var audienceSizeCommand = defineCommand34({
4125
+ var audienceSizeCommand = defineCommand27({
4407
4126
  meta: {
4408
4127
  name: "audience-size",
4409
4128
  description: `Estimate audience size for a targeting payload \u2014 pre-launch sanity check.
@@ -4448,7 +4167,7 @@ Examples:
4448
4167
  });
4449
4168
 
4450
4169
  // src/commands/ads/linkedin/audit.ts
4451
- import { defineCommand as defineCommand35 } from "citty";
4170
+ import { defineCommand as defineCommand28 } from "citty";
4452
4171
  var SEVERITY_RANK = {
4453
4172
  critical: 0,
4454
4173
  high: 1,
@@ -4507,7 +4226,7 @@ function noteOf(f) {
4507
4226
  const fix = f.fix?.explanation ?? "";
4508
4227
  return [fix, ev].filter(Boolean).join(" \u2014 ");
4509
4228
  }
4510
- var auditCommand = defineCommand35({
4229
+ var auditCommand = defineCommand28({
4511
4230
  meta: {
4512
4231
  name: "audit",
4513
4232
  description: `Run a LinkedIn Ads playbook audit \u2014 30+ checks across Settings, Tracking,
@@ -4574,7 +4293,7 @@ Examples:
4574
4293
 
4575
4294
  // src/commands/ads/linkedin/bid-pricing.ts
4576
4295
  import { readFileSync as readFileSync4 } from "fs";
4577
- import { defineCommand as defineCommand36 } from "citty";
4296
+ import { defineCommand as defineCommand29 } from "citty";
4578
4297
  function loadTargeting2(args) {
4579
4298
  const inline = args.targeting;
4580
4299
  if (inline) {
@@ -4596,7 +4315,7 @@ function loadTargeting2(args) {
4596
4315
  }
4597
4316
  handleLinkedinError(new Error("Pass --targeting-file <path> or --targeting '{...JSON...}'"));
4598
4317
  }
4599
- var bidPricingCommand = defineCommand36({
4318
+ var bidPricingCommand = defineCommand29({
4600
4319
  meta: {
4601
4320
  name: "bid-pricing",
4602
4321
  description: `Get LinkedIn's suggested bid range for a targeting + objective + cost type.
@@ -4646,8 +4365,8 @@ Examples:
4646
4365
  });
4647
4366
 
4648
4367
  // src/commands/ads/linkedin/campaign-groups.ts
4649
- import { defineCommand as defineCommand37 } from "citty";
4650
- var campaignGroupsCommand = defineCommand37({
4368
+ import { defineCommand as defineCommand30 } from "citty";
4369
+ var campaignGroupsCommand = defineCommand30({
4651
4370
  meta: {
4652
4371
  name: "campaign-groups",
4653
4372
  description: `List LinkedIn campaign groups.
@@ -4690,8 +4409,8 @@ Examples:
4690
4409
  });
4691
4410
 
4692
4411
  // src/commands/ads/linkedin/campaigns.ts
4693
- import { defineCommand as defineCommand38 } from "citty";
4694
- var campaignsCommand = defineCommand38({
4412
+ import { defineCommand as defineCommand31 } from "citty";
4413
+ var campaignsCommand = defineCommand31({
4695
4414
  meta: {
4696
4415
  name: "campaigns",
4697
4416
  description: `List LinkedIn campaigns.
@@ -4740,8 +4459,8 @@ Examples:
4740
4459
  });
4741
4460
 
4742
4461
  // src/commands/ads/linkedin/conversation.ts
4743
- import { defineCommand as defineCommand39 } from "citty";
4744
- var conversationCommand = defineCommand39({
4462
+ import { defineCommand as defineCommand32 } from "citty";
4463
+ var conversationCommand = defineCommand32({
4745
4464
  meta: {
4746
4465
  name: "conversation",
4747
4466
  description: `Per-button click rates inside Sponsored Messaging / Conversation Ads.
@@ -4804,7 +4523,7 @@ Examples:
4804
4523
  });
4805
4524
 
4806
4525
  // src/commands/ads/linkedin/conversions.ts
4807
- import { defineCommand as defineCommand40 } from "citty";
4526
+ import { defineCommand as defineCommand33 } from "citty";
4808
4527
  var DAY_MS2 = 864e5;
4809
4528
  function healthOf(rules) {
4810
4529
  const enabled = rules.filter((r) => r.enabled !== false);
@@ -4830,7 +4549,7 @@ function healthOf(rules) {
4830
4549
  wrongLeadDedup: wrongDedup
4831
4550
  };
4832
4551
  }
4833
- var listCmd = defineCommand40({
4552
+ var listCmd = defineCommand33({
4834
4553
  meta: {
4835
4554
  name: "list",
4836
4555
  description: `List conversion rules on the account.`
@@ -4858,7 +4577,7 @@ var listCmd = defineCommand40({
4858
4577
  }
4859
4578
  }
4860
4579
  });
4861
- var healthCmd = defineCommand40({
4580
+ var healthCmd = defineCommand33({
4862
4581
  meta: {
4863
4582
  name: "health",
4864
4583
  description: `5-point Insight Tag / CAPI health check (playbook \xA707).
@@ -4888,7 +4607,7 @@ Surfaces:
4888
4607
  }
4889
4608
  }
4890
4609
  });
4891
- var conversionsCommand = defineCommand40({
4610
+ var conversionsCommand = defineCommand33({
4892
4611
  meta: {
4893
4612
  name: "conversions",
4894
4613
  description: `Conversion rules \u2014 Insight Tag and Conversions API.
@@ -4904,8 +4623,8 @@ Subcommands:
4904
4623
  });
4905
4624
 
4906
4625
  // src/commands/ads/linkedin/creatives.ts
4907
- import { defineCommand as defineCommand41 } from "citty";
4908
- var creativesCommand = defineCommand41({
4626
+ import { defineCommand as defineCommand34 } from "citty";
4627
+ var creativesCommand = defineCommand34({
4909
4628
  meta: {
4910
4629
  name: "creatives",
4911
4630
  description: `List LinkedIn creatives (ads).
@@ -4954,7 +4673,7 @@ Examples:
4954
4673
  });
4955
4674
 
4956
4675
  // src/commands/ads/linkedin/demographics.ts
4957
- import { defineCommand as defineCommand42 } from "citty";
4676
+ import { defineCommand as defineCommand35 } from "citty";
4958
4677
  var DEFAULT_PIVOTS = ["job-title", "company", "industry", "seniority", "job-function", "company-size"];
4959
4678
  function numberOf2(v) {
4960
4679
  if (typeof v === "number") return Number.isFinite(v) ? v : 0;
@@ -4967,7 +4686,7 @@ function numberOf2(v) {
4967
4686
  function topByImpressions(rows, limit) {
4968
4687
  return [...rows].sort((a, b) => numberOf2(b.impressions) - numberOf2(a.impressions)).slice(0, limit);
4969
4688
  }
4970
- var demographicsCommand = defineCommand42({
4689
+ var demographicsCommand = defineCommand35({
4971
4690
  meta: {
4972
4691
  name: "demographics",
4973
4692
  description: `Sweep all firmographic pivots in one command \u2014 LinkedIn's superpower.
@@ -5064,8 +4783,8 @@ function resolveRange(args) {
5064
4783
  }
5065
4784
 
5066
4785
  // src/commands/ads/linkedin/facets.ts
5067
- import { defineCommand as defineCommand43 } from "citty";
5068
- var listCmd2 = defineCommand43({
4786
+ import { defineCommand as defineCommand36 } from "citty";
4787
+ var listCmd2 = defineCommand36({
5069
4788
  meta: {
5070
4789
  name: "list",
5071
4790
  description: `List every targeting facet LinkedIn supports.
@@ -5093,7 +4812,7 @@ seniorities, titles, employers, growthRate, companyCategory, skills, etc.).`
5093
4812
  }
5094
4813
  }
5095
4814
  });
5096
- var valuesCmd = defineCommand43({
4815
+ var valuesCmd = defineCommand36({
5097
4816
  meta: {
5098
4817
  name: "values",
5099
4818
  description: `Look up entity values for a single facet \u2014 full list or typeahead search.
@@ -5134,7 +4853,7 @@ or the full URN (urn:li:adTargetingFacet:industries).`
5134
4853
  }
5135
4854
  }
5136
4855
  });
5137
- var facetsCommand = defineCommand43({
4856
+ var facetsCommand = defineCommand36({
5138
4857
  meta: {
5139
4858
  name: "facets",
5140
4859
  description: `LinkedIn targeting facets and entity lookup.
@@ -5152,7 +4871,7 @@ Subcommands:
5152
4871
 
5153
4872
  // src/commands/ads/linkedin/forecast.ts
5154
4873
  import { readFileSync as readFileSync5 } from "fs";
5155
- import { defineCommand as defineCommand44 } from "citty";
4874
+ import { defineCommand as defineCommand37 } from "citty";
5156
4875
  function loadTargeting3(args) {
5157
4876
  const inline = args.targeting;
5158
4877
  if (inline) {
@@ -5182,7 +4901,7 @@ function parseMoney(raw) {
5182
4901
  }
5183
4902
  return { amount: m[1] ?? "0", currencyCode: m[2] ?? "USD" };
5184
4903
  }
5185
- var forecastCommand = defineCommand44({
4904
+ var forecastCommand = defineCommand37({
5186
4905
  meta: {
5187
4906
  name: "forecast",
5188
4907
  description: `Forecast reach + impressions + clicks + spend for a hypothetical campaign.
@@ -5229,9 +4948,9 @@ Examples:
5229
4948
  });
5230
4949
 
5231
4950
  // src/commands/ads/linkedin/leads.ts
5232
- import { defineCommand as defineCommand45 } from "citty";
4951
+ import { defineCommand as defineCommand38 } from "citty";
5233
4952
  var DAY_MS3 = 864e5;
5234
- var leadsCommand = defineCommand45({
4953
+ var leadsCommand = defineCommand38({
5235
4954
  meta: {
5236
4955
  name: "leads",
5237
4956
  description: `List Lead Gen Form responses (playbook \xA707).
@@ -5291,8 +5010,8 @@ Examples:
5291
5010
  });
5292
5011
 
5293
5012
  // src/commands/ads/linkedin/top-companies.ts
5294
- import { defineCommand as defineCommand46 } from "citty";
5295
- var topCompaniesCommand = defineCommand46({
5013
+ import { defineCommand as defineCommand39 } from "citty";
5014
+ var topCompaniesCommand = defineCommand39({
5296
5015
  meta: {
5297
5016
  name: "top-companies",
5298
5017
  description: `Top companies whose employees saw / clicked / converted on a campaign.
@@ -5363,7 +5082,7 @@ Examples:
5363
5082
  });
5364
5083
 
5365
5084
  // src/commands/ads/linkedin/index.ts
5366
- var linkedinCommand = defineCommand47({
5085
+ var linkedinCommand = defineCommand40({
5367
5086
  meta: {
5368
5087
  name: "linkedin",
5369
5088
  description: `LinkedIn Marketing API \u2014 AI-first command surface for B2B ad insights.
@@ -5413,10 +5132,10 @@ Account ID format:
5413
5132
  });
5414
5133
 
5415
5134
  // src/commands/ads/meta/index.ts
5416
- import { defineCommand as defineCommand60 } from "citty";
5135
+ import { defineCommand as defineCommand53 } from "citty";
5417
5136
 
5418
5137
  // src/commands/ads/meta/account.ts
5419
- import { defineCommand as defineCommand48 } from "citty";
5138
+ import { defineCommand as defineCommand41 } from "citty";
5420
5139
 
5421
5140
  // src/commands/ads/meta/shared.ts
5422
5141
  var DAY_MS4 = 864e5;
@@ -5495,7 +5214,7 @@ function resolveEffectiveStatus(args) {
5495
5214
  }
5496
5215
 
5497
5216
  // src/commands/ads/meta/account.ts
5498
- var accountCommand2 = defineCommand48({
5217
+ var accountCommand2 = defineCommand41({
5499
5218
  meta: {
5500
5219
  name: "account",
5501
5220
  description: `Show single Meta ad account detail (currency, timezone, balance, business).
@@ -5522,8 +5241,8 @@ Examples:
5522
5241
  });
5523
5242
 
5524
5243
  // src/commands/ads/meta/accounts.ts
5525
- import { defineCommand as defineCommand49 } from "citty";
5526
- var accountsCommand3 = defineCommand49({
5244
+ import { defineCommand as defineCommand42 } from "citty";
5245
+ var accountsCommand3 = defineCommand42({
5527
5246
  meta: {
5528
5247
  name: "accounts",
5529
5248
  description: `List Meta ad accounts in this company's connected scope.
@@ -5571,8 +5290,8 @@ Examples:
5571
5290
  });
5572
5291
 
5573
5292
  // src/commands/ads/meta/activities.ts
5574
- import { defineCommand as defineCommand50 } from "citty";
5575
- var activitiesCommand = defineCommand50({
5293
+ import { defineCommand as defineCommand43 } from "citty";
5294
+ var activitiesCommand = defineCommand43({
5576
5295
  meta: {
5577
5296
  name: "activities",
5578
5297
  description: `Audit log of recent ad-account changes (created, paused, edited). Default lookback 7 days,
@@ -5609,8 +5328,8 @@ Examples:
5609
5328
  });
5610
5329
 
5611
5330
  // src/commands/ads/meta/ads.ts
5612
- import { defineCommand as defineCommand51 } from "citty";
5613
- var adsListCommand = defineCommand51({
5331
+ import { defineCommand as defineCommand44 } from "citty";
5332
+ var adsListCommand = defineCommand44({
5614
5333
  meta: {
5615
5334
  name: "ads",
5616
5335
  description: `List ads in a Meta ad account. Defaults to ACTIVE only \u2014 pass --all-statuses to widen.
@@ -5658,8 +5377,8 @@ Examples:
5658
5377
  });
5659
5378
 
5660
5379
  // src/commands/ads/meta/adsets.ts
5661
- import { defineCommand as defineCommand52 } from "citty";
5662
- var adsetsCommand = defineCommand52({
5380
+ import { defineCommand as defineCommand45 } from "citty";
5381
+ var adsetsCommand = defineCommand45({
5663
5382
  meta: {
5664
5383
  name: "adsets",
5665
5384
  description: `List ad sets in a Meta ad account, optionally scoped to one campaign. Defaults to ACTIVE only.
@@ -5701,8 +5420,8 @@ Examples:
5701
5420
  });
5702
5421
 
5703
5422
  // src/commands/ads/meta/audiences.ts
5704
- import { defineCommand as defineCommand53 } from "citty";
5705
- var audiencesCommand = defineCommand53({
5423
+ import { defineCommand as defineCommand46 } from "citty";
5424
+ var audiencesCommand = defineCommand46({
5706
5425
  meta: {
5707
5426
  name: "audiences",
5708
5427
  description: `List custom audiences for a Meta ad account. Includes lookalikes, website-pixel audiences,
@@ -5737,8 +5456,8 @@ Examples:
5737
5456
  });
5738
5457
 
5739
5458
  // src/commands/ads/meta/businesses.ts
5740
- import { defineCommand as defineCommand54 } from "citty";
5741
- var businessesCommand = defineCommand54({
5459
+ import { defineCommand as defineCommand47 } from "citty";
5460
+ var businessesCommand = defineCommand47({
5742
5461
  meta: {
5743
5462
  name: "businesses",
5744
5463
  description: `List Meta Business Manager accounts the connected user has access to. Required for ad-studies and product-catalogs commands.
@@ -5768,8 +5487,8 @@ Examples:
5768
5487
  });
5769
5488
 
5770
5489
  // src/commands/ads/meta/campaigns.ts
5771
- import { defineCommand as defineCommand55 } from "citty";
5772
- var campaignsCommand2 = defineCommand55({
5490
+ import { defineCommand as defineCommand48 } from "citty";
5491
+ var campaignsCommand2 = defineCommand48({
5773
5492
  meta: {
5774
5493
  name: "campaigns",
5775
5494
  description: `List campaigns for a Meta ad account. Defaults to ACTIVE only \u2014 pass --all-statuses to widen.
@@ -5813,8 +5532,8 @@ Examples:
5813
5532
  });
5814
5533
 
5815
5534
  // src/commands/ads/meta/creatives.ts
5816
- import { defineCommand as defineCommand56 } from "citty";
5817
- var creativesCommand2 = defineCommand56({
5535
+ import { defineCommand as defineCommand49 } from "citty";
5536
+ var creativesCommand2 = defineCommand49({
5818
5537
  meta: {
5819
5538
  name: "creatives",
5820
5539
  description: `List ad creatives in an account, or fetch a single creative by ID.
@@ -5858,7 +5577,7 @@ Examples:
5858
5577
  });
5859
5578
 
5860
5579
  // src/commands/ads/meta/insights.ts
5861
- import { defineCommand as defineCommand57 } from "citty";
5580
+ import { defineCommand as defineCommand50 } from "citty";
5862
5581
 
5863
5582
  // src/commands/ads/meta/presets.ts
5864
5583
  var INSIGHTS_INTENTS = {
@@ -6063,7 +5782,7 @@ function sortRowsBySpendDesc(rows) {
6063
5782
  return sb - sa;
6064
5783
  });
6065
5784
  }
6066
- var insightsCommand = defineCommand57({
5785
+ var insightsCommand = defineCommand50({
6067
5786
  meta: {
6068
5787
  name: "insights",
6069
5788
  description: `Performance reporting \u2014 the main Meta tool for AI agents.
@@ -6164,8 +5883,8 @@ Async is automatic for heavy queries; pass --async to force it, or --no-async to
6164
5883
  });
6165
5884
 
6166
5885
  // src/commands/ads/meta/pixels.ts
6167
- import { defineCommand as defineCommand58 } from "citty";
6168
- var pixelsCommand = defineCommand58({
5886
+ import { defineCommand as defineCommand51 } from "citty";
5887
+ var pixelsCommand = defineCommand51({
6169
5888
  meta: {
6170
5889
  name: "pixels",
6171
5890
  description: `List Meta Pixels for an ad account, or fetch firing stats for one pixel.
@@ -6236,7 +5955,7 @@ function emit(data, args) {
6236
5955
 
6237
5956
  // src/commands/ads/meta/preview.ts
6238
5957
  import { writeFileSync as writeFileSync3 } from "fs";
6239
- import { defineCommand as defineCommand59 } from "citty";
5958
+ import { defineCommand as defineCommand52 } from "citty";
6240
5959
  var VALID_AD_FORMATS = [
6241
5960
  "DESKTOP_FEED_STANDARD",
6242
5961
  "MOBILE_FEED_STANDARD",
@@ -6270,7 +5989,7 @@ var VALID_AD_FORMATS = [
6270
5989
  "MARKETPLACE_MOBILE",
6271
5990
  "BIZ_DISCO_FEED_MOBILE"
6272
5991
  ];
6273
- var previewCommand = defineCommand59({
5992
+ var previewCommand = defineCommand52({
6274
5993
  meta: {
6275
5994
  name: "preview",
6276
5995
  description: `Generate a Meta-hosted preview iframe for a creative or ad. Returns iframe HTML which you
@@ -6317,7 +6036,7 @@ Examples:
6317
6036
  });
6318
6037
 
6319
6038
  // src/commands/ads/meta/index.ts
6320
- var metaCommand = defineCommand60({
6039
+ var metaCommand = defineCommand53({
6321
6040
  meta: {
6322
6041
  name: "meta",
6323
6042
  description: `Meta Marketing API \u2014 AI-first command surface (Facebook + Instagram ads).
@@ -6369,10 +6088,10 @@ Audit & review:
6369
6088
  });
6370
6089
 
6371
6090
  // src/commands/ads/x/index.ts
6372
- import { defineCommand as defineCommand77 } from "citty";
6091
+ import { defineCommand as defineCommand70 } from "citty";
6373
6092
 
6374
6093
  // src/commands/ads/x/accounts.ts
6375
- import { defineCommand as defineCommand61 } from "citty";
6094
+ import { defineCommand as defineCommand54 } from "citty";
6376
6095
  registerSchema({
6377
6096
  command: "ads.x.accounts",
6378
6097
  description: "List all accessible X Ads accounts. Returns accounts with id (base36), name, approval_status, timezone, currency. Run this first to find account IDs for other commands.",
@@ -6400,7 +6119,7 @@ function handleAccountsError2(err) {
6400
6119
  writeAdsJson({ ok: false, error: { code: "NETWORK_ERROR", message: "Unexpected error" } });
6401
6120
  process.exit(1);
6402
6121
  }
6403
- var accountsCommand4 = defineCommand61({
6122
+ var accountsCommand4 = defineCommand54({
6404
6123
  meta: {
6405
6124
  name: "accounts",
6406
6125
  description: `List accessible X Ads accounts. Returns account IDs needed for all other commands.
@@ -6440,7 +6159,7 @@ Examples:
6440
6159
  });
6441
6160
 
6442
6161
  // src/commands/ads/x/active-entities.ts
6443
- import { defineCommand as defineCommand62 } from "citty";
6162
+ import { defineCommand as defineCommand55 } from "citty";
6444
6163
 
6445
6164
  // src/commands/ads/x/error-parser.ts
6446
6165
  function mapXErrorCode(message) {
@@ -6591,7 +6310,7 @@ function parseCsv(v) {
6591
6310
  const parts = v.split(",").map((s) => s.trim()).filter(Boolean);
6592
6311
  return parts.length > 0 ? parts : void 0;
6593
6312
  }
6594
- var activeEntitiesCommand = defineCommand62({
6313
+ var activeEntitiesCommand = defineCommand55({
6595
6314
  meta: {
6596
6315
  name: "active-entities",
6597
6316
  description: `List entities with metric activity in a time range.
@@ -6649,7 +6368,7 @@ Examples:
6649
6368
  });
6650
6369
 
6651
6370
  // src/commands/ads/x/audiences.ts
6652
- import { defineCommand as defineCommand63 } from "citty";
6371
+ import { defineCommand as defineCommand56 } from "citty";
6653
6372
  registerSchema({
6654
6373
  command: "ads.x.audiences",
6655
6374
  description: "List custom audiences for an X Ads account. Returns id, name, audience_size, audience_type, targetable status. Audiences need 100+ active users in the past 90 days to be targetable.",
@@ -6658,7 +6377,7 @@ registerSchema({
6658
6377
  "no-cache": { type: "boolean", description: "Skip cache", required: false }
6659
6378
  }
6660
6379
  });
6661
- var audiencesCommand2 = defineCommand63({
6380
+ var audiencesCommand2 = defineCommand56({
6662
6381
  meta: {
6663
6382
  name: "audiences",
6664
6383
  description: `List X Ads custom audiences.
@@ -6707,7 +6426,7 @@ Examples:
6707
6426
  });
6708
6427
 
6709
6428
  // src/commands/ads/x/campaigns.ts
6710
- import { defineCommand as defineCommand64 } from "citty";
6429
+ import { defineCommand as defineCommand57 } from "citty";
6711
6430
 
6712
6431
  // src/commands/ads/x/run-list.ts
6713
6432
  function buildCleanParams(opts) {
@@ -6770,7 +6489,7 @@ registerSchema({
6770
6489
  "no-cache": { type: "boolean", description: "Skip cache", required: false }
6771
6490
  }
6772
6491
  });
6773
- var campaignsCommand3 = defineCommand64({
6492
+ var campaignsCommand3 = defineCommand57({
6774
6493
  meta: {
6775
6494
  name: "campaigns",
6776
6495
  description: `List X Ads campaigns. Returns budget, schedule, funding instrument, status.
@@ -6812,7 +6531,7 @@ Examples:
6812
6531
  });
6813
6532
 
6814
6533
  // src/commands/ads/x/cards.ts
6815
- import { defineCommand as defineCommand65 } from "citty";
6534
+ import { defineCommand as defineCommand58 } from "citty";
6816
6535
  registerSchema({
6817
6536
  command: "ads.x.cards",
6818
6537
  description: "List website cards, video cards, and carousels for an X Ads account.",
@@ -6821,7 +6540,7 @@ registerSchema({
6821
6540
  "no-cache": { type: "boolean", description: "Skip cache", required: false }
6822
6541
  }
6823
6542
  });
6824
- var cardsCommand = defineCommand65({
6543
+ var cardsCommand = defineCommand58({
6825
6544
  meta: {
6826
6545
  name: "cards",
6827
6546
  description: `List X Ads cards (rich creatives).
@@ -6870,7 +6589,7 @@ Examples:
6870
6589
  });
6871
6590
 
6872
6591
  // src/commands/ads/x/funding.ts
6873
- import { defineCommand as defineCommand66 } from "citty";
6592
+ import { defineCommand as defineCommand59 } from "citty";
6874
6593
  registerSchema({
6875
6594
  command: "ads.x.funding",
6876
6595
  description: "List funding instruments for an X Ads account. Returns id, type, currency, credit_limit_local_micro, funded_amount_local_micro, status. Falls back to BAKER_X_ADS_ACCOUNT_ID env var.",
@@ -6879,7 +6598,7 @@ registerSchema({
6879
6598
  "no-cache": { type: "boolean", description: "Skip cache", required: false }
6880
6599
  }
6881
6600
  });
6882
- var fundingCommand = defineCommand66({
6601
+ var fundingCommand = defineCommand59({
6883
6602
  meta: {
6884
6603
  name: "funding",
6885
6604
  description: `List funding instruments for an X Ads account.
@@ -6928,7 +6647,7 @@ Examples:
6928
6647
  });
6929
6648
 
6930
6649
  // src/commands/ads/x/line-items.ts
6931
- import { defineCommand as defineCommand67 } from "citty";
6650
+ import { defineCommand as defineCommand60 } from "citty";
6932
6651
  registerSchema({
6933
6652
  command: "ads.x.lineItems",
6934
6653
  description: "List line items (ad groups) for an X Ads account. Returns bid, product_type, objective, placements, schedule. Filter by campaign-ids or line-item-ids (CSV).",
@@ -6940,7 +6659,7 @@ registerSchema({
6940
6659
  "no-cache": { type: "boolean", description: "Skip cache", required: false }
6941
6660
  }
6942
6661
  });
6943
- var lineItemsCommand = defineCommand67({
6662
+ var lineItemsCommand = defineCommand60({
6944
6663
  meta: {
6945
6664
  name: "line-items",
6946
6665
  description: `List X Ads line items (ad groups).
@@ -6981,7 +6700,7 @@ Examples:
6981
6700
  });
6982
6701
 
6983
6702
  // src/commands/ads/x/media.ts
6984
- import { defineCommand as defineCommand68 } from "citty";
6703
+ import { defineCommand as defineCommand61 } from "citty";
6985
6704
  registerSchema({
6986
6705
  command: "ads.x.media",
6987
6706
  description: "List media assets in the X Ads media library (images, GIFs, videos). Filter by media-type (IMAGE, GIF, VIDEO).",
@@ -6991,7 +6710,7 @@ registerSchema({
6991
6710
  "no-cache": { type: "boolean", description: "Skip cache", required: false }
6992
6711
  }
6993
6712
  });
6994
- var mediaCommand = defineCommand68({
6713
+ var mediaCommand = defineCommand61({
6995
6714
  meta: {
6996
6715
  name: "media",
6997
6716
  description: `List media assets in the X Ads media library.
@@ -7043,7 +6762,7 @@ Examples:
7043
6762
  });
7044
6763
 
7045
6764
  // src/commands/ads/x/promoted-tweets.ts
7046
- import { defineCommand as defineCommand69 } from "citty";
6765
+ import { defineCommand as defineCommand62 } from "citty";
7047
6766
  registerSchema({
7048
6767
  command: "ads.x.promotedTweets",
7049
6768
  description: "List promoted tweets for an X Ads account. Returns id, line_item_id, tweet_id, approval_status. Filter by line-item-ids (CSV).",
@@ -7054,7 +6773,7 @@ registerSchema({
7054
6773
  "no-cache": { type: "boolean", description: "Skip cache", required: false }
7055
6774
  }
7056
6775
  });
7057
- var promotedTweetsCommand = defineCommand69({
6776
+ var promotedTweetsCommand = defineCommand62({
7058
6777
  meta: {
7059
6778
  name: "promoted-tweets",
7060
6779
  description: `List X Ads promoted tweets.
@@ -7108,11 +6827,11 @@ Examples:
7108
6827
  });
7109
6828
 
7110
6829
  // src/commands/ads/x/stats/index.ts
7111
- import { defineCommand as defineCommand74 } from "citty";
6830
+ import { defineCommand as defineCommand67 } from "citty";
7112
6831
 
7113
6832
  // src/commands/ads/x/stats/job.ts
7114
6833
  import { gunzipSync } from "zlib";
7115
- import { defineCommand as defineCommand70 } from "citty";
6834
+ import { defineCommand as defineCommand63 } from "citty";
7116
6835
  var POLL_INTERVAL_MS2 = 1e4;
7117
6836
  var DEADLINE_MS = 12 * 60 * 1e3;
7118
6837
  var RESULT_CACHE_TTL_MS = 6 * 60 * 60 * 1e3;
@@ -7182,7 +6901,7 @@ async function pollUntilDone(accountId, jobId) {
7182
6901
  function buildCacheKey(body) {
7183
6902
  return `stats-job:${JSON.stringify(body)}`;
7184
6903
  }
7185
- var statsJobCommand = defineCommand70({
6904
+ var statsJobCommand = defineCommand63({
7186
6905
  meta: {
7187
6906
  name: "job",
7188
6907
  description: `Async X Ads stats job, sync from the CLI's perspective. Creates \u2192 polls \u2192 downloads \u2192 returns.
@@ -7287,7 +7006,7 @@ For fine-grained control (don't wait, poll yourself), use:
7287
7006
  });
7288
7007
 
7289
7008
  // src/commands/ads/x/stats/job-create.ts
7290
- import { defineCommand as defineCommand71 } from "citty";
7009
+ import { defineCommand as defineCommand64 } from "citty";
7291
7010
  registerSchema({
7292
7011
  command: "ads.x.statsJobCreate",
7293
7012
  description: "Create an asynchronous X Ads stats job (range up to 90 days non-segmented, 45 days segmented). Returns a job id; poll with `stats job-status`. Times must be ISO 8601 hour-aligned.",
@@ -7310,7 +7029,7 @@ function parseCsv3(v) {
7310
7029
  const parts = v.split(",").map((s) => s.trim()).filter(Boolean);
7311
7030
  return parts.length > 0 ? parts : void 0;
7312
7031
  }
7313
- var statsJobCreateCommand = defineCommand71({
7032
+ var statsJobCreateCommand = defineCommand64({
7314
7033
  meta: {
7315
7034
  name: "job-create",
7316
7035
  description: `Create an async X Ads stats job (up to 90 days, supports segmentation).
@@ -7373,7 +7092,7 @@ Examples:
7373
7092
  });
7374
7093
 
7375
7094
  // src/commands/ads/x/stats/job-status.ts
7376
- import { defineCommand as defineCommand72 } from "citty";
7095
+ import { defineCommand as defineCommand65 } from "citty";
7377
7096
  registerSchema({
7378
7097
  command: "ads.x.statsJobStatus",
7379
7098
  description: "Check the status of one or more X Ads stats jobs. Returns status (PROCESSING|SUCCESS|FAILED) and a downloadable url when SUCCESS. Pass --job-id or --job-ids (CSV).",
@@ -7383,7 +7102,7 @@ registerSchema({
7383
7102
  "job-ids": { type: "string", description: "CSV of job IDs", required: false }
7384
7103
  }
7385
7104
  });
7386
- var statsJobStatusCommand = defineCommand72({
7105
+ var statsJobStatusCommand = defineCommand65({
7387
7106
  meta: {
7388
7107
  name: "job-status",
7389
7108
  description: `Poll the status of an async X Ads stats job.
@@ -7424,7 +7143,7 @@ Examples:
7424
7143
  });
7425
7144
 
7426
7145
  // src/commands/ads/x/stats/sync.ts
7427
- import { defineCommand as defineCommand73 } from "citty";
7146
+ import { defineCommand as defineCommand66 } from "citty";
7428
7147
 
7429
7148
  // src/commands/ads/x/presets.ts
7430
7149
  var X_STATS_PRESETS = [
@@ -7583,7 +7302,7 @@ async function runSync(args, q) {
7583
7302
  process.exit(1);
7584
7303
  }
7585
7304
  }
7586
- var statsSyncCommand = defineCommand73({
7305
+ var statsSyncCommand = defineCommand66({
7587
7306
  meta: {
7588
7307
  name: "sync",
7589
7308
  description: `Synchronous X Ads analytics (max 7-day window).
@@ -7626,7 +7345,7 @@ Examples:
7626
7345
  });
7627
7346
 
7628
7347
  // src/commands/ads/x/stats/index.ts
7629
- var statsCommand = defineCommand74({
7348
+ var statsCommand = defineCommand67({
7630
7349
  meta: {
7631
7350
  name: "stats",
7632
7351
  description: `X Ads analytics. Sync (\u22647 days, no segmentation) or async jobs (\u226490 days, segmentable).
@@ -7654,7 +7373,7 @@ Examples:
7654
7373
  });
7655
7374
 
7656
7375
  // src/commands/ads/x/targeting-constants.ts
7657
- import { defineCommand as defineCommand75 } from "citty";
7376
+ import { defineCommand as defineCommand68 } from "citty";
7658
7377
  var ALLOWED_CONSTANTS = [
7659
7378
  "locations",
7660
7379
  "interests",
@@ -7682,7 +7401,7 @@ registerSchema({
7682
7401
  "no-cache": { type: "boolean", description: "Skip cache", required: false }
7683
7402
  }
7684
7403
  });
7685
- var targetingConstantsCommand = defineCommand75({
7404
+ var targetingConstantsCommand = defineCommand68({
7686
7405
  meta: {
7687
7406
  name: "targeting-constants",
7688
7407
  description: `Lookup X Ads targeting constants.
@@ -7732,7 +7451,7 @@ Examples:
7732
7451
  });
7733
7452
 
7734
7453
  // src/commands/ads/x/targeting-criteria.ts
7735
- import { defineCommand as defineCommand76 } from "citty";
7454
+ import { defineCommand as defineCommand69 } from "citty";
7736
7455
  registerSchema({
7737
7456
  command: "ads.x.targetingCriteria",
7738
7457
  description: "List targeting criteria attached to line items in an X Ads account. Returns targeting_type, targeting_value, name, operator_type per criterion. Filter by line-item-ids.",
@@ -7742,7 +7461,7 @@ registerSchema({
7742
7461
  "no-cache": { type: "boolean", description: "Skip cache", required: false }
7743
7462
  }
7744
7463
  });
7745
- var targetingCriteriaCommand = defineCommand76({
7464
+ var targetingCriteriaCommand = defineCommand69({
7746
7465
  meta: {
7747
7466
  name: "targeting-criteria",
7748
7467
  description: `List targeting criteria attached to line items.
@@ -7793,7 +7512,7 @@ Examples:
7793
7512
  });
7794
7513
 
7795
7514
  // src/commands/ads/x/index.ts
7796
- var xCommand = defineCommand77({
7515
+ var xCommand = defineCommand70({
7797
7516
  meta: {
7798
7517
  name: "x",
7799
7518
  description: `X (Twitter) Ads commands. Read campaigns, line items, promoted tweets, creatives, audiences, and analytics.
@@ -7831,7 +7550,7 @@ The CLI auto-detects --account-id when exactly one X Ads account is connected, o
7831
7550
  });
7832
7551
 
7833
7552
  // src/commands/ads/index.ts
7834
- var adsCommand = defineCommand78({
7553
+ var adsCommand = defineCommand71({
7835
7554
  meta: {
7836
7555
  name: "ads",
7837
7556
  description: `Ad platform commands. Each platform exposes its own native command surface \u2014 no forced parity.
@@ -7861,11 +7580,11 @@ Examples:
7861
7580
  });
7862
7581
 
7863
7582
  // src/commands/canvas/index.ts
7864
- import { defineCommand as defineCommand85 } from "citty";
7583
+ import { defineCommand as defineCommand78 } from "citty";
7865
7584
 
7866
7585
  // src/commands/canvas/catalog.ts
7867
- import { defineCommand as defineCommand79 } from "citty";
7868
- var catalogCommand = defineCommand79({
7586
+ import { defineCommand as defineCommand72 } from "citty";
7587
+ var catalogCommand = defineCommand72({
7869
7588
  meta: {
7870
7589
  name: "catalog",
7871
7590
  description: "Print the agent-facing node catalog (JSON Schema). Includes every registered node grouped by category."
@@ -7882,9 +7601,9 @@ import { execFile } from "child_process";
7882
7601
  import { readdir, readFile, stat } from "fs/promises";
7883
7602
  import path from "path";
7884
7603
  import { promisify } from "util";
7885
- import { defineCommand as defineCommand80 } from "citty";
7604
+ import { defineCommand as defineCommand73 } from "citty";
7886
7605
  var execFileAsync = promisify(execFile);
7887
- var inspectCommand = defineCommand80({
7606
+ var inspectCommand = defineCommand73({
7888
7607
  meta: {
7889
7608
  name: "inspect",
7890
7609
  description: "Dump a one-page summary of a canvas run: per-node duration + cache status, list of output files in the run dir, and optionally three thumbnail frames per video output. Pass either a run_id (resolved against --outputs-dir) or an absolute run directory."
@@ -7993,8 +7712,8 @@ async function probeDuration(filePath) {
7993
7712
  // src/commands/canvas/run.ts
7994
7713
  import { readFile as readFile2 } from "fs/promises";
7995
7714
  import path2 from "path";
7996
- import { defineCommand as defineCommand81 } from "citty";
7997
- var runCommand = defineCommand81({
7715
+ import { defineCommand as defineCommand74 } from "citty";
7716
+ var runCommand = defineCommand74({
7998
7717
  meta: { name: "run", description: "Validate and execute a canvas JSON file." },
7999
7718
  args: {
8000
7719
  file: { type: "positional", required: true, description: "Path to canvas JSON" },
@@ -8060,7 +7779,7 @@ var runCommand = defineCommand81({
8060
7779
  // src/commands/canvas/scaffold-static-ad.ts
8061
7780
  import { readFile as readFile3, writeFile } from "fs/promises";
8062
7781
  import path3 from "path";
8063
- import { defineCommand as defineCommand82 } from "citty";
7782
+ import { defineCommand as defineCommand75 } from "citty";
8064
7783
 
8065
7784
  // src/engine/scaffold/staticAd.ts
8066
7785
  import { z as z2 } from "zod";
@@ -8379,7 +8098,7 @@ async function runVisionPasses(canvas) {
8379
8098
  return fail("read_outputs", e instanceof Error ? e.message : String(e));
8380
8099
  }
8381
8100
  }
8382
- var scaffoldStaticAdCommand = defineCommand82({
8101
+ var scaffoldStaticAdCommand = defineCommand75({
8383
8102
  meta: {
8384
8103
  name: "scaffold-static-ad",
8385
8104
  description: "Turn a source/inspiration image into a runnable static-ad canvas. Runs billed passes \u2014 image_describe (the blueprint, baked to prompt.json as the editable 'prompt'), an AI selection of the image's MAIN identity elements, and a structured global-layout pass (the column/row grid with per-region bounds and text sizes) \u2014 then scaffolds a canvas that wires one [TODO] ingest slot per element (logo/product/subject/badge + brand font) into image_generate. Edit prompt.json and drop the real assets, then `baker canvas run` it."
@@ -8473,7 +8192,7 @@ var scaffoldStaticAdCommand = defineCommand82({
8473
8192
  // src/commands/canvas/scaffold-video.ts
8474
8193
  import { cp, mkdir, readFile as readFile4, writeFile as writeFile2 } from "fs/promises";
8475
8194
  import path4 from "path";
8476
- import { defineCommand as defineCommand83 } from "citty";
8195
+ import { defineCommand as defineCommand76 } from "citty";
8477
8196
 
8478
8197
  // src/engine/scaffold/video.ts
8479
8198
  import { z as z3 } from "zod";
@@ -9153,7 +8872,7 @@ async function runAnalysisPasses(canvas) {
9153
8872
  return fail2("read_outputs", e instanceof Error ? e.message : String(e));
9154
8873
  }
9155
8874
  }
9156
- var scaffoldVideoCommand = defineCommand83({
8875
+ var scaffoldVideoCommand = defineCommand76({
9157
8876
  meta: {
9158
8877
  name: "scaffold-video",
9159
8878
  description: "Turn a reference video into a runnable reproduction canvas in one command. Runs billed passes \u2014 video_deconstruct (the full scene-by-scene blueprint + transcript, baked to prompt.json as the editable 'prompt') and an AI selection of the video's RECURRING identity elements (person/animal/product/logo) \u2014 then scaffolds a pipeline where every scene boundary is a static-ad-grade frame (the blueprint as target_blueprint, a reference legend, the real frame as anchor) and each recurring element gets ONE shared [TODO] ingest slot wired into every frame it appears in. The clips feed Seedance an ultra-detailed motion brief (action, camera, dialogue, transcript). Edit prompt.json, drop the real source images, then `baker canvas run`."
@@ -9259,8 +8978,8 @@ var scaffoldVideoCommand = defineCommand83({
9259
8978
  // src/commands/canvas/validate.ts
9260
8979
  import { readFile as readFile5 } from "fs/promises";
9261
8980
  import path5 from "path";
9262
- import { defineCommand as defineCommand84 } from "citty";
9263
- var validateCommand = defineCommand84({
8981
+ import { defineCommand as defineCommand77 } from "citty";
8982
+ var validateCommand = defineCommand77({
9264
8983
  meta: {
9265
8984
  name: "validate",
9266
8985
  description: "Validate a canvas JSON file (no execution). Includes a per-node cost preview and runs each node's deep validators (composition meta checks for hyperframe_render/_snapshot)."
@@ -9302,7 +9021,7 @@ var validateCommand = defineCommand84({
9302
9021
  });
9303
9022
 
9304
9023
  // src/commands/canvas/index.ts
9305
- var canvasCommand = defineCommand85({
9024
+ var canvasCommand = defineCommand78({
9306
9025
  meta: {
9307
9026
  name: "canvas",
9308
9027
  description: `Run Baker creative canvas JSON files locally. Local nodes execute in-process; remote nodes POST to the Convex backend gateway.
@@ -9328,10 +9047,10 @@ Subcommands:
9328
9047
  });
9329
9048
 
9330
9049
  // src/commands/ga4/index.ts
9331
- import { defineCommand as defineCommand89 } from "citty";
9050
+ import { defineCommand as defineCommand82 } from "citty";
9332
9051
 
9333
9052
  // src/commands/ga4/audit.ts
9334
- import { defineCommand as defineCommand86 } from "citty";
9053
+ import { defineCommand as defineCommand79 } from "citty";
9335
9054
 
9336
9055
  // src/commands/ga4/resolve.ts
9337
9056
  async function fetchProperties(useCache = true) {
@@ -9394,7 +9113,7 @@ registerSchema({
9394
9113
  "no-cache": { type: "boolean", description: "Skip cache, hit API directly", required: false }
9395
9114
  }
9396
9115
  });
9397
- var auditCommand2 = defineCommand86({
9116
+ var auditCommand2 = defineCommand79({
9398
9117
  meta: {
9399
9118
  name: "audit",
9400
9119
  description: `Run all GA4 admin health checks. Returns property config with playbook warnings.
@@ -9446,7 +9165,7 @@ Examples:
9446
9165
  });
9447
9166
 
9448
9167
  // src/commands/ga4/properties.ts
9449
- import { defineCommand as defineCommand87 } from "citty";
9168
+ import { defineCommand as defineCommand80 } from "citty";
9450
9169
  registerSchema({
9451
9170
  command: "ga4.properties",
9452
9171
  description: "List all accessible GA4 properties. Returns property IDs needed for query and audit commands. Run this first to find property IDs.",
@@ -9454,7 +9173,7 @@ registerSchema({
9454
9173
  "no-cache": { type: "boolean", description: "Skip cache, hit API directly", required: false }
9455
9174
  }
9456
9175
  });
9457
- var propertiesCommand = defineCommand87({
9176
+ var propertiesCommand = defineCommand80({
9458
9177
  meta: {
9459
9178
  name: "properties",
9460
9179
  description: `List accessible GA4 properties.
@@ -9504,7 +9223,7 @@ Examples:
9504
9223
  // src/commands/ga4/query.ts
9505
9224
  import { appendFileSync as appendFileSync2, existsSync as existsSync3, readFileSync as readFileSync6, writeFileSync as writeFileSync4 } from "fs";
9506
9225
  import { resolve as resolve2 } from "path";
9507
- import { defineCommand as defineCommand88 } from "citty";
9226
+ import { defineCommand as defineCommand81 } from "citty";
9508
9227
 
9509
9228
  // src/commands/ga4/presets.ts
9510
9229
  var GA4_PRESETS = [
@@ -9636,7 +9355,7 @@ function handleError(err) {
9636
9355
  });
9637
9356
  process.exit(1);
9638
9357
  }
9639
- var queryCommand2 = defineCommand88({
9358
+ var queryCommand2 = defineCommand81({
9640
9359
  meta: {
9641
9360
  name: "query",
9642
9361
  description: `Run GA4 Data API reports. Preset-first with free-form escape hatch.
@@ -9707,7 +9426,7 @@ Free-form (escape hatch):
9707
9426
  });
9708
9427
 
9709
9428
  // src/commands/ga4/index.ts
9710
- var ga4Command = defineCommand89({
9429
+ var ga4Command = defineCommand82({
9711
9430
  meta: {
9712
9431
  name: "ga4",
9713
9432
  description: `Google Analytics 4 commands. Audit property config, run playbook-aligned reports.
@@ -9730,12 +9449,12 @@ Examples:
9730
9449
  });
9731
9450
 
9732
9451
  // src/commands/gsc/index.ts
9733
- import { defineCommand as defineCommand93 } from "citty";
9452
+ import { defineCommand as defineCommand86 } from "citty";
9734
9453
 
9735
9454
  // src/commands/gsc/query.ts
9736
9455
  import { appendFileSync as appendFileSync3, existsSync as existsSync4, readFileSync as readFileSync7, writeFileSync as writeFileSync5 } from "fs";
9737
9456
  import { resolve as resolve3 } from "path";
9738
- import { defineCommand as defineCommand90 } from "citty";
9457
+ import { defineCommand as defineCommand83 } from "citty";
9739
9458
 
9740
9459
  // src/commands/gsc/presets.ts
9741
9460
  var GSC_PRESETS = [
@@ -9923,7 +9642,7 @@ function handleError2(err) {
9923
9642
  });
9924
9643
  process.exit(1);
9925
9644
  }
9926
- var queryCommand3 = defineCommand90({
9645
+ var queryCommand3 = defineCommand83({
9927
9646
  meta: {
9928
9647
  name: "query",
9929
9648
  description: `Run GSC Search Analytics queries. Preset-first with free-form escape hatch.
@@ -10001,7 +9720,7 @@ Free-form (escape hatch):
10001
9720
  });
10002
9721
 
10003
9722
  // src/commands/gsc/sitemaps.ts
10004
- import { defineCommand as defineCommand91 } from "citty";
9723
+ import { defineCommand as defineCommand84 } from "citty";
10005
9724
  registerSchema({
10006
9725
  command: "gsc.sitemaps",
10007
9726
  description: "List sitemaps for a Search Console site. Check sitemap health and errors.",
@@ -10010,7 +9729,7 @@ registerSchema({
10010
9729
  "no-cache": { type: "boolean", description: "Skip cache, hit API directly", required: false }
10011
9730
  }
10012
9731
  });
10013
- var sitemapsCommand = defineCommand91({
9732
+ var sitemapsCommand = defineCommand84({
10014
9733
  meta: {
10015
9734
  name: "sitemaps",
10016
9735
  description: `List sitemaps for a site. Check health and errors.
@@ -10060,7 +9779,7 @@ Examples:
10060
9779
  });
10061
9780
 
10062
9781
  // src/commands/gsc/sites.ts
10063
- import { defineCommand as defineCommand92 } from "citty";
9782
+ import { defineCommand as defineCommand85 } from "citty";
10064
9783
  registerSchema({
10065
9784
  command: "gsc.sites",
10066
9785
  description: "List all verified Google Search Console sites. Returns site URLs needed for query and sitemaps commands.",
@@ -10068,7 +9787,7 @@ registerSchema({
10068
9787
  "no-cache": { type: "boolean", description: "Skip cache, hit API directly", required: false }
10069
9788
  }
10070
9789
  });
10071
- var sitesCommand = defineCommand92({
9790
+ var sitesCommand = defineCommand85({
10072
9791
  meta: {
10073
9792
  name: "sites",
10074
9793
  description: `List verified Search Console sites.
@@ -10116,7 +9835,7 @@ Examples:
10116
9835
  });
10117
9836
 
10118
9837
  // src/commands/gsc/index.ts
10119
- var gscCommand = defineCommand93({
9838
+ var gscCommand = defineCommand86({
10120
9839
  meta: {
10121
9840
  name: "gsc",
10122
9841
  description: `Google Search Console commands. PPC-SEO arbitrage, brand halo analysis, negative keyword discovery.
@@ -10139,10 +9858,10 @@ Examples:
10139
9858
  });
10140
9859
 
10141
9860
  // src/commands/images/index.ts
10142
- import { defineCommand as defineCommand114 } from "citty";
9861
+ import { defineCommand as defineCommand107 } from "citty";
10143
9862
 
10144
9863
  // src/commands/images/crop.ts
10145
- import { defineCommand as defineCommand94 } from "citty";
9864
+ import { defineCommand as defineCommand87 } from "citty";
10146
9865
 
10147
9866
  // src/lib/image/crop-sprite.ts
10148
9867
  import sharp from "sharp";
@@ -10267,7 +9986,7 @@ function emitError2(err) {
10267
9986
  }
10268
9987
  process.exit(1);
10269
9988
  }
10270
- var cropCommand = defineCommand94({
9989
+ var cropCommand = defineCommand87({
10271
9990
  meta: {
10272
9991
  name: "crop",
10273
9992
  description: "Crop a rectangular region from an image.\n\nExample: baker images crop sprite.png --x 0 --y 0 --width 64 --height 64 --output icon.png"
@@ -10303,7 +10022,7 @@ var cropCommand = defineCommand94({
10303
10022
  });
10304
10023
 
10305
10024
  // src/commands/images/delete.ts
10306
- import { defineCommand as defineCommand95 } from "citty";
10025
+ import { defineCommand as defineCommand88 } from "citty";
10307
10026
  registerSchema({
10308
10027
  command: "images.delete",
10309
10028
  description: "Delete an image by ID",
@@ -10317,7 +10036,7 @@ registerSchema({
10317
10036
  }
10318
10037
  }
10319
10038
  });
10320
- var deleteCommand2 = defineCommand95({
10039
+ var deleteCommand = defineCommand88({
10321
10040
  meta: {
10322
10041
  name: "delete",
10323
10042
  description: "Delete an image by ID. Use --dry-run to preview. Example: baker images delete j571abc123 --dry-run"
@@ -10358,7 +10077,7 @@ var deleteCommand2 = defineCommand95({
10358
10077
  });
10359
10078
 
10360
10079
  // src/commands/images/dimensions.ts
10361
- import { defineCommand as defineCommand96 } from "citty";
10080
+ import { defineCommand as defineCommand89 } from "citty";
10362
10081
 
10363
10082
  // src/lib/image/dimensions.ts
10364
10083
  import { imageSize } from "image-size";
@@ -10381,7 +10100,7 @@ registerSchema({
10381
10100
  target: { type: "string", description: "Local file path or remote http(s) URL", required: true }
10382
10101
  }
10383
10102
  });
10384
- var dimensionsCommand = defineCommand96({
10103
+ var dimensionsCommand = defineCommand89({
10385
10104
  meta: {
10386
10105
  name: "dimensions",
10387
10106
  description: "Read image dimensions without decoding the full file.\n\nExample: baker images dimensions ./logo.png\nExample: baker images dimensions https://acme.com/hero.png"
@@ -10425,7 +10144,7 @@ var dimensionsCommand = defineCommand96({
10425
10144
  });
10426
10145
 
10427
10146
  // src/commands/images/extract.ts
10428
- import { defineCommand as defineCommand97 } from "citty";
10147
+ import { defineCommand as defineCommand90 } from "citty";
10429
10148
  registerSchema({
10430
10149
  command: "images.extract",
10431
10150
  description: "Extract images from a URL via Firecrawl (formats: images).",
@@ -10441,7 +10160,7 @@ registerSchema({
10441
10160
  }
10442
10161
  }
10443
10162
  });
10444
- var extractCommand = defineCommand97({
10163
+ var extractCommand = defineCommand90({
10445
10164
  meta: {
10446
10165
  name: "extract",
10447
10166
  description: "Pull every image from a single URL via Firecrawl. ~$0.001/scrape. Cap auto-ingest at 20.\n\nExample: baker images extract https://stripe.com --auto-ingest 5"
@@ -10479,7 +10198,7 @@ var extractCommand = defineCommand97({
10479
10198
  });
10480
10199
 
10481
10200
  // src/commands/images/find.ts
10482
- import { defineCommand as defineCommand98 } from "citty";
10201
+ import { defineCommand as defineCommand91 } from "citty";
10483
10202
  registerSchema({
10484
10203
  command: "images.find",
10485
10204
  description: "Fanout image search: library first, then opted-in external providers.",
@@ -10511,7 +10230,7 @@ registerSchema({
10511
10230
  }
10512
10231
  }
10513
10232
  });
10514
- var findCommand = defineCommand98({
10233
+ var findCommand = defineCommand91({
10515
10234
  meta: {
10516
10235
  name: "find",
10517
10236
  description: "Library-first fanout image search. Opt in to providers with --sources. `--fallback` short-circuits to externals only when library is thin. With --auto-ingest, ingested external hits return Baker-owned URLs.\n\nExample: baker images find 'office' --sources library,magnific --limit 20"
@@ -10557,7 +10276,7 @@ var findCommand = defineCommand98({
10557
10276
  });
10558
10277
 
10559
10278
  // src/commands/images/get.ts
10560
- import { defineCommand as defineCommand99 } from "citty";
10279
+ import { defineCommand as defineCommand92 } from "citty";
10561
10280
  registerSchema({
10562
10281
  command: "images.get",
10563
10282
  description: "Get a single image by ID",
@@ -10565,7 +10284,7 @@ registerSchema({
10565
10284
  id: { type: "string", description: "Image ID", required: true }
10566
10285
  }
10567
10286
  });
10568
- var getCommand2 = defineCommand99({
10287
+ var getCommand2 = defineCommand92({
10569
10288
  meta: { name: "get", description: "Get a single image by ID. Example: baker images get j571abc123" },
10570
10289
  args: {
10571
10290
  id: { type: "positional", description: "Image ID", required: false },
@@ -10601,7 +10320,7 @@ var getCommand2 = defineCommand99({
10601
10320
  });
10602
10321
 
10603
10322
  // src/commands/images/gif.ts
10604
- import { defineCommand as defineCommand100 } from "citty";
10323
+ import { defineCommand as defineCommand93 } from "citty";
10605
10324
  registerSchema({
10606
10325
  command: "images.gif",
10607
10326
  description: "Search Giphy for GIFs / reaction memes (paid social creative).",
@@ -10633,7 +10352,7 @@ registerSchema({
10633
10352
  }
10634
10353
  }
10635
10354
  });
10636
- var gifCommand = defineCommand100({
10355
+ var gifCommand = defineCommand93({
10637
10356
  meta: {
10638
10357
  name: "gif",
10639
10358
  description: "Search Giphy for GIFs / reaction memes \u2014 built for paid-social creative (Meta, TikTok, LinkedIn, X). Free API. Each hit carries WebP + GIF + MP4 URLs in providerMeta so you can pick the right format per platform.\n\nExample: baker images gif 'this is fine' --limit 10\nExample: baker images gif 'office reaction' --rating pg --auto-ingest 2\nExample: baker images gif --trending --limit 25"
@@ -10680,7 +10399,7 @@ var gifCommand = defineCommand100({
10680
10399
  });
10681
10400
 
10682
10401
  // src/commands/images/google.ts
10683
- import { defineCommand as defineCommand101 } from "citty";
10402
+ import { defineCommand as defineCommand94 } from "citty";
10684
10403
  registerSchema({
10685
10404
  command: "images.google",
10686
10405
  description: "Google Images search via the official Custom Search JSON API. Unverified source \u2014 inspect before placing.",
@@ -10716,7 +10435,7 @@ registerSchema({
10716
10435
  }
10717
10436
  }
10718
10437
  });
10719
- var googleCommand2 = defineCommand101({
10438
+ var googleCommand2 = defineCommand94({
10720
10439
  meta: {
10721
10440
  name: "google",
10722
10441
  description: "Google Images via the official Custom Search JSON API ($0.005/query, free 100/day). \u26A0 Source unverified \u2014 watermarks, low-res, mislabeled results are common. Use as last resort. With --auto-ingest, ingested hits return Baker-owned URLs.\n\nExample: baker images google 'industrial workshop' --type photo --size large --limit 20"
@@ -10764,7 +10483,7 @@ var googleCommand2 = defineCommand101({
10764
10483
  });
10765
10484
 
10766
10485
  // src/commands/images/icon.ts
10767
- import { defineCommand as defineCommand102 } from "citty";
10486
+ import { defineCommand as defineCommand95 } from "citty";
10768
10487
  registerSchema({
10769
10488
  command: "images.icon",
10770
10489
  description: "Icon lookup via Iconify (200+ icon sets, free CDN).",
@@ -10790,7 +10509,7 @@ registerSchema({
10790
10509
  }
10791
10510
  }
10792
10511
  });
10793
- var iconCommand = defineCommand102({
10512
+ var iconCommand = defineCommand95({
10794
10513
  meta: {
10795
10514
  name: "icon",
10796
10515
  description: "Icon via Iconify (simple-icons, logos, lucide, devicon, heroicons, tabler, phosphor, material-symbols, \u2026). Free CDN, no API key.\n\nExample: baker images icon react --set devicon\nExample: baker images icon lucide:check --color '#0a0a0a'"
@@ -10830,7 +10549,7 @@ var iconCommand = defineCommand102({
10830
10549
  });
10831
10550
 
10832
10551
  // src/commands/images/ingest.ts
10833
- import { defineCommand as defineCommand103 } from "citty";
10552
+ import { defineCommand as defineCommand96 } from "citty";
10834
10553
  registerSchema({
10835
10554
  command: "images.ingest",
10836
10555
  description: "Ingest a remote image URL into the library (full describe + embed).",
@@ -10842,7 +10561,7 @@ registerSchema({
10842
10561
  context: { type: "string", description: "Description context hint", required: false }
10843
10562
  }
10844
10563
  });
10845
- var ingestCommand = defineCommand103({
10564
+ var ingestCommand = defineCommand96({
10846
10565
  meta: {
10847
10566
  name: "ingest",
10848
10567
  description: "Download a remote URL and store it in the library. Hash-deduped on bytes + externalId.\n\nExample: baker images ingest https://img.freepik.com/free-photo/xyz.jpg --source magnific --external-id 12345"
@@ -10884,7 +10603,7 @@ var ingestCommand = defineCommand103({
10884
10603
  });
10885
10604
 
10886
10605
  // src/commands/images/library.ts
10887
- import { defineCommand as defineCommand104 } from "citty";
10606
+ import { defineCommand as defineCommand97 } from "citty";
10888
10607
  registerSchema({
10889
10608
  command: "images.library",
10890
10609
  description: "Search the company image library. Returns only ready images.",
@@ -10910,7 +10629,7 @@ registerSchema({
10910
10629
  }
10911
10630
  }
10912
10631
  });
10913
- var libraryCommand = defineCommand104({
10632
+ var libraryCommand = defineCommand97({
10914
10633
  meta: {
10915
10634
  name: "library",
10916
10635
  description: "Search the company image library (hybrid BM25 + vector + Cohere rerank). Use this BEFORE any external provider.\n\nExample: baker images library 'hero banner' --aspect-ratio 16:9 --source magnific"
@@ -10967,7 +10686,7 @@ var libraryCommand = defineCommand104({
10967
10686
  });
10968
10687
 
10969
10688
  // src/commands/images/logo.ts
10970
- import { defineCommand as defineCommand105 } from "citty";
10689
+ import { defineCommand as defineCommand98 } from "citty";
10971
10690
  registerSchema({
10972
10691
  command: "images.logo",
10973
10692
  description: "Brand logo lookup via Brandfetch CDN (fallback/404). Auto-ingests by default.",
@@ -10992,7 +10711,7 @@ registerSchema({
10992
10711
  }
10993
10712
  }
10994
10713
  });
10995
- var logoCommand = defineCommand105({
10714
+ var logoCommand = defineCommand98({
10996
10715
  meta: {
10997
10716
  name: "logo",
10998
10717
  description: "Brand logo via Brandfetch CDN. Returns up to 5 variants (icon, light/dark logo, light/dark symbol). Auto-ingests the first variant.\n\nExample: baker images logo stripe.com --variant logo"
@@ -11030,7 +10749,7 @@ var logoCommand = defineCommand105({
11030
10749
  });
11031
10750
 
11032
10751
  // src/commands/images/normalize.ts
11033
- import { defineCommand as defineCommand106 } from "citty";
10752
+ import { defineCommand as defineCommand99 } from "citty";
11034
10753
 
11035
10754
  // src/lib/image/color-changer.ts
11036
10755
  import quantize from "quantize";
@@ -11762,7 +11481,7 @@ function coerceRawArgs(args) {
11762
11481
  "dry-run": bool(args["dry-run"])
11763
11482
  };
11764
11483
  }
11765
- var normalizeCommand = defineCommand106({
11484
+ var normalizeCommand = defineCommand99({
11766
11485
  meta: {
11767
11486
  name: "normalize",
11768
11487
  description: `Normalize logos / images: declarative recolor + bg removal + trim + resize. Operates on local files; writes in-place by default.
@@ -11817,7 +11536,7 @@ Examples:
11817
11536
  });
11818
11537
 
11819
11538
  // src/commands/images/screenshot.ts
11820
- import { defineCommand as defineCommand107 } from "citty";
11539
+ import { defineCommand as defineCommand100 } from "citty";
11821
11540
  registerSchema({
11822
11541
  command: "images.screenshot",
11823
11542
  description: "Capture a website screenshot via ScreenshotOne. Auto-ingests on success.",
@@ -11833,7 +11552,7 @@ registerSchema({
11833
11552
  }
11834
11553
  }
11835
11554
  });
11836
- var screenshotCommand = defineCommand107({
11555
+ var screenshotCommand = defineCommand100({
11837
11556
  meta: {
11838
11557
  name: "screenshot",
11839
11558
  description: "Screenshot a URL via ScreenshotOne. $0.009/capture. Auto-ingests to library.\n\nExample: baker images screenshot https://stripe.com --full-page"
@@ -11883,7 +11602,7 @@ var screenshotCommand = defineCommand107({
11883
11602
  });
11884
11603
 
11885
11604
  // src/commands/images/search.ts
11886
- import { defineCommand as defineCommand108 } from "citty";
11605
+ import { defineCommand as defineCommand101 } from "citty";
11887
11606
  registerSchema({
11888
11607
  command: "images.search",
11889
11608
  description: "Search images by text query. Only returns ready images.",
@@ -11899,7 +11618,7 @@ registerSchema({
11899
11618
  tags: { type: "string", description: "Comma-separated tags to filter by", required: false }
11900
11619
  }
11901
11620
  });
11902
- var searchCommand = defineCommand108({
11621
+ var searchCommand = defineCommand101({
11903
11622
  meta: {
11904
11623
  name: "search",
11905
11624
  description: "Semantic search images by text query. Uses hybrid BM25 + vector + reranking. Example: baker images search 'hero banner' --aspect-ratio 16:9 --tags logo"
@@ -11959,7 +11678,7 @@ var searchCommand = defineCommand108({
11959
11678
  });
11960
11679
 
11961
11680
  // src/commands/images/sticker.ts
11962
- import { defineCommand as defineCommand109 } from "citty";
11681
+ import { defineCommand as defineCommand102 } from "citty";
11963
11682
  registerSchema({
11964
11683
  command: "images.sticker",
11965
11684
  description: "Search Giphy stickers \u2014 transparent-background overlays for ad creative.",
@@ -11991,7 +11710,7 @@ registerSchema({
11991
11710
  }
11992
11711
  }
11993
11712
  });
11994
- var stickerCommand = defineCommand109({
11713
+ var stickerCommand = defineCommand102({
11995
11714
  meta: {
11996
11715
  name: "sticker",
11997
11716
  description: "Search Giphy's sticker corpus \u2014 transparent-background WebPs / GIFs ideal for overlaying on ad creative (Meta, TikTok, Stories). Same Giphy free API as `baker images gif`; results carry WebP + GIF + MP4 URLs in providerMeta.\n\nExample: baker images sticker 'thumbs up' --limit 10\nExample: baker images sticker celebration --rating g --auto-ingest 3\nExample: baker images sticker --trending --limit 25"
@@ -12038,7 +11757,7 @@ var stickerCommand = defineCommand109({
12038
11757
  });
12039
11758
 
12040
11759
  // src/commands/images/stock.ts
12041
- import { defineCommand as defineCommand110 } from "citty";
11760
+ import { defineCommand as defineCommand103 } from "citty";
12042
11761
  registerSchema({
12043
11762
  command: "images.stock",
12044
11763
  description: "Stock photo, vector illustration, icon-set, and PSD search via Magnific (Freepik's developer API).",
@@ -12096,7 +11815,7 @@ registerSchema({
12096
11815
  }
12097
11816
  }
12098
11817
  });
12099
- var stockCommand = defineCommand110({
11818
+ var stockCommand = defineCommand103({
12100
11819
  meta: {
12101
11820
  name: "stock",
12102
11821
  description: "Stock search via Magnific \u2014 Freepik's developer API (~250M assets: photos, vectors, illustrations, icons, PSDs). $0.002/req. With --auto-ingest, ingested hits return Baker-owned URLs.\n\nExamples:\n baker images stock 'minimalist office'\n baker images stock 'flat office workers' --type vector\n baker images stock 'hero photo of a kitchen' --type photo --orientation landscape --ai exclude\n baker images stock 'brand pattern' --color '#0a0a0a' --license freemium --auto-ingest 2"
@@ -12154,7 +11873,7 @@ var stockCommand = defineCommand110({
12154
11873
  // src/commands/images/upload.ts
12155
11874
  import { readFile as readFile7 } from "fs/promises";
12156
11875
  import { extname as extname2 } from "path";
12157
- import { defineCommand as defineCommand111 } from "citty";
11876
+ import { defineCommand as defineCommand104 } from "citty";
12158
11877
  var MIME_MAP = {
12159
11878
  ".png": "image/png",
12160
11879
  ".jpg": "image/jpeg",
@@ -12209,7 +11928,7 @@ function detectContentType(filePath) {
12209
11928
  }
12210
11929
  return mime;
12211
11930
  }
12212
- var uploadCommand = defineCommand111({
11931
+ var uploadCommand = defineCommand104({
12213
11932
  meta: {
12214
11933
  name: "upload",
12215
11934
  description: "Upload an image to the library \u2014 accepts a local file path OR a remote http(s) URL.\n\nLocal: reads bytes, sends to /api/images/upload, content-type auto-detected from extension.\nRemote: dispatches to /api/images/ingest with hash-dedup on bytes + externalId.\n\nExamples:\n baker images upload ./logo.png --source uploaded\n baker images upload ./cert.png --context 'ISO 27001 badge \u2014 enterprise tier'\n baker images upload https://acme.com/hero.png --source firecrawl --context 'Acme competitor pricing hero'"
@@ -12302,7 +12021,7 @@ async function uploadLocal(target, args) {
12302
12021
  }
12303
12022
 
12304
12023
  // src/commands/images/upscale.ts
12305
- import { defineCommand as defineCommand112 } from "citty";
12024
+ import { defineCommand as defineCommand105 } from "citty";
12306
12025
  registerSchema({
12307
12026
  command: "images.upscale",
12308
12027
  description: "Upscale a library image via the backend (Replicate, cost-tracked). Waits for completion by default. The image must be status 'ready' and raster (not SVG/AVIF).",
@@ -12317,7 +12036,7 @@ registerSchema({
12317
12036
  }
12318
12037
  });
12319
12038
  var POLL_INTERVAL_MS3 = 1500;
12320
- var upscaleCommand = defineCommand112({
12039
+ var upscaleCommand = defineCommand105({
12321
12040
  meta: {
12322
12041
  name: "upscale",
12323
12042
  description: "Upscale a library image via the Convex backend (Replicate, cost-tracked at $0.05/image). Waits for completion by default.\n\nExample: baker images upscale j571abc123def\nExample: baker images upscale j571abc123def --max-wait 0 # fire-and-forget"
@@ -12372,7 +12091,7 @@ var upscaleCommand = defineCommand112({
12372
12091
  });
12373
12092
 
12374
12093
  // src/commands/images/use.ts
12375
- import { defineCommand as defineCommand113 } from "citty";
12094
+ import { defineCommand as defineCommand106 } from "citty";
12376
12095
  registerSchema({
12377
12096
  command: "images.use",
12378
12097
  description: "Ingest a URL and wait for the library record to be ready.",
@@ -12388,7 +12107,7 @@ registerSchema({
12388
12107
  }
12389
12108
  });
12390
12109
  var POLL_INTERVAL_MS4 = 1500;
12391
- var useCommand = defineCommand113({
12110
+ var useCommand = defineCommand106({
12392
12111
  meta: {
12393
12112
  name: "use",
12394
12113
  description: "Sugar over `ingest`: download \u2192 store \u2192 wait until describe + embed complete \u2192 return ready library record.\n\nExample: baker images use https://cdn.example.com/hero.png --source uploaded"
@@ -12434,7 +12153,7 @@ var useCommand = defineCommand113({
12434
12153
  });
12435
12154
 
12436
12155
  // src/commands/images/index.ts
12437
- var imagesCommand = defineCommand114({
12156
+ var imagesCommand = defineCommand107({
12438
12157
  meta: {
12439
12158
  name: "images",
12440
12159
  description: `Find, source, and normalize images. Subcommands route by provider so cost + license are explicit.
@@ -12486,7 +12205,7 @@ Paid transforms (run on the Convex backend, cost-tracked):
12486
12205
  use: useCommand,
12487
12206
  search: searchCommand,
12488
12207
  upload: uploadCommand,
12489
- delete: deleteCommand2,
12208
+ delete: deleteCommand,
12490
12209
  normalize: normalizeCommand,
12491
12210
  crop: cropCommand,
12492
12211
  dimensions: dimensionsCommand,
@@ -12495,10 +12214,10 @@ Paid transforms (run on the Convex backend, cost-tracked):
12495
12214
  });
12496
12215
 
12497
12216
  // src/commands/research/index.ts
12498
- import { defineCommand as defineCommand125 } from "citty";
12217
+ import { defineCommand as defineCommand118 } from "citty";
12499
12218
 
12500
12219
  // src/commands/research/advertisers.ts
12501
- import { defineCommand as defineCommand115 } from "citty";
12220
+ import { defineCommand as defineCommand108 } from "citty";
12502
12221
 
12503
12222
  // src/commands/research/output.ts
12504
12223
  var RESEARCH_DATA_NOTE = "Estimates based on third-party SERP data \u2014 not exact figures. Use for directional insights, not precise measurement.";
@@ -12611,7 +12330,7 @@ var FIELDS3 = {
12611
12330
  etv: "Estimated traffic value (USD)",
12612
12331
  visibility: "SERP visibility score (0-1)"
12613
12332
  };
12614
- var advertisersCommand = defineCommand115({
12333
+ var advertisersCommand = defineCommand108({
12615
12334
  meta: {
12616
12335
  name: "advertisers",
12617
12336
  description: `Find domains competing for a keyword in Google SERPs.
@@ -12658,7 +12377,7 @@ Examples:
12658
12377
  });
12659
12378
 
12660
12379
  // src/commands/research/autocomplete.ts
12661
- import { defineCommand as defineCommand116 } from "citty";
12380
+ import { defineCommand as defineCommand109 } from "citty";
12662
12381
  registerSchema({
12663
12382
  command: "research.autocomplete",
12664
12383
  description: "Get Google Autocomplete suggestions for a seed keyword. Useful for keyword expansion and discovering what people actually search for. IMPORTANT: If --location and --language are omitted, defaults to United States (us) and English (en).",
@@ -12681,7 +12400,7 @@ registerSchema({
12681
12400
  var FIELDS4 = {
12682
12401
  suggestion: "Autocomplete suggestion from Google"
12683
12402
  };
12684
- var autocompleteCommand = defineCommand116({
12403
+ var autocompleteCommand = defineCommand109({
12685
12404
  meta: {
12686
12405
  name: "autocomplete",
12687
12406
  description: `Get Google Autocomplete suggestions for keyword expansion.
@@ -12727,7 +12446,7 @@ Examples:
12727
12446
  });
12728
12447
 
12729
12448
  // src/commands/research/countries.ts
12730
- import { defineCommand as defineCommand117 } from "citty";
12449
+ import { defineCommand as defineCommand110 } from "citty";
12731
12450
  registerSchema({
12732
12451
  command: "research.countries",
12733
12452
  description: "List all supported country codes for --location flag in research commands.",
@@ -12784,7 +12503,7 @@ var FIELDS5 = {
12784
12503
  code: "Country code to pass as --location",
12785
12504
  name: "Country name"
12786
12505
  };
12787
- var countriesCommand = defineCommand117({
12506
+ var countriesCommand = defineCommand110({
12788
12507
  meta: {
12789
12508
  name: "countries",
12790
12509
  description: "List all supported country codes for --location flag."
@@ -12795,7 +12514,7 @@ var countriesCommand = defineCommand117({
12795
12514
  });
12796
12515
 
12797
12516
  // src/commands/research/intent.ts
12798
- import { defineCommand as defineCommand118 } from "citty";
12517
+ import { defineCommand as defineCommand111 } from "citty";
12799
12518
  registerSchema({
12800
12519
  command: "research.intent",
12801
12520
  description: "Classify Google Search intent for keywords. Determines if someone searching is looking to buy, research, or navigate. IMPORTANT: If --language is omitted, defaults to English (en). The response includes a query_context object showing which language was used.",
@@ -12818,7 +12537,7 @@ var FIELDS6 = {
12818
12537
  intent: "Primary Google Search intent: informational, navigational, commercial, transactional",
12819
12538
  probability: "Confidence score 0.0-1.0"
12820
12539
  };
12821
- var intentCommand = defineCommand118({
12540
+ var intentCommand = defineCommand111({
12822
12541
  meta: {
12823
12542
  name: "intent",
12824
12543
  description: `Classify Google Search intent for keywords. Returns intent type and confidence.
@@ -12866,7 +12585,7 @@ Examples:
12866
12585
  });
12867
12586
 
12868
12587
  // src/commands/research/keyword-gap.ts
12869
- import { defineCommand as defineCommand119 } from "citty";
12588
+ import { defineCommand as defineCommand112 } from "citty";
12870
12589
  registerSchema({
12871
12590
  command: "research.keyword-gap",
12872
12591
  description: "Find keywords a competitor ranks for (organic or paid) that you don't. Discovers expansion opportunities. IMPORTANT: If --location and --language are omitted, defaults to United States (us) and English (en). The response includes a query_context object showing which location/language were used.",
@@ -12895,7 +12614,7 @@ var FIELDS7 = {
12895
12614
  cpc: "Cost per click USD",
12896
12615
  their_position: "Competitor's ranking position"
12897
12616
  };
12898
- var keywordGapCommand = defineCommand119({
12617
+ var keywordGapCommand = defineCommand112({
12899
12618
  meta: {
12900
12619
  name: "keyword-gap",
12901
12620
  description: `Find keywords a competitor has that you don't. Supports pagination via --offset.
@@ -12969,7 +12688,7 @@ Examples:
12969
12688
  });
12970
12689
 
12971
12690
  // src/commands/research/keywords-for-site.ts
12972
- import { defineCommand as defineCommand120 } from "citty";
12691
+ import { defineCommand as defineCommand113 } from "citty";
12973
12692
  registerSchema({
12974
12693
  command: "research.keywords-for-site",
12975
12694
  description: "Get keywords a competitor targets in Google. Use --type paid to see only paid keywords, --type organic for organic only. IMPORTANT: If --location and --language are omitted, defaults to United States (us) and English (en). The response includes a query_context object showing which location/language were used.",
@@ -13002,7 +12721,7 @@ var FIELDS8 = {
13002
12721
  competition: "LOW, MEDIUM, or HIGH",
13003
12722
  competition_index: "Competition score 0-100"
13004
12723
  };
13005
- var keywordsForSiteCommand = defineCommand120({
12724
+ var keywordsForSiteCommand = defineCommand113({
13006
12725
  meta: {
13007
12726
  name: "keywords-for-site",
13008
12727
  description: `Get keywords a competitor targets in Google. Use --type to filter paid/organic.
@@ -13055,7 +12774,7 @@ Examples:
13055
12774
  });
13056
12775
 
13057
12776
  // src/commands/research/languages.ts
13058
- import { defineCommand as defineCommand121 } from "citty";
12777
+ import { defineCommand as defineCommand114 } from "citty";
13059
12778
  registerSchema({
13060
12779
  command: "research.languages",
13061
12780
  description: "List all supported language codes for --language flag in research commands.",
@@ -13085,7 +12804,7 @@ var FIELDS9 = {
13085
12804
  code: "Language code to pass as --language",
13086
12805
  name: "Language name (also accepted by --language)"
13087
12806
  };
13088
- var languagesCommand2 = defineCommand121({
12807
+ var languagesCommand2 = defineCommand114({
13089
12808
  meta: {
13090
12809
  name: "languages",
13091
12810
  description: "List all supported language codes for --language flag."
@@ -13096,7 +12815,7 @@ var languagesCommand2 = defineCommand121({
13096
12815
  });
13097
12816
 
13098
12817
  // src/commands/research/lighthouse.ts
13099
- import { defineCommand as defineCommand122 } from "citty";
12818
+ import { defineCommand as defineCommand115 } from "citty";
13100
12819
  registerSchema({
13101
12820
  command: "research.lighthouse",
13102
12821
  description: "Landing page performance audit. Returns metrics that affect Google Ads Quality Score and CPC.",
@@ -13115,7 +12834,7 @@ var FIELDS10 = {
13115
12834
  speed_index_ms: "Speed Index in ms (good: < 3400)",
13116
12835
  interactive_ms: "Time to Interactive in ms (good: < 3800)"
13117
12836
  };
13118
- var lighthouseCommand = defineCommand122({
12837
+ var lighthouseCommand = defineCommand115({
13119
12838
  meta: {
13120
12839
  name: "lighthouse",
13121
12840
  description: `Landing page performance audit. Metrics affecting Google Ads Quality Score.
@@ -13153,7 +12872,7 @@ Examples:
13153
12872
  });
13154
12873
 
13155
12874
  // src/commands/research/relevant-pages.ts
13156
- import { defineCommand as defineCommand123 } from "citty";
12875
+ import { defineCommand as defineCommand116 } from "citty";
13157
12876
  registerSchema({
13158
12877
  command: "research.relevant-pages",
13159
12878
  description: "Get the top pages of a competitor domain with organic traffic and ranking data. Shows which pages drive the most traffic. IMPORTANT: If --location and --language are omitted, defaults to United States (us) and English (en).",
@@ -13179,7 +12898,7 @@ var FIELDS11 = {
13179
12898
  keywords: "Total organic keywords the page ranks for",
13180
12899
  top_10: "Keywords in positions 1-10"
13181
12900
  };
13182
- var relevantPagesCommand = defineCommand123({
12901
+ var relevantPagesCommand = defineCommand116({
13183
12902
  meta: {
13184
12903
  name: "relevant-pages",
13185
12904
  description: `Get the top pages of a competitor domain with traffic data.
@@ -13225,7 +12944,7 @@ Examples:
13225
12944
  });
13226
12945
 
13227
12946
  // src/commands/research/web.ts
13228
- import { defineCommand as defineCommand124 } from "citty";
12947
+ import { defineCommand as defineCommand117 } from "citty";
13229
12948
  registerSchema({
13230
12949
  command: "research.web",
13231
12950
  description: "Search the web with AI to answer marketing questions \u2014 competitors, ICP, pricing, pain points, market trends. Three depth levels: medium (quick, default), high (thorough), xhigh (exhaustive deep research).",
@@ -13276,7 +12995,7 @@ async function runDeepResearch(question) {
13276
12995
  }
13277
12996
  throw new Error("Deep research timed out");
13278
12997
  }
13279
- var webCommand = defineCommand124({
12998
+ var webCommand = defineCommand117({
13280
12999
  meta: {
13281
13000
  name: "web",
13282
13001
  description: `Search the web with AI to answer any open-ended marketing question. Uses live internet data via Google Search.
@@ -13336,7 +13055,7 @@ Examples:
13336
13055
  });
13337
13056
 
13338
13057
  // src/commands/research/index.ts
13339
- var researchCommand = defineCommand125({
13058
+ var researchCommand = defineCommand118({
13340
13059
  meta: {
13341
13060
  name: "research",
13342
13061
  description: `Competitive intelligence and AI-powered research commands.
@@ -13376,10 +13095,10 @@ Examples:
13376
13095
  });
13377
13096
 
13378
13097
  // src/commands/scheduled-actions/index.ts
13379
- import { defineCommand as defineCommand132 } from "citty";
13098
+ import { defineCommand as defineCommand125 } from "citty";
13380
13099
 
13381
13100
  // src/commands/scheduled-actions/create.ts
13382
- import { defineCommand as defineCommand126 } from "citty";
13101
+ import { defineCommand as defineCommand119 } from "citty";
13383
13102
 
13384
13103
  // src/commands/scheduled-actions/shared.ts
13385
13104
  var TEMP_SCHEDULED_ACTION_PREFIX = "temp_sched_";
@@ -13417,13 +13136,6 @@ function validateScheduledActionRef(ref) {
13417
13136
  validateConvexId(ref);
13418
13137
  }
13419
13138
  }
13420
- function parseTags(raw) {
13421
- if (typeof raw !== "string") {
13422
- return void 0;
13423
- }
13424
- const tags = raw.split(",").map((tag) => tag.trim()).filter(Boolean);
13425
- return tags.length > 0 ? tags : void 0;
13426
- }
13427
13139
  function isNoSpawnAgentFlagSet(args) {
13428
13140
  return args["no-spawn-agent"] === true || args.noSpawnAgent === true || args.spawnAgent === false;
13429
13141
  }
@@ -13481,7 +13193,6 @@ registerSchema({
13481
13193
  required: false
13482
13194
  },
13483
13195
  timezone: { type: "string", description: "IANA timezone override; defaults to Company Timezone", required: false },
13484
- tag: { type: "string", description: "Tag slugs (comma-separated)", required: false },
13485
13196
  disabled: { type: "boolean", description: "Create disabled", required: false, default: false },
13486
13197
  "no-spawn-agent": {
13487
13198
  type: "boolean",
@@ -13492,7 +13203,7 @@ registerSchema({
13492
13203
  prompt: { type: "string", description: "Additional prompt instructions for the spawned agent", required: false }
13493
13204
  }
13494
13205
  });
13495
- var createCommand3 = defineCommand126({
13206
+ var createCommand2 = defineCommand119({
13496
13207
  meta: {
13497
13208
  name: "create",
13498
13209
  description: 'Stage a scheduled action. Example: baker scheduled-actions create --name "Weekly report" --description "..." --cron "0 9 * * MON"'
@@ -13503,7 +13214,6 @@ var createCommand3 = defineCommand126({
13503
13214
  cron: { type: "string", description: "5-field cron expression", required: false },
13504
13215
  "run-at": { type: "string", description: "ISO UTC timestamp ending in Z", required: false },
13505
13216
  timezone: { type: "string", description: "IANA timezone override", required: false },
13506
- tag: { type: "string", description: "Tag slugs (comma-separated)", required: false },
13507
13217
  disabled: { type: "boolean", description: "Create disabled", required: false, default: false },
13508
13218
  "no-spawn-agent": { type: "boolean", description: "Disable agent spawning", required: false, default: false },
13509
13219
  prompt: { type: "string", description: "Additional spawned-agent instructions", required: false }
@@ -13529,10 +13239,6 @@ var createCommand3 = defineCommand126({
13529
13239
  spawnAgent: !noSpawnAgent,
13530
13240
  ...schedule
13531
13241
  };
13532
- const tagSlugs = parseTags(args.tag);
13533
- if (tagSlugs) {
13534
- body.tagSlugs = tagSlugs;
13535
- }
13536
13242
  if (typeof args.prompt === "string") {
13537
13243
  body.agentPrompt = args.prompt;
13538
13244
  }
@@ -13545,7 +13251,7 @@ var createCommand3 = defineCommand126({
13545
13251
  });
13546
13252
 
13547
13253
  // src/commands/scheduled-actions/delete.ts
13548
- import { defineCommand as defineCommand127 } from "citty";
13254
+ import { defineCommand as defineCommand120 } from "citty";
13549
13255
  registerSchema({
13550
13256
  command: "scheduled-actions.delete",
13551
13257
  description: "Stage deletion of a published scheduled action or cancellation of a temp_sched_* draft creation.",
@@ -13553,7 +13259,7 @@ registerSchema({
13553
13259
  id: { type: "string", description: "Published scheduled action ID or temp_sched_* draft ID", required: true }
13554
13260
  }
13555
13261
  });
13556
- var deleteCommand3 = defineCommand127({
13262
+ var deleteCommand2 = defineCommand120({
13557
13263
  meta: {
13558
13264
  name: "delete",
13559
13265
  description: "Stage scheduled action deletion. Example: baker scheduled-actions delete <id-or-temp_sched_id>"
@@ -13582,7 +13288,7 @@ var deleteCommand3 = defineCommand127({
13582
13288
  });
13583
13289
 
13584
13290
  // src/commands/scheduled-actions/get.ts
13585
- import { defineCommand as defineCommand128 } from "citty";
13291
+ import { defineCommand as defineCommand121 } from "citty";
13586
13292
  registerSchema({
13587
13293
  command: "scheduled-actions.get",
13588
13294
  description: "Get a published scheduled action or a temp_sched_* draft-created scheduled action.",
@@ -13590,7 +13296,7 @@ registerSchema({
13590
13296
  id: { type: "string", description: "Published scheduled action ID or temp_sched_* draft ID", required: true }
13591
13297
  }
13592
13298
  });
13593
- var getCommand3 = defineCommand128({
13299
+ var getCommand3 = defineCommand121({
13594
13300
  meta: {
13595
13301
  name: "get",
13596
13302
  description: "Get a scheduled action. Example: baker scheduled-actions get <id-or-temp_sched_id>"
@@ -13627,13 +13333,13 @@ var getCommand3 = defineCommand128({
13627
13333
  });
13628
13334
 
13629
13335
  // src/commands/scheduled-actions/list.ts
13630
- import { defineCommand as defineCommand129 } from "citty";
13336
+ import { defineCommand as defineCommand122 } from "citty";
13631
13337
  registerSchema({
13632
13338
  command: "scheduled-actions.list",
13633
13339
  description: "List published scheduled actions. Includes draft state when BAKER_CHAT_ID is set.",
13634
13340
  args: {}
13635
13341
  });
13636
- var listCommand3 = defineCommand129({
13342
+ var listCommand2 = defineCommand122({
13637
13343
  meta: {
13638
13344
  name: "list",
13639
13345
  description: "List scheduled actions. Includes staged draft ops when BAKER_CHAT_ID is set."
@@ -13654,7 +13360,7 @@ var listCommand3 = defineCommand129({
13654
13360
  });
13655
13361
 
13656
13362
  // src/commands/scheduled-actions/trigger.ts
13657
- import { defineCommand as defineCommand130 } from "citty";
13363
+ import { defineCommand as defineCommand123 } from "citty";
13658
13364
  registerSchema({
13659
13365
  command: "scheduled-actions.trigger",
13660
13366
  description: "Immediately trigger a published scheduled action. Does not require BAKER_CHAT_ID and rejects temp_sched_* IDs.",
@@ -13662,7 +13368,7 @@ registerSchema({
13662
13368
  id: { type: "string", description: "Published scheduled action ID", required: true }
13663
13369
  }
13664
13370
  });
13665
- var triggerCommand = defineCommand130({
13371
+ var triggerCommand = defineCommand123({
13666
13372
  meta: {
13667
13373
  name: "trigger",
13668
13374
  description: "Immediately trigger a published scheduled action. Example: baker scheduled-actions trigger <id>"
@@ -13699,7 +13405,7 @@ var triggerCommand = defineCommand130({
13699
13405
  });
13700
13406
 
13701
13407
  // src/commands/scheduled-actions/update.ts
13702
- import { defineCommand as defineCommand131 } from "citty";
13408
+ import { defineCommand as defineCommand124 } from "citty";
13703
13409
  registerSchema({
13704
13410
  command: "scheduled-actions.update",
13705
13411
  description: "Stage an update to a published scheduled action or temp_sched_* draft-created scheduled action.",
@@ -13714,7 +13420,6 @@ registerSchema({
13714
13420
  required: false
13715
13421
  },
13716
13422
  timezone: { type: "string", description: "IANA timezone override", required: false },
13717
- tag: { type: "string", description: "Replacement tag slugs (comma-separated)", required: false },
13718
13423
  enabled: { type: "string", description: "Replacement enabled state", required: false, enum: ["true", "false"] },
13719
13424
  "spawn-agent": {
13720
13425
  type: "string",
@@ -13725,7 +13430,7 @@ registerSchema({
13725
13430
  prompt: { type: "string", description: "Replacement additional spawned-agent instructions", required: false }
13726
13431
  }
13727
13432
  });
13728
- var updateCommand3 = defineCommand131({
13433
+ var updateCommand2 = defineCommand124({
13729
13434
  meta: {
13730
13435
  name: "update",
13731
13436
  description: "Stage a scheduled action update. Example: baker scheduled-actions update <id> --enabled false"
@@ -13742,7 +13447,6 @@ var updateCommand3 = defineCommand131({
13742
13447
  cron: { type: "string", description: "5-field cron expression", required: false },
13743
13448
  "run-at": { type: "string", description: "ISO UTC timestamp ending in Z", required: false },
13744
13449
  timezone: { type: "string", description: "IANA timezone override", required: false },
13745
- tag: { type: "string", description: "Replacement tag slugs (comma-separated)", required: false },
13746
13450
  enabled: { type: "string", description: "true|false", required: false },
13747
13451
  "spawn-agent": { type: "string", description: "true|false", required: false },
13748
13452
  prompt: { type: "string", description: "Replacement additional spawned-agent instructions", required: false }
@@ -13767,14 +13471,6 @@ var updateCommand3 = defineCommand131({
13767
13471
  Object.assign(body, schedule);
13768
13472
  hasPatch = true;
13769
13473
  }
13770
- const tagSlugs = parseTags(args.tag);
13771
- if (tagSlugs) {
13772
- body.tagSlugs = tagSlugs;
13773
- hasPatch = true;
13774
- } else if (typeof args.tag === "string") {
13775
- body.tagSlugs = [];
13776
- hasPatch = true;
13777
- }
13778
13474
  const enabled = parseBooleanFlag(args.enabled, "--enabled");
13779
13475
  if (enabled !== void 0) {
13780
13476
  body.enabled = enabled;
@@ -13791,7 +13487,7 @@ var updateCommand3 = defineCommand131({
13791
13487
  }
13792
13488
  if (!hasPatch) {
13793
13489
  failValidation2(
13794
- "Provide at least one of --name, --description, --cron, --run-at, --timezone, --tag, --enabled, --spawn-agent, --prompt."
13490
+ "Provide at least one of --name, --description, --cron, --run-at, --timezone, --enabled, --spawn-agent, --prompt."
13795
13491
  );
13796
13492
  }
13797
13493
  body.chatId = requireChatId();
@@ -13804,7 +13500,7 @@ var updateCommand3 = defineCommand131({
13804
13500
  });
13805
13501
 
13806
13502
  // src/commands/scheduled-actions/index.ts
13807
- var scheduledActionsCommand = defineCommand132({
13503
+ var scheduledActionsCommand = defineCommand125({
13808
13504
  meta: {
13809
13505
  name: "scheduled-actions",
13810
13506
  description: `Manage Scheduled Actions. Subcommands: list, get, create, update, delete, trigger.
@@ -13820,18 +13516,18 @@ Examples:
13820
13516
  baker scheduled-actions trigger <id>`
13821
13517
  },
13822
13518
  subCommands: {
13823
- list: listCommand3,
13519
+ list: listCommand2,
13824
13520
  get: getCommand3,
13825
- create: createCommand3,
13826
- update: updateCommand3,
13827
- delete: deleteCommand3,
13521
+ create: createCommand2,
13522
+ update: updateCommand2,
13523
+ delete: deleteCommand2,
13828
13524
  trigger: triggerCommand
13829
13525
  }
13830
13526
  });
13831
13527
 
13832
13528
  // src/commands/schema.ts
13833
- import { defineCommand as defineCommand133 } from "citty";
13834
- var schemaCommand = defineCommand133({
13529
+ import { defineCommand as defineCommand126 } from "citty";
13530
+ var schemaCommand = defineCommand126({
13835
13531
  meta: {
13836
13532
  name: "schema",
13837
13533
  description: "Inspect command argument schemas (for AI agent introspection). Lists all commands if no argument given. Example: baker schema images.search"
@@ -13867,10 +13563,10 @@ var schemaCommand = defineCommand133({
13867
13563
  });
13868
13564
 
13869
13565
  // src/commands/testimonials/index.ts
13870
- import { defineCommand as defineCommand137 } from "citty";
13566
+ import { defineCommand as defineCommand130 } from "citty";
13871
13567
 
13872
13568
  // src/commands/testimonials/get.ts
13873
- import { defineCommand as defineCommand134 } from "citty";
13569
+ import { defineCommand as defineCommand127 } from "citty";
13874
13570
  registerSchema({
13875
13571
  command: "testimonials.get",
13876
13572
  description: "Get a single testimonial by ID",
@@ -13878,7 +13574,7 @@ registerSchema({
13878
13574
  id: { type: "string", description: "Testimonial ID", required: true }
13879
13575
  }
13880
13576
  });
13881
- var getCommand4 = defineCommand134({
13577
+ var getCommand4 = defineCommand127({
13882
13578
  meta: { name: "get", description: "Get a single testimonial by ID. Example: baker testimonials get j571abc123" },
13883
13579
  args: {
13884
13580
  id: { type: "positional", description: "Testimonial ID", required: false },
@@ -13915,7 +13611,7 @@ var getCommand4 = defineCommand134({
13915
13611
  });
13916
13612
 
13917
13613
  // src/commands/testimonials/list.ts
13918
- import { defineCommand as defineCommand135 } from "citty";
13614
+ import { defineCommand as defineCommand128 } from "citty";
13919
13615
  registerSchema({
13920
13616
  command: "testimonials.list",
13921
13617
  description: "List testimonials with optional filters.",
@@ -13945,7 +13641,7 @@ registerSchema({
13945
13641
  limit: { type: "number", description: "Max results (default 50)", required: false, default: 50 }
13946
13642
  }
13947
13643
  });
13948
- var listCommand4 = defineCommand135({
13644
+ var listCommand3 = defineCommand128({
13949
13645
  meta: {
13950
13646
  name: "list",
13951
13647
  description: "List testimonials with optional filters. Example: baker testimonials list --source google --sentiment positive"
@@ -13994,7 +13690,7 @@ var listCommand4 = defineCommand135({
13994
13690
  });
13995
13691
 
13996
13692
  // src/commands/testimonials/search.ts
13997
- import { defineCommand as defineCommand136 } from "citty";
13693
+ import { defineCommand as defineCommand129 } from "citty";
13998
13694
  registerSchema({
13999
13695
  command: "testimonials.search",
14000
13696
  description: "Search testimonials by text query. Uses hybrid BM25 + vector + reranking.",
@@ -14025,7 +13721,7 @@ registerSchema({
14025
13721
  tags: { type: "string", description: "Comma-separated tags to filter by", required: false }
14026
13722
  }
14027
13723
  });
14028
- var searchCommand2 = defineCommand136({
13724
+ var searchCommand2 = defineCommand129({
14029
13725
  meta: {
14030
13726
  name: "search",
14031
13727
  description: "Semantic search testimonials by text query. Uses hybrid BM25 + vector + reranking. Example: baker testimonials search 'great service' --rating-min 4"
@@ -14096,7 +13792,7 @@ var searchCommand2 = defineCommand136({
14096
13792
  });
14097
13793
 
14098
13794
  // src/commands/testimonials/index.ts
14099
- var testimonialsCommand = defineCommand137({
13795
+ var testimonialsCommand = defineCommand130({
14100
13796
  meta: {
14101
13797
  name: "testimonials",
14102
13798
  description: `Find and browse testimonials in Baker. Subcommands: search, get, list.
@@ -14110,15 +13806,15 @@ Examples:
14110
13806
  subCommands: {
14111
13807
  get: getCommand4,
14112
13808
  search: searchCommand2,
14113
- list: listCommand4
13809
+ list: listCommand3
14114
13810
  }
14115
13811
  });
14116
13812
 
14117
13813
  // src/commands/videos/index.ts
14118
- import { defineCommand as defineCommand142 } from "citty";
13814
+ import { defineCommand as defineCommand135 } from "citty";
14119
13815
 
14120
13816
  // src/commands/videos/delete.ts
14121
- import { defineCommand as defineCommand138 } from "citty";
13817
+ import { defineCommand as defineCommand131 } from "citty";
14122
13818
  registerSchema({
14123
13819
  command: "videos.delete",
14124
13820
  description: "Delete a video by ID",
@@ -14132,7 +13828,7 @@ registerSchema({
14132
13828
  }
14133
13829
  }
14134
13830
  });
14135
- var deleteCommand4 = defineCommand138({
13831
+ var deleteCommand3 = defineCommand131({
14136
13832
  meta: {
14137
13833
  name: "delete",
14138
13834
  description: "Delete a video by ID. Use --dry-run to preview. Example: baker videos delete j571abc123 --dry-run"
@@ -14173,7 +13869,7 @@ var deleteCommand4 = defineCommand138({
14173
13869
  });
14174
13870
 
14175
13871
  // src/commands/videos/get.ts
14176
- import { defineCommand as defineCommand139 } from "citty";
13872
+ import { defineCommand as defineCommand132 } from "citty";
14177
13873
  registerSchema({
14178
13874
  command: "videos.get",
14179
13875
  description: "Get a single video by ID",
@@ -14181,7 +13877,7 @@ registerSchema({
14181
13877
  id: { type: "string", description: "Video ID", required: true }
14182
13878
  }
14183
13879
  });
14184
- var getCommand5 = defineCommand139({
13880
+ var getCommand5 = defineCommand132({
14185
13881
  meta: { name: "get", description: "Get a single video by ID. Example: baker videos get j571abc123" },
14186
13882
  args: {
14187
13883
  id: { type: "positional", description: "Video ID", required: false },
@@ -14218,7 +13914,7 @@ var getCommand5 = defineCommand139({
14218
13914
  });
14219
13915
 
14220
13916
  // src/commands/videos/search.ts
14221
- import { defineCommand as defineCommand140 } from "citty";
13917
+ import { defineCommand as defineCommand133 } from "citty";
14222
13918
  registerSchema({
14223
13919
  command: "videos.search",
14224
13920
  description: "Search videos by text query. Only returns ready videos.",
@@ -14228,7 +13924,7 @@ registerSchema({
14228
13924
  tags: { type: "string", description: "Comma-separated tags to filter by", required: false }
14229
13925
  }
14230
13926
  });
14231
- var searchCommand3 = defineCommand140({
13927
+ var searchCommand3 = defineCommand133({
14232
13928
  meta: {
14233
13929
  name: "search",
14234
13930
  description: "Semantic search videos by text query. Uses hybrid BM25 + vector + reranking. Example: baker videos search 'product demo' --tags tutorial"
@@ -14277,7 +13973,7 @@ var searchCommand3 = defineCommand140({
14277
13973
  // src/commands/videos/upload.ts
14278
13974
  import { readFile as readFile8, stat as stat3 } from "fs/promises";
14279
13975
  import { extname as extname3 } from "path";
14280
- import { defineCommand as defineCommand141 } from "citty";
13976
+ import { defineCommand as defineCommand134 } from "citty";
14281
13977
  var MIME_MAP2 = {
14282
13978
  ".mp4": "video/mp4",
14283
13979
  ".mov": "video/quicktime",
@@ -14311,7 +14007,7 @@ function detectContentType2(filePath) {
14311
14007
  }
14312
14008
  return mime;
14313
14009
  }
14314
- var uploadCommand2 = defineCommand141({
14010
+ var uploadCommand2 = defineCommand134({
14315
14011
  meta: {
14316
14012
  name: "upload",
14317
14013
  description: "Upload a video file to Baker via Mux direct upload. Auto-detects content type. Example: baker videos upload ./demo.mp4"
@@ -14365,7 +14061,7 @@ var uploadCommand2 = defineCommand141({
14365
14061
  });
14366
14062
 
14367
14063
  // src/commands/videos/index.ts
14368
- var videosCommand = defineCommand142({
14064
+ var videosCommand = defineCommand135({
14369
14065
  meta: {
14370
14066
  name: "videos",
14371
14067
  description: `Find and manage videos in Baker. Subcommands: search, get, upload, delete.
@@ -14381,7 +14077,7 @@ Examples:
14381
14077
  get: getCommand5,
14382
14078
  search: searchCommand3,
14383
14079
  upload: uploadCommand2,
14384
- delete: deleteCommand4
14080
+ delete: deleteCommand3
14385
14081
  }
14386
14082
  });
14387
14083
 
@@ -14402,7 +14098,7 @@ function getCliVersion() {
14402
14098
  }
14403
14099
 
14404
14100
  // src/cli.ts
14405
- var main = defineCommand143({
14101
+ var main = defineCommand136({
14406
14102
  meta: {
14407
14103
  name: "baker",
14408
14104
  version: getCliVersion(),