@koda-sl/baker-cli 0.95.1 → 0.96.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/dist/cli.js +449 -295
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -12,10 +12,10 @@ import {
|
|
|
12
12
|
} from "./chunk-RCPMJKI7.js";
|
|
13
13
|
|
|
14
14
|
// src/cli.ts
|
|
15
|
-
import { defineCommand as
|
|
15
|
+
import { defineCommand as defineCommand148, runMain } from "citty";
|
|
16
16
|
|
|
17
17
|
// src/commands/actions/index.ts
|
|
18
|
-
import { defineCommand as
|
|
18
|
+
import { defineCommand as defineCommand17 } from "citty";
|
|
19
19
|
|
|
20
20
|
// src/commands/actions/claim.ts
|
|
21
21
|
import { defineCommand } from "citty";
|
|
@@ -465,6 +465,13 @@ function generateTempId() {
|
|
|
465
465
|
function isTempId(id) {
|
|
466
466
|
return id.startsWith("temp_");
|
|
467
467
|
}
|
|
468
|
+
function parseTagList(value) {
|
|
469
|
+
if (typeof value !== "string") {
|
|
470
|
+
return void 0;
|
|
471
|
+
}
|
|
472
|
+
const tags = value.split(",").map((t) => t.trim()).filter((t) => t.length > 0);
|
|
473
|
+
return [...new Set(tags)];
|
|
474
|
+
}
|
|
468
475
|
var SCHEDULE_SIGNALS = [
|
|
469
476
|
/\brecurr(?:ing|ence)\b/i,
|
|
470
477
|
/\bcadence\b/i,
|
|
@@ -563,7 +570,7 @@ var completeCommand = defineCommand2({
|
|
|
563
570
|
import { defineCommand as defineCommand3 } from "citty";
|
|
564
571
|
registerSchema({
|
|
565
572
|
command: "actions.create",
|
|
566
|
-
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`.",
|
|
573
|
+
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. Tag the action with --tags (strongly encouraged \u2014 run `baker actions tags list` for the taxonomy). After creating, check if this action blocks or is blocked by other actions and wire dependencies with `baker actions link`.",
|
|
567
574
|
args: {
|
|
568
575
|
name: { type: "string", description: "Action name (short, action-verb, \u22646 words)", required: true },
|
|
569
576
|
description: {
|
|
@@ -571,6 +578,11 @@ registerSchema({
|
|
|
571
578
|
description: "Context-complete description: what / why / where / done-when",
|
|
572
579
|
required: false
|
|
573
580
|
},
|
|
581
|
+
tags: {
|
|
582
|
+
type: "string",
|
|
583
|
+
description: "Comma-separated tag slugs (e.g. google-ads,audit-finding). Must be known \u2014 see `baker actions tags list`.",
|
|
584
|
+
required: false
|
|
585
|
+
},
|
|
574
586
|
"temp-id": { type: "string", description: "Custom tempId (auto-generated if omitted)", required: false }
|
|
575
587
|
}
|
|
576
588
|
});
|
|
@@ -582,6 +594,7 @@ var createCommand = defineCommand3({
|
|
|
582
594
|
args: {
|
|
583
595
|
name: { type: "string", description: "Action name", required: false },
|
|
584
596
|
description: { type: "string", description: "Description", required: false, default: "" },
|
|
597
|
+
tags: { type: "string", description: "Comma-separated tag slugs (see `baker actions tags list`)", required: false },
|
|
585
598
|
"temp-id": { type: "string", description: "Optional custom tempId", required: false }
|
|
586
599
|
},
|
|
587
600
|
run: async ({ args }) => {
|
|
@@ -592,11 +605,13 @@ var createCommand = defineCommand3({
|
|
|
592
605
|
}
|
|
593
606
|
const chatId = requireChatId();
|
|
594
607
|
const tempId = args["temp-id"] || generateTempId();
|
|
608
|
+
const tags = parseTagList(args.tags);
|
|
595
609
|
const response = await apiPost("/api/actions/create", {
|
|
596
610
|
chatId,
|
|
597
611
|
tempId,
|
|
598
612
|
name,
|
|
599
|
-
description: args.description ?? ""
|
|
613
|
+
description: args.description ?? "",
|
|
614
|
+
...tags ? { tags } : {}
|
|
600
615
|
});
|
|
601
616
|
const hints = [];
|
|
602
617
|
if (looksScheduled(name, args.description ?? "")) {
|
|
@@ -608,6 +623,11 @@ var createCommand = defineCommand3({
|
|
|
608
623
|
if (!args.description) {
|
|
609
624
|
hints.push("Add description: baker actions update <tempId> --description '...' (what/why/where/done-when)");
|
|
610
625
|
}
|
|
626
|
+
if (!tags || tags.length === 0) {
|
|
627
|
+
hints.push(
|
|
628
|
+
"Tag this action so it's filterable in the backlog: re-run with --tags <slug,...> (run `baker actions tags list` for the taxonomy, or `baker actions update <tempId> --tags <slug,...>`)."
|
|
629
|
+
);
|
|
630
|
+
}
|
|
611
631
|
writeJson({ ...response, hints });
|
|
612
632
|
} catch (err) {
|
|
613
633
|
failApi(err);
|
|
@@ -972,8 +992,132 @@ var statusCommand = defineCommand10({
|
|
|
972
992
|
}
|
|
973
993
|
});
|
|
974
994
|
|
|
975
|
-
// src/commands/actions/
|
|
995
|
+
// src/commands/actions/tags/index.ts
|
|
996
|
+
import { defineCommand as defineCommand14 } from "citty";
|
|
997
|
+
|
|
998
|
+
// src/commands/actions/tags/create.ts
|
|
976
999
|
import { defineCommand as defineCommand11 } from "citty";
|
|
1000
|
+
registerSchema({
|
|
1001
|
+
command: "actions.tags.create",
|
|
1002
|
+
description: "Create a company custom action tag, minting a new slug usable with --tags. The name is slugified (lowercased, spaces\u2192hyphens). Use when no existing tag fits the work.",
|
|
1003
|
+
args: {
|
|
1004
|
+
slug: { type: "string", description: "Tag name/slug (e.g. pmax, retargeting)", required: true },
|
|
1005
|
+
description: { type: "string", description: "What this tag means", required: false }
|
|
1006
|
+
}
|
|
1007
|
+
});
|
|
1008
|
+
var tagsCreateCommand = defineCommand11({
|
|
1009
|
+
meta: {
|
|
1010
|
+
name: "create",
|
|
1011
|
+
description: 'Create a custom action tag. Example: baker actions tags create --slug pmax --description "Performance Max work"'
|
|
1012
|
+
},
|
|
1013
|
+
args: {
|
|
1014
|
+
slug: { type: "string", description: "Tag name/slug", required: false },
|
|
1015
|
+
description: { type: "string", description: "Description", required: false }
|
|
1016
|
+
},
|
|
1017
|
+
run: async ({ args }) => {
|
|
1018
|
+
try {
|
|
1019
|
+
const slug = args.slug;
|
|
1020
|
+
if (!slug || slug.trim().length === 0) {
|
|
1021
|
+
failValidation("--slug is required.");
|
|
1022
|
+
}
|
|
1023
|
+
const response = await apiPost("/api/actions/tags/create", {
|
|
1024
|
+
name: slug,
|
|
1025
|
+
description: args.description
|
|
1026
|
+
});
|
|
1027
|
+
writeOk(response.data);
|
|
1028
|
+
} catch (err) {
|
|
1029
|
+
failApi(err);
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
});
|
|
1033
|
+
|
|
1034
|
+
// src/commands/actions/tags/delete.ts
|
|
1035
|
+
import { defineCommand as defineCommand12 } from "citty";
|
|
1036
|
+
registerSchema({
|
|
1037
|
+
command: "actions.tags.delete",
|
|
1038
|
+
description: "Delete a company custom action tag by slug. Built-in default tags cannot be deleted. Existing actions keep the slug (it just stops appearing in the taxonomy).",
|
|
1039
|
+
args: {
|
|
1040
|
+
slug: { type: "string", description: "Custom tag slug to delete", required: true }
|
|
1041
|
+
}
|
|
1042
|
+
});
|
|
1043
|
+
var tagsDeleteCommand = defineCommand12({
|
|
1044
|
+
meta: {
|
|
1045
|
+
name: "delete",
|
|
1046
|
+
description: "Delete a custom action tag. Example: baker actions tags delete --slug pmax"
|
|
1047
|
+
},
|
|
1048
|
+
args: {
|
|
1049
|
+
slug: { type: "string", description: "Custom tag slug", required: false }
|
|
1050
|
+
},
|
|
1051
|
+
run: async ({ args }) => {
|
|
1052
|
+
try {
|
|
1053
|
+
const slug = args.slug;
|
|
1054
|
+
if (!slug || slug.trim().length === 0) {
|
|
1055
|
+
failValidation("--slug is required.");
|
|
1056
|
+
}
|
|
1057
|
+
await apiPost("/api/actions/tags/delete", { name: slug });
|
|
1058
|
+
writeOk();
|
|
1059
|
+
} catch (err) {
|
|
1060
|
+
failApi(err);
|
|
1061
|
+
}
|
|
1062
|
+
}
|
|
1063
|
+
});
|
|
1064
|
+
|
|
1065
|
+
// src/commands/actions/tags/list.ts
|
|
1066
|
+
import { defineCommand as defineCommand13 } from "citty";
|
|
1067
|
+
registerSchema({
|
|
1068
|
+
command: "actions.tags.list",
|
|
1069
|
+
description: "List the available action tag taxonomy (built-in defaults + this company's custom tags). Tags are strict \u2014 only these names are accepted by --tags. Run before tagging.",
|
|
1070
|
+
args: { output: { type: "string", description: "Output format: md|json", required: false, default: "md" } }
|
|
1071
|
+
});
|
|
1072
|
+
var tagsListCommand = defineCommand13({
|
|
1073
|
+
meta: {
|
|
1074
|
+
name: "list",
|
|
1075
|
+
description: "List available action tag names (defaults + company custom tags). Use before --tags. Example: baker actions tags list"
|
|
1076
|
+
},
|
|
1077
|
+
args: { output: { type: "string", description: "Output format: md|json", required: false, default: "md" } },
|
|
1078
|
+
run: async ({ args }) => {
|
|
1079
|
+
try {
|
|
1080
|
+
const { markdown } = await apiGet("/api/actions/tags");
|
|
1081
|
+
if (args.output === "json") {
|
|
1082
|
+
writeJson({ ok: true, data: { markdown } });
|
|
1083
|
+
return;
|
|
1084
|
+
}
|
|
1085
|
+
process.stdout.write(`${markdown.trimEnd()}
|
|
1086
|
+
`);
|
|
1087
|
+
} catch (err) {
|
|
1088
|
+
const code = err instanceof ApiError ? err.code : "INTERNAL_ERROR";
|
|
1089
|
+
const message = err instanceof ApiError ? err.message : "Unexpected error";
|
|
1090
|
+
if (args.output === "json") {
|
|
1091
|
+
writeJson({ ok: false, error: { code, message } });
|
|
1092
|
+
} else {
|
|
1093
|
+
process.stderr.write(`Error: ${message}
|
|
1094
|
+
`);
|
|
1095
|
+
}
|
|
1096
|
+
process.exit(1);
|
|
1097
|
+
}
|
|
1098
|
+
}
|
|
1099
|
+
});
|
|
1100
|
+
|
|
1101
|
+
// src/commands/actions/tags/index.ts
|
|
1102
|
+
var tagsCommand = defineCommand14({
|
|
1103
|
+
meta: {
|
|
1104
|
+
name: "tags",
|
|
1105
|
+
description: `Manage the action tag taxonomy (built-in defaults + company custom tags). Tags are strict \u2014 only listed names work with --tags on create/update.
|
|
1106
|
+
|
|
1107
|
+
Examples:
|
|
1108
|
+
baker actions tags list # available tags (defaults + custom)
|
|
1109
|
+
baker actions tags create --slug pmax --description "\u2026" # mint a custom tag
|
|
1110
|
+
baker actions tags delete --slug pmax # remove a custom tag`
|
|
1111
|
+
},
|
|
1112
|
+
subCommands: {
|
|
1113
|
+
list: tagsListCommand,
|
|
1114
|
+
create: tagsCreateCommand,
|
|
1115
|
+
delete: tagsDeleteCommand
|
|
1116
|
+
}
|
|
1117
|
+
});
|
|
1118
|
+
|
|
1119
|
+
// src/commands/actions/unlink.ts
|
|
1120
|
+
import { defineCommand as defineCommand15 } from "citty";
|
|
977
1121
|
registerSchema({
|
|
978
1122
|
command: "actions.unlink",
|
|
979
1123
|
description: "Stage removal of a 'blocker -> blocked' dependency. The blocked action must be claimed by current chat.",
|
|
@@ -982,7 +1126,7 @@ registerSchema({
|
|
|
982
1126
|
blocked: { type: "string", description: "Blocked action ID (must be claimed by current chat)", required: true }
|
|
983
1127
|
}
|
|
984
1128
|
});
|
|
985
|
-
var unlinkCommand =
|
|
1129
|
+
var unlinkCommand = defineCommand15({
|
|
986
1130
|
meta: {
|
|
987
1131
|
name: "unlink",
|
|
988
1132
|
description: "Stage removal of a dependency. Example: baker actions unlink --blocker <id> --blocked <id>"
|
|
@@ -1014,17 +1158,22 @@ var unlinkCommand = defineCommand11({
|
|
|
1014
1158
|
});
|
|
1015
1159
|
|
|
1016
1160
|
// src/commands/actions/update.ts
|
|
1017
|
-
import { defineCommand as
|
|
1161
|
+
import { defineCommand as defineCommand16 } from "citty";
|
|
1018
1162
|
registerSchema({
|
|
1019
1163
|
command: "actions.update",
|
|
1020
|
-
description: "Stage an update on a claimed action (name and/or
|
|
1164
|
+
description: "Stage an update on a claimed action (name, description, and/or tags). Applies on publish. --tags REPLACES the tag set; pass --tags '' to clear all tags. Tags must be known \u2014 see `baker actions tags list`.",
|
|
1021
1165
|
args: {
|
|
1022
1166
|
id: { type: "string", description: "Action ID (must be claimed by current chat)", required: true },
|
|
1023
1167
|
name: { type: "string", description: "New name", required: false },
|
|
1024
|
-
description: { type: "string", description: "New description", required: false }
|
|
1168
|
+
description: { type: "string", description: "New description", required: false },
|
|
1169
|
+
tags: {
|
|
1170
|
+
type: "string",
|
|
1171
|
+
description: "Comma-separated tag slugs \u2014 REPLACES existing tags ('' clears)",
|
|
1172
|
+
required: false
|
|
1173
|
+
}
|
|
1025
1174
|
}
|
|
1026
1175
|
});
|
|
1027
|
-
var updateCommand =
|
|
1176
|
+
var updateCommand = defineCommand16({
|
|
1028
1177
|
meta: {
|
|
1029
1178
|
name: "update",
|
|
1030
1179
|
description: 'Stage an update on a claimed action. Example: baker actions update <id> --name "New name"'
|
|
@@ -1033,7 +1182,8 @@ var updateCommand = defineCommand12({
|
|
|
1033
1182
|
id: { type: "positional", description: "Action ID", required: false },
|
|
1034
1183
|
"action-id": { type: "string", description: "Action ID", required: false },
|
|
1035
1184
|
name: { type: "string", description: "New name", required: false },
|
|
1036
|
-
description: { type: "string", description: "New description", required: false }
|
|
1185
|
+
description: { type: "string", description: "New description", required: false },
|
|
1186
|
+
tags: { type: "string", description: "Comma-separated tag slugs \u2014 REPLACES existing ('' clears)", required: false }
|
|
1037
1187
|
},
|
|
1038
1188
|
run: async ({ args }) => {
|
|
1039
1189
|
try {
|
|
@@ -1042,15 +1192,17 @@ var updateCommand = defineCommand12({
|
|
|
1042
1192
|
failValidation("Action ID is required.");
|
|
1043
1193
|
}
|
|
1044
1194
|
validateConvexId(id);
|
|
1045
|
-
|
|
1046
|
-
|
|
1195
|
+
const tags = parseTagList(args.tags);
|
|
1196
|
+
if (args.name === void 0 && args.description === void 0 && tags === void 0) {
|
|
1197
|
+
failValidation("Provide at least one of --name, --description, --tags.");
|
|
1047
1198
|
}
|
|
1048
1199
|
const chatId = requireChatId();
|
|
1049
1200
|
await apiPost("/api/actions/update", {
|
|
1050
1201
|
chatId,
|
|
1051
1202
|
actionId: id,
|
|
1052
1203
|
name: args.name,
|
|
1053
|
-
description: args.description
|
|
1204
|
+
description: args.description,
|
|
1205
|
+
...tags !== void 0 ? { tags } : {}
|
|
1054
1206
|
});
|
|
1055
1207
|
writeOk();
|
|
1056
1208
|
} catch (err) {
|
|
@@ -1060,7 +1212,7 @@ var updateCommand = defineCommand12({
|
|
|
1060
1212
|
});
|
|
1061
1213
|
|
|
1062
1214
|
// src/commands/actions/index.ts
|
|
1063
|
-
var actionsCommand =
|
|
1215
|
+
var actionsCommand = defineCommand17({
|
|
1064
1216
|
meta: {
|
|
1065
1217
|
name: "actions",
|
|
1066
1218
|
description: `Manage action items for the current chat. Subcommands: list, draft, get, status, claim, release, create, update, complete, discard, link, unlink.
|
|
@@ -1075,8 +1227,9 @@ Examples:
|
|
|
1075
1227
|
baker actions draft remove temp_hero # drop a staged create (cascades its complete/link ops)
|
|
1076
1228
|
baker actions draft clear # drop everything staged in this chat
|
|
1077
1229
|
baker actions status temp_hero jx123 # batch resolve real IDs and temp_* refs
|
|
1230
|
+
baker actions tags list # available tags (defaults + company custom)
|
|
1078
1231
|
baker actions claim <id>
|
|
1079
|
-
baker actions create --name "Build hero" --description "..."
|
|
1232
|
+
baker actions create --name "Build hero" --tags landing,creative --description "..."
|
|
1080
1233
|
baker actions complete <id>
|
|
1081
1234
|
baker actions discard <id> --reason "obsolete"`
|
|
1082
1235
|
},
|
|
@@ -1092,18 +1245,19 @@ Examples:
|
|
|
1092
1245
|
complete: completeCommand,
|
|
1093
1246
|
discard: discardCommand,
|
|
1094
1247
|
link: linkCommand,
|
|
1095
|
-
unlink: unlinkCommand
|
|
1248
|
+
unlink: unlinkCommand,
|
|
1249
|
+
tags: tagsCommand
|
|
1096
1250
|
}
|
|
1097
1251
|
});
|
|
1098
1252
|
|
|
1099
1253
|
// src/commands/ads/index.ts
|
|
1100
|
-
import { defineCommand as
|
|
1254
|
+
import { defineCommand as defineCommand77 } from "citty";
|
|
1101
1255
|
|
|
1102
1256
|
// src/commands/ads/google/index.ts
|
|
1103
|
-
import { defineCommand as
|
|
1257
|
+
import { defineCommand as defineCommand28 } from "citty";
|
|
1104
1258
|
|
|
1105
1259
|
// src/commands/ads/google/accounts.ts
|
|
1106
|
-
import { defineCommand as
|
|
1260
|
+
import { defineCommand as defineCommand18 } from "citty";
|
|
1107
1261
|
|
|
1108
1262
|
// src/commands/ads/cache.ts
|
|
1109
1263
|
import { createHash } from "crypto";
|
|
@@ -1379,7 +1533,7 @@ function handleAccountsError(err) {
|
|
|
1379
1533
|
writeAdsJson({ ok: false, error: { code: "NETWORK_ERROR", message: "Unexpected error" } });
|
|
1380
1534
|
process.exit(1);
|
|
1381
1535
|
}
|
|
1382
|
-
var accountsCommand =
|
|
1536
|
+
var accountsCommand = defineCommand18({
|
|
1383
1537
|
meta: {
|
|
1384
1538
|
name: "accounts",
|
|
1385
1539
|
description: `List accessible Google Ads accounts. Returns customer IDs needed for all other commands.
|
|
@@ -1419,7 +1573,7 @@ Examples:
|
|
|
1419
1573
|
});
|
|
1420
1574
|
|
|
1421
1575
|
// src/commands/ads/google/changes.ts
|
|
1422
|
-
import { defineCommand as
|
|
1576
|
+
import { defineCommand as defineCommand19 } from "citty";
|
|
1423
1577
|
|
|
1424
1578
|
// src/commands/ads/field-descriptions.ts
|
|
1425
1579
|
var FIELD_DESCRIPTIONS = {
|
|
@@ -1971,7 +2125,7 @@ registerSchema({
|
|
|
1971
2125
|
output: { type: "string", description: "Format: json|csv|jsonl|md", required: false, default: "json" }
|
|
1972
2126
|
}
|
|
1973
2127
|
});
|
|
1974
|
-
var changesCommand =
|
|
2128
|
+
var changesCommand = defineCommand19({
|
|
1975
2129
|
meta: {
|
|
1976
2130
|
name: "changes",
|
|
1977
2131
|
description: `Get recent changes in a Google Ads account with performance data.
|
|
@@ -2022,7 +2176,7 @@ Examples:
|
|
|
2022
2176
|
});
|
|
2023
2177
|
|
|
2024
2178
|
// src/commands/ads/google/currency.ts
|
|
2025
|
-
import { defineCommand as
|
|
2179
|
+
import { defineCommand as defineCommand20 } from "citty";
|
|
2026
2180
|
registerSchema({
|
|
2027
2181
|
command: "ads.google.currency",
|
|
2028
2182
|
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.",
|
|
@@ -2034,7 +2188,7 @@ registerSchema({
|
|
|
2034
2188
|
}
|
|
2035
2189
|
}
|
|
2036
2190
|
});
|
|
2037
|
-
var currencyCommand =
|
|
2191
|
+
var currencyCommand = defineCommand20({
|
|
2038
2192
|
meta: {
|
|
2039
2193
|
name: "currency",
|
|
2040
2194
|
description: `Get account currency code. Use this to interpret metrics.cost_micros values.
|
|
@@ -2083,10 +2237,10 @@ Examples:
|
|
|
2083
2237
|
});
|
|
2084
2238
|
|
|
2085
2239
|
// src/commands/ads/google/keywords/index.ts
|
|
2086
|
-
import { defineCommand as
|
|
2240
|
+
import { defineCommand as defineCommand25 } from "citty";
|
|
2087
2241
|
|
|
2088
2242
|
// src/commands/ads/google/keywords/discover.ts
|
|
2089
|
-
import { defineCommand as
|
|
2243
|
+
import { defineCommand as defineCommand21 } from "citty";
|
|
2090
2244
|
|
|
2091
2245
|
// src/geo-context.ts
|
|
2092
2246
|
var GOOGLE_ADS_LOCATIONS = [
|
|
@@ -2361,7 +2515,7 @@ function handleKeywordError(err) {
|
|
|
2361
2515
|
writeAdsJson({ ok: false, error: { code: "NETWORK_ERROR", message: "Unexpected error" } });
|
|
2362
2516
|
process.exit(1);
|
|
2363
2517
|
}
|
|
2364
|
-
var discoverCommand =
|
|
2518
|
+
var discoverCommand = defineCommand21({
|
|
2365
2519
|
meta: {
|
|
2366
2520
|
name: "discover",
|
|
2367
2521
|
description: `Discover new keyword ideas from seed keywords or competitor URLs.
|
|
@@ -2423,7 +2577,7 @@ Examples:
|
|
|
2423
2577
|
});
|
|
2424
2578
|
|
|
2425
2579
|
// src/commands/ads/google/keywords/languages.ts
|
|
2426
|
-
import { defineCommand as
|
|
2580
|
+
import { defineCommand as defineCommand22 } from "citty";
|
|
2427
2581
|
registerSchema({
|
|
2428
2582
|
command: "ads.google.keywords.languages",
|
|
2429
2583
|
description: "List all supported language IDs for --language flag in Google Ads keyword commands.",
|
|
@@ -2433,7 +2587,7 @@ var FIELDS = {
|
|
|
2433
2587
|
id: "Language ID to pass as --language",
|
|
2434
2588
|
name: "Language name"
|
|
2435
2589
|
};
|
|
2436
|
-
var languagesCommand =
|
|
2590
|
+
var languagesCommand = defineCommand22({
|
|
2437
2591
|
meta: {
|
|
2438
2592
|
name: "languages",
|
|
2439
2593
|
description: "List all supported language IDs for --language flag."
|
|
@@ -2444,7 +2598,7 @@ var languagesCommand = defineCommand18({
|
|
|
2444
2598
|
});
|
|
2445
2599
|
|
|
2446
2600
|
// src/commands/ads/google/keywords/locations.ts
|
|
2447
|
-
import { defineCommand as
|
|
2601
|
+
import { defineCommand as defineCommand23 } from "citty";
|
|
2448
2602
|
registerSchema({
|
|
2449
2603
|
command: "ads.google.keywords.locations",
|
|
2450
2604
|
description: "List all supported geo target IDs for --location flag in Google Ads keyword commands.",
|
|
@@ -2454,7 +2608,7 @@ var FIELDS2 = {
|
|
|
2454
2608
|
id: "Geo target ID to pass as --location",
|
|
2455
2609
|
name: "Country/region name"
|
|
2456
2610
|
};
|
|
2457
|
-
var locationsCommand =
|
|
2611
|
+
var locationsCommand = defineCommand23({
|
|
2458
2612
|
meta: {
|
|
2459
2613
|
name: "locations",
|
|
2460
2614
|
description: "List all supported geo target IDs for --location flag."
|
|
@@ -2465,7 +2619,7 @@ var locationsCommand = defineCommand19({
|
|
|
2465
2619
|
});
|
|
2466
2620
|
|
|
2467
2621
|
// src/commands/ads/google/keywords/metrics.ts
|
|
2468
|
-
import { defineCommand as
|
|
2622
|
+
import { defineCommand as defineCommand24 } from "citty";
|
|
2469
2623
|
registerSchema({
|
|
2470
2624
|
command: "ads.google.keywords.metrics",
|
|
2471
2625
|
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.",
|
|
@@ -2489,7 +2643,7 @@ registerSchema({
|
|
|
2489
2643
|
output: { type: "string", description: "Format: json|csv|jsonl|md", required: false, default: "json" }
|
|
2490
2644
|
}
|
|
2491
2645
|
});
|
|
2492
|
-
var metricsCommand =
|
|
2646
|
+
var metricsCommand = defineCommand24({
|
|
2493
2647
|
meta: {
|
|
2494
2648
|
name: "metrics",
|
|
2495
2649
|
description: `Get historical search metrics for specific keywords.
|
|
@@ -2576,7 +2730,7 @@ Examples:
|
|
|
2576
2730
|
});
|
|
2577
2731
|
|
|
2578
2732
|
// src/commands/ads/google/keywords/index.ts
|
|
2579
|
-
var keywordsCommand =
|
|
2733
|
+
var keywordsCommand = defineCommand25({
|
|
2580
2734
|
meta: {
|
|
2581
2735
|
name: "keywords",
|
|
2582
2736
|
description: `Keyword research tools. Subcommands: discover, metrics, locations, languages.
|
|
@@ -2596,8 +2750,8 @@ Examples:
|
|
|
2596
2750
|
});
|
|
2597
2751
|
|
|
2598
2752
|
// src/commands/ads/google/library/index.ts
|
|
2599
|
-
import { defineCommand as
|
|
2600
|
-
var listAdvertisers =
|
|
2753
|
+
import { defineCommand as defineCommand26 } from "citty";
|
|
2754
|
+
var listAdvertisers = defineCommand26({
|
|
2601
2755
|
meta: {
|
|
2602
2756
|
name: "list-advertisers",
|
|
2603
2757
|
description: "List tracked Google advertisers and their accounts"
|
|
@@ -2614,7 +2768,7 @@ var listAdvertisers = defineCommand22({
|
|
|
2614
2768
|
}
|
|
2615
2769
|
}
|
|
2616
2770
|
});
|
|
2617
|
-
var syncStatus =
|
|
2771
|
+
var syncStatus = defineCommand26({
|
|
2618
2772
|
meta: {
|
|
2619
2773
|
name: "sync-status",
|
|
2620
2774
|
description: "Check the sync status and ad counts of a Google account"
|
|
@@ -2634,7 +2788,7 @@ var syncStatus = defineCommand22({
|
|
|
2634
2788
|
writeAdsJson({ ok: true, data });
|
|
2635
2789
|
}
|
|
2636
2790
|
});
|
|
2637
|
-
var searchAds =
|
|
2791
|
+
var searchAds = defineCommand26({
|
|
2638
2792
|
meta: {
|
|
2639
2793
|
name: "search-ads",
|
|
2640
2794
|
description: "Search and filter Google ads for an account"
|
|
@@ -2691,7 +2845,7 @@ var searchAds = defineCommand22({
|
|
|
2691
2845
|
}
|
|
2692
2846
|
}
|
|
2693
2847
|
});
|
|
2694
|
-
var searchAdvertiser =
|
|
2848
|
+
var searchAdvertiser = defineCommand26({
|
|
2695
2849
|
meta: {
|
|
2696
2850
|
name: "search-advertiser",
|
|
2697
2851
|
description: "Search for an advertiser on the Google Ads Transparency Center"
|
|
@@ -2726,7 +2880,7 @@ var searchAdvertiser = defineCommand22({
|
|
|
2726
2880
|
function sleep(ms) {
|
|
2727
2881
|
return new Promise((resolve5) => setTimeout(resolve5, ms));
|
|
2728
2882
|
}
|
|
2729
|
-
var track =
|
|
2883
|
+
var track = defineCommand26({
|
|
2730
2884
|
meta: {
|
|
2731
2885
|
name: "track",
|
|
2732
2886
|
description: "Track a new Google advertiser (from search results). Waits for initial sync to complete before returning."
|
|
@@ -2784,7 +2938,7 @@ var track = defineCommand22({
|
|
|
2784
2938
|
process.exit(1);
|
|
2785
2939
|
}
|
|
2786
2940
|
});
|
|
2787
|
-
var sync =
|
|
2941
|
+
var sync = defineCommand26({
|
|
2788
2942
|
meta: {
|
|
2789
2943
|
name: "sync",
|
|
2790
2944
|
description: "Trigger an immediate sync for a Google account. Waits for completion before returning."
|
|
@@ -2828,7 +2982,7 @@ var sync = defineCommand22({
|
|
|
2828
2982
|
process.exit(1);
|
|
2829
2983
|
}
|
|
2830
2984
|
});
|
|
2831
|
-
var searchCompetitors =
|
|
2985
|
+
var searchCompetitors = defineCommand26({
|
|
2832
2986
|
meta: {
|
|
2833
2987
|
name: "search-competitors",
|
|
2834
2988
|
description: "Search for competitors running Google ads for a keyword (DataForSEO)"
|
|
@@ -2860,7 +3014,7 @@ var searchCompetitors = defineCommand22({
|
|
|
2860
3014
|
}
|
|
2861
3015
|
}
|
|
2862
3016
|
});
|
|
2863
|
-
var library =
|
|
3017
|
+
var library = defineCommand26({
|
|
2864
3018
|
meta: {
|
|
2865
3019
|
name: "library",
|
|
2866
3020
|
description: "Manage and search the Google Ads Library"
|
|
@@ -2879,7 +3033,7 @@ var library = defineCommand22({
|
|
|
2879
3033
|
// src/commands/ads/google/query.ts
|
|
2880
3034
|
import { appendFileSync, existsSync as existsSync2, readFileSync as readFileSync2, writeFileSync as writeFileSync2 } from "fs";
|
|
2881
3035
|
import { resolve } from "path";
|
|
2882
|
-
import { defineCommand as
|
|
3036
|
+
import { defineCommand as defineCommand27 } from "citty";
|
|
2883
3037
|
|
|
2884
3038
|
// src/commands/ads/google/preflight.ts
|
|
2885
3039
|
function buildCommand2(query, customerId) {
|
|
@@ -3335,7 +3489,7 @@ function handleQueryError(err, finalQuery, customerId) {
|
|
|
3335
3489
|
});
|
|
3336
3490
|
process.exit(1);
|
|
3337
3491
|
}
|
|
3338
|
-
var queryCommand =
|
|
3492
|
+
var queryCommand = defineCommand27({
|
|
3339
3493
|
meta: {
|
|
3340
3494
|
name: "query",
|
|
3341
3495
|
description: `Run GAQL queries against Google Ads. Supports raw GAQL, presets, pagination, file export, and caching.
|
|
@@ -3393,7 +3547,7 @@ Examples:
|
|
|
3393
3547
|
});
|
|
3394
3548
|
|
|
3395
3549
|
// src/commands/ads/google/index.ts
|
|
3396
|
-
var googleCommand =
|
|
3550
|
+
var googleCommand = defineCommand28({
|
|
3397
3551
|
meta: {
|
|
3398
3552
|
name: "google",
|
|
3399
3553
|
description: `Google Ads commands. Query campaigns, keywords, search terms, and more via GAQL.
|
|
@@ -3421,7 +3575,7 @@ Examples:
|
|
|
3421
3575
|
});
|
|
3422
3576
|
|
|
3423
3577
|
// src/commands/ads/linkedin/index.ts
|
|
3424
|
-
import { defineCommand as
|
|
3578
|
+
import { defineCommand as defineCommand46 } from "citty";
|
|
3425
3579
|
|
|
3426
3580
|
// src/commands/ads/linkedin/schemas.ts
|
|
3427
3581
|
registerSchema({
|
|
@@ -3721,7 +3875,7 @@ registerSchema({
|
|
|
3721
3875
|
});
|
|
3722
3876
|
|
|
3723
3877
|
// src/commands/ads/linkedin/account.ts
|
|
3724
|
-
import { defineCommand as
|
|
3878
|
+
import { defineCommand as defineCommand29 } from "citty";
|
|
3725
3879
|
|
|
3726
3880
|
// src/commands/ads/linkedin/shared.ts
|
|
3727
3881
|
var DAY_MS = 864e5;
|
|
@@ -3824,7 +3978,7 @@ function resolveStatusFilter(args) {
|
|
|
3824
3978
|
}
|
|
3825
3979
|
|
|
3826
3980
|
// src/commands/ads/linkedin/account.ts
|
|
3827
|
-
var accountCommand =
|
|
3981
|
+
var accountCommand = defineCommand29({
|
|
3828
3982
|
meta: {
|
|
3829
3983
|
name: "account",
|
|
3830
3984
|
description: `Single LinkedIn ad account detail (currency, status, type).
|
|
@@ -3858,9 +4012,9 @@ Examples:
|
|
|
3858
4012
|
});
|
|
3859
4013
|
|
|
3860
4014
|
// src/commands/ads/linkedin/accounts.ts
|
|
3861
|
-
import { defineCommand as
|
|
4015
|
+
import { defineCommand as defineCommand30 } from "citty";
|
|
3862
4016
|
var ACCOUNTS_TTL_MS = 60 * 60 * 1e3;
|
|
3863
|
-
var accountsCommand2 =
|
|
4017
|
+
var accountsCommand2 = defineCommand30({
|
|
3864
4018
|
meta: {
|
|
3865
4019
|
name: "accounts",
|
|
3866
4020
|
description: `List LinkedIn ad accounts in this company's connected scope.
|
|
@@ -3908,7 +4062,7 @@ Examples:
|
|
|
3908
4062
|
});
|
|
3909
4063
|
|
|
3910
4064
|
// src/commands/ads/linkedin/analytics.ts
|
|
3911
|
-
import { defineCommand as
|
|
4065
|
+
import { defineCommand as defineCommand31 } from "citty";
|
|
3912
4066
|
|
|
3913
4067
|
// src/commands/ads/linkedin/presets.ts
|
|
3914
4068
|
var INTENTS = {
|
|
@@ -4180,7 +4334,7 @@ function numberOf(v) {
|
|
|
4180
4334
|
}
|
|
4181
4335
|
return 0;
|
|
4182
4336
|
}
|
|
4183
|
-
var analyticsCommand =
|
|
4337
|
+
var analyticsCommand = defineCommand31({
|
|
4184
4338
|
meta: {
|
|
4185
4339
|
name: "analytics",
|
|
4186
4340
|
description: `Performance reporting \u2014 the workhorse for AI agents.
|
|
@@ -4308,7 +4462,7 @@ Examples \u2014 common AI questions:
|
|
|
4308
4462
|
|
|
4309
4463
|
// src/commands/ads/linkedin/audience-size.ts
|
|
4310
4464
|
import { readFileSync as readFileSync3 } from "fs";
|
|
4311
|
-
import { defineCommand as
|
|
4465
|
+
import { defineCommand as defineCommand32 } from "citty";
|
|
4312
4466
|
function loadTargeting(args) {
|
|
4313
4467
|
const inline = args.targeting;
|
|
4314
4468
|
if (inline) {
|
|
@@ -4330,7 +4484,7 @@ function loadTargeting(args) {
|
|
|
4330
4484
|
}
|
|
4331
4485
|
handleLinkedinError(new Error("Pass --targeting-file <path> or --targeting '{...JSON...}'"));
|
|
4332
4486
|
}
|
|
4333
|
-
var audienceSizeCommand =
|
|
4487
|
+
var audienceSizeCommand = defineCommand32({
|
|
4334
4488
|
meta: {
|
|
4335
4489
|
name: "audience-size",
|
|
4336
4490
|
description: `Estimate audience size for a targeting payload \u2014 pre-launch sanity check.
|
|
@@ -4375,7 +4529,7 @@ Examples:
|
|
|
4375
4529
|
});
|
|
4376
4530
|
|
|
4377
4531
|
// src/commands/ads/linkedin/audit.ts
|
|
4378
|
-
import { defineCommand as
|
|
4532
|
+
import { defineCommand as defineCommand33 } from "citty";
|
|
4379
4533
|
var SEVERITY_RANK = {
|
|
4380
4534
|
critical: 0,
|
|
4381
4535
|
high: 1,
|
|
@@ -4434,7 +4588,7 @@ function noteOf(f) {
|
|
|
4434
4588
|
const fix = f.fix?.explanation ?? "";
|
|
4435
4589
|
return [fix, ev].filter(Boolean).join(" \u2014 ");
|
|
4436
4590
|
}
|
|
4437
|
-
var auditCommand =
|
|
4591
|
+
var auditCommand = defineCommand33({
|
|
4438
4592
|
meta: {
|
|
4439
4593
|
name: "audit",
|
|
4440
4594
|
description: `Run a LinkedIn Ads playbook audit \u2014 30+ checks across Settings, Tracking,
|
|
@@ -4501,7 +4655,7 @@ Examples:
|
|
|
4501
4655
|
|
|
4502
4656
|
// src/commands/ads/linkedin/bid-pricing.ts
|
|
4503
4657
|
import { readFileSync as readFileSync4 } from "fs";
|
|
4504
|
-
import { defineCommand as
|
|
4658
|
+
import { defineCommand as defineCommand34 } from "citty";
|
|
4505
4659
|
function loadTargeting2(args) {
|
|
4506
4660
|
const inline = args.targeting;
|
|
4507
4661
|
if (inline) {
|
|
@@ -4523,7 +4677,7 @@ function loadTargeting2(args) {
|
|
|
4523
4677
|
}
|
|
4524
4678
|
handleLinkedinError(new Error("Pass --targeting-file <path> or --targeting '{...JSON...}'"));
|
|
4525
4679
|
}
|
|
4526
|
-
var bidPricingCommand =
|
|
4680
|
+
var bidPricingCommand = defineCommand34({
|
|
4527
4681
|
meta: {
|
|
4528
4682
|
name: "bid-pricing",
|
|
4529
4683
|
description: `Get LinkedIn's suggested bid range for a targeting + objective + cost type.
|
|
@@ -4573,8 +4727,8 @@ Examples:
|
|
|
4573
4727
|
});
|
|
4574
4728
|
|
|
4575
4729
|
// src/commands/ads/linkedin/campaign-groups.ts
|
|
4576
|
-
import { defineCommand as
|
|
4577
|
-
var campaignGroupsCommand =
|
|
4730
|
+
import { defineCommand as defineCommand35 } from "citty";
|
|
4731
|
+
var campaignGroupsCommand = defineCommand35({
|
|
4578
4732
|
meta: {
|
|
4579
4733
|
name: "campaign-groups",
|
|
4580
4734
|
description: `List LinkedIn campaign groups.
|
|
@@ -4617,8 +4771,8 @@ Examples:
|
|
|
4617
4771
|
});
|
|
4618
4772
|
|
|
4619
4773
|
// src/commands/ads/linkedin/campaigns.ts
|
|
4620
|
-
import { defineCommand as
|
|
4621
|
-
var campaignsCommand =
|
|
4774
|
+
import { defineCommand as defineCommand36 } from "citty";
|
|
4775
|
+
var campaignsCommand = defineCommand36({
|
|
4622
4776
|
meta: {
|
|
4623
4777
|
name: "campaigns",
|
|
4624
4778
|
description: `List LinkedIn campaigns.
|
|
@@ -4667,8 +4821,8 @@ Examples:
|
|
|
4667
4821
|
});
|
|
4668
4822
|
|
|
4669
4823
|
// src/commands/ads/linkedin/conversation.ts
|
|
4670
|
-
import { defineCommand as
|
|
4671
|
-
var conversationCommand =
|
|
4824
|
+
import { defineCommand as defineCommand37 } from "citty";
|
|
4825
|
+
var conversationCommand = defineCommand37({
|
|
4672
4826
|
meta: {
|
|
4673
4827
|
name: "conversation",
|
|
4674
4828
|
description: `Per-button click rates inside Sponsored Messaging / Conversation Ads.
|
|
@@ -4731,7 +4885,7 @@ Examples:
|
|
|
4731
4885
|
});
|
|
4732
4886
|
|
|
4733
4887
|
// src/commands/ads/linkedin/conversions.ts
|
|
4734
|
-
import { defineCommand as
|
|
4888
|
+
import { defineCommand as defineCommand38 } from "citty";
|
|
4735
4889
|
var DAY_MS2 = 864e5;
|
|
4736
4890
|
function healthOf(rules) {
|
|
4737
4891
|
const enabled = rules.filter((r) => r.enabled !== false);
|
|
@@ -4757,7 +4911,7 @@ function healthOf(rules) {
|
|
|
4757
4911
|
wrongLeadDedup: wrongDedup
|
|
4758
4912
|
};
|
|
4759
4913
|
}
|
|
4760
|
-
var listCmd =
|
|
4914
|
+
var listCmd = defineCommand38({
|
|
4761
4915
|
meta: {
|
|
4762
4916
|
name: "list",
|
|
4763
4917
|
description: `List conversion rules on the account.`
|
|
@@ -4785,7 +4939,7 @@ var listCmd = defineCommand34({
|
|
|
4785
4939
|
}
|
|
4786
4940
|
}
|
|
4787
4941
|
});
|
|
4788
|
-
var healthCmd =
|
|
4942
|
+
var healthCmd = defineCommand38({
|
|
4789
4943
|
meta: {
|
|
4790
4944
|
name: "health",
|
|
4791
4945
|
description: `5-point Insight Tag / CAPI health check (playbook \xA707).
|
|
@@ -4815,7 +4969,7 @@ Surfaces:
|
|
|
4815
4969
|
}
|
|
4816
4970
|
}
|
|
4817
4971
|
});
|
|
4818
|
-
var conversionsCommand =
|
|
4972
|
+
var conversionsCommand = defineCommand38({
|
|
4819
4973
|
meta: {
|
|
4820
4974
|
name: "conversions",
|
|
4821
4975
|
description: `Conversion rules \u2014 Insight Tag and Conversions API.
|
|
@@ -4831,8 +4985,8 @@ Subcommands:
|
|
|
4831
4985
|
});
|
|
4832
4986
|
|
|
4833
4987
|
// src/commands/ads/linkedin/creatives.ts
|
|
4834
|
-
import { defineCommand as
|
|
4835
|
-
var creativesCommand =
|
|
4988
|
+
import { defineCommand as defineCommand39 } from "citty";
|
|
4989
|
+
var creativesCommand = defineCommand39({
|
|
4836
4990
|
meta: {
|
|
4837
4991
|
name: "creatives",
|
|
4838
4992
|
description: `List LinkedIn creatives (ads).
|
|
@@ -4881,7 +5035,7 @@ Examples:
|
|
|
4881
5035
|
});
|
|
4882
5036
|
|
|
4883
5037
|
// src/commands/ads/linkedin/demographics.ts
|
|
4884
|
-
import { defineCommand as
|
|
5038
|
+
import { defineCommand as defineCommand40 } from "citty";
|
|
4885
5039
|
var DEFAULT_PIVOTS = ["job-title", "company", "industry", "seniority", "job-function", "company-size"];
|
|
4886
5040
|
function numberOf2(v) {
|
|
4887
5041
|
if (typeof v === "number") return Number.isFinite(v) ? v : 0;
|
|
@@ -4894,7 +5048,7 @@ function numberOf2(v) {
|
|
|
4894
5048
|
function topByImpressions(rows, limit) {
|
|
4895
5049
|
return [...rows].sort((a, b) => numberOf2(b.impressions) - numberOf2(a.impressions)).slice(0, limit);
|
|
4896
5050
|
}
|
|
4897
|
-
var demographicsCommand =
|
|
5051
|
+
var demographicsCommand = defineCommand40({
|
|
4898
5052
|
meta: {
|
|
4899
5053
|
name: "demographics",
|
|
4900
5054
|
description: `Sweep all firmographic pivots in one command \u2014 LinkedIn's superpower.
|
|
@@ -4991,8 +5145,8 @@ function resolveRange(args) {
|
|
|
4991
5145
|
}
|
|
4992
5146
|
|
|
4993
5147
|
// src/commands/ads/linkedin/facets.ts
|
|
4994
|
-
import { defineCommand as
|
|
4995
|
-
var listCmd2 =
|
|
5148
|
+
import { defineCommand as defineCommand41 } from "citty";
|
|
5149
|
+
var listCmd2 = defineCommand41({
|
|
4996
5150
|
meta: {
|
|
4997
5151
|
name: "list",
|
|
4998
5152
|
description: `List every targeting facet LinkedIn supports.
|
|
@@ -5020,7 +5174,7 @@ seniorities, titles, employers, growthRate, companyCategory, skills, etc.).`
|
|
|
5020
5174
|
}
|
|
5021
5175
|
}
|
|
5022
5176
|
});
|
|
5023
|
-
var valuesCmd =
|
|
5177
|
+
var valuesCmd = defineCommand41({
|
|
5024
5178
|
meta: {
|
|
5025
5179
|
name: "values",
|
|
5026
5180
|
description: `Look up entity values for a single facet \u2014 full list or typeahead search.
|
|
@@ -5061,7 +5215,7 @@ or the full URN (urn:li:adTargetingFacet:industries).`
|
|
|
5061
5215
|
}
|
|
5062
5216
|
}
|
|
5063
5217
|
});
|
|
5064
|
-
var facetsCommand =
|
|
5218
|
+
var facetsCommand = defineCommand41({
|
|
5065
5219
|
meta: {
|
|
5066
5220
|
name: "facets",
|
|
5067
5221
|
description: `LinkedIn targeting facets and entity lookup.
|
|
@@ -5079,7 +5233,7 @@ Subcommands:
|
|
|
5079
5233
|
|
|
5080
5234
|
// src/commands/ads/linkedin/forecast.ts
|
|
5081
5235
|
import { readFileSync as readFileSync5 } from "fs";
|
|
5082
|
-
import { defineCommand as
|
|
5236
|
+
import { defineCommand as defineCommand42 } from "citty";
|
|
5083
5237
|
function loadTargeting3(args) {
|
|
5084
5238
|
const inline = args.targeting;
|
|
5085
5239
|
if (inline) {
|
|
@@ -5109,7 +5263,7 @@ function parseMoney(raw) {
|
|
|
5109
5263
|
}
|
|
5110
5264
|
return { amount: m[1] ?? "0", currencyCode: m[2] ?? "USD" };
|
|
5111
5265
|
}
|
|
5112
|
-
var forecastCommand =
|
|
5266
|
+
var forecastCommand = defineCommand42({
|
|
5113
5267
|
meta: {
|
|
5114
5268
|
name: "forecast",
|
|
5115
5269
|
description: `Forecast reach + impressions + clicks + spend for a hypothetical campaign.
|
|
@@ -5156,9 +5310,9 @@ Examples:
|
|
|
5156
5310
|
});
|
|
5157
5311
|
|
|
5158
5312
|
// src/commands/ads/linkedin/leads.ts
|
|
5159
|
-
import { defineCommand as
|
|
5313
|
+
import { defineCommand as defineCommand43 } from "citty";
|
|
5160
5314
|
var DAY_MS3 = 864e5;
|
|
5161
|
-
var leadsCommand =
|
|
5315
|
+
var leadsCommand = defineCommand43({
|
|
5162
5316
|
meta: {
|
|
5163
5317
|
name: "leads",
|
|
5164
5318
|
description: `List Lead Gen Form responses (playbook \xA707).
|
|
@@ -5218,7 +5372,7 @@ Examples:
|
|
|
5218
5372
|
});
|
|
5219
5373
|
|
|
5220
5374
|
// src/commands/ads/linkedin/resolve.ts
|
|
5221
|
-
import { defineCommand as
|
|
5375
|
+
import { defineCommand as defineCommand44 } from "citty";
|
|
5222
5376
|
function toOrgUrn(raw) {
|
|
5223
5377
|
const trimmed = raw.trim();
|
|
5224
5378
|
if (trimmed.length === 0) {
|
|
@@ -5229,7 +5383,7 @@ function toOrgUrn(raw) {
|
|
|
5229
5383
|
}
|
|
5230
5384
|
return /^\d+$/.test(trimmed) ? `urn:li:organization:${trimmed}` : null;
|
|
5231
5385
|
}
|
|
5232
|
-
var resolveCommand =
|
|
5386
|
+
var resolveCommand = defineCommand44({
|
|
5233
5387
|
meta: {
|
|
5234
5388
|
name: "resolve",
|
|
5235
5389
|
description: `Resolve organization URNs to company names.
|
|
@@ -5271,8 +5425,8 @@ couldn't be resolved \u2014 typically an org outside LinkedIn's targetable set.`
|
|
|
5271
5425
|
});
|
|
5272
5426
|
|
|
5273
5427
|
// src/commands/ads/linkedin/top-companies.ts
|
|
5274
|
-
import { defineCommand as
|
|
5275
|
-
var topCompaniesCommand =
|
|
5428
|
+
import { defineCommand as defineCommand45 } from "citty";
|
|
5429
|
+
var topCompaniesCommand = defineCommand45({
|
|
5276
5430
|
meta: {
|
|
5277
5431
|
name: "top-companies",
|
|
5278
5432
|
description: `Top companies whose employees saw / clicked / converted on a campaign.
|
|
@@ -5343,7 +5497,7 @@ Examples:
|
|
|
5343
5497
|
});
|
|
5344
5498
|
|
|
5345
5499
|
// src/commands/ads/linkedin/index.ts
|
|
5346
|
-
var linkedinCommand =
|
|
5500
|
+
var linkedinCommand = defineCommand46({
|
|
5347
5501
|
meta: {
|
|
5348
5502
|
name: "linkedin",
|
|
5349
5503
|
description: `LinkedIn Marketing API \u2014 AI-first command surface for B2B ad insights.
|
|
@@ -5395,10 +5549,10 @@ Account ID format:
|
|
|
5395
5549
|
});
|
|
5396
5550
|
|
|
5397
5551
|
// src/commands/ads/meta/index.ts
|
|
5398
|
-
import { defineCommand as
|
|
5552
|
+
import { defineCommand as defineCommand59 } from "citty";
|
|
5399
5553
|
|
|
5400
5554
|
// src/commands/ads/meta/account.ts
|
|
5401
|
-
import { defineCommand as
|
|
5555
|
+
import { defineCommand as defineCommand47 } from "citty";
|
|
5402
5556
|
|
|
5403
5557
|
// src/commands/ads/meta/shared.ts
|
|
5404
5558
|
var DAY_MS4 = 864e5;
|
|
@@ -5477,7 +5631,7 @@ function resolveEffectiveStatus(args) {
|
|
|
5477
5631
|
}
|
|
5478
5632
|
|
|
5479
5633
|
// src/commands/ads/meta/account.ts
|
|
5480
|
-
var accountCommand2 =
|
|
5634
|
+
var accountCommand2 = defineCommand47({
|
|
5481
5635
|
meta: {
|
|
5482
5636
|
name: "account",
|
|
5483
5637
|
description: `Show single Meta ad account detail (currency, timezone, balance, business).
|
|
@@ -5504,8 +5658,8 @@ Examples:
|
|
|
5504
5658
|
});
|
|
5505
5659
|
|
|
5506
5660
|
// src/commands/ads/meta/accounts.ts
|
|
5507
|
-
import { defineCommand as
|
|
5508
|
-
var accountsCommand3 =
|
|
5661
|
+
import { defineCommand as defineCommand48 } from "citty";
|
|
5662
|
+
var accountsCommand3 = defineCommand48({
|
|
5509
5663
|
meta: {
|
|
5510
5664
|
name: "accounts",
|
|
5511
5665
|
description: `List Meta ad accounts in this company's connected scope.
|
|
@@ -5553,8 +5707,8 @@ Examples:
|
|
|
5553
5707
|
});
|
|
5554
5708
|
|
|
5555
5709
|
// src/commands/ads/meta/activities.ts
|
|
5556
|
-
import { defineCommand as
|
|
5557
|
-
var activitiesCommand =
|
|
5710
|
+
import { defineCommand as defineCommand49 } from "citty";
|
|
5711
|
+
var activitiesCommand = defineCommand49({
|
|
5558
5712
|
meta: {
|
|
5559
5713
|
name: "activities",
|
|
5560
5714
|
description: `Audit log of recent ad-account changes (created, paused, edited). Default lookback 7 days,
|
|
@@ -5591,8 +5745,8 @@ Examples:
|
|
|
5591
5745
|
});
|
|
5592
5746
|
|
|
5593
5747
|
// src/commands/ads/meta/ads.ts
|
|
5594
|
-
import { defineCommand as
|
|
5595
|
-
var adsListCommand =
|
|
5748
|
+
import { defineCommand as defineCommand50 } from "citty";
|
|
5749
|
+
var adsListCommand = defineCommand50({
|
|
5596
5750
|
meta: {
|
|
5597
5751
|
name: "ads",
|
|
5598
5752
|
description: `List ads in a Meta ad account. Defaults to ACTIVE only \u2014 pass --all-statuses to widen.
|
|
@@ -5640,8 +5794,8 @@ Examples:
|
|
|
5640
5794
|
});
|
|
5641
5795
|
|
|
5642
5796
|
// src/commands/ads/meta/adsets.ts
|
|
5643
|
-
import { defineCommand as
|
|
5644
|
-
var adsetsCommand =
|
|
5797
|
+
import { defineCommand as defineCommand51 } from "citty";
|
|
5798
|
+
var adsetsCommand = defineCommand51({
|
|
5645
5799
|
meta: {
|
|
5646
5800
|
name: "adsets",
|
|
5647
5801
|
description: `List ad sets in a Meta ad account, optionally scoped to one campaign. Defaults to ACTIVE only.
|
|
@@ -5683,8 +5837,8 @@ Examples:
|
|
|
5683
5837
|
});
|
|
5684
5838
|
|
|
5685
5839
|
// src/commands/ads/meta/audiences.ts
|
|
5686
|
-
import { defineCommand as
|
|
5687
|
-
var audiencesCommand =
|
|
5840
|
+
import { defineCommand as defineCommand52 } from "citty";
|
|
5841
|
+
var audiencesCommand = defineCommand52({
|
|
5688
5842
|
meta: {
|
|
5689
5843
|
name: "audiences",
|
|
5690
5844
|
description: `List custom audiences for a Meta ad account. Includes lookalikes, website-pixel audiences,
|
|
@@ -5719,8 +5873,8 @@ Examples:
|
|
|
5719
5873
|
});
|
|
5720
5874
|
|
|
5721
5875
|
// src/commands/ads/meta/businesses.ts
|
|
5722
|
-
import { defineCommand as
|
|
5723
|
-
var businessesCommand =
|
|
5876
|
+
import { defineCommand as defineCommand53 } from "citty";
|
|
5877
|
+
var businessesCommand = defineCommand53({
|
|
5724
5878
|
meta: {
|
|
5725
5879
|
name: "businesses",
|
|
5726
5880
|
description: `List Meta Business Manager accounts the connected user has access to. Required for ad-studies and product-catalogs commands.
|
|
@@ -5750,8 +5904,8 @@ Examples:
|
|
|
5750
5904
|
});
|
|
5751
5905
|
|
|
5752
5906
|
// src/commands/ads/meta/campaigns.ts
|
|
5753
|
-
import { defineCommand as
|
|
5754
|
-
var campaignsCommand2 =
|
|
5907
|
+
import { defineCommand as defineCommand54 } from "citty";
|
|
5908
|
+
var campaignsCommand2 = defineCommand54({
|
|
5755
5909
|
meta: {
|
|
5756
5910
|
name: "campaigns",
|
|
5757
5911
|
description: `List campaigns for a Meta ad account. Defaults to ACTIVE only \u2014 pass --all-statuses to widen.
|
|
@@ -5795,8 +5949,8 @@ Examples:
|
|
|
5795
5949
|
});
|
|
5796
5950
|
|
|
5797
5951
|
// src/commands/ads/meta/creatives.ts
|
|
5798
|
-
import { defineCommand as
|
|
5799
|
-
var creativesCommand2 =
|
|
5952
|
+
import { defineCommand as defineCommand55 } from "citty";
|
|
5953
|
+
var creativesCommand2 = defineCommand55({
|
|
5800
5954
|
meta: {
|
|
5801
5955
|
name: "creatives",
|
|
5802
5956
|
description: `List ad creatives in an account, or fetch a single creative by ID.
|
|
@@ -5840,7 +5994,7 @@ Examples:
|
|
|
5840
5994
|
});
|
|
5841
5995
|
|
|
5842
5996
|
// src/commands/ads/meta/insights.ts
|
|
5843
|
-
import { defineCommand as
|
|
5997
|
+
import { defineCommand as defineCommand56 } from "citty";
|
|
5844
5998
|
|
|
5845
5999
|
// src/commands/ads/meta/presets.ts
|
|
5846
6000
|
var INSIGHTS_INTENTS = {
|
|
@@ -6045,7 +6199,7 @@ function sortRowsBySpendDesc(rows) {
|
|
|
6045
6199
|
return sb - sa;
|
|
6046
6200
|
});
|
|
6047
6201
|
}
|
|
6048
|
-
var insightsCommand =
|
|
6202
|
+
var insightsCommand = defineCommand56({
|
|
6049
6203
|
meta: {
|
|
6050
6204
|
name: "insights",
|
|
6051
6205
|
description: `Performance reporting \u2014 the main Meta tool for AI agents.
|
|
@@ -6146,8 +6300,8 @@ Async is automatic for heavy queries; pass --async to force it, or --no-async to
|
|
|
6146
6300
|
});
|
|
6147
6301
|
|
|
6148
6302
|
// src/commands/ads/meta/pixels.ts
|
|
6149
|
-
import { defineCommand as
|
|
6150
|
-
var pixelsCommand =
|
|
6303
|
+
import { defineCommand as defineCommand57 } from "citty";
|
|
6304
|
+
var pixelsCommand = defineCommand57({
|
|
6151
6305
|
meta: {
|
|
6152
6306
|
name: "pixels",
|
|
6153
6307
|
description: `List Meta Pixels for an ad account, or fetch firing stats for one pixel.
|
|
@@ -6218,7 +6372,7 @@ function emit(data, args) {
|
|
|
6218
6372
|
|
|
6219
6373
|
// src/commands/ads/meta/preview.ts
|
|
6220
6374
|
import { writeFileSync as writeFileSync3 } from "fs";
|
|
6221
|
-
import { defineCommand as
|
|
6375
|
+
import { defineCommand as defineCommand58 } from "citty";
|
|
6222
6376
|
var VALID_AD_FORMATS = [
|
|
6223
6377
|
"DESKTOP_FEED_STANDARD",
|
|
6224
6378
|
"MOBILE_FEED_STANDARD",
|
|
@@ -6252,7 +6406,7 @@ var VALID_AD_FORMATS = [
|
|
|
6252
6406
|
"MARKETPLACE_MOBILE",
|
|
6253
6407
|
"BIZ_DISCO_FEED_MOBILE"
|
|
6254
6408
|
];
|
|
6255
|
-
var previewCommand =
|
|
6409
|
+
var previewCommand = defineCommand58({
|
|
6256
6410
|
meta: {
|
|
6257
6411
|
name: "preview",
|
|
6258
6412
|
description: `Generate a Meta-hosted preview iframe for a creative or ad. Returns iframe HTML which you
|
|
@@ -6299,7 +6453,7 @@ Examples:
|
|
|
6299
6453
|
});
|
|
6300
6454
|
|
|
6301
6455
|
// src/commands/ads/meta/index.ts
|
|
6302
|
-
var metaCommand =
|
|
6456
|
+
var metaCommand = defineCommand59({
|
|
6303
6457
|
meta: {
|
|
6304
6458
|
name: "meta",
|
|
6305
6459
|
description: `Meta Marketing API \u2014 AI-first command surface (Facebook + Instagram ads).
|
|
@@ -6351,10 +6505,10 @@ Audit & review:
|
|
|
6351
6505
|
});
|
|
6352
6506
|
|
|
6353
6507
|
// src/commands/ads/x/index.ts
|
|
6354
|
-
import { defineCommand as
|
|
6508
|
+
import { defineCommand as defineCommand76 } from "citty";
|
|
6355
6509
|
|
|
6356
6510
|
// src/commands/ads/x/accounts.ts
|
|
6357
|
-
import { defineCommand as
|
|
6511
|
+
import { defineCommand as defineCommand60 } from "citty";
|
|
6358
6512
|
registerSchema({
|
|
6359
6513
|
command: "ads.x.accounts",
|
|
6360
6514
|
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.",
|
|
@@ -6382,7 +6536,7 @@ function handleAccountsError2(err) {
|
|
|
6382
6536
|
writeAdsJson({ ok: false, error: { code: "NETWORK_ERROR", message: "Unexpected error" } });
|
|
6383
6537
|
process.exit(1);
|
|
6384
6538
|
}
|
|
6385
|
-
var accountsCommand4 =
|
|
6539
|
+
var accountsCommand4 = defineCommand60({
|
|
6386
6540
|
meta: {
|
|
6387
6541
|
name: "accounts",
|
|
6388
6542
|
description: `List accessible X Ads accounts. Returns account IDs needed for all other commands.
|
|
@@ -6422,7 +6576,7 @@ Examples:
|
|
|
6422
6576
|
});
|
|
6423
6577
|
|
|
6424
6578
|
// src/commands/ads/x/active-entities.ts
|
|
6425
|
-
import { defineCommand as
|
|
6579
|
+
import { defineCommand as defineCommand61 } from "citty";
|
|
6426
6580
|
|
|
6427
6581
|
// src/commands/ads/x/error-parser.ts
|
|
6428
6582
|
function mapXErrorCode(message) {
|
|
@@ -6573,7 +6727,7 @@ function parseCsv(v) {
|
|
|
6573
6727
|
const parts = v.split(",").map((s) => s.trim()).filter(Boolean);
|
|
6574
6728
|
return parts.length > 0 ? parts : void 0;
|
|
6575
6729
|
}
|
|
6576
|
-
var activeEntitiesCommand =
|
|
6730
|
+
var activeEntitiesCommand = defineCommand61({
|
|
6577
6731
|
meta: {
|
|
6578
6732
|
name: "active-entities",
|
|
6579
6733
|
description: `List entities with metric activity in a time range.
|
|
@@ -6631,7 +6785,7 @@ Examples:
|
|
|
6631
6785
|
});
|
|
6632
6786
|
|
|
6633
6787
|
// src/commands/ads/x/audiences.ts
|
|
6634
|
-
import { defineCommand as
|
|
6788
|
+
import { defineCommand as defineCommand62 } from "citty";
|
|
6635
6789
|
registerSchema({
|
|
6636
6790
|
command: "ads.x.audiences",
|
|
6637
6791
|
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.",
|
|
@@ -6640,7 +6794,7 @@ registerSchema({
|
|
|
6640
6794
|
"no-cache": { type: "boolean", description: "Skip cache", required: false }
|
|
6641
6795
|
}
|
|
6642
6796
|
});
|
|
6643
|
-
var audiencesCommand2 =
|
|
6797
|
+
var audiencesCommand2 = defineCommand62({
|
|
6644
6798
|
meta: {
|
|
6645
6799
|
name: "audiences",
|
|
6646
6800
|
description: `List X Ads custom audiences.
|
|
@@ -6689,7 +6843,7 @@ Examples:
|
|
|
6689
6843
|
});
|
|
6690
6844
|
|
|
6691
6845
|
// src/commands/ads/x/campaigns.ts
|
|
6692
|
-
import { defineCommand as
|
|
6846
|
+
import { defineCommand as defineCommand63 } from "citty";
|
|
6693
6847
|
|
|
6694
6848
|
// src/commands/ads/x/run-list.ts
|
|
6695
6849
|
function buildCleanParams(opts) {
|
|
@@ -6752,7 +6906,7 @@ registerSchema({
|
|
|
6752
6906
|
"no-cache": { type: "boolean", description: "Skip cache", required: false }
|
|
6753
6907
|
}
|
|
6754
6908
|
});
|
|
6755
|
-
var campaignsCommand3 =
|
|
6909
|
+
var campaignsCommand3 = defineCommand63({
|
|
6756
6910
|
meta: {
|
|
6757
6911
|
name: "campaigns",
|
|
6758
6912
|
description: `List X Ads campaigns. Returns budget, schedule, funding instrument, status.
|
|
@@ -6794,7 +6948,7 @@ Examples:
|
|
|
6794
6948
|
});
|
|
6795
6949
|
|
|
6796
6950
|
// src/commands/ads/x/cards.ts
|
|
6797
|
-
import { defineCommand as
|
|
6951
|
+
import { defineCommand as defineCommand64 } from "citty";
|
|
6798
6952
|
registerSchema({
|
|
6799
6953
|
command: "ads.x.cards",
|
|
6800
6954
|
description: "List website cards, video cards, and carousels for an X Ads account.",
|
|
@@ -6803,7 +6957,7 @@ registerSchema({
|
|
|
6803
6957
|
"no-cache": { type: "boolean", description: "Skip cache", required: false }
|
|
6804
6958
|
}
|
|
6805
6959
|
});
|
|
6806
|
-
var cardsCommand =
|
|
6960
|
+
var cardsCommand = defineCommand64({
|
|
6807
6961
|
meta: {
|
|
6808
6962
|
name: "cards",
|
|
6809
6963
|
description: `List X Ads cards (rich creatives).
|
|
@@ -6852,7 +7006,7 @@ Examples:
|
|
|
6852
7006
|
});
|
|
6853
7007
|
|
|
6854
7008
|
// src/commands/ads/x/funding.ts
|
|
6855
|
-
import { defineCommand as
|
|
7009
|
+
import { defineCommand as defineCommand65 } from "citty";
|
|
6856
7010
|
registerSchema({
|
|
6857
7011
|
command: "ads.x.funding",
|
|
6858
7012
|
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.",
|
|
@@ -6861,7 +7015,7 @@ registerSchema({
|
|
|
6861
7015
|
"no-cache": { type: "boolean", description: "Skip cache", required: false }
|
|
6862
7016
|
}
|
|
6863
7017
|
});
|
|
6864
|
-
var fundingCommand =
|
|
7018
|
+
var fundingCommand = defineCommand65({
|
|
6865
7019
|
meta: {
|
|
6866
7020
|
name: "funding",
|
|
6867
7021
|
description: `List funding instruments for an X Ads account.
|
|
@@ -6910,7 +7064,7 @@ Examples:
|
|
|
6910
7064
|
});
|
|
6911
7065
|
|
|
6912
7066
|
// src/commands/ads/x/line-items.ts
|
|
6913
|
-
import { defineCommand as
|
|
7067
|
+
import { defineCommand as defineCommand66 } from "citty";
|
|
6914
7068
|
registerSchema({
|
|
6915
7069
|
command: "ads.x.lineItems",
|
|
6916
7070
|
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).",
|
|
@@ -6922,7 +7076,7 @@ registerSchema({
|
|
|
6922
7076
|
"no-cache": { type: "boolean", description: "Skip cache", required: false }
|
|
6923
7077
|
}
|
|
6924
7078
|
});
|
|
6925
|
-
var lineItemsCommand =
|
|
7079
|
+
var lineItemsCommand = defineCommand66({
|
|
6926
7080
|
meta: {
|
|
6927
7081
|
name: "line-items",
|
|
6928
7082
|
description: `List X Ads line items (ad groups).
|
|
@@ -6963,7 +7117,7 @@ Examples:
|
|
|
6963
7117
|
});
|
|
6964
7118
|
|
|
6965
7119
|
// src/commands/ads/x/media.ts
|
|
6966
|
-
import { defineCommand as
|
|
7120
|
+
import { defineCommand as defineCommand67 } from "citty";
|
|
6967
7121
|
registerSchema({
|
|
6968
7122
|
command: "ads.x.media",
|
|
6969
7123
|
description: "List media assets in the X Ads media library (images, GIFs, videos). Filter by media-type (IMAGE, GIF, VIDEO).",
|
|
@@ -6973,7 +7127,7 @@ registerSchema({
|
|
|
6973
7127
|
"no-cache": { type: "boolean", description: "Skip cache", required: false }
|
|
6974
7128
|
}
|
|
6975
7129
|
});
|
|
6976
|
-
var mediaCommand =
|
|
7130
|
+
var mediaCommand = defineCommand67({
|
|
6977
7131
|
meta: {
|
|
6978
7132
|
name: "media",
|
|
6979
7133
|
description: `List media assets in the X Ads media library.
|
|
@@ -7025,7 +7179,7 @@ Examples:
|
|
|
7025
7179
|
});
|
|
7026
7180
|
|
|
7027
7181
|
// src/commands/ads/x/promoted-tweets.ts
|
|
7028
|
-
import { defineCommand as
|
|
7182
|
+
import { defineCommand as defineCommand68 } from "citty";
|
|
7029
7183
|
registerSchema({
|
|
7030
7184
|
command: "ads.x.promotedTweets",
|
|
7031
7185
|
description: "List promoted tweets for an X Ads account. Returns id, line_item_id, tweet_id, approval_status. Filter by line-item-ids (CSV).",
|
|
@@ -7036,7 +7190,7 @@ registerSchema({
|
|
|
7036
7190
|
"no-cache": { type: "boolean", description: "Skip cache", required: false }
|
|
7037
7191
|
}
|
|
7038
7192
|
});
|
|
7039
|
-
var promotedTweetsCommand =
|
|
7193
|
+
var promotedTweetsCommand = defineCommand68({
|
|
7040
7194
|
meta: {
|
|
7041
7195
|
name: "promoted-tweets",
|
|
7042
7196
|
description: `List X Ads promoted tweets.
|
|
@@ -7090,11 +7244,11 @@ Examples:
|
|
|
7090
7244
|
});
|
|
7091
7245
|
|
|
7092
7246
|
// src/commands/ads/x/stats/index.ts
|
|
7093
|
-
import { defineCommand as
|
|
7247
|
+
import { defineCommand as defineCommand73 } from "citty";
|
|
7094
7248
|
|
|
7095
7249
|
// src/commands/ads/x/stats/job.ts
|
|
7096
7250
|
import { gunzipSync } from "zlib";
|
|
7097
|
-
import { defineCommand as
|
|
7251
|
+
import { defineCommand as defineCommand69 } from "citty";
|
|
7098
7252
|
var POLL_INTERVAL_MS2 = 1e4;
|
|
7099
7253
|
var DEADLINE_MS = 12 * 60 * 1e3;
|
|
7100
7254
|
var RESULT_CACHE_TTL_MS = 6 * 60 * 60 * 1e3;
|
|
@@ -7164,7 +7318,7 @@ async function pollUntilDone(accountId, jobId) {
|
|
|
7164
7318
|
function buildCacheKey(body) {
|
|
7165
7319
|
return `stats-job:${JSON.stringify(body)}`;
|
|
7166
7320
|
}
|
|
7167
|
-
var statsJobCommand =
|
|
7321
|
+
var statsJobCommand = defineCommand69({
|
|
7168
7322
|
meta: {
|
|
7169
7323
|
name: "job",
|
|
7170
7324
|
description: `Async X Ads stats job, sync from the CLI's perspective. Creates \u2192 polls \u2192 downloads \u2192 returns.
|
|
@@ -7269,7 +7423,7 @@ For fine-grained control (don't wait, poll yourself), use:
|
|
|
7269
7423
|
});
|
|
7270
7424
|
|
|
7271
7425
|
// src/commands/ads/x/stats/job-create.ts
|
|
7272
|
-
import { defineCommand as
|
|
7426
|
+
import { defineCommand as defineCommand70 } from "citty";
|
|
7273
7427
|
registerSchema({
|
|
7274
7428
|
command: "ads.x.statsJobCreate",
|
|
7275
7429
|
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.",
|
|
@@ -7292,7 +7446,7 @@ function parseCsv3(v) {
|
|
|
7292
7446
|
const parts = v.split(",").map((s) => s.trim()).filter(Boolean);
|
|
7293
7447
|
return parts.length > 0 ? parts : void 0;
|
|
7294
7448
|
}
|
|
7295
|
-
var statsJobCreateCommand =
|
|
7449
|
+
var statsJobCreateCommand = defineCommand70({
|
|
7296
7450
|
meta: {
|
|
7297
7451
|
name: "job-create",
|
|
7298
7452
|
description: `Create an async X Ads stats job (up to 90 days, supports segmentation).
|
|
@@ -7355,7 +7509,7 @@ Examples:
|
|
|
7355
7509
|
});
|
|
7356
7510
|
|
|
7357
7511
|
// src/commands/ads/x/stats/job-status.ts
|
|
7358
|
-
import { defineCommand as
|
|
7512
|
+
import { defineCommand as defineCommand71 } from "citty";
|
|
7359
7513
|
registerSchema({
|
|
7360
7514
|
command: "ads.x.statsJobStatus",
|
|
7361
7515
|
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).",
|
|
@@ -7365,7 +7519,7 @@ registerSchema({
|
|
|
7365
7519
|
"job-ids": { type: "string", description: "CSV of job IDs", required: false }
|
|
7366
7520
|
}
|
|
7367
7521
|
});
|
|
7368
|
-
var statsJobStatusCommand =
|
|
7522
|
+
var statsJobStatusCommand = defineCommand71({
|
|
7369
7523
|
meta: {
|
|
7370
7524
|
name: "job-status",
|
|
7371
7525
|
description: `Poll the status of an async X Ads stats job.
|
|
@@ -7406,7 +7560,7 @@ Examples:
|
|
|
7406
7560
|
});
|
|
7407
7561
|
|
|
7408
7562
|
// src/commands/ads/x/stats/sync.ts
|
|
7409
|
-
import { defineCommand as
|
|
7563
|
+
import { defineCommand as defineCommand72 } from "citty";
|
|
7410
7564
|
|
|
7411
7565
|
// src/commands/ads/x/presets.ts
|
|
7412
7566
|
var X_STATS_PRESETS = [
|
|
@@ -7565,7 +7719,7 @@ async function runSync(args, q) {
|
|
|
7565
7719
|
process.exit(1);
|
|
7566
7720
|
}
|
|
7567
7721
|
}
|
|
7568
|
-
var statsSyncCommand =
|
|
7722
|
+
var statsSyncCommand = defineCommand72({
|
|
7569
7723
|
meta: {
|
|
7570
7724
|
name: "sync",
|
|
7571
7725
|
description: `Synchronous X Ads analytics (max 7-day window).
|
|
@@ -7608,7 +7762,7 @@ Examples:
|
|
|
7608
7762
|
});
|
|
7609
7763
|
|
|
7610
7764
|
// src/commands/ads/x/stats/index.ts
|
|
7611
|
-
var statsCommand =
|
|
7765
|
+
var statsCommand = defineCommand73({
|
|
7612
7766
|
meta: {
|
|
7613
7767
|
name: "stats",
|
|
7614
7768
|
description: `X Ads analytics. Sync (\u22647 days, no segmentation) or async jobs (\u226490 days, segmentable).
|
|
@@ -7636,7 +7790,7 @@ Examples:
|
|
|
7636
7790
|
});
|
|
7637
7791
|
|
|
7638
7792
|
// src/commands/ads/x/targeting-constants.ts
|
|
7639
|
-
import { defineCommand as
|
|
7793
|
+
import { defineCommand as defineCommand74 } from "citty";
|
|
7640
7794
|
var ALLOWED_CONSTANTS = [
|
|
7641
7795
|
"locations",
|
|
7642
7796
|
"interests",
|
|
@@ -7664,7 +7818,7 @@ registerSchema({
|
|
|
7664
7818
|
"no-cache": { type: "boolean", description: "Skip cache", required: false }
|
|
7665
7819
|
}
|
|
7666
7820
|
});
|
|
7667
|
-
var targetingConstantsCommand =
|
|
7821
|
+
var targetingConstantsCommand = defineCommand74({
|
|
7668
7822
|
meta: {
|
|
7669
7823
|
name: "targeting-constants",
|
|
7670
7824
|
description: `Lookup X Ads targeting constants.
|
|
@@ -7714,7 +7868,7 @@ Examples:
|
|
|
7714
7868
|
});
|
|
7715
7869
|
|
|
7716
7870
|
// src/commands/ads/x/targeting-criteria.ts
|
|
7717
|
-
import { defineCommand as
|
|
7871
|
+
import { defineCommand as defineCommand75 } from "citty";
|
|
7718
7872
|
registerSchema({
|
|
7719
7873
|
command: "ads.x.targetingCriteria",
|
|
7720
7874
|
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.",
|
|
@@ -7724,7 +7878,7 @@ registerSchema({
|
|
|
7724
7878
|
"no-cache": { type: "boolean", description: "Skip cache", required: false }
|
|
7725
7879
|
}
|
|
7726
7880
|
});
|
|
7727
|
-
var targetingCriteriaCommand =
|
|
7881
|
+
var targetingCriteriaCommand = defineCommand75({
|
|
7728
7882
|
meta: {
|
|
7729
7883
|
name: "targeting-criteria",
|
|
7730
7884
|
description: `List targeting criteria attached to line items.
|
|
@@ -7775,7 +7929,7 @@ Examples:
|
|
|
7775
7929
|
});
|
|
7776
7930
|
|
|
7777
7931
|
// src/commands/ads/x/index.ts
|
|
7778
|
-
var xCommand =
|
|
7932
|
+
var xCommand = defineCommand76({
|
|
7779
7933
|
meta: {
|
|
7780
7934
|
name: "x",
|
|
7781
7935
|
description: `X (Twitter) Ads commands. Read campaigns, line items, promoted tweets, creatives, audiences, and analytics.
|
|
@@ -7813,7 +7967,7 @@ The CLI auto-detects --account-id when exactly one X Ads account is connected, o
|
|
|
7813
7967
|
});
|
|
7814
7968
|
|
|
7815
7969
|
// src/commands/ads/index.ts
|
|
7816
|
-
var adsCommand =
|
|
7970
|
+
var adsCommand = defineCommand77({
|
|
7817
7971
|
meta: {
|
|
7818
7972
|
name: "ads",
|
|
7819
7973
|
description: `Ad platform commands. Each platform exposes its own native command surface \u2014 no forced parity.
|
|
@@ -7843,11 +7997,11 @@ Examples:
|
|
|
7843
7997
|
});
|
|
7844
7998
|
|
|
7845
7999
|
// src/commands/canvas/index.ts
|
|
7846
|
-
import { defineCommand as
|
|
8000
|
+
import { defineCommand as defineCommand84 } from "citty";
|
|
7847
8001
|
|
|
7848
8002
|
// src/commands/canvas/catalog.ts
|
|
7849
|
-
import { defineCommand as
|
|
7850
|
-
var catalogCommand =
|
|
8003
|
+
import { defineCommand as defineCommand78 } from "citty";
|
|
8004
|
+
var catalogCommand = defineCommand78({
|
|
7851
8005
|
meta: {
|
|
7852
8006
|
name: "catalog",
|
|
7853
8007
|
description: "Print the agent-facing node catalog (JSON Schema). Includes every registered node grouped by category."
|
|
@@ -7864,9 +8018,9 @@ import { execFile } from "child_process";
|
|
|
7864
8018
|
import { readdir, readFile, stat } from "fs/promises";
|
|
7865
8019
|
import path from "path";
|
|
7866
8020
|
import { promisify } from "util";
|
|
7867
|
-
import { defineCommand as
|
|
8021
|
+
import { defineCommand as defineCommand79 } from "citty";
|
|
7868
8022
|
var execFileAsync = promisify(execFile);
|
|
7869
|
-
var inspectCommand =
|
|
8023
|
+
var inspectCommand = defineCommand79({
|
|
7870
8024
|
meta: {
|
|
7871
8025
|
name: "inspect",
|
|
7872
8026
|
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."
|
|
@@ -7975,7 +8129,7 @@ async function probeDuration(filePath) {
|
|
|
7975
8129
|
// src/commands/canvas/run.ts
|
|
7976
8130
|
import { readFile as readFile2 } from "fs/promises";
|
|
7977
8131
|
import path2 from "path";
|
|
7978
|
-
import { defineCommand as
|
|
8132
|
+
import { defineCommand as defineCommand80 } from "citty";
|
|
7979
8133
|
|
|
7980
8134
|
// src/commands/canvas/placeholders.ts
|
|
7981
8135
|
function unsuppliedPlaceholderAssets(canvas) {
|
|
@@ -7994,7 +8148,7 @@ function unsuppliedPlaceholderAssets(canvas) {
|
|
|
7994
8148
|
}
|
|
7995
8149
|
|
|
7996
8150
|
// src/commands/canvas/run.ts
|
|
7997
|
-
var runCommand =
|
|
8151
|
+
var runCommand = defineCommand80({
|
|
7998
8152
|
meta: { name: "run", description: "Validate and execute a canvas JSON file." },
|
|
7999
8153
|
args: {
|
|
8000
8154
|
file: { type: "positional", required: true, description: "Path to canvas JSON" },
|
|
@@ -8079,7 +8233,7 @@ var runCommand = defineCommand76({
|
|
|
8079
8233
|
// src/commands/canvas/scaffold-static-ad.ts
|
|
8080
8234
|
import { readFile as readFile3, writeFile } from "fs/promises";
|
|
8081
8235
|
import path3 from "path";
|
|
8082
|
-
import { defineCommand as
|
|
8236
|
+
import { defineCommand as defineCommand81 } from "citty";
|
|
8083
8237
|
|
|
8084
8238
|
// src/engine/scaffold/staticAd.ts
|
|
8085
8239
|
import { z as z2 } from "zod";
|
|
@@ -8398,7 +8552,7 @@ async function runVisionPasses(canvas) {
|
|
|
8398
8552
|
return fail("read_outputs", e instanceof Error ? e.message : String(e));
|
|
8399
8553
|
}
|
|
8400
8554
|
}
|
|
8401
|
-
var scaffoldStaticAdCommand =
|
|
8555
|
+
var scaffoldStaticAdCommand = defineCommand81({
|
|
8402
8556
|
meta: {
|
|
8403
8557
|
name: "scaffold-static-ad",
|
|
8404
8558
|
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."
|
|
@@ -8492,7 +8646,7 @@ var scaffoldStaticAdCommand = defineCommand77({
|
|
|
8492
8646
|
// src/commands/canvas/scaffold-video.ts
|
|
8493
8647
|
import { cp, mkdir, readFile as readFile5, writeFile as writeFile2 } from "fs/promises";
|
|
8494
8648
|
import path5 from "path";
|
|
8495
|
-
import { defineCommand as
|
|
8649
|
+
import { defineCommand as defineCommand82 } from "citty";
|
|
8496
8650
|
|
|
8497
8651
|
// src/engine/nodes/local/lib/sceneDetect.ts
|
|
8498
8652
|
import { execFile as execFile2 } from "child_process";
|
|
@@ -11143,7 +11297,7 @@ async function runAnalysisPasses(deconstructCanvas, selectModel) {
|
|
|
11143
11297
|
return fail2("deconstruct", e instanceof Error ? e.message : String(e));
|
|
11144
11298
|
}
|
|
11145
11299
|
}
|
|
11146
|
-
var scaffoldVideoCommand =
|
|
11300
|
+
var scaffoldVideoCommand = defineCommand82({
|
|
11147
11301
|
meta: {
|
|
11148
11302
|
name: "scaffold-video",
|
|
11149
11303
|
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`."
|
|
@@ -11287,8 +11441,8 @@ var scaffoldVideoCommand = defineCommand78({
|
|
|
11287
11441
|
// src/commands/canvas/validate.ts
|
|
11288
11442
|
import { readFile as readFile6 } from "fs/promises";
|
|
11289
11443
|
import path6 from "path";
|
|
11290
|
-
import { defineCommand as
|
|
11291
|
-
var validateCommand =
|
|
11444
|
+
import { defineCommand as defineCommand83 } from "citty";
|
|
11445
|
+
var validateCommand = defineCommand83({
|
|
11292
11446
|
meta: {
|
|
11293
11447
|
name: "validate",
|
|
11294
11448
|
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)."
|
|
@@ -11330,7 +11484,7 @@ var validateCommand = defineCommand79({
|
|
|
11330
11484
|
});
|
|
11331
11485
|
|
|
11332
11486
|
// src/commands/canvas/index.ts
|
|
11333
|
-
var canvasCommand =
|
|
11487
|
+
var canvasCommand = defineCommand84({
|
|
11334
11488
|
meta: {
|
|
11335
11489
|
name: "canvas",
|
|
11336
11490
|
description: `Run Baker creative canvas JSON files locally. Local nodes execute in-process; remote nodes POST to the Convex backend gateway.
|
|
@@ -11356,10 +11510,10 @@ Subcommands:
|
|
|
11356
11510
|
});
|
|
11357
11511
|
|
|
11358
11512
|
// src/commands/ga4/index.ts
|
|
11359
|
-
import { defineCommand as
|
|
11513
|
+
import { defineCommand as defineCommand88 } from "citty";
|
|
11360
11514
|
|
|
11361
11515
|
// src/commands/ga4/audit.ts
|
|
11362
|
-
import { defineCommand as
|
|
11516
|
+
import { defineCommand as defineCommand85 } from "citty";
|
|
11363
11517
|
|
|
11364
11518
|
// src/commands/ga4/resolve.ts
|
|
11365
11519
|
async function fetchProperties(useCache = true) {
|
|
@@ -11422,7 +11576,7 @@ registerSchema({
|
|
|
11422
11576
|
"no-cache": { type: "boolean", description: "Skip cache, hit API directly", required: false }
|
|
11423
11577
|
}
|
|
11424
11578
|
});
|
|
11425
|
-
var auditCommand2 =
|
|
11579
|
+
var auditCommand2 = defineCommand85({
|
|
11426
11580
|
meta: {
|
|
11427
11581
|
name: "audit",
|
|
11428
11582
|
description: `Run all GA4 admin health checks. Returns property config with playbook warnings.
|
|
@@ -11474,7 +11628,7 @@ Examples:
|
|
|
11474
11628
|
});
|
|
11475
11629
|
|
|
11476
11630
|
// src/commands/ga4/properties.ts
|
|
11477
|
-
import { defineCommand as
|
|
11631
|
+
import { defineCommand as defineCommand86 } from "citty";
|
|
11478
11632
|
registerSchema({
|
|
11479
11633
|
command: "ga4.properties",
|
|
11480
11634
|
description: "List all accessible GA4 properties. Returns property IDs needed for query and audit commands. Run this first to find property IDs.",
|
|
@@ -11482,7 +11636,7 @@ registerSchema({
|
|
|
11482
11636
|
"no-cache": { type: "boolean", description: "Skip cache, hit API directly", required: false }
|
|
11483
11637
|
}
|
|
11484
11638
|
});
|
|
11485
|
-
var propertiesCommand =
|
|
11639
|
+
var propertiesCommand = defineCommand86({
|
|
11486
11640
|
meta: {
|
|
11487
11641
|
name: "properties",
|
|
11488
11642
|
description: `List accessible GA4 properties.
|
|
@@ -11532,7 +11686,7 @@ Examples:
|
|
|
11532
11686
|
// src/commands/ga4/query.ts
|
|
11533
11687
|
import { appendFileSync as appendFileSync2, existsSync as existsSync4, readFileSync as readFileSync6, writeFileSync as writeFileSync4 } from "fs";
|
|
11534
11688
|
import { resolve as resolve2 } from "path";
|
|
11535
|
-
import { defineCommand as
|
|
11689
|
+
import { defineCommand as defineCommand87 } from "citty";
|
|
11536
11690
|
|
|
11537
11691
|
// src/commands/ga4/presets.ts
|
|
11538
11692
|
var GA4_PRESETS = [
|
|
@@ -11664,7 +11818,7 @@ function handleError(err) {
|
|
|
11664
11818
|
});
|
|
11665
11819
|
process.exit(1);
|
|
11666
11820
|
}
|
|
11667
|
-
var queryCommand2 =
|
|
11821
|
+
var queryCommand2 = defineCommand87({
|
|
11668
11822
|
meta: {
|
|
11669
11823
|
name: "query",
|
|
11670
11824
|
description: `Run GA4 Data API reports. Preset-first with free-form escape hatch.
|
|
@@ -11735,7 +11889,7 @@ Free-form (escape hatch):
|
|
|
11735
11889
|
});
|
|
11736
11890
|
|
|
11737
11891
|
// src/commands/ga4/index.ts
|
|
11738
|
-
var ga4Command =
|
|
11892
|
+
var ga4Command = defineCommand88({
|
|
11739
11893
|
meta: {
|
|
11740
11894
|
name: "ga4",
|
|
11741
11895
|
description: `Google Analytics 4 commands. Audit property config, run playbook-aligned reports.
|
|
@@ -11758,12 +11912,12 @@ Examples:
|
|
|
11758
11912
|
});
|
|
11759
11913
|
|
|
11760
11914
|
// src/commands/gsc/index.ts
|
|
11761
|
-
import { defineCommand as
|
|
11915
|
+
import { defineCommand as defineCommand92 } from "citty";
|
|
11762
11916
|
|
|
11763
11917
|
// src/commands/gsc/query.ts
|
|
11764
11918
|
import { appendFileSync as appendFileSync3, existsSync as existsSync5, readFileSync as readFileSync7, writeFileSync as writeFileSync5 } from "fs";
|
|
11765
11919
|
import { resolve as resolve3 } from "path";
|
|
11766
|
-
import { defineCommand as
|
|
11920
|
+
import { defineCommand as defineCommand89 } from "citty";
|
|
11767
11921
|
|
|
11768
11922
|
// src/commands/gsc/presets.ts
|
|
11769
11923
|
var GSC_PRESETS = [
|
|
@@ -11951,7 +12105,7 @@ function handleError2(err) {
|
|
|
11951
12105
|
});
|
|
11952
12106
|
process.exit(1);
|
|
11953
12107
|
}
|
|
11954
|
-
var queryCommand3 =
|
|
12108
|
+
var queryCommand3 = defineCommand89({
|
|
11955
12109
|
meta: {
|
|
11956
12110
|
name: "query",
|
|
11957
12111
|
description: `Run GSC Search Analytics queries. Preset-first with free-form escape hatch.
|
|
@@ -12029,7 +12183,7 @@ Free-form (escape hatch):
|
|
|
12029
12183
|
});
|
|
12030
12184
|
|
|
12031
12185
|
// src/commands/gsc/sitemaps.ts
|
|
12032
|
-
import { defineCommand as
|
|
12186
|
+
import { defineCommand as defineCommand90 } from "citty";
|
|
12033
12187
|
registerSchema({
|
|
12034
12188
|
command: "gsc.sitemaps",
|
|
12035
12189
|
description: "List sitemaps for a Search Console site. Check sitemap health and errors.",
|
|
@@ -12038,7 +12192,7 @@ registerSchema({
|
|
|
12038
12192
|
"no-cache": { type: "boolean", description: "Skip cache, hit API directly", required: false }
|
|
12039
12193
|
}
|
|
12040
12194
|
});
|
|
12041
|
-
var sitemapsCommand =
|
|
12195
|
+
var sitemapsCommand = defineCommand90({
|
|
12042
12196
|
meta: {
|
|
12043
12197
|
name: "sitemaps",
|
|
12044
12198
|
description: `List sitemaps for a site. Check health and errors.
|
|
@@ -12088,7 +12242,7 @@ Examples:
|
|
|
12088
12242
|
});
|
|
12089
12243
|
|
|
12090
12244
|
// src/commands/gsc/sites.ts
|
|
12091
|
-
import { defineCommand as
|
|
12245
|
+
import { defineCommand as defineCommand91 } from "citty";
|
|
12092
12246
|
registerSchema({
|
|
12093
12247
|
command: "gsc.sites",
|
|
12094
12248
|
description: "List all verified Google Search Console sites. Returns site URLs needed for query and sitemaps commands.",
|
|
@@ -12096,7 +12250,7 @@ registerSchema({
|
|
|
12096
12250
|
"no-cache": { type: "boolean", description: "Skip cache, hit API directly", required: false }
|
|
12097
12251
|
}
|
|
12098
12252
|
});
|
|
12099
|
-
var sitesCommand =
|
|
12253
|
+
var sitesCommand = defineCommand91({
|
|
12100
12254
|
meta: {
|
|
12101
12255
|
name: "sites",
|
|
12102
12256
|
description: `List verified Search Console sites.
|
|
@@ -12144,7 +12298,7 @@ Examples:
|
|
|
12144
12298
|
});
|
|
12145
12299
|
|
|
12146
12300
|
// src/commands/gsc/index.ts
|
|
12147
|
-
var gscCommand =
|
|
12301
|
+
var gscCommand = defineCommand92({
|
|
12148
12302
|
meta: {
|
|
12149
12303
|
name: "gsc",
|
|
12150
12304
|
description: `Google Search Console commands. PPC-SEO arbitrage, brand halo analysis, negative keyword discovery.
|
|
@@ -12167,10 +12321,10 @@ Examples:
|
|
|
12167
12321
|
});
|
|
12168
12322
|
|
|
12169
12323
|
// src/commands/images/index.ts
|
|
12170
|
-
import { defineCommand as
|
|
12324
|
+
import { defineCommand as defineCommand116 } from "citty";
|
|
12171
12325
|
|
|
12172
12326
|
// src/commands/images/crop.ts
|
|
12173
|
-
import { defineCommand as
|
|
12327
|
+
import { defineCommand as defineCommand93 } from "citty";
|
|
12174
12328
|
|
|
12175
12329
|
// src/lib/image/crop-sprite.ts
|
|
12176
12330
|
import sharp from "sharp";
|
|
@@ -12295,7 +12449,7 @@ function emitError2(err) {
|
|
|
12295
12449
|
}
|
|
12296
12450
|
process.exit(1);
|
|
12297
12451
|
}
|
|
12298
|
-
var cropCommand =
|
|
12452
|
+
var cropCommand = defineCommand93({
|
|
12299
12453
|
meta: {
|
|
12300
12454
|
name: "crop",
|
|
12301
12455
|
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"
|
|
@@ -12331,7 +12485,7 @@ var cropCommand = defineCommand89({
|
|
|
12331
12485
|
});
|
|
12332
12486
|
|
|
12333
12487
|
// src/commands/images/delete.ts
|
|
12334
|
-
import { defineCommand as
|
|
12488
|
+
import { defineCommand as defineCommand94 } from "citty";
|
|
12335
12489
|
registerSchema({
|
|
12336
12490
|
command: "images.delete",
|
|
12337
12491
|
description: "Delete an image by ID",
|
|
@@ -12345,7 +12499,7 @@ registerSchema({
|
|
|
12345
12499
|
}
|
|
12346
12500
|
}
|
|
12347
12501
|
});
|
|
12348
|
-
var deleteCommand =
|
|
12502
|
+
var deleteCommand = defineCommand94({
|
|
12349
12503
|
meta: {
|
|
12350
12504
|
name: "delete",
|
|
12351
12505
|
description: "Delete an image by ID. Use --dry-run to preview. Example: baker images delete j571abc123 --dry-run"
|
|
@@ -12386,7 +12540,7 @@ var deleteCommand = defineCommand90({
|
|
|
12386
12540
|
});
|
|
12387
12541
|
|
|
12388
12542
|
// src/commands/images/dimensions.ts
|
|
12389
|
-
import { defineCommand as
|
|
12543
|
+
import { defineCommand as defineCommand95 } from "citty";
|
|
12390
12544
|
|
|
12391
12545
|
// src/lib/image/dimensions.ts
|
|
12392
12546
|
import { imageSize } from "image-size";
|
|
@@ -12409,7 +12563,7 @@ registerSchema({
|
|
|
12409
12563
|
target: { type: "string", description: "Local file path or remote http(s) URL", required: true }
|
|
12410
12564
|
}
|
|
12411
12565
|
});
|
|
12412
|
-
var dimensionsCommand =
|
|
12566
|
+
var dimensionsCommand = defineCommand95({
|
|
12413
12567
|
meta: {
|
|
12414
12568
|
name: "dimensions",
|
|
12415
12569
|
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"
|
|
@@ -12453,7 +12607,7 @@ var dimensionsCommand = defineCommand91({
|
|
|
12453
12607
|
});
|
|
12454
12608
|
|
|
12455
12609
|
// src/commands/images/extract.ts
|
|
12456
|
-
import { defineCommand as
|
|
12610
|
+
import { defineCommand as defineCommand96 } from "citty";
|
|
12457
12611
|
registerSchema({
|
|
12458
12612
|
command: "images.extract",
|
|
12459
12613
|
description: "Extract images from a URL via Firecrawl (formats: images).",
|
|
@@ -12469,7 +12623,7 @@ registerSchema({
|
|
|
12469
12623
|
}
|
|
12470
12624
|
}
|
|
12471
12625
|
});
|
|
12472
|
-
var extractCommand =
|
|
12626
|
+
var extractCommand = defineCommand96({
|
|
12473
12627
|
meta: {
|
|
12474
12628
|
name: "extract",
|
|
12475
12629
|
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"
|
|
@@ -12507,7 +12661,7 @@ var extractCommand = defineCommand92({
|
|
|
12507
12661
|
});
|
|
12508
12662
|
|
|
12509
12663
|
// src/commands/images/find.ts
|
|
12510
|
-
import { defineCommand as
|
|
12664
|
+
import { defineCommand as defineCommand97 } from "citty";
|
|
12511
12665
|
registerSchema({
|
|
12512
12666
|
command: "images.find",
|
|
12513
12667
|
description: "Fanout image search: library first, then opted-in external providers.",
|
|
@@ -12539,7 +12693,7 @@ registerSchema({
|
|
|
12539
12693
|
}
|
|
12540
12694
|
}
|
|
12541
12695
|
});
|
|
12542
|
-
var findCommand =
|
|
12696
|
+
var findCommand = defineCommand97({
|
|
12543
12697
|
meta: {
|
|
12544
12698
|
name: "find",
|
|
12545
12699
|
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"
|
|
@@ -12586,7 +12740,7 @@ var findCommand = defineCommand93({
|
|
|
12586
12740
|
|
|
12587
12741
|
// src/commands/images/generate.ts
|
|
12588
12742
|
import { readFile as readFile8 } from "fs/promises";
|
|
12589
|
-
import { defineCommand as
|
|
12743
|
+
import { defineCommand as defineCommand98 } from "citty";
|
|
12590
12744
|
import sharp2 from "sharp";
|
|
12591
12745
|
var GENERATE_TIMEOUT_MS = 18e4;
|
|
12592
12746
|
var REFERENCE_MAX_EDGE = 1536;
|
|
@@ -12682,7 +12836,7 @@ async function resolveReferences(spec) {
|
|
|
12682
12836
|
}
|
|
12683
12837
|
return out;
|
|
12684
12838
|
}
|
|
12685
|
-
var generateCommand =
|
|
12839
|
+
var generateCommand = defineCommand98({
|
|
12686
12840
|
meta: {
|
|
12687
12841
|
name: "generate",
|
|
12688
12842
|
description: "Generate an image with AI and store it in the library (cost-tracked per request via OpenRouter usage). Models mirror the canvas: openai/gpt-5.4-image-2 (default \u2014 photoreal, cleanest text, best for ad/landing reproduction), google/gemini-3-pro-image-preview (Nano Banana Pro), google/gemini-3.5-flash & google/gemini-3.1-flash-image-preview (fast, extreme aspect ratios), recraft/recraft-v4.1-pro-vector (vector/SVG-style with palette control). The result is auto-ingested (describe + embed), so the next `baker images library` query finds it. Pass --reference with image URLs and/or local file paths (Pinterest, stock, brand assets, sandbox files) to ground generation in reality.\n\nExamples:\n baker images generate 'a friendly golden retriever sitting in a bright modern living room' --aspect-ratio 16:9\n baker images generate 'hero shot of a matte black water bottle on marble' --model google/gemini-3-pro-image-preview --image-size 2K\n baker images generate 'lifestyle photo matching this mood' --reference 'https://\u2026/ref1.jpg,https://\u2026/ref2.jpg'\n baker images generate 'put this product on a marble countertop, soft daylight' --reference './src/brand/logos/product.png,./refs/kitchen-mood.jpg'\n baker images generate 'flat geometric mascot, brand palette' --model recraft/recraft-v4.1-pro-vector --rgb-colors '[[10,10,10],[255,80,0]]'"
|
|
@@ -12734,7 +12888,7 @@ var generateCommand = defineCommand94({
|
|
|
12734
12888
|
});
|
|
12735
12889
|
|
|
12736
12890
|
// src/commands/images/get.ts
|
|
12737
|
-
import { defineCommand as
|
|
12891
|
+
import { defineCommand as defineCommand99 } from "citty";
|
|
12738
12892
|
registerSchema({
|
|
12739
12893
|
command: "images.get",
|
|
12740
12894
|
description: "Get a single image by ID",
|
|
@@ -12742,7 +12896,7 @@ registerSchema({
|
|
|
12742
12896
|
id: { type: "string", description: "Image ID", required: true }
|
|
12743
12897
|
}
|
|
12744
12898
|
});
|
|
12745
|
-
var getCommand2 =
|
|
12899
|
+
var getCommand2 = defineCommand99({
|
|
12746
12900
|
meta: { name: "get", description: "Get a single image by ID. Example: baker images get j571abc123" },
|
|
12747
12901
|
args: {
|
|
12748
12902
|
id: { type: "positional", description: "Image ID", required: false },
|
|
@@ -12778,7 +12932,7 @@ var getCommand2 = defineCommand95({
|
|
|
12778
12932
|
});
|
|
12779
12933
|
|
|
12780
12934
|
// src/commands/images/gif.ts
|
|
12781
|
-
import { defineCommand as
|
|
12935
|
+
import { defineCommand as defineCommand100 } from "citty";
|
|
12782
12936
|
registerSchema({
|
|
12783
12937
|
command: "images.gif",
|
|
12784
12938
|
description: "Search Giphy for GIFs / reaction memes (paid social creative).",
|
|
@@ -12810,7 +12964,7 @@ registerSchema({
|
|
|
12810
12964
|
}
|
|
12811
12965
|
}
|
|
12812
12966
|
});
|
|
12813
|
-
var gifCommand =
|
|
12967
|
+
var gifCommand = defineCommand100({
|
|
12814
12968
|
meta: {
|
|
12815
12969
|
name: "gif",
|
|
12816
12970
|
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"
|
|
@@ -12857,7 +13011,7 @@ var gifCommand = defineCommand96({
|
|
|
12857
13011
|
});
|
|
12858
13012
|
|
|
12859
13013
|
// src/commands/images/google.ts
|
|
12860
|
-
import { defineCommand as
|
|
13014
|
+
import { defineCommand as defineCommand101 } from "citty";
|
|
12861
13015
|
registerSchema({
|
|
12862
13016
|
command: "images.google",
|
|
12863
13017
|
description: "Google Images search via the official Custom Search JSON API. Unverified source \u2014 inspect before placing.",
|
|
@@ -12893,7 +13047,7 @@ registerSchema({
|
|
|
12893
13047
|
}
|
|
12894
13048
|
}
|
|
12895
13049
|
});
|
|
12896
|
-
var googleCommand2 =
|
|
13050
|
+
var googleCommand2 = defineCommand101({
|
|
12897
13051
|
meta: {
|
|
12898
13052
|
name: "google",
|
|
12899
13053
|
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"
|
|
@@ -12941,7 +13095,7 @@ var googleCommand2 = defineCommand97({
|
|
|
12941
13095
|
});
|
|
12942
13096
|
|
|
12943
13097
|
// src/commands/images/icon.ts
|
|
12944
|
-
import { defineCommand as
|
|
13098
|
+
import { defineCommand as defineCommand102 } from "citty";
|
|
12945
13099
|
registerSchema({
|
|
12946
13100
|
command: "images.icon",
|
|
12947
13101
|
description: "Icon lookup via Iconify (200+ icon sets, free CDN).",
|
|
@@ -12967,7 +13121,7 @@ registerSchema({
|
|
|
12967
13121
|
}
|
|
12968
13122
|
}
|
|
12969
13123
|
});
|
|
12970
|
-
var iconCommand =
|
|
13124
|
+
var iconCommand = defineCommand102({
|
|
12971
13125
|
meta: {
|
|
12972
13126
|
name: "icon",
|
|
12973
13127
|
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'"
|
|
@@ -13007,7 +13161,7 @@ var iconCommand = defineCommand98({
|
|
|
13007
13161
|
});
|
|
13008
13162
|
|
|
13009
13163
|
// src/commands/images/ingest.ts
|
|
13010
|
-
import { defineCommand as
|
|
13164
|
+
import { defineCommand as defineCommand103 } from "citty";
|
|
13011
13165
|
registerSchema({
|
|
13012
13166
|
command: "images.ingest",
|
|
13013
13167
|
description: "Ingest a remote image URL into the library (full describe + embed).",
|
|
@@ -13019,7 +13173,7 @@ registerSchema({
|
|
|
13019
13173
|
context: { type: "string", description: "Description context hint", required: false }
|
|
13020
13174
|
}
|
|
13021
13175
|
});
|
|
13022
|
-
var ingestCommand =
|
|
13176
|
+
var ingestCommand = defineCommand103({
|
|
13023
13177
|
meta: {
|
|
13024
13178
|
name: "ingest",
|
|
13025
13179
|
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"
|
|
@@ -13061,7 +13215,7 @@ var ingestCommand = defineCommand99({
|
|
|
13061
13215
|
});
|
|
13062
13216
|
|
|
13063
13217
|
// src/commands/images/library.ts
|
|
13064
|
-
import { defineCommand as
|
|
13218
|
+
import { defineCommand as defineCommand104 } from "citty";
|
|
13065
13219
|
registerSchema({
|
|
13066
13220
|
command: "images.library",
|
|
13067
13221
|
description: "Search the company image library. Returns only ready images.",
|
|
@@ -13087,7 +13241,7 @@ registerSchema({
|
|
|
13087
13241
|
}
|
|
13088
13242
|
}
|
|
13089
13243
|
});
|
|
13090
|
-
var libraryCommand =
|
|
13244
|
+
var libraryCommand = defineCommand104({
|
|
13091
13245
|
meta: {
|
|
13092
13246
|
name: "library",
|
|
13093
13247
|
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"
|
|
@@ -13144,7 +13298,7 @@ var libraryCommand = defineCommand100({
|
|
|
13144
13298
|
});
|
|
13145
13299
|
|
|
13146
13300
|
// src/commands/images/logo.ts
|
|
13147
|
-
import { defineCommand as
|
|
13301
|
+
import { defineCommand as defineCommand105 } from "citty";
|
|
13148
13302
|
registerSchema({
|
|
13149
13303
|
command: "images.logo",
|
|
13150
13304
|
description: "Brand logo lookup via Brandfetch CDN (fallback/404). Auto-ingests by default.",
|
|
@@ -13169,7 +13323,7 @@ registerSchema({
|
|
|
13169
13323
|
}
|
|
13170
13324
|
}
|
|
13171
13325
|
});
|
|
13172
|
-
var logoCommand =
|
|
13326
|
+
var logoCommand = defineCommand105({
|
|
13173
13327
|
meta: {
|
|
13174
13328
|
name: "logo",
|
|
13175
13329
|
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"
|
|
@@ -13207,7 +13361,7 @@ var logoCommand = defineCommand101({
|
|
|
13207
13361
|
});
|
|
13208
13362
|
|
|
13209
13363
|
// src/commands/images/normalize.ts
|
|
13210
|
-
import { defineCommand as
|
|
13364
|
+
import { defineCommand as defineCommand106 } from "citty";
|
|
13211
13365
|
|
|
13212
13366
|
// src/lib/image/color-changer.ts
|
|
13213
13367
|
import quantize from "quantize";
|
|
@@ -13939,7 +14093,7 @@ function coerceRawArgs(args) {
|
|
|
13939
14093
|
"dry-run": bool(args["dry-run"])
|
|
13940
14094
|
};
|
|
13941
14095
|
}
|
|
13942
|
-
var normalizeCommand =
|
|
14096
|
+
var normalizeCommand = defineCommand106({
|
|
13943
14097
|
meta: {
|
|
13944
14098
|
name: "normalize",
|
|
13945
14099
|
description: `Normalize logos / images: declarative recolor + bg removal + trim + resize. Operates on local files; writes in-place by default.
|
|
@@ -13994,7 +14148,7 @@ Examples:
|
|
|
13994
14148
|
});
|
|
13995
14149
|
|
|
13996
14150
|
// src/commands/images/pinterest.ts
|
|
13997
|
-
import { defineCommand as
|
|
14151
|
+
import { defineCommand as defineCommand107 } from "citty";
|
|
13998
14152
|
registerSchema({
|
|
13999
14153
|
command: "images.pinterest",
|
|
14000
14154
|
description: "Pinterest image search via ScrapeCreators. Reference-grade real-world photography, product styling, interiors, fashion, food, and aesthetic mood boards. Inspect before placing \u2014 Pinterest is unverified, trademark-bearing web content.",
|
|
@@ -14014,7 +14168,7 @@ registerSchema({
|
|
|
14014
14168
|
}
|
|
14015
14169
|
}
|
|
14016
14170
|
});
|
|
14017
|
-
var pinterestCommand =
|
|
14171
|
+
var pinterestCommand = defineCommand107({
|
|
14018
14172
|
meta: {
|
|
14019
14173
|
name: "pinterest",
|
|
14020
14174
|
description: "Pinterest image search via ScrapeCreators ($0.00188/request). Best for photo-realistic reference imagery \u2014 lifestyle, interiors, fashion, food, product styling, and mood boards to brief AI generation against. \u26A0 Unverified, trademark-bearing web content \u2014 inspect and respect rights before placing on a customer page. Browse first; auto-ingest only the pins you commit to.\n\nExamples:\n baker images pinterest 'scandinavian living room'\n baker images pinterest 'minimalist skincare product photography' --limit 20\n baker images pinterest 'cozy coffee shop interior' --auto-ingest 2 --context 'Mood reference for hero photography'"
|
|
@@ -14054,7 +14208,7 @@ var pinterestCommand = defineCommand103({
|
|
|
14054
14208
|
});
|
|
14055
14209
|
|
|
14056
14210
|
// src/commands/images/screenshot.ts
|
|
14057
|
-
import { defineCommand as
|
|
14211
|
+
import { defineCommand as defineCommand108 } from "citty";
|
|
14058
14212
|
registerSchema({
|
|
14059
14213
|
command: "images.screenshot",
|
|
14060
14214
|
description: "Capture a website screenshot via ScreenshotOne. Auto-ingests on success.",
|
|
@@ -14070,7 +14224,7 @@ registerSchema({
|
|
|
14070
14224
|
}
|
|
14071
14225
|
}
|
|
14072
14226
|
});
|
|
14073
|
-
var screenshotCommand =
|
|
14227
|
+
var screenshotCommand = defineCommand108({
|
|
14074
14228
|
meta: {
|
|
14075
14229
|
name: "screenshot",
|
|
14076
14230
|
description: "Screenshot a URL via ScreenshotOne. $0.009/capture. Auto-ingests to library.\n\nExample: baker images screenshot https://stripe.com --full-page"
|
|
@@ -14120,7 +14274,7 @@ var screenshotCommand = defineCommand104({
|
|
|
14120
14274
|
});
|
|
14121
14275
|
|
|
14122
14276
|
// src/commands/images/search.ts
|
|
14123
|
-
import { defineCommand as
|
|
14277
|
+
import { defineCommand as defineCommand109 } from "citty";
|
|
14124
14278
|
registerSchema({
|
|
14125
14279
|
command: "images.search",
|
|
14126
14280
|
description: "Search images by text query. Only returns ready images.",
|
|
@@ -14136,7 +14290,7 @@ registerSchema({
|
|
|
14136
14290
|
tags: { type: "string", description: "Comma-separated tags to filter by", required: false }
|
|
14137
14291
|
}
|
|
14138
14292
|
});
|
|
14139
|
-
var searchCommand =
|
|
14293
|
+
var searchCommand = defineCommand109({
|
|
14140
14294
|
meta: {
|
|
14141
14295
|
name: "search",
|
|
14142
14296
|
description: "Semantic search images by text query. Uses hybrid BM25 + vector + reranking. Example: baker images search 'hero banner' --aspect-ratio 16:9 --tags logo"
|
|
@@ -14196,7 +14350,7 @@ var searchCommand = defineCommand105({
|
|
|
14196
14350
|
});
|
|
14197
14351
|
|
|
14198
14352
|
// src/commands/images/sticker.ts
|
|
14199
|
-
import { defineCommand as
|
|
14353
|
+
import { defineCommand as defineCommand110 } from "citty";
|
|
14200
14354
|
registerSchema({
|
|
14201
14355
|
command: "images.sticker",
|
|
14202
14356
|
description: "Search Giphy stickers \u2014 transparent-background overlays for ad creative.",
|
|
@@ -14228,7 +14382,7 @@ registerSchema({
|
|
|
14228
14382
|
}
|
|
14229
14383
|
}
|
|
14230
14384
|
});
|
|
14231
|
-
var stickerCommand =
|
|
14385
|
+
var stickerCommand = defineCommand110({
|
|
14232
14386
|
meta: {
|
|
14233
14387
|
name: "sticker",
|
|
14234
14388
|
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"
|
|
@@ -14275,7 +14429,7 @@ var stickerCommand = defineCommand106({
|
|
|
14275
14429
|
});
|
|
14276
14430
|
|
|
14277
14431
|
// src/commands/images/stock.ts
|
|
14278
|
-
import { defineCommand as
|
|
14432
|
+
import { defineCommand as defineCommand111 } from "citty";
|
|
14279
14433
|
registerSchema({
|
|
14280
14434
|
command: "images.stock",
|
|
14281
14435
|
description: "Stock photo, vector illustration, icon-set, and PSD search via Magnific (Freepik's developer API).",
|
|
@@ -14333,7 +14487,7 @@ registerSchema({
|
|
|
14333
14487
|
}
|
|
14334
14488
|
}
|
|
14335
14489
|
});
|
|
14336
|
-
var stockCommand =
|
|
14490
|
+
var stockCommand = defineCommand111({
|
|
14337
14491
|
meta: {
|
|
14338
14492
|
name: "stock",
|
|
14339
14493
|
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"
|
|
@@ -14389,7 +14543,7 @@ var stockCommand = defineCommand107({
|
|
|
14389
14543
|
});
|
|
14390
14544
|
|
|
14391
14545
|
// src/lib/tags-command.ts
|
|
14392
|
-
import { defineCommand as
|
|
14546
|
+
import { defineCommand as defineCommand112 } from "citty";
|
|
14393
14547
|
function makeTagsCommand(command, label, endpoint) {
|
|
14394
14548
|
registerSchema({
|
|
14395
14549
|
command: `${command}.tags`,
|
|
@@ -14398,7 +14552,7 @@ function makeTagsCommand(command, label, endpoint) {
|
|
|
14398
14552
|
output: { type: "string", description: "Output format: md|json", required: false, default: "md" }
|
|
14399
14553
|
}
|
|
14400
14554
|
});
|
|
14401
|
-
return
|
|
14555
|
+
return defineCommand112({
|
|
14402
14556
|
meta: {
|
|
14403
14557
|
name: "tags",
|
|
14404
14558
|
description: `List the available ${label} tag names (defaults + company custom tags). Use before filtering with --tags. Example: baker ${command} tags`
|
|
@@ -14431,12 +14585,12 @@ function makeTagsCommand(command, label, endpoint) {
|
|
|
14431
14585
|
}
|
|
14432
14586
|
|
|
14433
14587
|
// src/commands/images/tags.ts
|
|
14434
|
-
var
|
|
14588
|
+
var tagsCommand2 = makeTagsCommand("images", "image", "/api/images/tags");
|
|
14435
14589
|
|
|
14436
14590
|
// src/commands/images/upload.ts
|
|
14437
14591
|
import { readFile as readFile9 } from "fs/promises";
|
|
14438
14592
|
import { extname as extname2 } from "path";
|
|
14439
|
-
import { defineCommand as
|
|
14593
|
+
import { defineCommand as defineCommand113 } from "citty";
|
|
14440
14594
|
var MIME_MAP = {
|
|
14441
14595
|
".png": "image/png",
|
|
14442
14596
|
".jpg": "image/jpeg",
|
|
@@ -14491,7 +14645,7 @@ function detectContentType(filePath) {
|
|
|
14491
14645
|
}
|
|
14492
14646
|
return mime;
|
|
14493
14647
|
}
|
|
14494
|
-
var uploadCommand =
|
|
14648
|
+
var uploadCommand = defineCommand113({
|
|
14495
14649
|
meta: {
|
|
14496
14650
|
name: "upload",
|
|
14497
14651
|
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'"
|
|
@@ -14584,7 +14738,7 @@ async function uploadLocal(target, args) {
|
|
|
14584
14738
|
}
|
|
14585
14739
|
|
|
14586
14740
|
// src/commands/images/upscale.ts
|
|
14587
|
-
import { defineCommand as
|
|
14741
|
+
import { defineCommand as defineCommand114 } from "citty";
|
|
14588
14742
|
registerSchema({
|
|
14589
14743
|
command: "images.upscale",
|
|
14590
14744
|
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).",
|
|
@@ -14599,7 +14753,7 @@ registerSchema({
|
|
|
14599
14753
|
}
|
|
14600
14754
|
});
|
|
14601
14755
|
var POLL_INTERVAL_MS3 = 1500;
|
|
14602
|
-
var upscaleCommand =
|
|
14756
|
+
var upscaleCommand = defineCommand114({
|
|
14603
14757
|
meta: {
|
|
14604
14758
|
name: "upscale",
|
|
14605
14759
|
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"
|
|
@@ -14654,7 +14808,7 @@ var upscaleCommand = defineCommand110({
|
|
|
14654
14808
|
});
|
|
14655
14809
|
|
|
14656
14810
|
// src/commands/images/use.ts
|
|
14657
|
-
import { defineCommand as
|
|
14811
|
+
import { defineCommand as defineCommand115 } from "citty";
|
|
14658
14812
|
registerSchema({
|
|
14659
14813
|
command: "images.use",
|
|
14660
14814
|
description: "Ingest a URL and wait for the library record to be ready.",
|
|
@@ -14670,7 +14824,7 @@ registerSchema({
|
|
|
14670
14824
|
}
|
|
14671
14825
|
});
|
|
14672
14826
|
var POLL_INTERVAL_MS4 = 1500;
|
|
14673
|
-
var useCommand =
|
|
14827
|
+
var useCommand = defineCommand115({
|
|
14674
14828
|
meta: {
|
|
14675
14829
|
name: "use",
|
|
14676
14830
|
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"
|
|
@@ -14716,7 +14870,7 @@ var useCommand = defineCommand111({
|
|
|
14716
14870
|
});
|
|
14717
14871
|
|
|
14718
14872
|
// src/commands/images/index.ts
|
|
14719
|
-
var imagesCommand =
|
|
14873
|
+
var imagesCommand = defineCommand116({
|
|
14720
14874
|
meta: {
|
|
14721
14875
|
name: "images",
|
|
14722
14876
|
description: `Find, source, and normalize images. Subcommands route by provider so cost + license are explicit.
|
|
@@ -14781,15 +14935,15 @@ Paid transforms (run on the Convex backend, cost-tracked):
|
|
|
14781
14935
|
crop: cropCommand,
|
|
14782
14936
|
dimensions: dimensionsCommand,
|
|
14783
14937
|
upscale: upscaleCommand,
|
|
14784
|
-
tags:
|
|
14938
|
+
tags: tagsCommand2
|
|
14785
14939
|
}
|
|
14786
14940
|
});
|
|
14787
14941
|
|
|
14788
14942
|
// src/commands/research/index.ts
|
|
14789
|
-
import { defineCommand as
|
|
14943
|
+
import { defineCommand as defineCommand127 } from "citty";
|
|
14790
14944
|
|
|
14791
14945
|
// src/commands/research/advertisers.ts
|
|
14792
|
-
import { defineCommand as
|
|
14946
|
+
import { defineCommand as defineCommand117 } from "citty";
|
|
14793
14947
|
|
|
14794
14948
|
// src/commands/research/output.ts
|
|
14795
14949
|
var RESEARCH_DATA_NOTE = "Estimates based on third-party SERP data \u2014 not exact figures. Use for directional insights, not precise measurement.";
|
|
@@ -14902,7 +15056,7 @@ var FIELDS3 = {
|
|
|
14902
15056
|
etv: "Estimated traffic value (USD)",
|
|
14903
15057
|
visibility: "SERP visibility score (0-1)"
|
|
14904
15058
|
};
|
|
14905
|
-
var advertisersCommand =
|
|
15059
|
+
var advertisersCommand = defineCommand117({
|
|
14906
15060
|
meta: {
|
|
14907
15061
|
name: "advertisers",
|
|
14908
15062
|
description: `Find domains competing for a keyword in Google SERPs.
|
|
@@ -14949,7 +15103,7 @@ Examples:
|
|
|
14949
15103
|
});
|
|
14950
15104
|
|
|
14951
15105
|
// src/commands/research/autocomplete.ts
|
|
14952
|
-
import { defineCommand as
|
|
15106
|
+
import { defineCommand as defineCommand118 } from "citty";
|
|
14953
15107
|
registerSchema({
|
|
14954
15108
|
command: "research.autocomplete",
|
|
14955
15109
|
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).",
|
|
@@ -14972,7 +15126,7 @@ registerSchema({
|
|
|
14972
15126
|
var FIELDS4 = {
|
|
14973
15127
|
suggestion: "Autocomplete suggestion from Google"
|
|
14974
15128
|
};
|
|
14975
|
-
var autocompleteCommand =
|
|
15129
|
+
var autocompleteCommand = defineCommand118({
|
|
14976
15130
|
meta: {
|
|
14977
15131
|
name: "autocomplete",
|
|
14978
15132
|
description: `Get Google Autocomplete suggestions for keyword expansion.
|
|
@@ -15018,7 +15172,7 @@ Examples:
|
|
|
15018
15172
|
});
|
|
15019
15173
|
|
|
15020
15174
|
// src/commands/research/countries.ts
|
|
15021
|
-
import { defineCommand as
|
|
15175
|
+
import { defineCommand as defineCommand119 } from "citty";
|
|
15022
15176
|
registerSchema({
|
|
15023
15177
|
command: "research.countries",
|
|
15024
15178
|
description: "List all supported country codes for --location flag in research commands.",
|
|
@@ -15075,7 +15229,7 @@ var FIELDS5 = {
|
|
|
15075
15229
|
code: "Country code to pass as --location",
|
|
15076
15230
|
name: "Country name"
|
|
15077
15231
|
};
|
|
15078
|
-
var countriesCommand =
|
|
15232
|
+
var countriesCommand = defineCommand119({
|
|
15079
15233
|
meta: {
|
|
15080
15234
|
name: "countries",
|
|
15081
15235
|
description: "List all supported country codes for --location flag."
|
|
@@ -15086,7 +15240,7 @@ var countriesCommand = defineCommand115({
|
|
|
15086
15240
|
});
|
|
15087
15241
|
|
|
15088
15242
|
// src/commands/research/intent.ts
|
|
15089
|
-
import { defineCommand as
|
|
15243
|
+
import { defineCommand as defineCommand120 } from "citty";
|
|
15090
15244
|
registerSchema({
|
|
15091
15245
|
command: "research.intent",
|
|
15092
15246
|
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.",
|
|
@@ -15109,7 +15263,7 @@ var FIELDS6 = {
|
|
|
15109
15263
|
intent: "Primary Google Search intent: informational, navigational, commercial, transactional",
|
|
15110
15264
|
probability: "Confidence score 0.0-1.0"
|
|
15111
15265
|
};
|
|
15112
|
-
var intentCommand =
|
|
15266
|
+
var intentCommand = defineCommand120({
|
|
15113
15267
|
meta: {
|
|
15114
15268
|
name: "intent",
|
|
15115
15269
|
description: `Classify Google Search intent for keywords. Returns intent type and confidence.
|
|
@@ -15157,7 +15311,7 @@ Examples:
|
|
|
15157
15311
|
});
|
|
15158
15312
|
|
|
15159
15313
|
// src/commands/research/keyword-gap.ts
|
|
15160
|
-
import { defineCommand as
|
|
15314
|
+
import { defineCommand as defineCommand121 } from "citty";
|
|
15161
15315
|
registerSchema({
|
|
15162
15316
|
command: "research.keyword-gap",
|
|
15163
15317
|
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.",
|
|
@@ -15186,7 +15340,7 @@ var FIELDS7 = {
|
|
|
15186
15340
|
cpc: "Cost per click USD",
|
|
15187
15341
|
their_position: "Competitor's ranking position"
|
|
15188
15342
|
};
|
|
15189
|
-
var keywordGapCommand =
|
|
15343
|
+
var keywordGapCommand = defineCommand121({
|
|
15190
15344
|
meta: {
|
|
15191
15345
|
name: "keyword-gap",
|
|
15192
15346
|
description: `Find keywords a competitor has that you don't. Supports pagination via --offset.
|
|
@@ -15260,7 +15414,7 @@ Examples:
|
|
|
15260
15414
|
});
|
|
15261
15415
|
|
|
15262
15416
|
// src/commands/research/keywords-for-site.ts
|
|
15263
|
-
import { defineCommand as
|
|
15417
|
+
import { defineCommand as defineCommand122 } from "citty";
|
|
15264
15418
|
registerSchema({
|
|
15265
15419
|
command: "research.keywords-for-site",
|
|
15266
15420
|
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.",
|
|
@@ -15293,7 +15447,7 @@ var FIELDS8 = {
|
|
|
15293
15447
|
competition: "LOW, MEDIUM, or HIGH",
|
|
15294
15448
|
competition_index: "Competition score 0-100"
|
|
15295
15449
|
};
|
|
15296
|
-
var keywordsForSiteCommand =
|
|
15450
|
+
var keywordsForSiteCommand = defineCommand122({
|
|
15297
15451
|
meta: {
|
|
15298
15452
|
name: "keywords-for-site",
|
|
15299
15453
|
description: `Get keywords a competitor targets in Google. Use --type to filter paid/organic.
|
|
@@ -15346,7 +15500,7 @@ Examples:
|
|
|
15346
15500
|
});
|
|
15347
15501
|
|
|
15348
15502
|
// src/commands/research/languages.ts
|
|
15349
|
-
import { defineCommand as
|
|
15503
|
+
import { defineCommand as defineCommand123 } from "citty";
|
|
15350
15504
|
registerSchema({
|
|
15351
15505
|
command: "research.languages",
|
|
15352
15506
|
description: "List all supported language codes for --language flag in research commands.",
|
|
@@ -15376,7 +15530,7 @@ var FIELDS9 = {
|
|
|
15376
15530
|
code: "Language code to pass as --language",
|
|
15377
15531
|
name: "Language name (also accepted by --language)"
|
|
15378
15532
|
};
|
|
15379
|
-
var languagesCommand2 =
|
|
15533
|
+
var languagesCommand2 = defineCommand123({
|
|
15380
15534
|
meta: {
|
|
15381
15535
|
name: "languages",
|
|
15382
15536
|
description: "List all supported language codes for --language flag."
|
|
@@ -15387,7 +15541,7 @@ var languagesCommand2 = defineCommand119({
|
|
|
15387
15541
|
});
|
|
15388
15542
|
|
|
15389
15543
|
// src/commands/research/lighthouse.ts
|
|
15390
|
-
import { defineCommand as
|
|
15544
|
+
import { defineCommand as defineCommand124 } from "citty";
|
|
15391
15545
|
registerSchema({
|
|
15392
15546
|
command: "research.lighthouse",
|
|
15393
15547
|
description: "Landing page performance audit. Returns metrics that affect Google Ads Quality Score and CPC.",
|
|
@@ -15406,7 +15560,7 @@ var FIELDS10 = {
|
|
|
15406
15560
|
speed_index_ms: "Speed Index in ms (good: < 3400)",
|
|
15407
15561
|
interactive_ms: "Time to Interactive in ms (good: < 3800)"
|
|
15408
15562
|
};
|
|
15409
|
-
var lighthouseCommand =
|
|
15563
|
+
var lighthouseCommand = defineCommand124({
|
|
15410
15564
|
meta: {
|
|
15411
15565
|
name: "lighthouse",
|
|
15412
15566
|
description: `Landing page performance audit. Metrics affecting Google Ads Quality Score.
|
|
@@ -15444,7 +15598,7 @@ Examples:
|
|
|
15444
15598
|
});
|
|
15445
15599
|
|
|
15446
15600
|
// src/commands/research/relevant-pages.ts
|
|
15447
|
-
import { defineCommand as
|
|
15601
|
+
import { defineCommand as defineCommand125 } from "citty";
|
|
15448
15602
|
registerSchema({
|
|
15449
15603
|
command: "research.relevant-pages",
|
|
15450
15604
|
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).",
|
|
@@ -15470,7 +15624,7 @@ var FIELDS11 = {
|
|
|
15470
15624
|
keywords: "Total organic keywords the page ranks for",
|
|
15471
15625
|
top_10: "Keywords in positions 1-10"
|
|
15472
15626
|
};
|
|
15473
|
-
var relevantPagesCommand =
|
|
15627
|
+
var relevantPagesCommand = defineCommand125({
|
|
15474
15628
|
meta: {
|
|
15475
15629
|
name: "relevant-pages",
|
|
15476
15630
|
description: `Get the top pages of a competitor domain with traffic data.
|
|
@@ -15516,7 +15670,7 @@ Examples:
|
|
|
15516
15670
|
});
|
|
15517
15671
|
|
|
15518
15672
|
// src/commands/research/web.ts
|
|
15519
|
-
import { defineCommand as
|
|
15673
|
+
import { defineCommand as defineCommand126 } from "citty";
|
|
15520
15674
|
registerSchema({
|
|
15521
15675
|
command: "research.web",
|
|
15522
15676
|
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).",
|
|
@@ -15567,7 +15721,7 @@ async function runDeepResearch(question) {
|
|
|
15567
15721
|
}
|
|
15568
15722
|
throw new Error("Deep research timed out");
|
|
15569
15723
|
}
|
|
15570
|
-
var webCommand =
|
|
15724
|
+
var webCommand = defineCommand126({
|
|
15571
15725
|
meta: {
|
|
15572
15726
|
name: "web",
|
|
15573
15727
|
description: `Search the web with AI to answer any open-ended marketing question. Uses live internet data via Google Search.
|
|
@@ -15627,7 +15781,7 @@ Examples:
|
|
|
15627
15781
|
});
|
|
15628
15782
|
|
|
15629
15783
|
// src/commands/research/index.ts
|
|
15630
|
-
var researchCommand =
|
|
15784
|
+
var researchCommand = defineCommand127({
|
|
15631
15785
|
meta: {
|
|
15632
15786
|
name: "research",
|
|
15633
15787
|
description: `Competitive intelligence and AI-powered research commands.
|
|
@@ -15667,10 +15821,10 @@ Examples:
|
|
|
15667
15821
|
});
|
|
15668
15822
|
|
|
15669
15823
|
// src/commands/scheduled-actions/index.ts
|
|
15670
|
-
import { defineCommand as
|
|
15824
|
+
import { defineCommand as defineCommand134 } from "citty";
|
|
15671
15825
|
|
|
15672
15826
|
// src/commands/scheduled-actions/create.ts
|
|
15673
|
-
import { defineCommand as
|
|
15827
|
+
import { defineCommand as defineCommand128 } from "citty";
|
|
15674
15828
|
|
|
15675
15829
|
// src/commands/scheduled-actions/shared.ts
|
|
15676
15830
|
var TEMP_SCHEDULED_ACTION_PREFIX = "temp_sched_";
|
|
@@ -15775,7 +15929,7 @@ registerSchema({
|
|
|
15775
15929
|
prompt: { type: "string", description: "Additional prompt instructions for the spawned agent", required: false }
|
|
15776
15930
|
}
|
|
15777
15931
|
});
|
|
15778
|
-
var createCommand2 =
|
|
15932
|
+
var createCommand2 = defineCommand128({
|
|
15779
15933
|
meta: {
|
|
15780
15934
|
name: "create",
|
|
15781
15935
|
description: 'Stage a scheduled action. Example: baker scheduled-actions create --name "Weekly report" --description "..." --cron "0 9 * * MON"'
|
|
@@ -15823,7 +15977,7 @@ var createCommand2 = defineCommand124({
|
|
|
15823
15977
|
});
|
|
15824
15978
|
|
|
15825
15979
|
// src/commands/scheduled-actions/delete.ts
|
|
15826
|
-
import { defineCommand as
|
|
15980
|
+
import { defineCommand as defineCommand129 } from "citty";
|
|
15827
15981
|
registerSchema({
|
|
15828
15982
|
command: "scheduled-actions.delete",
|
|
15829
15983
|
description: "Stage deletion of a published scheduled action or cancellation of a temp_sched_* draft creation.",
|
|
@@ -15831,7 +15985,7 @@ registerSchema({
|
|
|
15831
15985
|
id: { type: "string", description: "Published scheduled action ID or temp_sched_* draft ID", required: true }
|
|
15832
15986
|
}
|
|
15833
15987
|
});
|
|
15834
|
-
var deleteCommand2 =
|
|
15988
|
+
var deleteCommand2 = defineCommand129({
|
|
15835
15989
|
meta: {
|
|
15836
15990
|
name: "delete",
|
|
15837
15991
|
description: "Stage scheduled action deletion. Example: baker scheduled-actions delete <id-or-temp_sched_id>"
|
|
@@ -15860,7 +16014,7 @@ var deleteCommand2 = defineCommand125({
|
|
|
15860
16014
|
});
|
|
15861
16015
|
|
|
15862
16016
|
// src/commands/scheduled-actions/get.ts
|
|
15863
|
-
import { defineCommand as
|
|
16017
|
+
import { defineCommand as defineCommand130 } from "citty";
|
|
15864
16018
|
registerSchema({
|
|
15865
16019
|
command: "scheduled-actions.get",
|
|
15866
16020
|
description: "Get a published scheduled action or a temp_sched_* draft-created scheduled action.",
|
|
@@ -15868,7 +16022,7 @@ registerSchema({
|
|
|
15868
16022
|
id: { type: "string", description: "Published scheduled action ID or temp_sched_* draft ID", required: true }
|
|
15869
16023
|
}
|
|
15870
16024
|
});
|
|
15871
|
-
var getCommand3 =
|
|
16025
|
+
var getCommand3 = defineCommand130({
|
|
15872
16026
|
meta: {
|
|
15873
16027
|
name: "get",
|
|
15874
16028
|
description: "Get a scheduled action. Example: baker scheduled-actions get <id-or-temp_sched_id>"
|
|
@@ -15905,13 +16059,13 @@ var getCommand3 = defineCommand126({
|
|
|
15905
16059
|
});
|
|
15906
16060
|
|
|
15907
16061
|
// src/commands/scheduled-actions/list.ts
|
|
15908
|
-
import { defineCommand as
|
|
16062
|
+
import { defineCommand as defineCommand131 } from "citty";
|
|
15909
16063
|
registerSchema({
|
|
15910
16064
|
command: "scheduled-actions.list",
|
|
15911
16065
|
description: "List published scheduled actions. Includes draft state when BAKER_CHAT_ID is set.",
|
|
15912
16066
|
args: {}
|
|
15913
16067
|
});
|
|
15914
|
-
var listCommand3 =
|
|
16068
|
+
var listCommand3 = defineCommand131({
|
|
15915
16069
|
meta: {
|
|
15916
16070
|
name: "list",
|
|
15917
16071
|
description: "List scheduled actions. Includes staged draft ops when BAKER_CHAT_ID is set."
|
|
@@ -15932,7 +16086,7 @@ var listCommand3 = defineCommand127({
|
|
|
15932
16086
|
});
|
|
15933
16087
|
|
|
15934
16088
|
// src/commands/scheduled-actions/trigger.ts
|
|
15935
|
-
import { defineCommand as
|
|
16089
|
+
import { defineCommand as defineCommand132 } from "citty";
|
|
15936
16090
|
registerSchema({
|
|
15937
16091
|
command: "scheduled-actions.trigger",
|
|
15938
16092
|
description: "Immediately trigger a published scheduled action. Does not require BAKER_CHAT_ID and rejects temp_sched_* IDs.",
|
|
@@ -15940,7 +16094,7 @@ registerSchema({
|
|
|
15940
16094
|
id: { type: "string", description: "Published scheduled action ID", required: true }
|
|
15941
16095
|
}
|
|
15942
16096
|
});
|
|
15943
|
-
var triggerCommand =
|
|
16097
|
+
var triggerCommand = defineCommand132({
|
|
15944
16098
|
meta: {
|
|
15945
16099
|
name: "trigger",
|
|
15946
16100
|
description: "Immediately trigger a published scheduled action. Example: baker scheduled-actions trigger <id>"
|
|
@@ -15977,7 +16131,7 @@ var triggerCommand = defineCommand128({
|
|
|
15977
16131
|
});
|
|
15978
16132
|
|
|
15979
16133
|
// src/commands/scheduled-actions/update.ts
|
|
15980
|
-
import { defineCommand as
|
|
16134
|
+
import { defineCommand as defineCommand133 } from "citty";
|
|
15981
16135
|
registerSchema({
|
|
15982
16136
|
command: "scheduled-actions.update",
|
|
15983
16137
|
description: "Stage an update to a published scheduled action or temp_sched_* draft-created scheduled action.",
|
|
@@ -16002,7 +16156,7 @@ registerSchema({
|
|
|
16002
16156
|
prompt: { type: "string", description: "Replacement additional spawned-agent instructions", required: false }
|
|
16003
16157
|
}
|
|
16004
16158
|
});
|
|
16005
|
-
var updateCommand2 =
|
|
16159
|
+
var updateCommand2 = defineCommand133({
|
|
16006
16160
|
meta: {
|
|
16007
16161
|
name: "update",
|
|
16008
16162
|
description: "Stage a scheduled action update. Example: baker scheduled-actions update <id> --enabled false"
|
|
@@ -16072,7 +16226,7 @@ var updateCommand2 = defineCommand129({
|
|
|
16072
16226
|
});
|
|
16073
16227
|
|
|
16074
16228
|
// src/commands/scheduled-actions/index.ts
|
|
16075
|
-
var scheduledActionsCommand =
|
|
16229
|
+
var scheduledActionsCommand = defineCommand134({
|
|
16076
16230
|
meta: {
|
|
16077
16231
|
name: "scheduled-actions",
|
|
16078
16232
|
description: `Manage Scheduled Actions. Subcommands: list, get, create, update, delete, trigger.
|
|
@@ -16098,8 +16252,8 @@ Examples:
|
|
|
16098
16252
|
});
|
|
16099
16253
|
|
|
16100
16254
|
// src/commands/schema.ts
|
|
16101
|
-
import { defineCommand as
|
|
16102
|
-
var schemaCommand =
|
|
16255
|
+
import { defineCommand as defineCommand135 } from "citty";
|
|
16256
|
+
var schemaCommand = defineCommand135({
|
|
16103
16257
|
meta: {
|
|
16104
16258
|
name: "schema",
|
|
16105
16259
|
description: "Inspect command argument schemas (for AI agent introspection). Lists all commands if no argument given. Example: baker schema images.search"
|
|
@@ -16135,10 +16289,10 @@ var schemaCommand = defineCommand131({
|
|
|
16135
16289
|
});
|
|
16136
16290
|
|
|
16137
16291
|
// src/commands/testimonials/index.ts
|
|
16138
|
-
import { defineCommand as
|
|
16292
|
+
import { defineCommand as defineCommand139 } from "citty";
|
|
16139
16293
|
|
|
16140
16294
|
// src/commands/testimonials/get.ts
|
|
16141
|
-
import { defineCommand as
|
|
16295
|
+
import { defineCommand as defineCommand136 } from "citty";
|
|
16142
16296
|
registerSchema({
|
|
16143
16297
|
command: "testimonials.get",
|
|
16144
16298
|
description: "Get a single testimonial by ID",
|
|
@@ -16146,7 +16300,7 @@ registerSchema({
|
|
|
16146
16300
|
id: { type: "string", description: "Testimonial ID", required: true }
|
|
16147
16301
|
}
|
|
16148
16302
|
});
|
|
16149
|
-
var getCommand4 =
|
|
16303
|
+
var getCommand4 = defineCommand136({
|
|
16150
16304
|
meta: { name: "get", description: "Get a single testimonial by ID. Example: baker testimonials get j571abc123" },
|
|
16151
16305
|
args: {
|
|
16152
16306
|
id: { type: "positional", description: "Testimonial ID", required: false },
|
|
@@ -16183,7 +16337,7 @@ var getCommand4 = defineCommand132({
|
|
|
16183
16337
|
});
|
|
16184
16338
|
|
|
16185
16339
|
// src/commands/testimonials/list.ts
|
|
16186
|
-
import { defineCommand as
|
|
16340
|
+
import { defineCommand as defineCommand137 } from "citty";
|
|
16187
16341
|
registerSchema({
|
|
16188
16342
|
command: "testimonials.list",
|
|
16189
16343
|
description: "List testimonials with optional filters.",
|
|
@@ -16213,7 +16367,7 @@ registerSchema({
|
|
|
16213
16367
|
limit: { type: "number", description: "Max results (default 50)", required: false, default: 50 }
|
|
16214
16368
|
}
|
|
16215
16369
|
});
|
|
16216
|
-
var listCommand4 =
|
|
16370
|
+
var listCommand4 = defineCommand137({
|
|
16217
16371
|
meta: {
|
|
16218
16372
|
name: "list",
|
|
16219
16373
|
description: "List testimonials with optional filters. Example: baker testimonials list --source google --sentiment positive"
|
|
@@ -16262,7 +16416,7 @@ var listCommand4 = defineCommand133({
|
|
|
16262
16416
|
});
|
|
16263
16417
|
|
|
16264
16418
|
// src/commands/testimonials/search.ts
|
|
16265
|
-
import { defineCommand as
|
|
16419
|
+
import { defineCommand as defineCommand138 } from "citty";
|
|
16266
16420
|
registerSchema({
|
|
16267
16421
|
command: "testimonials.search",
|
|
16268
16422
|
description: "Search testimonials by text query. Uses hybrid BM25 + vector + reranking.",
|
|
@@ -16293,7 +16447,7 @@ registerSchema({
|
|
|
16293
16447
|
tags: { type: "string", description: "Comma-separated tags to filter by", required: false }
|
|
16294
16448
|
}
|
|
16295
16449
|
});
|
|
16296
|
-
var searchCommand2 =
|
|
16450
|
+
var searchCommand2 = defineCommand138({
|
|
16297
16451
|
meta: {
|
|
16298
16452
|
name: "search",
|
|
16299
16453
|
description: "Semantic search testimonials by text query. Uses hybrid BM25 + vector + reranking. Example: baker testimonials search 'great service' --rating-min 4"
|
|
@@ -16364,10 +16518,10 @@ var searchCommand2 = defineCommand134({
|
|
|
16364
16518
|
});
|
|
16365
16519
|
|
|
16366
16520
|
// src/commands/testimonials/tags.ts
|
|
16367
|
-
var
|
|
16521
|
+
var tagsCommand3 = makeTagsCommand("testimonials", "testimonial", "/api/testimonials/tags");
|
|
16368
16522
|
|
|
16369
16523
|
// src/commands/testimonials/index.ts
|
|
16370
|
-
var testimonialsCommand =
|
|
16524
|
+
var testimonialsCommand = defineCommand139({
|
|
16371
16525
|
meta: {
|
|
16372
16526
|
name: "testimonials",
|
|
16373
16527
|
description: `Find and browse testimonials in Baker. Subcommands: search, get, list, tags.
|
|
@@ -16383,15 +16537,15 @@ Examples:
|
|
|
16383
16537
|
get: getCommand4,
|
|
16384
16538
|
search: searchCommand2,
|
|
16385
16539
|
list: listCommand4,
|
|
16386
|
-
tags:
|
|
16540
|
+
tags: tagsCommand3
|
|
16387
16541
|
}
|
|
16388
16542
|
});
|
|
16389
16543
|
|
|
16390
16544
|
// src/commands/videos/index.ts
|
|
16391
|
-
import { defineCommand as
|
|
16545
|
+
import { defineCommand as defineCommand144 } from "citty";
|
|
16392
16546
|
|
|
16393
16547
|
// src/commands/videos/delete.ts
|
|
16394
|
-
import { defineCommand as
|
|
16548
|
+
import { defineCommand as defineCommand140 } from "citty";
|
|
16395
16549
|
registerSchema({
|
|
16396
16550
|
command: "videos.delete",
|
|
16397
16551
|
description: "Delete a video by ID",
|
|
@@ -16405,7 +16559,7 @@ registerSchema({
|
|
|
16405
16559
|
}
|
|
16406
16560
|
}
|
|
16407
16561
|
});
|
|
16408
|
-
var deleteCommand3 =
|
|
16562
|
+
var deleteCommand3 = defineCommand140({
|
|
16409
16563
|
meta: {
|
|
16410
16564
|
name: "delete",
|
|
16411
16565
|
description: "Delete a video by ID. Use --dry-run to preview. Example: baker videos delete j571abc123 --dry-run"
|
|
@@ -16446,7 +16600,7 @@ var deleteCommand3 = defineCommand136({
|
|
|
16446
16600
|
});
|
|
16447
16601
|
|
|
16448
16602
|
// src/commands/videos/get.ts
|
|
16449
|
-
import { defineCommand as
|
|
16603
|
+
import { defineCommand as defineCommand141 } from "citty";
|
|
16450
16604
|
registerSchema({
|
|
16451
16605
|
command: "videos.get",
|
|
16452
16606
|
description: "Get a single video by ID",
|
|
@@ -16454,7 +16608,7 @@ registerSchema({
|
|
|
16454
16608
|
id: { type: "string", description: "Video ID", required: true }
|
|
16455
16609
|
}
|
|
16456
16610
|
});
|
|
16457
|
-
var getCommand5 =
|
|
16611
|
+
var getCommand5 = defineCommand141({
|
|
16458
16612
|
meta: { name: "get", description: "Get a single video by ID. Example: baker videos get j571abc123" },
|
|
16459
16613
|
args: {
|
|
16460
16614
|
id: { type: "positional", description: "Video ID", required: false },
|
|
@@ -16491,7 +16645,7 @@ var getCommand5 = defineCommand137({
|
|
|
16491
16645
|
});
|
|
16492
16646
|
|
|
16493
16647
|
// src/commands/videos/search.ts
|
|
16494
|
-
import { defineCommand as
|
|
16648
|
+
import { defineCommand as defineCommand142 } from "citty";
|
|
16495
16649
|
registerSchema({
|
|
16496
16650
|
command: "videos.search",
|
|
16497
16651
|
description: "Search videos by text query. Only returns ready videos.",
|
|
@@ -16501,7 +16655,7 @@ registerSchema({
|
|
|
16501
16655
|
tags: { type: "string", description: "Comma-separated tags to filter by", required: false }
|
|
16502
16656
|
}
|
|
16503
16657
|
});
|
|
16504
|
-
var searchCommand3 =
|
|
16658
|
+
var searchCommand3 = defineCommand142({
|
|
16505
16659
|
meta: {
|
|
16506
16660
|
name: "search",
|
|
16507
16661
|
description: "Semantic search videos by text query. Uses hybrid BM25 + vector + reranking. Example: baker videos search 'product demo' --tags tutorial"
|
|
@@ -16548,12 +16702,12 @@ var searchCommand3 = defineCommand138({
|
|
|
16548
16702
|
});
|
|
16549
16703
|
|
|
16550
16704
|
// src/commands/videos/tags.ts
|
|
16551
|
-
var
|
|
16705
|
+
var tagsCommand4 = makeTagsCommand("videos", "video", "/api/videos/tags");
|
|
16552
16706
|
|
|
16553
16707
|
// src/commands/videos/upload.ts
|
|
16554
16708
|
import { readFile as readFile10, stat as stat3 } from "fs/promises";
|
|
16555
16709
|
import { extname as extname3 } from "path";
|
|
16556
|
-
import { defineCommand as
|
|
16710
|
+
import { defineCommand as defineCommand143 } from "citty";
|
|
16557
16711
|
var MIME_MAP2 = {
|
|
16558
16712
|
".mp4": "video/mp4",
|
|
16559
16713
|
".mov": "video/quicktime",
|
|
@@ -16587,7 +16741,7 @@ function detectContentType2(filePath) {
|
|
|
16587
16741
|
}
|
|
16588
16742
|
return mime;
|
|
16589
16743
|
}
|
|
16590
|
-
var uploadCommand2 =
|
|
16744
|
+
var uploadCommand2 = defineCommand143({
|
|
16591
16745
|
meta: {
|
|
16592
16746
|
name: "upload",
|
|
16593
16747
|
description: "Upload a video file to Baker via Mux direct upload. Auto-detects content type. Example: baker videos upload ./demo.mp4"
|
|
@@ -16641,7 +16795,7 @@ var uploadCommand2 = defineCommand139({
|
|
|
16641
16795
|
});
|
|
16642
16796
|
|
|
16643
16797
|
// src/commands/videos/index.ts
|
|
16644
|
-
var videosCommand =
|
|
16798
|
+
var videosCommand = defineCommand144({
|
|
16645
16799
|
meta: {
|
|
16646
16800
|
name: "videos",
|
|
16647
16801
|
description: `Find and manage videos in Baker. Subcommands: search, get, upload, delete, tags.
|
|
@@ -16659,15 +16813,15 @@ Examples:
|
|
|
16659
16813
|
search: searchCommand3,
|
|
16660
16814
|
upload: uploadCommand2,
|
|
16661
16815
|
delete: deleteCommand3,
|
|
16662
|
-
tags:
|
|
16816
|
+
tags: tagsCommand4
|
|
16663
16817
|
}
|
|
16664
16818
|
});
|
|
16665
16819
|
|
|
16666
16820
|
// src/commands/winning-ads/index.ts
|
|
16667
|
-
import { defineCommand as
|
|
16821
|
+
import { defineCommand as defineCommand147 } from "citty";
|
|
16668
16822
|
|
|
16669
16823
|
// src/commands/winning-ads/advertisers.ts
|
|
16670
|
-
import { defineCommand as
|
|
16824
|
+
import { defineCommand as defineCommand145 } from "citty";
|
|
16671
16825
|
registerSchema({
|
|
16672
16826
|
command: "winning-ads.advertisers",
|
|
16673
16827
|
description: "Resolve a brand name to advertiser_id(s) in the ad-dna corpus \u2014 to find your OWN advertiser (to --exclude-advertiser) or a competitor (to --advertiser-id).",
|
|
@@ -16680,7 +16834,7 @@ registerSchema({
|
|
|
16680
16834
|
function identity(record) {
|
|
16681
16835
|
return record;
|
|
16682
16836
|
}
|
|
16683
|
-
var advertisersCommand2 =
|
|
16837
|
+
var advertisersCommand2 = defineCommand145({
|
|
16684
16838
|
meta: {
|
|
16685
16839
|
name: "advertisers",
|
|
16686
16840
|
description: 'Resolve a brand name to advertiser_id(s). Use it to find your own advertiser for --exclude-advertiser, or a competitor for --advertiser-id. Example: baker winning-ads advertisers "Deel" --output md'
|
|
@@ -16731,7 +16885,7 @@ var advertisersCommand2 = defineCommand141({
|
|
|
16731
16885
|
});
|
|
16732
16886
|
|
|
16733
16887
|
// src/commands/winning-ads/search.ts
|
|
16734
|
-
import { defineCommand as
|
|
16888
|
+
import { defineCommand as defineCommand146 } from "citty";
|
|
16735
16889
|
registerSchema({
|
|
16736
16890
|
command: "winning-ads.search",
|
|
16737
16891
|
description: "Search the ad-dna corpus of scored winning ads. Returns a lean shortlist (advertiser, summary, scores, media_url) to pick a reference to reproduce.",
|
|
@@ -16839,7 +16993,7 @@ function buildSearchBody(args) {
|
|
|
16839
16993
|
}
|
|
16840
16994
|
return body;
|
|
16841
16995
|
}
|
|
16842
|
-
var searchCommand4 =
|
|
16996
|
+
var searchCommand4 = defineCommand146({
|
|
16843
16997
|
meta: {
|
|
16844
16998
|
name: "search",
|
|
16845
16999
|
description: "Search winning reference ads. Example: baker winning-ads search 'B2B SaaS before/after AI automation' --platform meta --format static --winner-category winner --exclude-advertiser adv_123 --output md"
|
|
@@ -16951,7 +17105,7 @@ var searchCommand4 = defineCommand142({
|
|
|
16951
17105
|
});
|
|
16952
17106
|
|
|
16953
17107
|
// src/commands/winning-ads/index.ts
|
|
16954
|
-
var winningAdsCommand =
|
|
17108
|
+
var winningAdsCommand = defineCommand147({
|
|
16955
17109
|
meta: {
|
|
16956
17110
|
name: "winning-ads",
|
|
16957
17111
|
description: `Search the ad-dna corpus of scored "winning" ads for reference creatives to reproduce. Proxied through the Baker backend (BAKER_API_KEY) \u2014 no separate token needed.
|
|
@@ -16991,7 +17145,7 @@ function getCliVersion() {
|
|
|
16991
17145
|
}
|
|
16992
17146
|
|
|
16993
17147
|
// src/cli.ts
|
|
16994
|
-
var main =
|
|
17148
|
+
var main = defineCommand148({
|
|
16995
17149
|
meta: {
|
|
16996
17150
|
name: "baker",
|
|
16997
17151
|
version: getCliVersion(),
|