@cmo-so/cli 0.8.0 → 0.8.1

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.
Files changed (2) hide show
  1. package/dist/cmo.mjs +27 -1
  2. package/package.json +1 -1
package/dist/cmo.mjs CHANGED
@@ -8195,6 +8195,8 @@ function domainApi(api2, domain) {
8195
8195
  inboxReport: (id) => api2.request(`${base}/reports/${id}`),
8196
8196
  saveReport: (r) => post(`${base}/reports`, r),
8197
8197
  readAllReports: () => post(`${base}/reports/read-all`, {}),
8198
+ /** One social post in full (social_list clips its text). */
8199
+ socialPost: (id) => api2.request(`${base}/social/${id}`),
8198
8200
  // Ops Autopilot: ideas the weekly clean-up archived (restorable), post health, Google reviews.
8199
8201
  ideaCleanup: (limit = 50) => api2.request(`${base}/idea-cleanup?limit=${limit}`),
8200
8202
  restoreIdeaCleanup: (id) => post(`${base}/idea-cleanup/${id}/restore`, {}),
@@ -10839,6 +10841,30 @@ var opsTools = [
10839
10841
  const { reviewer, comment, ...rest } = r;
10840
10842
  return { ...rest, ...untrusted({ reviewer, comment }) };
10841
10843
  }
10844
+ }),
10845
+ tool({
10846
+ name: "social_post_get",
10847
+ description: "One social post in full: its whole text (social_list shortens it to about 300 characters), its pictures, its link, its channel and status, when it goes out, and why it was held before going out, if it was. Use it to check a post's ending (a web address or phone number on Google, a cut-off sentence) before approving or fixing it.",
10848
+ parameters: { type: "object", properties: { id: { type: "integer" } }, required: ["id"] },
10849
+ group: "social",
10850
+ need: { resource: "autopilot", level: "read" },
10851
+ risk: "R0",
10852
+ run: async (ctx, { id }) => {
10853
+ const p = await ws(ctx).socialPost(int(id, 1, Number.MAX_SAFE_INTEGER, 0));
10854
+ return {
10855
+ id: p.id,
10856
+ channel: p.provider,
10857
+ status: p.status,
10858
+ eta: p.eta ?? null,
10859
+ text: p.social_copy,
10860
+ characters: String(p.social_copy ?? "").length,
10861
+ picture: p.image_url ?? null,
10862
+ pictures: p.image_urls ?? [],
10863
+ link: p.cta_url ?? p.source_url ?? null,
10864
+ held: p.held ?? null,
10865
+ failure: p.failure_message ?? null
10866
+ };
10867
+ }
10842
10868
  })
10843
10869
  ];
10844
10870
 
@@ -16268,7 +16294,7 @@ var program = new Command();
16268
16294
  // package.json
16269
16295
  var package_default = {
16270
16296
  name: "@cmo-so/cli",
16271
- version: "0.8.0",
16297
+ version: "0.8.1",
16272
16298
  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.",
16273
16299
  type: "module",
16274
16300
  license: "MIT",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cmo-so/cli",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
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",