@cmo-so/cli 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cmo.mjs +51 -3
- package/package.json +1 -1
package/dist/cmo.mjs
CHANGED
|
@@ -7353,6 +7353,14 @@ function createApi({ baseUrl, session: session2, fetch: fetchImpl = globalThis.f
|
|
|
7353
7353
|
apps: () => request("/v1/me/apps"),
|
|
7354
7354
|
revokeApp: (grantId) => request(`/v1/me/apps/${encodeURIComponent(grantId)}`, { method: "DELETE" }),
|
|
7355
7355
|
invoices: () => request("/v1/me/invoices"),
|
|
7356
|
+
/**
|
|
7357
|
+
* Take a website off your own list (archives your claim; reversible on ai.cmo.so). Nothing changes for
|
|
7358
|
+
* anyone else; a team member also leaves the team.
|
|
7359
|
+
*/
|
|
7360
|
+
removeWebsite: (domain) => request(
|
|
7361
|
+
`/v1/me/websites/${encodeURIComponent(domain)}/remove`,
|
|
7362
|
+
{ method: "POST" }
|
|
7363
|
+
),
|
|
7356
7364
|
/** Delete the account (only from the person's own sign-in). Websites stay, unclaimed; plans stop renewing. */
|
|
7357
7365
|
delete: () => request("/v1/me/delete", {
|
|
7358
7366
|
method: "POST",
|
|
@@ -7640,6 +7648,11 @@ function domainApi(api2, domain) {
|
|
|
7640
7648
|
wordpressPlugin: () => api2.request(`${base}/wordpress-plugin`),
|
|
7641
7649
|
// Writes (need autopilot write on the domain).
|
|
7642
7650
|
addIdea: (input) => post(`${base}/ideas`, input),
|
|
7651
|
+
/**
|
|
7652
|
+
* Up to 100 ideas exactly as given (no AI, no generation used): they wait in the pool, not the plan, and count
|
|
7653
|
+
* toward the 100 waiting ideas a person may add. Duplicates (title or page) are skipped and listed.
|
|
7654
|
+
*/
|
|
7655
|
+
addIdeas: (ideas2) => post(`${base}/ideas/bulk`, { ideas: ideas2 }),
|
|
7643
7656
|
/** Ideas built on up to 10 photos (base64 JPEG). The server keeps no copy. */
|
|
7644
7657
|
ideasFromPhotos: (photos, count, brief2 = "") => post(`${base}/ideas/from-photos`, { photos, count, brief: brief2 }),
|
|
7645
7658
|
generateIdeas: (count, brief2 = "") => post(`${base}/ideas/generate`, { count, brief: brief2 }),
|
|
@@ -9294,6 +9307,41 @@ var blogTools = [
|
|
|
9294
9307
|
return ws(ctx).addIdea(url ? { url } : { text: text3 });
|
|
9295
9308
|
}
|
|
9296
9309
|
}),
|
|
9310
|
+
tool({
|
|
9311
|
+
name: "ideas_add_list",
|
|
9312
|
+
description: "Add up to 100 ideas exactly as given (a researched list): title, description, primary keyword, up to 5 more keywords, a benchmark URL (read as research, never linked), priority 1-10 and optionally one of the website's topics. No AI rewrites them and no generation is used; they wait in the idea pool, not the plan. Duplicates are skipped and listed; at most 100 of a person's own ideas can wait at once.",
|
|
9313
|
+
parameters: {
|
|
9314
|
+
type: "object",
|
|
9315
|
+
properties: {
|
|
9316
|
+
ideas: {
|
|
9317
|
+
type: "array",
|
|
9318
|
+
items: {
|
|
9319
|
+
type: "object",
|
|
9320
|
+
properties: {
|
|
9321
|
+
title: { type: "string" },
|
|
9322
|
+
description: { type: "string" },
|
|
9323
|
+
keyword: { type: "string", description: "The primary keyword" },
|
|
9324
|
+
keywords: { type: "array", items: { type: "string" } },
|
|
9325
|
+
url: { type: "string", description: "A benchmark page" },
|
|
9326
|
+
priority: { type: "integer", minimum: 1, maximum: 10 },
|
|
9327
|
+
topic: { type: "string", description: "One of topics_list, if it fits" }
|
|
9328
|
+
},
|
|
9329
|
+
required: ["title"]
|
|
9330
|
+
}
|
|
9331
|
+
}
|
|
9332
|
+
},
|
|
9333
|
+
required: ["ideas"]
|
|
9334
|
+
},
|
|
9335
|
+
group: "blog",
|
|
9336
|
+
need: write,
|
|
9337
|
+
risk: "W1",
|
|
9338
|
+
run: async (ctx, { ideas: ideas2 }) => {
|
|
9339
|
+
if (!ideas2?.length) throw new Error("Give at least one idea.");
|
|
9340
|
+
if (ideas2.length > 100) throw new Error("Up to 100 ideas at a time.");
|
|
9341
|
+
const out = await ws(ctx).addIdeas(ideas2);
|
|
9342
|
+
return { added: out.added, skipped: out.skipped, room_left: out.room_left };
|
|
9343
|
+
}
|
|
9344
|
+
}),
|
|
9297
9345
|
tool({
|
|
9298
9346
|
name: "ideas_generate",
|
|
9299
9347
|
description: "Let Maggie come up with new ideas (1\u201310) with AI, optionally about a theme.",
|
|
@@ -9365,7 +9413,7 @@ var blogTools = [
|
|
|
9365
9413
|
}),
|
|
9366
9414
|
tool({
|
|
9367
9415
|
name: "idea_plan",
|
|
9368
|
-
description: "Add a waiting idea to the end of the plan (the plan holds
|
|
9416
|
+
description: "Add a waiting idea to the end of the plan (the plan holds up to 100).",
|
|
9369
9417
|
parameters: {
|
|
9370
9418
|
type: "object",
|
|
9371
9419
|
properties: {
|
|
@@ -9700,7 +9748,7 @@ var brandTools = [
|
|
|
9700
9748
|
}),
|
|
9701
9749
|
tool({
|
|
9702
9750
|
name: "competitor_suggestions_find",
|
|
9703
|
-
description: "Look for new competitors on the web now (once a day per website, subscribed websites only; Maggie also looks on her own
|
|
9751
|
+
description: "Look for new competitors on the web now (once a day per website, subscribed websites only; Maggie also looks on her own once the website and its known competitors have no new pages left). New ones come back as suggestions; nothing is added to the profile.",
|
|
9704
9752
|
parameters: none,
|
|
9705
9753
|
group: "brand",
|
|
9706
9754
|
need: write2,
|
|
@@ -15442,7 +15490,7 @@ var program = new Command();
|
|
|
15442
15490
|
// package.json
|
|
15443
15491
|
var package_default = {
|
|
15444
15492
|
name: "@cmo-so/cli",
|
|
15445
|
-
version: "0.7.
|
|
15493
|
+
version: "0.7.3",
|
|
15446
15494
|
description: "CMO.so on the command line: your websites, ideas, blog posts, LinkedIn queue and results, plus a local MCP server for Claude Desktop, Cursor and other MCP clients.",
|
|
15447
15495
|
type: "module",
|
|
15448
15496
|
license: "MIT",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cmo-so/cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
4
4
|
"description": "CMO.so on the command line: your websites, ideas, blog posts, LinkedIn queue and results, plus a local MCP server for Claude Desktop, Cursor and other MCP clients.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|