@koda-sl/baker-cli 0.111.0-dev.b43dfb4db → 0.111.0-dev.ba213566d
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 +2 -20
- package/dist/cli.js +70 -238
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-26K7V346.js";
|
|
13
13
|
|
|
14
14
|
// src/cli.ts
|
|
15
|
-
import { defineCommand as
|
|
15
|
+
import { defineCommand as defineCommand156, runMain } from "citty";
|
|
16
16
|
|
|
17
17
|
// src/commands/actions/index.ts
|
|
18
18
|
import { defineCommand as defineCommand18 } from "citty";
|
|
@@ -31,7 +31,6 @@ function getEnv() {
|
|
|
31
31
|
BAKER_API_KEY: z.string().startsWith("bk_", "API key must start with 'bk_'"),
|
|
32
32
|
BAKER_API_URL: z.url("BAKER_API_URL must be a valid URL"),
|
|
33
33
|
BAKER_CHAT_ID: z.string().optional(),
|
|
34
|
-
BAKER_ACTING_USER_ID: z.string().optional(),
|
|
35
34
|
BAKER_GOOGLE_ADS_CUSTOMER_ID: z.string().regex(/^\d{10}$/).optional(),
|
|
36
35
|
BAKER_GA4_PROPERTY_ID: z.string().optional(),
|
|
37
36
|
BAKER_GSC_SITE_URL: z.string().optional(),
|
|
@@ -12650,7 +12649,7 @@ function roleForType(type) {
|
|
|
12650
12649
|
return "the showcased product; keep this exact product identity. Ignore any caption text printed on this reference.";
|
|
12651
12650
|
case "person":
|
|
12652
12651
|
case "animal":
|
|
12653
|
-
return "the
|
|
12652
|
+
return "the hero subject; keep this identity AND the expression the blueprint specifies. Ignore any caption text printed on this reference.";
|
|
12654
12653
|
default:
|
|
12655
12654
|
return "an identity-bearing element; reproduce it faithfully from this reference. Ignore any caption text printed on it.";
|
|
12656
12655
|
}
|
|
@@ -12658,9 +12657,7 @@ function roleForType(type) {
|
|
|
12658
12657
|
function todoPath(el, label) {
|
|
12659
12658
|
const desc = el.description ? ` \u2014 ${el.description}` : "";
|
|
12660
12659
|
const expr = el.expression ? `, with a ${el.expression} expression` : "";
|
|
12661
|
-
|
|
12662
|
-
const lock = t === "person" || t === "animal" ? " \u2014 REQUIRED: this is the emotional hero; ground it in a real reference (image-library / video-library / Pinterest), do not delete this slot and free-generate" : "";
|
|
12663
|
-
return `[TODO: drop a real image for ${label} (${el.type})${desc}${expr}${lock}]`;
|
|
12660
|
+
return `[TODO: drop a real image for ${label} (${el.type})${desc}${expr}]`;
|
|
12664
12661
|
}
|
|
12665
12662
|
function aspectRatio(blueprint, opts) {
|
|
12666
12663
|
const requested = opts.aspectRatio ?? blueprint.meta?.estimated_aspect_ratio;
|
|
@@ -12775,7 +12772,7 @@ function resolveModel(kind, preferred) {
|
|
|
12775
12772
|
const ids = Object.keys(MODEL_REGISTRY[kind]);
|
|
12776
12773
|
return ids.includes(preferred) ? preferred : ids[0] ?? preferred;
|
|
12777
12774
|
}
|
|
12778
|
-
var DESCRIBE_FOCUS =
|
|
12775
|
+
var DESCRIBE_FOCUS = "the GLOBAL LAYOUT GEOMETRY above all \u2014 the column/row grid, each region's approximate bounds as a percentage of frame width and height, any panel SPLITS and their proportions (e.g. a left column split into a ~60% top photo and a ~20% bottom price box), what occupies every region, and for EVERY text block its string verbatim, relative size (x_large | large | medium | small), weight, case, color, and alignment \u2014 including small bottom-corner fine print. Also: the EXPRESSION and emotion of every person/animal (capture exaggerated or AI-edited faces), the ad_intent (what feeling it engineers and how), per-color brand_ownership (which colors are the advertiser's brand vs borrowed-functional like a red comparison column), logos by brand, and all visible text verbatim";
|
|
12779
12776
|
var LAYOUT_SYSTEM = "You convert an advertisement's JSON blueprint into a precise, structured LAYOUT MAP of the frame \u2014 the spatial grid a designer would rebuild it from. Be exhaustive and quantitative: every region, its bounds as a percentage of the frame, and every text block with its relative size. Output ONLY a JSON object, no prose.";
|
|
12780
12777
|
var LAYOUT_PROMPT = `AD BLUEPRINT (from image_describe):
|
|
12781
12778
|
{{blueprint}}
|
|
@@ -12797,20 +12794,7 @@ Return a JSON object describing the GLOBAL LAYOUT of the frame precisely enough
|
|
|
12797
12794
|
|
|
12798
12795
|
Use the blueprint's positions, sizes, text_content, and colors. Estimate the percentages and split proportions as accurately as you can (e.g. a column split 60/20 with a 20% gap). Cover EVERY visible element \u2014 photos, text boxes, badges, background shapes, and small corner text \u2014 top-to-bottom, left-to-right. Output ONLY the JSON object.`;
|
|
12799
12796
|
var SELECT_SYSTEM = 'You identify the MAIN, identity-critical visual elements of an advertisement from its JSON blueprint \u2014 the things a faithful reproduction must supply as REAL reference images instead of letting a model invent them. Output ONLY a JSON object of the form { "elements": [ ... ] }, no prose.';
|
|
12800
|
-
var SELECT_PROMPT =
|
|
12801
|
-
{{blueprint}}
|
|
12802
|
-
|
|
12803
|
-
From this blueprint, list ONLY the elements that are prominent, important, and identity-bearing \u2014 the ones a reproduction must ground in a real asset:
|
|
12804
|
-
- the brand logo/wordmark (from brands_logos with function_in_image = advertiser_brand) -> type "logo"
|
|
12805
|
-
- trust/rating/certification/app-store/review badges (brands_logos with function_in_image = trust_badge | review_platform | certification_or_seal | app_store_badge | payment_method) -> type "badge"
|
|
12806
|
-
- a showcased/hero product or package (a foreground entry in subjects that the ad is selling) -> type "product"
|
|
12807
|
-
- a foreground person (from people) \u2014 keep it when its identity matters OR it is the emotional/hero focal point of the ad, even a generic one with no brand identity -> type "person"
|
|
12808
|
-
- a foreground animal/character (from subjects) \u2014 keep it when it carries a specific expression OR it is the emotional/hero focal point, even a generic one -> type "animal"
|
|
12809
|
-
(For both: a free-generated face, muzzle, hands, or teeth reads as AI and grows artifacts \u2014 malformed mouths, extra fingers, foam \u2014 so the emotional hero needs the STRONGEST real grounding, not the weakest; "it's just a generic dog/person" is never a reason to drop it.)
|
|
12810
|
-
|
|
12811
|
-
DROP background extras, decorative props, generic scenery, and anything small or incidental. Keep at most ~6. If there are none, return an empty list.
|
|
12812
|
-
|
|
12813
|
-
For each kept element return: { "type": one of logo|product|person|animal|badge, "label": a short UPPER_SNAKE_CASE name (e.g. LOGO, PRODUCT, HERO_DOG, TRUSTPILOT), "description": a concrete reusable description to source/shoot the real asset (include the exact expression for a living subject, and its castable attributes \u2014 breed/species for an animal, apparent age band, apparent origin/ethnicity, and wardrobe/setting for a person \u2014 so it can be recast to fit OUR audience/market), "expression": the facial expression for a living subject or null, "reason": why it is identity-critical, "locator": the blueprint entry this element came from as { "collection": one of "subjects" | "people" | "brands_logos", "index": its 0-based position in that array } (people -> people; logos/badges -> brands_logos; products/animals/objects -> subjects). Output ONLY the JSON object.`;
|
|
12797
|
+
var SELECT_PROMPT = 'AD BLUEPRINT (from image_describe):\n{{blueprint}}\n\nFrom this blueprint, list ONLY the elements that are prominent, important, and identity-bearing \u2014 the ones a reproduction must ground in a real asset:\n- the brand logo/wordmark (from brands_logos with function_in_image = advertiser_brand) -> type "logo"\n- trust/rating/certification/app-store/review badges (brands_logos with function_in_image = trust_badge | review_platform | certification_or_seal | app_store_badge | payment_method) -> type "badge"\n- a showcased/hero product or package (a foreground entry in subjects that the ad is selling) -> type "product"\n- a foreground person whose identity matters (from people) -> type "person"\n- a foreground animal/character with a specific expression (from subjects) -> type "animal"\n\nDROP background extras, decorative props, generic scenery, and anything small or incidental. Keep at most ~6. If there are none, return an empty list.\n\nFor each kept element return: { "type": one of logo|product|person|animal|badge, "label": a short UPPER_SNAKE_CASE name (e.g. LOGO, PRODUCT, HERO_DOG, TRUSTPILOT), "description": a concrete reusable description to source/shoot the real asset (include the exact expression for a living subject), "expression": the facial expression for a living subject or null, "reason": why it is identity-critical, "locator": the blueprint entry this element came from as { "collection": one of "subjects" | "people" | "brands_logos", "index": its 0-based position in that array } (people -> people; logos/badges -> brands_logos; products/animals/objects -> subjects). Output ONLY the JSON object.';
|
|
12814
12798
|
async function loadAssetText(ref, label) {
|
|
12815
12799
|
const r = ref;
|
|
12816
12800
|
if (typeof r?.path === "string") return readFile3(r.path, "utf8");
|
|
@@ -19743,162 +19727,11 @@ Paid transforms (run on the Convex backend, cost-tracked):
|
|
|
19743
19727
|
}
|
|
19744
19728
|
});
|
|
19745
19729
|
|
|
19746
|
-
// src/commands/mcp/index.ts
|
|
19747
|
-
import { defineCommand as defineCommand125 } from "citty";
|
|
19748
|
-
var SCOPES = ["user", "company", "org"];
|
|
19749
|
-
function parseScope(raw) {
|
|
19750
|
-
const scope = raw === void 0 ? "company" : String(raw);
|
|
19751
|
-
if (!SCOPES.includes(scope)) {
|
|
19752
|
-
throw new ApiError("VALIDATION_ERROR", `Invalid --scope "${scope}". Use user | company | org.`);
|
|
19753
|
-
}
|
|
19754
|
-
return scope;
|
|
19755
|
-
}
|
|
19756
|
-
function actingUserId() {
|
|
19757
|
-
return getEnv().BAKER_ACTING_USER_ID;
|
|
19758
|
-
}
|
|
19759
|
-
function parseHeaders(raw) {
|
|
19760
|
-
const list = raw === void 0 ? [] : Array.isArray(raw) ? raw : [raw];
|
|
19761
|
-
const headers = {};
|
|
19762
|
-
for (const entry of list) {
|
|
19763
|
-
const text = String(entry);
|
|
19764
|
-
const sep = text.indexOf(":") >= 0 && (text.indexOf(":") < text.indexOf("=") || text.indexOf("=") < 0) ? ":" : "=";
|
|
19765
|
-
const at = text.indexOf(sep);
|
|
19766
|
-
if (at <= 0) {
|
|
19767
|
-
throw new ApiError("VALIDATION_ERROR", `Invalid header "${text}". Use "Key: Value".`);
|
|
19768
|
-
}
|
|
19769
|
-
headers[text.slice(0, at).trim()] = text.slice(at + 1).trim();
|
|
19770
|
-
}
|
|
19771
|
-
return Object.keys(headers).length > 0 ? headers : void 0;
|
|
19772
|
-
}
|
|
19773
|
-
function fail3(err) {
|
|
19774
|
-
if (err instanceof ApiError) {
|
|
19775
|
-
writeJson({ ok: false, error: { code: err.code, message: err.message } });
|
|
19776
|
-
process.exit(1);
|
|
19777
|
-
}
|
|
19778
|
-
writeJson({ ok: false, error: { code: "NETWORK_ERROR", message: "Unexpected error" } });
|
|
19779
|
-
process.exit(1);
|
|
19780
|
-
}
|
|
19781
|
-
registerSchema({
|
|
19782
|
-
command: "mcp.list",
|
|
19783
|
-
description: "List the custom MCP servers this company's chats see (org + company + your own user scope).",
|
|
19784
|
-
args: {}
|
|
19785
|
-
});
|
|
19786
|
-
var listCommand4 = defineCommand125({
|
|
19787
|
-
meta: { name: "list", description: "List custom MCP servers visible to this company's chats." },
|
|
19788
|
-
run: async () => {
|
|
19789
|
-
try {
|
|
19790
|
-
const user = actingUserId();
|
|
19791
|
-
const data = await apiGet(
|
|
19792
|
-
"/api/mcp/custom",
|
|
19793
|
-
user ? { actingUserId: user } : void 0
|
|
19794
|
-
);
|
|
19795
|
-
writeJson({ ok: true, data: data.servers });
|
|
19796
|
-
} catch (err) {
|
|
19797
|
-
fail3(err);
|
|
19798
|
-
}
|
|
19799
|
-
}
|
|
19800
|
-
});
|
|
19801
|
-
registerSchema({
|
|
19802
|
-
command: "mcp.add",
|
|
19803
|
-
description: "Register a custom MCP server. Tools appear as mcp__<name>__* on the next message. URL must be HTTPS. Scope: company (default, all chats) | org (org admin key) | user (only the current sender).",
|
|
19804
|
-
args: {
|
|
19805
|
-
name: { type: "string", description: "Server name \u2192 tools appear as mcp__<name>__*", required: true },
|
|
19806
|
-
url: { type: "string", description: "HTTPS MCP endpoint", required: true },
|
|
19807
|
-
scope: { type: "string", description: "user | company | org (default company)", required: false },
|
|
19808
|
-
header: { type: "string", description: 'Auth header "Key: Value" (repeatable)', required: false }
|
|
19809
|
-
}
|
|
19810
|
-
});
|
|
19811
|
-
var addCommand = defineCommand125({
|
|
19812
|
-
meta: {
|
|
19813
|
-
name: "add",
|
|
19814
|
-
description: `Register a custom MCP server. Tools appear as mcp__<name>__* on the NEXT message.
|
|
19815
|
-
|
|
19816
|
-
Scope: company (default \u2014 every chat in the company) | org (all companies in the org; needs an admin key) | user (only the current message sender).
|
|
19817
|
-
|
|
19818
|
-
Examples:
|
|
19819
|
-
baker mcp add --name weather --url https://mcp.example.com/mcp
|
|
19820
|
-
baker mcp add --name acme --url https://acme.dev/mcp --header "Authorization: Bearer sk-\u2026"
|
|
19821
|
-
baker mcp add --name mine --url https://my.dev/mcp --scope user`
|
|
19822
|
-
},
|
|
19823
|
-
args: {
|
|
19824
|
-
name: { type: "string", description: "Server name (mcp__<name>__*)", required: true },
|
|
19825
|
-
url: { type: "string", description: "HTTPS MCP endpoint", required: true },
|
|
19826
|
-
scope: { type: "string", description: "user | company | org (default company)", required: false },
|
|
19827
|
-
header: { type: "string", description: 'Auth header "Key: Value" (repeatable)', required: false }
|
|
19828
|
-
},
|
|
19829
|
-
run: async ({ args }) => {
|
|
19830
|
-
try {
|
|
19831
|
-
const scope = parseScope(args.scope);
|
|
19832
|
-
const user = actingUserId();
|
|
19833
|
-
const headers = parseHeaders(args.header);
|
|
19834
|
-
const data = await apiPost("/api/mcp/custom", {
|
|
19835
|
-
name: args.name,
|
|
19836
|
-
url: args.url,
|
|
19837
|
-
scope,
|
|
19838
|
-
...user ? { actingUserId: user } : {},
|
|
19839
|
-
...headers ? { headers } : {}
|
|
19840
|
-
});
|
|
19841
|
-
writeJson({ ok: true, data });
|
|
19842
|
-
} catch (err) {
|
|
19843
|
-
fail3(err);
|
|
19844
|
-
}
|
|
19845
|
-
}
|
|
19846
|
-
});
|
|
19847
|
-
registerSchema({
|
|
19848
|
-
command: "mcp.remove",
|
|
19849
|
-
description: "Remove a company custom MCP server by name.",
|
|
19850
|
-
args: { name: { type: "string", description: "Server name to remove", required: true } }
|
|
19851
|
-
});
|
|
19852
|
-
var removeCommand3 = defineCommand125({
|
|
19853
|
-
meta: {
|
|
19854
|
-
name: "remove",
|
|
19855
|
-
description: `Remove a company custom MCP server by name.
|
|
19856
|
-
|
|
19857
|
-
Example:
|
|
19858
|
-
baker mcp remove --name weather`
|
|
19859
|
-
},
|
|
19860
|
-
args: { name: { type: "string", description: "Server name to remove", required: true } },
|
|
19861
|
-
run: async ({ args }) => {
|
|
19862
|
-
try {
|
|
19863
|
-
const user = actingUserId();
|
|
19864
|
-
const data = await apiPost("/api/mcp/custom/remove", {
|
|
19865
|
-
name: args.name,
|
|
19866
|
-
...user ? { actingUserId: user } : {}
|
|
19867
|
-
});
|
|
19868
|
-
writeJson({ ok: true, data });
|
|
19869
|
-
} catch (err) {
|
|
19870
|
-
fail3(err);
|
|
19871
|
-
}
|
|
19872
|
-
}
|
|
19873
|
-
});
|
|
19874
|
-
var mcpCommand = defineCommand125({
|
|
19875
|
-
meta: {
|
|
19876
|
-
name: "mcp",
|
|
19877
|
-
description: `Custom MCP servers for this company \u2014 point the agent at any HTTPS MCP endpoint.
|
|
19878
|
-
|
|
19879
|
-
Tools from a registered server appear as mcp__<name>__* on the next message.
|
|
19880
|
-
Managed here are **company-scoped** servers; user- and org-scoped servers are managed in the dashboard.
|
|
19881
|
-
|
|
19882
|
-
Start here:
|
|
19883
|
-
baker mcp list
|
|
19884
|
-
|
|
19885
|
-
Examples:
|
|
19886
|
-
baker mcp add --name weather --url https://mcp.example.com/mcp
|
|
19887
|
-
baker mcp add --name acme --url https://acme.dev/mcp --header "Authorization: Bearer sk-\u2026"
|
|
19888
|
-
baker mcp remove --name weather`
|
|
19889
|
-
},
|
|
19890
|
-
subCommands: {
|
|
19891
|
-
list: listCommand4,
|
|
19892
|
-
add: addCommand,
|
|
19893
|
-
remove: removeCommand3
|
|
19894
|
-
}
|
|
19895
|
-
});
|
|
19896
|
-
|
|
19897
19730
|
// src/commands/research/index.ts
|
|
19898
|
-
import { defineCommand as
|
|
19731
|
+
import { defineCommand as defineCommand135 } from "citty";
|
|
19899
19732
|
|
|
19900
19733
|
// src/commands/research/advertisers.ts
|
|
19901
|
-
import { defineCommand as
|
|
19734
|
+
import { defineCommand as defineCommand125 } from "citty";
|
|
19902
19735
|
|
|
19903
19736
|
// src/commands/research/output.ts
|
|
19904
19737
|
var RESEARCH_DATA_NOTE = "Estimates based on third-party SERP data \u2014 not exact figures. Use for directional insights, not precise measurement.";
|
|
@@ -20011,7 +19844,7 @@ var FIELDS3 = {
|
|
|
20011
19844
|
etv: "Estimated traffic value (USD)",
|
|
20012
19845
|
visibility: "SERP visibility score (0-1)"
|
|
20013
19846
|
};
|
|
20014
|
-
var advertisersCommand =
|
|
19847
|
+
var advertisersCommand = defineCommand125({
|
|
20015
19848
|
meta: {
|
|
20016
19849
|
name: "advertisers",
|
|
20017
19850
|
description: `Find domains competing for a keyword in Google SERPs.
|
|
@@ -20058,7 +19891,7 @@ Examples:
|
|
|
20058
19891
|
});
|
|
20059
19892
|
|
|
20060
19893
|
// src/commands/research/autocomplete.ts
|
|
20061
|
-
import { defineCommand as
|
|
19894
|
+
import { defineCommand as defineCommand126 } from "citty";
|
|
20062
19895
|
registerSchema({
|
|
20063
19896
|
command: "research.autocomplete",
|
|
20064
19897
|
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).",
|
|
@@ -20081,7 +19914,7 @@ registerSchema({
|
|
|
20081
19914
|
var FIELDS4 = {
|
|
20082
19915
|
suggestion: "Autocomplete suggestion from Google"
|
|
20083
19916
|
};
|
|
20084
|
-
var autocompleteCommand =
|
|
19917
|
+
var autocompleteCommand = defineCommand126({
|
|
20085
19918
|
meta: {
|
|
20086
19919
|
name: "autocomplete",
|
|
20087
19920
|
description: `Get Google Autocomplete suggestions for keyword expansion.
|
|
@@ -20127,7 +19960,7 @@ Examples:
|
|
|
20127
19960
|
});
|
|
20128
19961
|
|
|
20129
19962
|
// src/commands/research/countries.ts
|
|
20130
|
-
import { defineCommand as
|
|
19963
|
+
import { defineCommand as defineCommand127 } from "citty";
|
|
20131
19964
|
registerSchema({
|
|
20132
19965
|
command: "research.countries",
|
|
20133
19966
|
description: "List all supported country codes for --location flag in research commands.",
|
|
@@ -20184,7 +20017,7 @@ var FIELDS5 = {
|
|
|
20184
20017
|
code: "Country code to pass as --location",
|
|
20185
20018
|
name: "Country name"
|
|
20186
20019
|
};
|
|
20187
|
-
var countriesCommand =
|
|
20020
|
+
var countriesCommand = defineCommand127({
|
|
20188
20021
|
meta: {
|
|
20189
20022
|
name: "countries",
|
|
20190
20023
|
description: "List all supported country codes for --location flag."
|
|
@@ -20195,7 +20028,7 @@ var countriesCommand = defineCommand128({
|
|
|
20195
20028
|
});
|
|
20196
20029
|
|
|
20197
20030
|
// src/commands/research/intent.ts
|
|
20198
|
-
import { defineCommand as
|
|
20031
|
+
import { defineCommand as defineCommand128 } from "citty";
|
|
20199
20032
|
registerSchema({
|
|
20200
20033
|
command: "research.intent",
|
|
20201
20034
|
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.",
|
|
@@ -20218,7 +20051,7 @@ var FIELDS6 = {
|
|
|
20218
20051
|
intent: "Primary Google Search intent: informational, navigational, commercial, transactional",
|
|
20219
20052
|
probability: "Confidence score 0.0-1.0"
|
|
20220
20053
|
};
|
|
20221
|
-
var intentCommand =
|
|
20054
|
+
var intentCommand = defineCommand128({
|
|
20222
20055
|
meta: {
|
|
20223
20056
|
name: "intent",
|
|
20224
20057
|
description: `Classify Google Search intent for keywords. Returns intent type and confidence.
|
|
@@ -20266,7 +20099,7 @@ Examples:
|
|
|
20266
20099
|
});
|
|
20267
20100
|
|
|
20268
20101
|
// src/commands/research/keyword-gap.ts
|
|
20269
|
-
import { defineCommand as
|
|
20102
|
+
import { defineCommand as defineCommand129 } from "citty";
|
|
20270
20103
|
registerSchema({
|
|
20271
20104
|
command: "research.keyword-gap",
|
|
20272
20105
|
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.",
|
|
@@ -20295,7 +20128,7 @@ var FIELDS7 = {
|
|
|
20295
20128
|
cpc: "Cost per click USD",
|
|
20296
20129
|
their_position: "Competitor's ranking position"
|
|
20297
20130
|
};
|
|
20298
|
-
var keywordGapCommand =
|
|
20131
|
+
var keywordGapCommand = defineCommand129({
|
|
20299
20132
|
meta: {
|
|
20300
20133
|
name: "keyword-gap",
|
|
20301
20134
|
description: `Find keywords a competitor has that you don't. Supports pagination via --offset.
|
|
@@ -20369,7 +20202,7 @@ Examples:
|
|
|
20369
20202
|
});
|
|
20370
20203
|
|
|
20371
20204
|
// src/commands/research/keywords-for-site.ts
|
|
20372
|
-
import { defineCommand as
|
|
20205
|
+
import { defineCommand as defineCommand130 } from "citty";
|
|
20373
20206
|
registerSchema({
|
|
20374
20207
|
command: "research.keywords-for-site",
|
|
20375
20208
|
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.",
|
|
@@ -20402,7 +20235,7 @@ var FIELDS8 = {
|
|
|
20402
20235
|
competition: "LOW, MEDIUM, or HIGH",
|
|
20403
20236
|
competition_index: "Competition score 0-100"
|
|
20404
20237
|
};
|
|
20405
|
-
var keywordsForSiteCommand =
|
|
20238
|
+
var keywordsForSiteCommand = defineCommand130({
|
|
20406
20239
|
meta: {
|
|
20407
20240
|
name: "keywords-for-site",
|
|
20408
20241
|
description: `Get keywords a competitor targets in Google. Use --type to filter paid/organic.
|
|
@@ -20455,7 +20288,7 @@ Examples:
|
|
|
20455
20288
|
});
|
|
20456
20289
|
|
|
20457
20290
|
// src/commands/research/languages.ts
|
|
20458
|
-
import { defineCommand as
|
|
20291
|
+
import { defineCommand as defineCommand131 } from "citty";
|
|
20459
20292
|
registerSchema({
|
|
20460
20293
|
command: "research.languages",
|
|
20461
20294
|
description: "List all supported language codes for --language flag in research commands.",
|
|
@@ -20485,7 +20318,7 @@ var FIELDS9 = {
|
|
|
20485
20318
|
code: "Language code to pass as --language",
|
|
20486
20319
|
name: "Language name (also accepted by --language)"
|
|
20487
20320
|
};
|
|
20488
|
-
var languagesCommand2 =
|
|
20321
|
+
var languagesCommand2 = defineCommand131({
|
|
20489
20322
|
meta: {
|
|
20490
20323
|
name: "languages",
|
|
20491
20324
|
description: "List all supported language codes for --language flag."
|
|
@@ -20496,7 +20329,7 @@ var languagesCommand2 = defineCommand132({
|
|
|
20496
20329
|
});
|
|
20497
20330
|
|
|
20498
20331
|
// src/commands/research/lighthouse.ts
|
|
20499
|
-
import { defineCommand as
|
|
20332
|
+
import { defineCommand as defineCommand132 } from "citty";
|
|
20500
20333
|
registerSchema({
|
|
20501
20334
|
command: "research.lighthouse",
|
|
20502
20335
|
description: "Landing page performance audit. Returns metrics that affect Google Ads Quality Score and CPC.",
|
|
@@ -20515,7 +20348,7 @@ var FIELDS10 = {
|
|
|
20515
20348
|
speed_index_ms: "Speed Index in ms (good: < 3400)",
|
|
20516
20349
|
interactive_ms: "Time to Interactive in ms (good: < 3800)"
|
|
20517
20350
|
};
|
|
20518
|
-
var lighthouseCommand =
|
|
20351
|
+
var lighthouseCommand = defineCommand132({
|
|
20519
20352
|
meta: {
|
|
20520
20353
|
name: "lighthouse",
|
|
20521
20354
|
description: `Landing page performance audit. Metrics affecting Google Ads Quality Score.
|
|
@@ -20553,7 +20386,7 @@ Examples:
|
|
|
20553
20386
|
});
|
|
20554
20387
|
|
|
20555
20388
|
// src/commands/research/relevant-pages.ts
|
|
20556
|
-
import { defineCommand as
|
|
20389
|
+
import { defineCommand as defineCommand133 } from "citty";
|
|
20557
20390
|
registerSchema({
|
|
20558
20391
|
command: "research.relevant-pages",
|
|
20559
20392
|
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).",
|
|
@@ -20579,7 +20412,7 @@ var FIELDS11 = {
|
|
|
20579
20412
|
keywords: "Total organic keywords the page ranks for",
|
|
20580
20413
|
top_10: "Keywords in positions 1-10"
|
|
20581
20414
|
};
|
|
20582
|
-
var relevantPagesCommand =
|
|
20415
|
+
var relevantPagesCommand = defineCommand133({
|
|
20583
20416
|
meta: {
|
|
20584
20417
|
name: "relevant-pages",
|
|
20585
20418
|
description: `Get the top pages of a competitor domain with traffic data.
|
|
@@ -20625,7 +20458,7 @@ Examples:
|
|
|
20625
20458
|
});
|
|
20626
20459
|
|
|
20627
20460
|
// src/commands/research/web.ts
|
|
20628
|
-
import { defineCommand as
|
|
20461
|
+
import { defineCommand as defineCommand134 } from "citty";
|
|
20629
20462
|
registerSchema({
|
|
20630
20463
|
command: "research.web",
|
|
20631
20464
|
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).",
|
|
@@ -20676,7 +20509,7 @@ async function runDeepResearch(question) {
|
|
|
20676
20509
|
}
|
|
20677
20510
|
throw new Error("Deep research timed out");
|
|
20678
20511
|
}
|
|
20679
|
-
var webCommand =
|
|
20512
|
+
var webCommand = defineCommand134({
|
|
20680
20513
|
meta: {
|
|
20681
20514
|
name: "web",
|
|
20682
20515
|
description: `Search the web with AI to answer any open-ended marketing question. Uses live internet data via Google Search.
|
|
@@ -20736,7 +20569,7 @@ Examples:
|
|
|
20736
20569
|
});
|
|
20737
20570
|
|
|
20738
20571
|
// src/commands/research/index.ts
|
|
20739
|
-
var researchCommand =
|
|
20572
|
+
var researchCommand = defineCommand135({
|
|
20740
20573
|
meta: {
|
|
20741
20574
|
name: "research",
|
|
20742
20575
|
description: `Competitive intelligence and AI-powered research commands.
|
|
@@ -20776,10 +20609,10 @@ Examples:
|
|
|
20776
20609
|
});
|
|
20777
20610
|
|
|
20778
20611
|
// src/commands/scheduled-actions/index.ts
|
|
20779
|
-
import { defineCommand as
|
|
20612
|
+
import { defineCommand as defineCommand142 } from "citty";
|
|
20780
20613
|
|
|
20781
20614
|
// src/commands/scheduled-actions/create.ts
|
|
20782
|
-
import { defineCommand as
|
|
20615
|
+
import { defineCommand as defineCommand136 } from "citty";
|
|
20783
20616
|
|
|
20784
20617
|
// src/commands/scheduled-actions/shared.ts
|
|
20785
20618
|
var TEMP_SCHEDULED_ACTION_PREFIX = "temp_sched_";
|
|
@@ -20894,7 +20727,7 @@ registerSchema({
|
|
|
20894
20727
|
prompt: { type: "string", description: "Additional prompt instructions for the spawned agent", required: false }
|
|
20895
20728
|
}
|
|
20896
20729
|
});
|
|
20897
|
-
var createCommand2 =
|
|
20730
|
+
var createCommand2 = defineCommand136({
|
|
20898
20731
|
meta: {
|
|
20899
20732
|
name: "create",
|
|
20900
20733
|
description: 'Stage a scheduled action. Example: baker scheduled-actions create --name "Weekly report" --description "..." --cron "0 9 * * MON"'
|
|
@@ -20943,7 +20776,7 @@ var createCommand2 = defineCommand137({
|
|
|
20943
20776
|
});
|
|
20944
20777
|
|
|
20945
20778
|
// src/commands/scheduled-actions/delete.ts
|
|
20946
|
-
import { defineCommand as
|
|
20779
|
+
import { defineCommand as defineCommand137 } from "citty";
|
|
20947
20780
|
registerSchema({
|
|
20948
20781
|
command: "scheduled-actions.delete",
|
|
20949
20782
|
description: "Stage deletion of a published scheduled action or cancellation of a temp_sched_* draft creation.",
|
|
@@ -20951,7 +20784,7 @@ registerSchema({
|
|
|
20951
20784
|
id: { type: "string", description: "Published scheduled action ID or temp_sched_* draft ID", required: true }
|
|
20952
20785
|
}
|
|
20953
20786
|
});
|
|
20954
|
-
var deleteCommand2 =
|
|
20787
|
+
var deleteCommand2 = defineCommand137({
|
|
20955
20788
|
meta: {
|
|
20956
20789
|
name: "delete",
|
|
20957
20790
|
description: "Stage scheduled action deletion. Example: baker scheduled-actions delete <id-or-temp_sched_id>"
|
|
@@ -20980,7 +20813,7 @@ var deleteCommand2 = defineCommand138({
|
|
|
20980
20813
|
});
|
|
20981
20814
|
|
|
20982
20815
|
// src/commands/scheduled-actions/get.ts
|
|
20983
|
-
import { defineCommand as
|
|
20816
|
+
import { defineCommand as defineCommand138 } from "citty";
|
|
20984
20817
|
registerSchema({
|
|
20985
20818
|
command: "scheduled-actions.get",
|
|
20986
20819
|
description: "Get a published scheduled action or a temp_sched_* draft-created scheduled action.",
|
|
@@ -20988,7 +20821,7 @@ registerSchema({
|
|
|
20988
20821
|
id: { type: "string", description: "Published scheduled action ID or temp_sched_* draft ID", required: true }
|
|
20989
20822
|
}
|
|
20990
20823
|
});
|
|
20991
|
-
var getCommand3 =
|
|
20824
|
+
var getCommand3 = defineCommand138({
|
|
20992
20825
|
meta: {
|
|
20993
20826
|
name: "get",
|
|
20994
20827
|
description: "Get a scheduled action. Example: baker scheduled-actions get <id-or-temp_sched_id>"
|
|
@@ -21025,13 +20858,13 @@ var getCommand3 = defineCommand139({
|
|
|
21025
20858
|
});
|
|
21026
20859
|
|
|
21027
20860
|
// src/commands/scheduled-actions/list.ts
|
|
21028
|
-
import { defineCommand as
|
|
20861
|
+
import { defineCommand as defineCommand139 } from "citty";
|
|
21029
20862
|
registerSchema({
|
|
21030
20863
|
command: "scheduled-actions.list",
|
|
21031
20864
|
description: "List published scheduled actions. Includes draft state when BAKER_CHAT_ID is set.",
|
|
21032
20865
|
args: {}
|
|
21033
20866
|
});
|
|
21034
|
-
var
|
|
20867
|
+
var listCommand4 = defineCommand139({
|
|
21035
20868
|
meta: {
|
|
21036
20869
|
name: "list",
|
|
21037
20870
|
description: "List scheduled actions. Includes staged draft ops when BAKER_CHAT_ID is set."
|
|
@@ -21052,7 +20885,7 @@ var listCommand5 = defineCommand140({
|
|
|
21052
20885
|
});
|
|
21053
20886
|
|
|
21054
20887
|
// src/commands/scheduled-actions/trigger.ts
|
|
21055
|
-
import { defineCommand as
|
|
20888
|
+
import { defineCommand as defineCommand140 } from "citty";
|
|
21056
20889
|
registerSchema({
|
|
21057
20890
|
command: "scheduled-actions.trigger",
|
|
21058
20891
|
description: "Immediately trigger a published scheduled action. Does not require BAKER_CHAT_ID and rejects temp_sched_* IDs.",
|
|
@@ -21060,7 +20893,7 @@ registerSchema({
|
|
|
21060
20893
|
id: { type: "string", description: "Published scheduled action ID", required: true }
|
|
21061
20894
|
}
|
|
21062
20895
|
});
|
|
21063
|
-
var triggerCommand =
|
|
20896
|
+
var triggerCommand = defineCommand140({
|
|
21064
20897
|
meta: {
|
|
21065
20898
|
name: "trigger",
|
|
21066
20899
|
description: "Immediately trigger a published scheduled action. Example: baker scheduled-actions trigger <id>"
|
|
@@ -21097,7 +20930,7 @@ var triggerCommand = defineCommand141({
|
|
|
21097
20930
|
});
|
|
21098
20931
|
|
|
21099
20932
|
// src/commands/scheduled-actions/update.ts
|
|
21100
|
-
import { defineCommand as
|
|
20933
|
+
import { defineCommand as defineCommand141 } from "citty";
|
|
21101
20934
|
registerSchema({
|
|
21102
20935
|
command: "scheduled-actions.update",
|
|
21103
20936
|
description: "Stage an update to a published scheduled action or temp_sched_* draft-created scheduled action.",
|
|
@@ -21122,7 +20955,7 @@ registerSchema({
|
|
|
21122
20955
|
prompt: { type: "string", description: "Replacement additional spawned-agent instructions", required: false }
|
|
21123
20956
|
}
|
|
21124
20957
|
});
|
|
21125
|
-
var updateCommand2 =
|
|
20958
|
+
var updateCommand2 = defineCommand141({
|
|
21126
20959
|
meta: {
|
|
21127
20960
|
name: "update",
|
|
21128
20961
|
description: "Stage a scheduled action update. Example: baker scheduled-actions update <id> --enabled false"
|
|
@@ -21193,7 +21026,7 @@ var updateCommand2 = defineCommand142({
|
|
|
21193
21026
|
});
|
|
21194
21027
|
|
|
21195
21028
|
// src/commands/scheduled-actions/index.ts
|
|
21196
|
-
var scheduledActionsCommand =
|
|
21029
|
+
var scheduledActionsCommand = defineCommand142({
|
|
21197
21030
|
meta: {
|
|
21198
21031
|
name: "scheduled-actions",
|
|
21199
21032
|
description: `Manage Scheduled Actions. Subcommands: list, get, create, update, delete, trigger.
|
|
@@ -21209,7 +21042,7 @@ Examples:
|
|
|
21209
21042
|
baker scheduled-actions trigger <id>`
|
|
21210
21043
|
},
|
|
21211
21044
|
subCommands: {
|
|
21212
|
-
list:
|
|
21045
|
+
list: listCommand4,
|
|
21213
21046
|
get: getCommand3,
|
|
21214
21047
|
create: createCommand2,
|
|
21215
21048
|
update: updateCommand2,
|
|
@@ -21219,8 +21052,8 @@ Examples:
|
|
|
21219
21052
|
});
|
|
21220
21053
|
|
|
21221
21054
|
// src/commands/schema.ts
|
|
21222
|
-
import { defineCommand as
|
|
21223
|
-
var schemaCommand =
|
|
21055
|
+
import { defineCommand as defineCommand143 } from "citty";
|
|
21056
|
+
var schemaCommand = defineCommand143({
|
|
21224
21057
|
meta: {
|
|
21225
21058
|
name: "schema",
|
|
21226
21059
|
description: "Inspect command argument schemas (for AI agent introspection). Lists all commands if no argument given. Example: baker schema images.search"
|
|
@@ -21256,10 +21089,10 @@ var schemaCommand = defineCommand144({
|
|
|
21256
21089
|
});
|
|
21257
21090
|
|
|
21258
21091
|
// src/commands/testimonials/index.ts
|
|
21259
|
-
import { defineCommand as
|
|
21092
|
+
import { defineCommand as defineCommand147 } from "citty";
|
|
21260
21093
|
|
|
21261
21094
|
// src/commands/testimonials/get.ts
|
|
21262
|
-
import { defineCommand as
|
|
21095
|
+
import { defineCommand as defineCommand144 } from "citty";
|
|
21263
21096
|
registerSchema({
|
|
21264
21097
|
command: "testimonials.get",
|
|
21265
21098
|
description: "Get a single testimonial by ID",
|
|
@@ -21267,7 +21100,7 @@ registerSchema({
|
|
|
21267
21100
|
id: { type: "string", description: "Testimonial ID", required: true }
|
|
21268
21101
|
}
|
|
21269
21102
|
});
|
|
21270
|
-
var getCommand4 =
|
|
21103
|
+
var getCommand4 = defineCommand144({
|
|
21271
21104
|
meta: { name: "get", description: "Get a single testimonial by ID. Example: baker testimonials get j571abc123" },
|
|
21272
21105
|
args: {
|
|
21273
21106
|
id: { type: "positional", description: "Testimonial ID", required: false },
|
|
@@ -21304,7 +21137,7 @@ var getCommand4 = defineCommand145({
|
|
|
21304
21137
|
});
|
|
21305
21138
|
|
|
21306
21139
|
// src/commands/testimonials/list.ts
|
|
21307
|
-
import { defineCommand as
|
|
21140
|
+
import { defineCommand as defineCommand145 } from "citty";
|
|
21308
21141
|
registerSchema({
|
|
21309
21142
|
command: "testimonials.list",
|
|
21310
21143
|
description: "List testimonials with optional filters.",
|
|
@@ -21334,7 +21167,7 @@ registerSchema({
|
|
|
21334
21167
|
limit: { type: "number", description: "Max results (default 50)", required: false, default: 50 }
|
|
21335
21168
|
}
|
|
21336
21169
|
});
|
|
21337
|
-
var
|
|
21170
|
+
var listCommand5 = defineCommand145({
|
|
21338
21171
|
meta: {
|
|
21339
21172
|
name: "list",
|
|
21340
21173
|
description: "List testimonials with optional filters. Example: baker testimonials list --source google --sentiment positive"
|
|
@@ -21383,7 +21216,7 @@ var listCommand6 = defineCommand146({
|
|
|
21383
21216
|
});
|
|
21384
21217
|
|
|
21385
21218
|
// src/commands/testimonials/search.ts
|
|
21386
|
-
import { defineCommand as
|
|
21219
|
+
import { defineCommand as defineCommand146 } from "citty";
|
|
21387
21220
|
registerSchema({
|
|
21388
21221
|
command: "testimonials.search",
|
|
21389
21222
|
description: "Search testimonials by text query. Uses hybrid BM25 + vector + reranking.",
|
|
@@ -21414,7 +21247,7 @@ registerSchema({
|
|
|
21414
21247
|
tags: { type: "string", description: "Comma-separated tags to filter by", required: false }
|
|
21415
21248
|
}
|
|
21416
21249
|
});
|
|
21417
|
-
var searchCommand2 =
|
|
21250
|
+
var searchCommand2 = defineCommand146({
|
|
21418
21251
|
meta: {
|
|
21419
21252
|
name: "search",
|
|
21420
21253
|
description: "Semantic search testimonials by text query. Uses hybrid BM25 + vector + reranking. Example: baker testimonials search 'great service' --rating-min 4"
|
|
@@ -21488,7 +21321,7 @@ var searchCommand2 = defineCommand147({
|
|
|
21488
21321
|
var tagsCommand3 = makeTagsCommand("testimonials", "testimonial", "/api/testimonials/tags");
|
|
21489
21322
|
|
|
21490
21323
|
// src/commands/testimonials/index.ts
|
|
21491
|
-
var testimonialsCommand =
|
|
21324
|
+
var testimonialsCommand = defineCommand147({
|
|
21492
21325
|
meta: {
|
|
21493
21326
|
name: "testimonials",
|
|
21494
21327
|
description: `Find and browse testimonials in Baker. Subcommands: search, get, list, tags.
|
|
@@ -21503,16 +21336,16 @@ Examples:
|
|
|
21503
21336
|
subCommands: {
|
|
21504
21337
|
get: getCommand4,
|
|
21505
21338
|
search: searchCommand2,
|
|
21506
|
-
list:
|
|
21339
|
+
list: listCommand5,
|
|
21507
21340
|
tags: tagsCommand3
|
|
21508
21341
|
}
|
|
21509
21342
|
});
|
|
21510
21343
|
|
|
21511
21344
|
// src/commands/videos/index.ts
|
|
21512
|
-
import { defineCommand as
|
|
21345
|
+
import { defineCommand as defineCommand152 } from "citty";
|
|
21513
21346
|
|
|
21514
21347
|
// src/commands/videos/delete.ts
|
|
21515
|
-
import { defineCommand as
|
|
21348
|
+
import { defineCommand as defineCommand148 } from "citty";
|
|
21516
21349
|
registerSchema({
|
|
21517
21350
|
command: "videos.delete",
|
|
21518
21351
|
description: "Delete a video by ID",
|
|
@@ -21526,7 +21359,7 @@ registerSchema({
|
|
|
21526
21359
|
}
|
|
21527
21360
|
}
|
|
21528
21361
|
});
|
|
21529
|
-
var deleteCommand3 =
|
|
21362
|
+
var deleteCommand3 = defineCommand148({
|
|
21530
21363
|
meta: {
|
|
21531
21364
|
name: "delete",
|
|
21532
21365
|
description: "Delete a video by ID. Use --dry-run to preview. Example: baker videos delete j571abc123 --dry-run"
|
|
@@ -21567,7 +21400,7 @@ var deleteCommand3 = defineCommand149({
|
|
|
21567
21400
|
});
|
|
21568
21401
|
|
|
21569
21402
|
// src/commands/videos/get.ts
|
|
21570
|
-
import { defineCommand as
|
|
21403
|
+
import { defineCommand as defineCommand149 } from "citty";
|
|
21571
21404
|
registerSchema({
|
|
21572
21405
|
command: "videos.get",
|
|
21573
21406
|
description: "Get a single video by ID",
|
|
@@ -21575,7 +21408,7 @@ registerSchema({
|
|
|
21575
21408
|
id: { type: "string", description: "Video ID", required: true }
|
|
21576
21409
|
}
|
|
21577
21410
|
});
|
|
21578
|
-
var getCommand5 =
|
|
21411
|
+
var getCommand5 = defineCommand149({
|
|
21579
21412
|
meta: { name: "get", description: "Get a single video by ID. Example: baker videos get j571abc123" },
|
|
21580
21413
|
args: {
|
|
21581
21414
|
id: { type: "positional", description: "Video ID", required: false },
|
|
@@ -21612,7 +21445,7 @@ var getCommand5 = defineCommand150({
|
|
|
21612
21445
|
});
|
|
21613
21446
|
|
|
21614
21447
|
// src/commands/videos/search.ts
|
|
21615
|
-
import { defineCommand as
|
|
21448
|
+
import { defineCommand as defineCommand150 } from "citty";
|
|
21616
21449
|
registerSchema({
|
|
21617
21450
|
command: "videos.search",
|
|
21618
21451
|
description: "Search videos by text query. Only returns ready videos.",
|
|
@@ -21622,7 +21455,7 @@ registerSchema({
|
|
|
21622
21455
|
tags: { type: "string", description: "Comma-separated tags to filter by", required: false }
|
|
21623
21456
|
}
|
|
21624
21457
|
});
|
|
21625
|
-
var searchCommand3 =
|
|
21458
|
+
var searchCommand3 = defineCommand150({
|
|
21626
21459
|
meta: {
|
|
21627
21460
|
name: "search",
|
|
21628
21461
|
description: "Semantic search videos by text query. Uses hybrid BM25 + vector + reranking. Example: baker videos search 'product demo' --tags tutorial"
|
|
@@ -21674,7 +21507,7 @@ var tagsCommand4 = makeTagsCommand("videos", "video", "/api/videos/tags");
|
|
|
21674
21507
|
// src/commands/videos/upload.ts
|
|
21675
21508
|
import { readFile as readFile12, stat as stat3 } from "fs/promises";
|
|
21676
21509
|
import { extname as extname3 } from "path";
|
|
21677
|
-
import { defineCommand as
|
|
21510
|
+
import { defineCommand as defineCommand151 } from "citty";
|
|
21678
21511
|
var MIME_MAP = {
|
|
21679
21512
|
".mp4": "video/mp4",
|
|
21680
21513
|
".mov": "video/quicktime",
|
|
@@ -21708,7 +21541,7 @@ function detectContentType(filePath) {
|
|
|
21708
21541
|
}
|
|
21709
21542
|
return mime;
|
|
21710
21543
|
}
|
|
21711
|
-
var uploadCommand2 =
|
|
21544
|
+
var uploadCommand2 = defineCommand151({
|
|
21712
21545
|
meta: {
|
|
21713
21546
|
name: "upload",
|
|
21714
21547
|
description: "Upload a video file to Baker via Mux direct upload. Auto-detects content type. Example: baker videos upload ./demo.mp4"
|
|
@@ -21762,7 +21595,7 @@ var uploadCommand2 = defineCommand152({
|
|
|
21762
21595
|
});
|
|
21763
21596
|
|
|
21764
21597
|
// src/commands/videos/index.ts
|
|
21765
|
-
var videosCommand =
|
|
21598
|
+
var videosCommand = defineCommand152({
|
|
21766
21599
|
meta: {
|
|
21767
21600
|
name: "videos",
|
|
21768
21601
|
description: `Find and manage videos in Baker. Subcommands: search, get, upload, delete, tags.
|
|
@@ -21785,10 +21618,10 @@ Examples:
|
|
|
21785
21618
|
});
|
|
21786
21619
|
|
|
21787
21620
|
// src/commands/winning-ads/index.ts
|
|
21788
|
-
import { defineCommand as
|
|
21621
|
+
import { defineCommand as defineCommand155 } from "citty";
|
|
21789
21622
|
|
|
21790
21623
|
// src/commands/winning-ads/advertisers.ts
|
|
21791
|
-
import { defineCommand as
|
|
21624
|
+
import { defineCommand as defineCommand153 } from "citty";
|
|
21792
21625
|
registerSchema({
|
|
21793
21626
|
command: "winning-ads.advertisers",
|
|
21794
21627
|
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).",
|
|
@@ -21801,7 +21634,7 @@ registerSchema({
|
|
|
21801
21634
|
function identity(record) {
|
|
21802
21635
|
return record;
|
|
21803
21636
|
}
|
|
21804
|
-
var advertisersCommand2 =
|
|
21637
|
+
var advertisersCommand2 = defineCommand153({
|
|
21805
21638
|
meta: {
|
|
21806
21639
|
name: "advertisers",
|
|
21807
21640
|
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'
|
|
@@ -21852,7 +21685,7 @@ var advertisersCommand2 = defineCommand154({
|
|
|
21852
21685
|
});
|
|
21853
21686
|
|
|
21854
21687
|
// src/commands/winning-ads/search.ts
|
|
21855
|
-
import { defineCommand as
|
|
21688
|
+
import { defineCommand as defineCommand154 } from "citty";
|
|
21856
21689
|
registerSchema({
|
|
21857
21690
|
command: "winning-ads.search",
|
|
21858
21691
|
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.",
|
|
@@ -21960,7 +21793,7 @@ function buildSearchBody(args) {
|
|
|
21960
21793
|
}
|
|
21961
21794
|
return body;
|
|
21962
21795
|
}
|
|
21963
|
-
var searchCommand4 =
|
|
21796
|
+
var searchCommand4 = defineCommand154({
|
|
21964
21797
|
meta: {
|
|
21965
21798
|
name: "search",
|
|
21966
21799
|
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"
|
|
@@ -22072,7 +21905,7 @@ var searchCommand4 = defineCommand155({
|
|
|
22072
21905
|
});
|
|
22073
21906
|
|
|
22074
21907
|
// src/commands/winning-ads/index.ts
|
|
22075
|
-
var winningAdsCommand =
|
|
21908
|
+
var winningAdsCommand = defineCommand155({
|
|
22076
21909
|
meta: {
|
|
22077
21910
|
name: "winning-ads",
|
|
22078
21911
|
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.
|
|
@@ -22112,7 +21945,7 @@ function getCliVersion() {
|
|
|
22112
21945
|
}
|
|
22113
21946
|
|
|
22114
21947
|
// src/cli.ts
|
|
22115
|
-
var main =
|
|
21948
|
+
var main = defineCommand156({
|
|
22116
21949
|
meta: {
|
|
22117
21950
|
name: "baker",
|
|
22118
21951
|
version: getCliVersion(),
|
|
@@ -22137,7 +21970,6 @@ Introspection: Run 'baker schema <command>' to inspect argument schemas.`
|
|
|
22137
21970
|
testimonials: testimonialsCommand,
|
|
22138
21971
|
canvas: canvasCommand,
|
|
22139
21972
|
"winning-ads": winningAdsCommand,
|
|
22140
|
-
mcp: mcpCommand,
|
|
22141
21973
|
schema: schemaCommand
|
|
22142
21974
|
}
|
|
22143
21975
|
});
|