@koda-sl/baker-cli 0.366.0-dev.b6091bc9b → 0.366.0-dev.eac0b5d73
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 +1 -3
- package/dist/{chunk-A2LM5EDF.js → chunk-FXVELNAS.js} +6 -3
- package/dist/{chunk-A2LM5EDF.js.map → chunk-FXVELNAS.js.map} +1 -1
- package/dist/{chunk-BLMXG42J.js → chunk-L4QXAYIC.js} +15 -3
- package/dist/{chunk-BLMXG42J.js.map → chunk-L4QXAYIC.js.map} +1 -1
- package/dist/cli.js +101 -316
- package/dist/cli.js.map +1 -1
- package/dist/{output-M2DBCZFG.js → output-AT5SRVH7.js} +2 -2
- package/dist/{shared-BROA3UXS.js → shared-HZ44PY2F.js} +5 -3
- package/package.json +1 -1
- /package/dist/{output-M2DBCZFG.js.map → output-AT5SRVH7.js.map} +0 -0
- /package/dist/{shared-BROA3UXS.js.map → shared-HZ44PY2F.js.map} +0 -0
package/dist/cli.js
CHANGED
|
@@ -77,8 +77,9 @@ import {
|
|
|
77
77
|
handleMetaError,
|
|
78
78
|
resolveAccountIdArg,
|
|
79
79
|
resolveEffectiveStatus,
|
|
80
|
+
statusFilterHints,
|
|
80
81
|
todayIso
|
|
81
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-L4QXAYIC.js";
|
|
82
83
|
import {
|
|
83
84
|
buildQueryCacheKey,
|
|
84
85
|
cacheGet,
|
|
@@ -94,7 +95,7 @@ import {
|
|
|
94
95
|
writeAdsJson,
|
|
95
96
|
writeAdsOutput,
|
|
96
97
|
writeJsonEnvelope
|
|
97
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-FXVELNAS.js";
|
|
98
99
|
import {
|
|
99
100
|
ApiError,
|
|
100
101
|
apiGet,
|
|
@@ -14740,8 +14741,8 @@ var SEND_PLATFORM_SPECS = {
|
|
|
14740
14741
|
title: "Meta",
|
|
14741
14742
|
eventMeans: "A Meta event name \u2014 Lead, Purchase, Schedule, or one of your own",
|
|
14742
14743
|
eventKind: "name",
|
|
14743
|
-
credentialFields: ["accessToken"
|
|
14744
|
-
setupHint: "Add the Conversions API access token
|
|
14744
|
+
credentialFields: ["accessToken"],
|
|
14745
|
+
setupHint: "Add the Conversions API access token to the Meta pixel in Tracking"
|
|
14745
14746
|
},
|
|
14746
14747
|
googleAds: {
|
|
14747
14748
|
title: "Google Ads",
|
|
@@ -22955,49 +22956,9 @@ Subcommands:
|
|
|
22955
22956
|
|
|
22956
22957
|
// src/commands/ads/linkedin/creatives.ts
|
|
22957
22958
|
import { defineCommand as defineCommand44 } from "citty";
|
|
22958
|
-
|
|
22959
|
-
// src/commands/ads/list-rows.ts
|
|
22960
22959
|
function asRecord(value) {
|
|
22961
22960
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
22962
22961
|
}
|
|
22963
|
-
function readPath2(row, path48) {
|
|
22964
|
-
let current = row;
|
|
22965
|
-
for (const segment of path48.split(".")) {
|
|
22966
|
-
const record = asRecord(current);
|
|
22967
|
-
if (!record) return void 0;
|
|
22968
|
-
current = record[segment];
|
|
22969
|
-
}
|
|
22970
|
-
return current;
|
|
22971
|
-
}
|
|
22972
|
-
function projectFields(rows, paths) {
|
|
22973
|
-
return rows.map((row) => {
|
|
22974
|
-
const projected = {};
|
|
22975
|
-
for (const path48 of paths) {
|
|
22976
|
-
const value = readPath2(row, path48);
|
|
22977
|
-
if (value !== void 0) {
|
|
22978
|
-
projected[path48] = value;
|
|
22979
|
-
}
|
|
22980
|
-
}
|
|
22981
|
-
return projected;
|
|
22982
|
-
});
|
|
22983
|
-
}
|
|
22984
|
-
function shapeListRows(rows, args5, compact3) {
|
|
22985
|
-
const raw = rows;
|
|
22986
|
-
const fields = typeof args5.fields === "string" ? args5.fields : void 0;
|
|
22987
|
-
if (fields) {
|
|
22988
|
-
const paths = fields.split(",").map((field) => field.trim()).filter((field) => field.length > 0);
|
|
22989
|
-
if (paths.length > 0) {
|
|
22990
|
-
return { rows: projectFields(raw, paths), fields: paths };
|
|
22991
|
-
}
|
|
22992
|
-
}
|
|
22993
|
-
if (args5.full) return { rows: raw };
|
|
22994
|
-
return { rows: rows.map(compact3.row), fields: [...compact3.columns] };
|
|
22995
|
-
}
|
|
22996
|
-
|
|
22997
|
-
// src/commands/ads/linkedin/creatives.ts
|
|
22998
|
-
function asRecord2(value) {
|
|
22999
|
-
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
23000
|
-
}
|
|
23001
22962
|
function asString(value) {
|
|
23002
22963
|
return typeof value === "string" && value.length > 0 ? value : void 0;
|
|
23003
22964
|
}
|
|
@@ -23005,12 +22966,12 @@ function creativeDestination(content) {
|
|
|
23005
22966
|
if (!content) return { format: "unknown" };
|
|
23006
22967
|
const reference = asString(content.reference);
|
|
23007
22968
|
if (reference) return { format: "post", postUrn: reference };
|
|
23008
|
-
const textAd =
|
|
22969
|
+
const textAd = asRecord(content.textAd);
|
|
23009
22970
|
if (textAd) return { format: "text", landingUrl: asString(textAd.landingPage) };
|
|
23010
|
-
const spotlight =
|
|
22971
|
+
const spotlight = asRecord(content.spotlight);
|
|
23011
22972
|
if (spotlight) return { format: "spotlight", landingUrl: asString(spotlight.landingPage) };
|
|
23012
|
-
if (
|
|
23013
|
-
if (
|
|
22973
|
+
if (asRecord(content.follower)) return { format: "follower" };
|
|
22974
|
+
if (asRecord(content.jobs)) return { format: "jobs" };
|
|
23014
22975
|
return { format: "unknown" };
|
|
23015
22976
|
}
|
|
23016
22977
|
var COMPACT_COLUMNS = [
|
|
@@ -23038,6 +22999,27 @@ function compactRow(row) {
|
|
|
23038
22999
|
...destination.postUrn ? { postUrn: destination.postUrn } : {}
|
|
23039
23000
|
};
|
|
23040
23001
|
}
|
|
23002
|
+
function readPath2(row, path48) {
|
|
23003
|
+
let current = row;
|
|
23004
|
+
for (const segment of path48.split(".")) {
|
|
23005
|
+
const record = asRecord(current);
|
|
23006
|
+
if (!record) return void 0;
|
|
23007
|
+
current = record[segment];
|
|
23008
|
+
}
|
|
23009
|
+
return current;
|
|
23010
|
+
}
|
|
23011
|
+
function projectFields(rows, paths) {
|
|
23012
|
+
return rows.map((row) => {
|
|
23013
|
+
const projected = {};
|
|
23014
|
+
for (const path48 of paths) {
|
|
23015
|
+
const value = readPath2(row, path48);
|
|
23016
|
+
if (value !== void 0) {
|
|
23017
|
+
projected[path48] = value;
|
|
23018
|
+
}
|
|
23019
|
+
}
|
|
23020
|
+
return projected;
|
|
23021
|
+
});
|
|
23022
|
+
}
|
|
23041
23023
|
function unmappedShapeWarnings(rows, rawContentReturned) {
|
|
23042
23024
|
const unmapped = rows.filter((row) => row.content && creativeDestination(row.content).format === "unknown");
|
|
23043
23025
|
if (unmapped.length === 0) return [];
|
|
@@ -23049,6 +23031,18 @@ function unmappedShapeWarnings(rows, rawContentReturned) {
|
|
|
23049
23031
|
}
|
|
23050
23032
|
];
|
|
23051
23033
|
}
|
|
23034
|
+
function shapeRows(rows, args5) {
|
|
23035
|
+
const raw = rows;
|
|
23036
|
+
const fields = typeof args5.fields === "string" ? args5.fields : void 0;
|
|
23037
|
+
if (fields) {
|
|
23038
|
+
const paths = fields.split(",").map((field) => field.trim()).filter((field) => field.length > 0);
|
|
23039
|
+
if (paths.length > 0) {
|
|
23040
|
+
return { rows: projectFields(raw, paths), fields: paths };
|
|
23041
|
+
}
|
|
23042
|
+
}
|
|
23043
|
+
if (args5.full) return { rows: raw };
|
|
23044
|
+
return { rows: rows.map(compactRow), fields: [...COMPACT_COLUMNS] };
|
|
23045
|
+
}
|
|
23052
23046
|
var listArgs3 = {
|
|
23053
23047
|
"account-id": { type: "string", description: "Numeric account ID or urn:li:sponsoredAccount:N" },
|
|
23054
23048
|
"account-urn": { type: "string", description: "Alias for --account-id" },
|
|
@@ -23080,10 +23074,7 @@ var creativesListCommand = defineCommand44({
|
|
|
23080
23074
|
if (args5.limit) params.limit = String(args5.limit);
|
|
23081
23075
|
if (args5["no-cache"]) params["skip-cache"] = "true";
|
|
23082
23076
|
const data = await apiGet("/api/ads/linkedin/creatives", params);
|
|
23083
|
-
const shaped =
|
|
23084
|
-
row: compactRow,
|
|
23085
|
-
columns: COMPACT_COLUMNS
|
|
23086
|
-
});
|
|
23077
|
+
const shaped = shapeRows(data, args5);
|
|
23087
23078
|
const fmt = csvOrJson2(args5);
|
|
23088
23079
|
if (fmt !== "json") {
|
|
23089
23080
|
writeAdsOutput(shaped.rows, fmt, shaped.fields);
|
|
@@ -24101,198 +24092,22 @@ Examples:
|
|
|
24101
24092
|
|
|
24102
24093
|
// src/commands/ads/meta/activities.ts
|
|
24103
24094
|
import { defineCommand as defineCommand56 } from "citty";
|
|
24104
|
-
|
|
24105
|
-
// src/commands/ads/meta/list-rows.ts
|
|
24106
|
-
function pick(row, keys) {
|
|
24107
|
-
const picked = {};
|
|
24108
|
-
for (const key of keys) {
|
|
24109
|
-
if (row[key] !== void 0) picked[key] = row[key];
|
|
24110
|
-
}
|
|
24111
|
-
return picked;
|
|
24112
|
-
}
|
|
24113
|
-
function asRecord3(value) {
|
|
24114
|
-
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
24115
|
-
}
|
|
24116
|
-
var CAMPAIGN_COLUMNS = ["id", "name", "effective_status", "daily_budget", "lifetime_budget", "created_date"];
|
|
24117
|
-
function compactCampaign(row) {
|
|
24118
|
-
const created = row.created_time;
|
|
24119
|
-
return {
|
|
24120
|
-
...pick(row, ["id", "name", "effective_status", "daily_budget", "lifetime_budget"]),
|
|
24121
|
-
...typeof created === "string" ? { created_date: created.slice(0, 10) } : {}
|
|
24122
|
-
};
|
|
24123
|
-
}
|
|
24124
|
-
var ADSET_KEYS = [
|
|
24125
|
-
"id",
|
|
24126
|
-
"name",
|
|
24127
|
-
"campaign_id",
|
|
24128
|
-
"effective_status",
|
|
24129
|
-
"optimization_goal",
|
|
24130
|
-
"billing_event",
|
|
24131
|
-
"bid_strategy",
|
|
24132
|
-
"daily_budget",
|
|
24133
|
-
"lifetime_budget",
|
|
24134
|
-
"destination_type",
|
|
24135
|
-
// A Dynamic Creative ad set refuses every new ad, which changes the plan before anything is staged.
|
|
24136
|
-
"is_dynamic_creative"
|
|
24137
|
-
];
|
|
24138
|
-
var ADSET_COLUMNS = [...ADSET_KEYS, "learning_stage", "end_time", "created_time"];
|
|
24139
|
-
function compactAdSet(row) {
|
|
24140
|
-
const learning = asRecord3(row.learning_stage_info)?.status;
|
|
24141
|
-
return {
|
|
24142
|
-
...pick(row, ADSET_KEYS),
|
|
24143
|
-
...typeof learning === "string" ? { learning_stage: learning } : {},
|
|
24144
|
-
...pick(row, ["end_time", "created_time"])
|
|
24145
|
-
};
|
|
24146
|
-
}
|
|
24147
|
-
var AD_COLUMNS = [
|
|
24148
|
-
"id",
|
|
24149
|
-
"name",
|
|
24150
|
-
"adset_id",
|
|
24151
|
-
"campaign_id",
|
|
24152
|
-
"effective_status",
|
|
24153
|
-
"creative_id",
|
|
24154
|
-
"issues",
|
|
24155
|
-
"created_time"
|
|
24156
|
-
];
|
|
24157
|
-
function adIssues(value) {
|
|
24158
|
-
if (!Array.isArray(value)) return [];
|
|
24159
|
-
return value.flatMap((entry) => {
|
|
24160
|
-
const issue = asRecord3(entry);
|
|
24161
|
-
const text2 = issue?.error_summary ?? issue?.error_message;
|
|
24162
|
-
return typeof text2 === "string" && text2 ? [text2] : [];
|
|
24163
|
-
});
|
|
24164
|
-
}
|
|
24165
|
-
function compactAd(row) {
|
|
24166
|
-
const creativeId = asRecord3(row.creative)?.id;
|
|
24167
|
-
const issues = adIssues(row.issues_info);
|
|
24168
|
-
return {
|
|
24169
|
-
...pick(row, ["id", "name", "adset_id", "campaign_id", "effective_status"]),
|
|
24170
|
-
...creativeId !== void 0 ? { creative_id: creativeId } : {},
|
|
24171
|
-
...issues.length > 0 ? { issues } : {},
|
|
24172
|
-
...pick(row, ["created_time"])
|
|
24173
|
-
};
|
|
24174
|
-
}
|
|
24175
|
-
var ACTIVITY_COLUMNS = [
|
|
24176
|
-
"event_time",
|
|
24177
|
-
"event_type",
|
|
24178
|
-
"actor_name",
|
|
24179
|
-
"object_type",
|
|
24180
|
-
"object_name",
|
|
24181
|
-
"object_id",
|
|
24182
|
-
"change"
|
|
24183
|
-
];
|
|
24184
|
-
function isScalar(value) {
|
|
24185
|
-
return value === null || typeof value === "string" || typeof value === "number";
|
|
24186
|
-
}
|
|
24187
|
-
function activityChange(extraData) {
|
|
24188
|
-
if (typeof extraData !== "string") return void 0;
|
|
24189
|
-
let parsed;
|
|
24190
|
-
try {
|
|
24191
|
-
parsed = JSON.parse(extraData);
|
|
24192
|
-
} catch {
|
|
24193
|
-
return void 0;
|
|
24194
|
-
}
|
|
24195
|
-
const data = asRecord3(parsed);
|
|
24196
|
-
if (!data || !("new_value" in data) || !isScalar(data.new_value) || !isScalar(data.old_value ?? null)) {
|
|
24197
|
-
return void 0;
|
|
24198
|
-
}
|
|
24199
|
-
const show = (value) => value === null || value === void 0 ? "(none)" : String(value);
|
|
24200
|
-
return `${show(data.old_value)} \u2192 ${show(data.new_value)}`;
|
|
24201
|
-
}
|
|
24202
|
-
function compactActivity(row) {
|
|
24203
|
-
const change = activityChange(row.extra_data);
|
|
24204
|
-
return {
|
|
24205
|
-
...pick(row, ["event_time", "event_type", "actor_name", "object_type", "object_name", "object_id"]),
|
|
24206
|
-
...change !== void 0 ? { change } : {}
|
|
24207
|
-
};
|
|
24208
|
-
}
|
|
24209
|
-
var PROJECTIONS = {
|
|
24210
|
-
campaigns: { row: compactCampaign, columns: CAMPAIGN_COLUMNS },
|
|
24211
|
-
adsets: { row: compactAdSet, columns: ADSET_COLUMNS },
|
|
24212
|
-
ads: { row: compactAd, columns: AD_COLUMNS },
|
|
24213
|
-
activities: { row: compactActivity, columns: ACTIVITY_COLUMNS }
|
|
24214
|
-
};
|
|
24215
|
-
function shapeMetaListRows(kind, rows, args5) {
|
|
24216
|
-
return shapeListRows(rows, args5, PROJECTIONS[kind]);
|
|
24217
|
-
}
|
|
24218
|
-
var NOUNS = {
|
|
24219
|
-
campaigns: "campaigns",
|
|
24220
|
-
adsets: "ad sets",
|
|
24221
|
-
ads: "ads",
|
|
24222
|
-
activities: "activities"
|
|
24223
|
-
};
|
|
24224
|
-
function writeMetaListRows(kind, shaped, format) {
|
|
24225
|
-
if (format === "json") {
|
|
24226
|
-
writeAdsJson({ ok: true, data: shaped.rows });
|
|
24227
|
-
return;
|
|
24228
|
-
}
|
|
24229
|
-
if (format === "md" && shaped.rows.length === 0) {
|
|
24230
|
-
process.stdout.write(`No ${NOUNS[kind]} matched.
|
|
24231
|
-
`);
|
|
24232
|
-
return;
|
|
24233
|
-
}
|
|
24234
|
-
writeAdsOutput(shaped.rows, format, shaped.fields);
|
|
24235
|
-
}
|
|
24236
|
-
var META_LIST_SHAPE_ARGS = {
|
|
24237
|
-
fields: {
|
|
24238
|
-
type: "string",
|
|
24239
|
-
description: "CSV of dotted paths to return instead of the compact row, e.g. id,name,targeting.geo_locations"
|
|
24240
|
-
},
|
|
24241
|
-
full: { type: "boolean", description: "Return every field Meta sent (targeting, tracking specs, raw extra_data)" },
|
|
24242
|
-
output: {
|
|
24243
|
-
type: "string",
|
|
24244
|
-
description: "md|json|csv|jsonl \u2014 md (default) prints a table; json returns the rows in the { ok, data } envelope",
|
|
24245
|
-
default: "md"
|
|
24246
|
-
}
|
|
24247
|
-
};
|
|
24248
|
-
function registerMetaListSchema(kind, description, args5) {
|
|
24249
|
-
registerSchema({
|
|
24250
|
-
command: `ads.meta.${kind}`,
|
|
24251
|
-
description,
|
|
24252
|
-
args: Object.fromEntries(
|
|
24253
|
-
Object.entries(args5).map(([name, def]) => [
|
|
24254
|
-
name,
|
|
24255
|
-
{
|
|
24256
|
-
type: def.type,
|
|
24257
|
-
description: def.description ?? "",
|
|
24258
|
-
required: false,
|
|
24259
|
-
...def.default !== void 0 ? { default: def.default } : {}
|
|
24260
|
-
}
|
|
24261
|
-
])
|
|
24262
|
-
)
|
|
24263
|
-
});
|
|
24264
|
-
}
|
|
24265
|
-
|
|
24266
|
-
// src/commands/ads/meta/activities.ts
|
|
24267
|
-
var listArgs4 = {
|
|
24268
|
-
"account-id": { type: "string", description: "Meta ad account ID" },
|
|
24269
|
-
days: { type: "string", description: "Lookback days (default 7)" },
|
|
24270
|
-
limit: { type: "string", description: "Max rows" },
|
|
24271
|
-
"no-cache": NO_CACHE_ARG,
|
|
24272
|
-
...META_LIST_SHAPE_ARGS
|
|
24273
|
-
};
|
|
24274
|
-
registerMetaListSchema(
|
|
24275
|
-
"activities",
|
|
24276
|
-
"Account change log, as a table by default, one row per event: event_time, event_type, actor_name, object_type, object_name, object_id, and change ('old \u2192 new' when the change is a single value). Start here: baker ads meta activities --account-id act_123 --days 2. --fields event_time,object_name,extra_data or --full for the raw change payload; --output json returns the rows in the envelope.",
|
|
24277
|
-
listArgs4
|
|
24278
|
-
);
|
|
24279
24095
|
var activitiesCommand = defineCommand56({
|
|
24280
24096
|
meta: {
|
|
24281
24097
|
name: "activities",
|
|
24282
24098
|
description: `Audit log of recent ad-account changes (created, paused, edited). Default lookback 7 days,
|
|
24283
24099
|
~90 day retention server-side.
|
|
24284
24100
|
|
|
24285
|
-
A table by default, one row per event: event_time, event_type, actor_name, object_type,
|
|
24286
|
-
object_name, object_id, and change ("old \u2192 new" when the change is a single value: status,
|
|
24287
|
-
name, budget, goal). --fields takes dotted paths (extra_data holds the raw change); --full returns
|
|
24288
|
-
every field Meta sent; --output json returns the rows as JSON.
|
|
24289
|
-
|
|
24290
24101
|
Examples:
|
|
24291
|
-
baker ads meta activities --account-id act_123 --days 14
|
|
24292
|
-
|
|
24293
|
-
|
|
24102
|
+
baker ads meta activities --account-id act_123 --days 14`
|
|
24103
|
+
},
|
|
24104
|
+
args: {
|
|
24105
|
+
"account-id": { type: "string", description: "Meta ad account ID" },
|
|
24106
|
+
days: { type: "string", description: "Lookback days (default 7)" },
|
|
24107
|
+
limit: { type: "string", description: "Max rows" },
|
|
24108
|
+
"no-cache": NO_CACHE_ARG,
|
|
24109
|
+
output: { type: "string", description: "Output format", default: "json" }
|
|
24294
24110
|
},
|
|
24295
|
-
args: listArgs4,
|
|
24296
24111
|
run: async ({ args: args5 }) => {
|
|
24297
24112
|
const accountId = resolveAccountIdArg(args5);
|
|
24298
24113
|
try {
|
|
@@ -24301,8 +24116,12 @@ Examples:
|
|
|
24301
24116
|
if (args5.limit) params.limit = args5.limit;
|
|
24302
24117
|
if (args5["no-cache"]) params["skip-cache"] = "true";
|
|
24303
24118
|
const data = await apiGet("/api/ads/meta/activities", params);
|
|
24304
|
-
const
|
|
24305
|
-
|
|
24119
|
+
const fmt = csvOrJson(args5);
|
|
24120
|
+
if (fmt !== "json") {
|
|
24121
|
+
writeAdsOutput(data, fmt);
|
|
24122
|
+
return;
|
|
24123
|
+
}
|
|
24124
|
+
writeAdsJson({ ok: true, data });
|
|
24306
24125
|
} catch (err) {
|
|
24307
24126
|
handleMetaError(err);
|
|
24308
24127
|
}
|
|
@@ -26563,8 +26382,8 @@ Example: baker ads meta ads retag 120252158038400247 --url-tags "utm_source={{si
|
|
|
26563
26382
|
run: async ({ args: args5 }) => {
|
|
26564
26383
|
const { apiPost: apiPost2 } = await import("./client-3DGBQ2H3.js");
|
|
26565
26384
|
const { requireChatId: requireChatId2 } = await import("./env-BSG7TY5Y.js");
|
|
26566
|
-
const { writeJsonEnvelope: writeJsonEnvelope2 } = await import("./output-
|
|
26567
|
-
const { handleMetaError: handleMetaError2 } = await import("./shared-
|
|
26385
|
+
const { writeJsonEnvelope: writeJsonEnvelope2 } = await import("./output-AT5SRVH7.js");
|
|
26386
|
+
const { handleMetaError: handleMetaError2 } = await import("./shared-HZ44PY2F.js");
|
|
26568
26387
|
try {
|
|
26569
26388
|
const accountId = bareAccountId2(args5);
|
|
26570
26389
|
const urlTags = typeof args5["url-tags"] === "string" ? args5["url-tags"] : void 0;
|
|
@@ -26711,8 +26530,8 @@ function duplicateCommand2(entity, label) {
|
|
|
26711
26530
|
run: async ({ args: args5 }) => {
|
|
26712
26531
|
const { apiPost: apiPost2 } = await import("./client-3DGBQ2H3.js");
|
|
26713
26532
|
const { requireChatId: requireChatId2 } = await import("./env-BSG7TY5Y.js");
|
|
26714
|
-
const { writeJsonEnvelope: writeJsonEnvelope2 } = await import("./output-
|
|
26715
|
-
const { handleMetaError: handleMetaError2 } = await import("./shared-
|
|
26533
|
+
const { writeJsonEnvelope: writeJsonEnvelope2 } = await import("./output-AT5SRVH7.js");
|
|
26534
|
+
const { handleMetaError: handleMetaError2 } = await import("./shared-HZ44PY2F.js");
|
|
26716
26535
|
try {
|
|
26717
26536
|
const accountId = bareAccountId2(args5);
|
|
26718
26537
|
const chatId = requireChatId2();
|
|
@@ -26745,7 +26564,7 @@ var adsArchiveCommand = statusCommand3("archive", "ad.update", "ad");
|
|
|
26745
26564
|
var adsDuplicateCommand = duplicateCommand2("ad", "ad");
|
|
26746
26565
|
|
|
26747
26566
|
// src/commands/ads/meta/ads.ts
|
|
26748
|
-
var
|
|
26567
|
+
var listArgs4 = {
|
|
26749
26568
|
"account-id": { type: "string", description: "Meta ad account ID" },
|
|
26750
26569
|
"adset-id": { type: "string", description: "Filter to one adset" },
|
|
26751
26570
|
"campaign-id": { type: "string", description: "Filter to one campaign" },
|
|
@@ -26753,19 +26572,14 @@ var listArgs5 = {
|
|
|
26753
26572
|
"all-statuses": { type: "boolean", description: "Drop the default ACTIVE filter" },
|
|
26754
26573
|
limit: { type: "string", description: "Max rows (default 1000)" },
|
|
26755
26574
|
"no-cache": NO_CACHE_ARG,
|
|
26756
|
-
|
|
26575
|
+
output: { type: "string", description: "Output format", default: "json" }
|
|
26757
26576
|
};
|
|
26758
|
-
registerMetaListSchema(
|
|
26759
|
-
"ads",
|
|
26760
|
-
"List ads in a Meta ad account, as a table by default: id, name, adset_id, campaign_id, effective_status, creative_id, issues (why an ad is WITH_ISSUES), created_time. Start here: baker ads meta ads --adset-id 6123. --fields takes dotted paths (e.g. id,tracking_specs); --full returns every field Meta sent; --output json returns the rows in the envelope.",
|
|
26761
|
-
listArgs5
|
|
26762
|
-
);
|
|
26763
26577
|
var listCommand4 = defineCommand58({
|
|
26764
26578
|
meta: {
|
|
26765
26579
|
name: "list",
|
|
26766
26580
|
description: "List ads in a Meta ad account. Runs by default when no subcommand is given. Example: baker ads meta ads --account-id act_123"
|
|
26767
26581
|
},
|
|
26768
|
-
args:
|
|
26582
|
+
args: listArgs4,
|
|
26769
26583
|
run: async ({ args: args5 }) => {
|
|
26770
26584
|
const accountId = resolveAccountIdArg(args5);
|
|
26771
26585
|
const effectiveStatus = resolveEffectiveStatus(args5);
|
|
@@ -26777,8 +26591,7 @@ var listCommand4 = defineCommand58({
|
|
|
26777
26591
|
if (args5.limit) params.limit = args5.limit;
|
|
26778
26592
|
if (args5["no-cache"]) params["skip-cache"] = "true";
|
|
26779
26593
|
const data = await apiGet("/api/ads/meta/ads", params);
|
|
26780
|
-
|
|
26781
|
-
writeMetaListRows("ads", shaped, csvOrJson(args5));
|
|
26594
|
+
writeAdsOutput(data, csvOrJson(args5), void 0, statusFilterHints(data, effectiveStatus, "ads"));
|
|
26782
26595
|
} catch (err) {
|
|
26783
26596
|
handleMetaError(err);
|
|
26784
26597
|
}
|
|
@@ -26792,14 +26605,9 @@ Defaults to ACTIVE only \u2014 pass --all-statuses to widen. Write subcommands s
|
|
|
26792
26605
|
|
|
26793
26606
|
The dashboard shows effective_status (e.g. WITH_ISSUES, PENDING_REVIEW, DISAPPROVED, ADSET_PAUSED), not status.
|
|
26794
26607
|
|
|
26795
|
-
Listings print a table by default: id, name, adset_id, campaign_id, effective_status, creative_id, issues
|
|
26796
|
-
(why an ad is WITH_ISSUES), created_time. --fields takes dotted paths (e.g. tracking_specs,
|
|
26797
|
-
preview_shareable_link); --full returns every field; --output json returns the rows as JSON.
|
|
26798
|
-
|
|
26799
26608
|
Examples:
|
|
26800
26609
|
baker ads meta ads --account-id act_123
|
|
26801
26610
|
baker ads meta ads --adset-id 6123
|
|
26802
|
-
baker ads meta ads --adset-id 6123 --fields id,name,preview_shareable_link
|
|
26803
26611
|
baker ads meta ads create --name "Ad 1" --adset meta_temp_as01 --creative meta_temp_cr01
|
|
26804
26612
|
baker ads meta ads pause 6123 --account-id act_123
|
|
26805
26613
|
baker ads meta ads retag 6123 --set "utm_medium=paid-social" \u2014 fix tracking on a LIVE ad, keeping everything else`
|
|
@@ -26818,32 +26626,27 @@ Examples:
|
|
|
26818
26626
|
// subcommand name using THIS command's arg defs, so without them `--account-id act_1`
|
|
26819
26627
|
// would read `act_1` as a subcommand. `default` (not `run`) dispatches the bare
|
|
26820
26628
|
// invocation — citty falls through to `run` after a subcommand, double-executing it.
|
|
26821
|
-
args:
|
|
26629
|
+
args: listArgs4,
|
|
26822
26630
|
default: "list"
|
|
26823
26631
|
});
|
|
26824
26632
|
|
|
26825
26633
|
// src/commands/ads/meta/adsets.ts
|
|
26826
26634
|
import { defineCommand as defineCommand59 } from "citty";
|
|
26827
|
-
var
|
|
26635
|
+
var listArgs5 = {
|
|
26828
26636
|
"account-id": { type: "string", description: "Meta ad account ID" },
|
|
26829
26637
|
"campaign-id": { type: "string", description: "Filter to one campaign" },
|
|
26830
26638
|
"effective-status": { type: "string", description: "Comma-separated effective_status filter (overrides default)" },
|
|
26831
26639
|
"all-statuses": { type: "boolean", description: "Drop the default ACTIVE filter" },
|
|
26832
26640
|
limit: { type: "string", description: "Max rows (default 1000)" },
|
|
26833
26641
|
"no-cache": NO_CACHE_ARG,
|
|
26834
|
-
|
|
26642
|
+
output: { type: "string", description: "Output format", default: "json" }
|
|
26835
26643
|
};
|
|
26836
|
-
registerMetaListSchema(
|
|
26837
|
-
"adsets",
|
|
26838
|
-
"List ad sets in a Meta ad account, as a table by default: id, name, campaign_id, effective_status, optimization_goal, billing_event, bid_strategy, budgets, destination_type, is_dynamic_creative, learning_stage, end_time, created_time. Targeting is not in the compact row \u2014 ask for it with --fields id,name,targeting (or --full). Start here: baker ads meta adsets --campaign-id 6123 --all-statuses. --output json returns the rows in the envelope.",
|
|
26839
|
-
listArgs6
|
|
26840
|
-
);
|
|
26841
26644
|
var listCommand5 = defineCommand59({
|
|
26842
26645
|
meta: {
|
|
26843
26646
|
name: "list",
|
|
26844
26647
|
description: "List ad sets in a Meta ad account. Runs by default when no subcommand is given. Example: baker ads meta adsets --account-id act_123"
|
|
26845
26648
|
},
|
|
26846
|
-
args:
|
|
26649
|
+
args: listArgs5,
|
|
26847
26650
|
run: async ({ args: args5 }) => {
|
|
26848
26651
|
const accountId = resolveAccountIdArg(args5);
|
|
26849
26652
|
const effectiveStatus = resolveEffectiveStatus(args5);
|
|
@@ -26854,8 +26657,7 @@ var listCommand5 = defineCommand59({
|
|
|
26854
26657
|
if (args5.limit) params.limit = args5.limit;
|
|
26855
26658
|
if (args5["no-cache"]) params["skip-cache"] = "true";
|
|
26856
26659
|
const data = await apiGet("/api/ads/meta/adsets", params);
|
|
26857
|
-
|
|
26858
|
-
writeMetaListRows("adsets", shaped, csvOrJson(args5));
|
|
26660
|
+
writeAdsOutput(data, csvOrJson(args5), void 0, statusFilterHints(data, effectiveStatus, "ad sets"));
|
|
26859
26661
|
} catch (err) {
|
|
26860
26662
|
handleMetaError(err);
|
|
26861
26663
|
}
|
|
@@ -26867,14 +26669,9 @@ var adsetsCommand = defineCommand59({
|
|
|
26867
26669
|
description: `List ad sets in a Meta ad account, or stage writes (create/update/pause/resume/archive/duplicate).
|
|
26868
26670
|
Defaults to ACTIVE only. Write subcommands stage ops on this chat's draft.
|
|
26869
26671
|
|
|
26870
|
-
Listings print a table by default: id, name, campaign_id, effective_status, optimization_goal, billing_event,
|
|
26871
|
-
bid_strategy, budgets, destination_type, is_dynamic_creative, learning_stage, end_time, created_time. Targeting
|
|
26872
|
-
is not in the compact row \u2014 ask for it with --fields (dotted paths) or --full. --output json returns the rows as JSON.
|
|
26873
|
-
|
|
26874
26672
|
Examples:
|
|
26875
26673
|
baker ads meta adsets --account-id act_123
|
|
26876
26674
|
baker ads meta adsets --campaign-id 6123456789
|
|
26877
|
-
baker ads meta adsets --campaign-id 6123456789 --fields id,name,targeting.geo_locations
|
|
26878
26675
|
baker ads meta adsets create --campaign meta_temp_ab12 --name "US 25-54" --optimization-goal LINK_CLICKS --billing-event IMPRESSIONS --daily-budget 50 --targeting-file t.json`
|
|
26879
26676
|
},
|
|
26880
26677
|
subCommands: {
|
|
@@ -26890,13 +26687,13 @@ Examples:
|
|
|
26890
26687
|
// subcommand name using THIS command's arg defs, so without them `--account-id act_1`
|
|
26891
26688
|
// would read `act_1` as a subcommand. `default` (not `run`) dispatches the bare
|
|
26892
26689
|
// invocation — citty falls through to `run` after a subcommand, double-executing it.
|
|
26893
|
-
args:
|
|
26690
|
+
args: listArgs5,
|
|
26894
26691
|
default: "list"
|
|
26895
26692
|
});
|
|
26896
26693
|
|
|
26897
26694
|
// src/commands/ads/meta/audiences.ts
|
|
26898
26695
|
import { defineCommand as defineCommand60 } from "citty";
|
|
26899
|
-
var
|
|
26696
|
+
var listArgs6 = {
|
|
26900
26697
|
"account-id": { type: "string", description: "Meta ad account ID" },
|
|
26901
26698
|
limit: { type: "string", description: "Max rows" },
|
|
26902
26699
|
"no-cache": NO_CACHE_ARG,
|
|
@@ -26907,7 +26704,7 @@ var listCommand6 = defineCommand60({
|
|
|
26907
26704
|
name: "list",
|
|
26908
26705
|
description: "List custom audiences. Runs by default when no subcommand is given. Example: baker ads meta audiences --account-id act_123"
|
|
26909
26706
|
},
|
|
26910
|
-
args:
|
|
26707
|
+
args: listArgs6,
|
|
26911
26708
|
run: async ({ args: args5 }) => {
|
|
26912
26709
|
const accountId = resolveAccountIdArg(args5);
|
|
26913
26710
|
try {
|
|
@@ -26945,7 +26742,7 @@ Examples:
|
|
|
26945
26742
|
// subcommand name using THIS command's arg defs, so without them `--account-id act_1`
|
|
26946
26743
|
// would read `act_1` as a subcommand. `default` (not `run`) dispatches the bare
|
|
26947
26744
|
// invocation — citty falls through to `run` after a subcommand, double-executing it.
|
|
26948
|
-
args:
|
|
26745
|
+
args: listArgs6,
|
|
26949
26746
|
default: "list"
|
|
26950
26747
|
});
|
|
26951
26748
|
|
|
@@ -26982,25 +26779,20 @@ Examples:
|
|
|
26982
26779
|
|
|
26983
26780
|
// src/commands/ads/meta/campaigns.ts
|
|
26984
26781
|
import { defineCommand as defineCommand62 } from "citty";
|
|
26985
|
-
var
|
|
26782
|
+
var listArgs7 = {
|
|
26986
26783
|
"account-id": { type: "string", description: "Meta ad account ID" },
|
|
26987
26784
|
"effective-status": { type: "string", description: "Comma-separated effective_status filter (overrides default)" },
|
|
26988
26785
|
"all-statuses": { type: "boolean", description: "Drop the default ACTIVE filter and return everything" },
|
|
26989
26786
|
limit: { type: "string", description: "Max rows (default 1000)" },
|
|
26990
26787
|
"no-cache": NO_CACHE_ARG,
|
|
26991
|
-
|
|
26788
|
+
output: { type: "string", description: "Output format", default: "json" }
|
|
26992
26789
|
};
|
|
26993
|
-
registerMetaListSchema(
|
|
26994
|
-
"campaigns",
|
|
26995
|
-
"List campaigns in a Meta ad account, as a table by default: id, name, effective_status, daily_budget, lifetime_budget, created_date. ACTIVE only unless --all-statuses. Start here: baker ads meta campaigns --account-id act_123 --all-statuses. --fields takes dotted paths for anything else (e.g. id,name,objective,bid_strategy,special_ad_categories); --full returns every field Meta sent; --output json returns the rows in the envelope.",
|
|
26996
|
-
listArgs8
|
|
26997
|
-
);
|
|
26998
26790
|
var listCommand7 = defineCommand62({
|
|
26999
26791
|
meta: {
|
|
27000
26792
|
name: "list",
|
|
27001
26793
|
description: "List campaigns for a Meta ad account. Runs by default when no subcommand is given. Example: baker ads meta campaigns --account-id act_123"
|
|
27002
26794
|
},
|
|
27003
|
-
args:
|
|
26795
|
+
args: listArgs7,
|
|
27004
26796
|
run: async ({ args: args5 }) => {
|
|
27005
26797
|
const accountId = resolveAccountIdArg(args5);
|
|
27006
26798
|
const effectiveStatus = resolveEffectiveStatus(args5);
|
|
@@ -27010,8 +26802,7 @@ var listCommand7 = defineCommand62({
|
|
|
27010
26802
|
if (args5.limit) params.limit = args5.limit;
|
|
27011
26803
|
if (args5["no-cache"]) params["skip-cache"] = "true";
|
|
27012
26804
|
const data = await apiGet("/api/ads/meta/campaigns", params);
|
|
27013
|
-
|
|
27014
|
-
writeMetaListRows("campaigns", shaped, csvOrJson(args5));
|
|
26805
|
+
writeAdsOutput(data, csvOrJson(args5), void 0, statusFilterHints(data, effectiveStatus, "campaigns"));
|
|
27015
26806
|
} catch (err) {
|
|
27016
26807
|
handleMetaError(err);
|
|
27017
26808
|
}
|
|
@@ -27027,15 +26818,9 @@ apply only when the chat is published.
|
|
|
27027
26818
|
In Meta's API "campaign" is the top-of-tree object (what marketers usually call a campaign group).
|
|
27028
26819
|
The dashboard shows effective_status: ACTIVE, PAUSED, DELETED, ARCHIVED, IN_PROCESS, WITH_ISSUES, etc.
|
|
27029
26820
|
|
|
27030
|
-
Listings print a table by default: id, name, effective_status, daily/lifetime budget, created_date.
|
|
27031
|
-
--fields takes dotted paths for anything else (objective, bid_strategy, special_ad_categories, created_time);
|
|
27032
|
-
--full returns every field; --output json returns the same rows in the { ok, data } envelope.
|
|
27033
|
-
|
|
27034
26821
|
Examples:
|
|
27035
26822
|
baker ads meta campaigns --account-id act_123 # ACTIVE only
|
|
27036
26823
|
baker ads meta campaigns --account-id act_123 --all-statuses # everything
|
|
27037
|
-
baker ads meta campaigns --account-id act_123 --fields id,name,objective,bid_strategy,special_ad_categories
|
|
27038
|
-
baker ads meta campaigns --account-id act_123 --output json # rows as JSON
|
|
27039
26824
|
baker ads meta campaigns create --account-id act_123 --name "Q3" --objective OUTCOME_LEADS --daily-budget 50
|
|
27040
26825
|
baker ads meta campaigns pause 6123 --account-id act_123`
|
|
27041
26826
|
},
|
|
@@ -27052,13 +26837,13 @@ Examples:
|
|
|
27052
26837
|
// subcommand name using THIS command's arg defs, so without them `--account-id act_1`
|
|
27053
26838
|
// would read `act_1` as a subcommand. `default` (not `run`) dispatches the bare
|
|
27054
26839
|
// invocation — citty falls through to `run` after a subcommand, double-executing it.
|
|
27055
|
-
args:
|
|
26840
|
+
args: listArgs7,
|
|
27056
26841
|
default: "list"
|
|
27057
26842
|
});
|
|
27058
26843
|
|
|
27059
26844
|
// src/commands/ads/meta/creatives.ts
|
|
27060
26845
|
import { defineCommand as defineCommand63 } from "citty";
|
|
27061
|
-
var
|
|
26846
|
+
var listArgs8 = {
|
|
27062
26847
|
"account-id": { type: "string", description: "Meta ad account ID (required if no --creative-id)" },
|
|
27063
26848
|
"creative-id": { type: "string", description: "Single creative ID" },
|
|
27064
26849
|
limit: { type: "string", description: "Max rows (default 500)" },
|
|
@@ -27070,7 +26855,7 @@ var listCommand8 = defineCommand63({
|
|
|
27070
26855
|
name: "list",
|
|
27071
26856
|
description: "List ad creatives, or fetch one by ID. Runs by default when no subcommand is given. Example: baker ads meta creatives --account-id act_123"
|
|
27072
26857
|
},
|
|
27073
|
-
args:
|
|
26858
|
+
args: listArgs8,
|
|
27074
26859
|
run: async ({ args: args5 }) => {
|
|
27075
26860
|
try {
|
|
27076
26861
|
const params = {};
|
|
@@ -27116,7 +26901,7 @@ Examples:
|
|
|
27116
26901
|
// subcommand name using THIS command's arg defs, so without them `--account-id act_1`
|
|
27117
26902
|
// would read `act_1` as a subcommand. `default` (not `run`) dispatches the bare
|
|
27118
26903
|
// invocation — citty falls through to `run` after a subcommand, double-executing it.
|
|
27119
|
-
args:
|
|
26904
|
+
args: listArgs8,
|
|
27120
26905
|
default: "list"
|
|
27121
26906
|
});
|
|
27122
26907
|
|
|
@@ -27164,7 +26949,7 @@ registerSchema({
|
|
|
27164
26949
|
output: { type: "string", description: "json|csv", required: false, default: "json" }
|
|
27165
26950
|
}
|
|
27166
26951
|
});
|
|
27167
|
-
var
|
|
26952
|
+
var listArgs9 = {
|
|
27168
26953
|
"account-id": { type: "string", description: "Meta ad account ID" },
|
|
27169
26954
|
full: { type: "boolean", description: "Include the raw rule JSON, retention and creation times" },
|
|
27170
26955
|
limit: { type: "string", description: "Max rows" },
|
|
@@ -27176,7 +26961,7 @@ var listCommand9 = defineCommand64({
|
|
|
27176
26961
|
name: "list",
|
|
27177
26962
|
description: "List custom conversions. Runs by default when no subcommand is given. Example: baker ads meta custom-conversions --account-id act_123"
|
|
27178
26963
|
},
|
|
27179
|
-
args:
|
|
26964
|
+
args: listArgs9,
|
|
27180
26965
|
run: async ({ args: args5 }) => {
|
|
27181
26966
|
const accountId = resolveAccountIdArg(args5);
|
|
27182
26967
|
try {
|
|
@@ -27214,7 +26999,7 @@ Examples:
|
|
|
27214
26999
|
// `args` stays even though the parent has no `run`: citty scans rawArgs for
|
|
27215
27000
|
// the subcommand name using THIS command's arg defs. `default` (not `run`)
|
|
27216
27001
|
// dispatches the bare invocation.
|
|
27217
|
-
args:
|
|
27002
|
+
args: listArgs9,
|
|
27218
27003
|
default: "list"
|
|
27219
27004
|
});
|
|
27220
27005
|
|
|
@@ -28926,7 +28711,7 @@ registerSchema({
|
|
|
28926
28711
|
output: { type: "string", description: "Format: json|csv|md", required: false, default: "json" }
|
|
28927
28712
|
}
|
|
28928
28713
|
});
|
|
28929
|
-
var
|
|
28714
|
+
var listArgs10 = {
|
|
28930
28715
|
"account-id": { type: "string", description: "X Ads account ID" },
|
|
28931
28716
|
"funding-instrument-ids": { type: "string", description: "CSV of funding instrument IDs" },
|
|
28932
28717
|
"campaign-ids": { type: "string", description: "CSV of campaign IDs" },
|
|
@@ -28996,7 +28781,7 @@ Examples:
|
|
|
28996
28781
|
},
|
|
28997
28782
|
// A parent must never declare `run`: citty falls through to it AFTER the
|
|
28998
28783
|
// matched subcommand, so every write would also trigger a full live list.
|
|
28999
|
-
args:
|
|
28784
|
+
args: listArgs10,
|
|
29000
28785
|
default: "list"
|
|
29001
28786
|
});
|
|
29002
28787
|
|
|
@@ -43192,12 +42977,12 @@ function fail3(code, message) {
|
|
|
43192
42977
|
process.exit(2);
|
|
43193
42978
|
}
|
|
43194
42979
|
function resolveModels(args5) {
|
|
43195
|
-
const
|
|
42980
|
+
const pick = (flag, kind, fallback) => args5[flag] ? String(args5[flag]) : resolveModel(kind, fallback);
|
|
43196
42981
|
return {
|
|
43197
|
-
describeModel:
|
|
43198
|
-
selectModel:
|
|
43199
|
-
layoutModel:
|
|
43200
|
-
genModel:
|
|
42982
|
+
describeModel: pick("describe-model", "image_describe", "~google/gemini-pro-latest"),
|
|
42983
|
+
selectModel: pick("select-model", "text_generate", "~google/gemini-flash-latest"),
|
|
42984
|
+
layoutModel: pick("layout-model", "text_generate", "~google/gemini-flash-latest"),
|
|
42985
|
+
genModel: pick("gen-model", "image_generate", "openai/gpt-image-2")
|
|
43201
42986
|
};
|
|
43202
42987
|
}
|
|
43203
42988
|
var PLATFORM_PLACEMENTS = {
|
|
@@ -45231,18 +45016,18 @@ function parseBudget(raw) {
|
|
|
45231
45016
|
throw new Error(`--budget must be one of ${VIDEO_BUDGETS.join(", ")} (got "${v}")`);
|
|
45232
45017
|
}
|
|
45233
45018
|
function resolveModels2(args5) {
|
|
45234
|
-
const
|
|
45019
|
+
const pick = (flag, kind, fallback) => args5[flag] ? String(args5[flag]) : resolveModel2(kind, fallback);
|
|
45235
45020
|
return {
|
|
45236
45021
|
// Flash by default: ~2-3× faster per call than Pro, which keeps each
|
|
45237
45022
|
// per-scene deconstruct step well inside the action time budget and turns a
|
|
45238
45023
|
// ~9 min run into ~3-4 min. Override with --deconstruct-model
|
|
45239
45024
|
// ~google/gemini-pro-latest for the densest extraction when speed matters less.
|
|
45240
|
-
deconstructModel:
|
|
45241
|
-
selectModel:
|
|
45025
|
+
deconstructModel: pick("deconstruct-model", "video_deconstruct", "~google/gemini-flash-latest"),
|
|
45026
|
+
selectModel: pick("select-model", "text_generate", "~google/gemini-flash-latest"),
|
|
45242
45027
|
// Default to the strongest image model (matches the static-ad scaffold); the
|
|
45243
45028
|
// frame generators need the most faithful text/identity reproduction. Override
|
|
45244
45029
|
// with --image-model for a cheaper/faster pass.
|
|
45245
|
-
imageModel:
|
|
45030
|
+
imageModel: pick("image-model", "image_generate", "openai/gpt-image-2.5-sunburst")
|
|
45246
45031
|
};
|
|
45247
45032
|
}
|
|
45248
45033
|
function hasPhotorealCast(elements) {
|
|
@@ -54331,7 +54116,7 @@ var extractCommand = defineCommand149({
|
|
|
54331
54116
|
import { defineCommand as defineCommand150 } from "citty";
|
|
54332
54117
|
|
|
54333
54118
|
// src/commands/images/providerHits.ts
|
|
54334
|
-
function
|
|
54119
|
+
function asRecord2(value) {
|
|
54335
54120
|
return value && typeof value === "object" ? value : {};
|
|
54336
54121
|
}
|
|
54337
54122
|
function str(value) {
|
|
@@ -54356,7 +54141,7 @@ function providerHitNormalizer(record, full) {
|
|
|
54356
54141
|
if (!full) {
|
|
54357
54142
|
return compact3;
|
|
54358
54143
|
}
|
|
54359
|
-
const group =
|
|
54144
|
+
const group = asRecord2(record.group);
|
|
54360
54145
|
return {
|
|
54361
54146
|
...compact3,
|
|
54362
54147
|
externalUrl: str(record.externalUrl),
|
|
@@ -66619,7 +66404,7 @@ async function listTags(json) {
|
|
|
66619
66404
|
failApi3(err);
|
|
66620
66405
|
}
|
|
66621
66406
|
}
|
|
66622
|
-
var
|
|
66407
|
+
var listArgs11 = {
|
|
66623
66408
|
json: { type: "boolean", description: "Print the raw JSON envelope instead of the readable list" }
|
|
66624
66409
|
};
|
|
66625
66410
|
var listCommand19 = defineCommand222({
|
|
@@ -66627,7 +66412,7 @@ var listCommand19 = defineCommand222({
|
|
|
66627
66412
|
name: "list",
|
|
66628
66413
|
description: "Effective tags for this chat (production + staged), with each tag's full readable config (secrets excluded) \u2014 reuse a stored value to pre-fill a change rather than asking the user. Refs printed here are what flow side-effect tagIds should use. Example: baker tags list"
|
|
66629
66414
|
},
|
|
66630
|
-
args:
|
|
66415
|
+
args: listArgs11,
|
|
66631
66416
|
run: async ({ args: args5 }) => {
|
|
66632
66417
|
await listTags(args5.json === true);
|
|
66633
66418
|
}
|
|
@@ -66675,7 +66460,7 @@ Full guide: __tooling__/docs/tools/baker/tags.md`
|
|
|
66675
66460
|
// command's flags when it scans rawArgs for a subcommand name, and `default` (not
|
|
66676
66461
|
// `run`) dispatches the bare invocation — citty falls through to `run` after a
|
|
66677
66462
|
// subcommand, so a `run` here would also list on every `baker tags draft`.
|
|
66678
|
-
args:
|
|
66463
|
+
args: listArgs11,
|
|
66679
66464
|
default: "list"
|
|
66680
66465
|
});
|
|
66681
66466
|
|