@series-a/cli 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,16 @@ All notable changes to this package are documented here. This project follows
4
4
  [Semantic Versioning](https://semver.org/) and uses
5
5
  [Changesets](https://github.com/changesets/changesets) to manage releases.
6
6
 
7
+ ## 1.4.0 — Company news, brand imagery fix, API reliability
8
+
9
+ Version jumps from 0.28.0 to 1.4.0 because npm already has releases up to 1.3.2.
10
+
11
+ - New `advisoros leads company-refresh <ids...>` fetches company details and recent company news for contacts through Brave Search. It only works when the workspace's "Company news" switch is on, each company is refreshed at most once every 14 days, and every lookup is billed as `web_search` credits.
12
+ - `brand set-imagery` works again for workspaces whose owner is stored in the older `ws_…` format. Before, it failed with "One of the supplied ids is not a valid identifier".
13
+ - API reliability: the CLI, MCP and Agent API briefly returned 503 because the server function crashed on startup. That is fixed. No change is needed on the CLI side.
14
+ - Server-side agent fixes also reach CLI-triggered runs: Market Research, News Monitor, Competitive Intel, Social Listening and the Intelligence Synthesizer no longer crash when the AI sends its lists in a different format.
15
+ - Campaigns: "Stop if replied (else continue)" checks only that contact's own saved replies (it never spends a LinkedIn read), and each contact's branches and waits are tracked separately.
16
+
7
17
  ## 0.28.0 — Instantly email campaigns
8
18
 
9
19
  - New `advisoros email` command group (alias `instantly`) drives the workspace's Instantly account through its own connected key — the key never leaves the server.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@series-a/cli",
3
- "version": "1.3.2",
3
+ "version": "1.4.0",
4
4
  "description": "AdvisorPro command-line interface — drive leads, campaigns, sequences and agents from your terminal.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -68,6 +68,20 @@ export function registerLeads(program) {
68
68
  } catch (e) { fail(e); }
69
69
  });
70
70
 
71
+ withCommonOpts(leads.command("company-refresh <ids...>"))
72
+ .description("Refresh company news (Brave via Madnion) for up to 25 leads")
73
+ .option("--force", "Ignore the 14-day freshness window")
74
+ .action(async function (ids, opts) {
75
+ try {
76
+ const r = await call("leads", "company_refresh", { ids, force: !!opts.force }, ctxFrom(this));
77
+ emit(this, r, (d) => {
78
+ const c = d.company_refresh || {};
79
+ if (c.skipped) return process.stdout.write(`Skipped: ${c.reason ?? "company news is off for this workspace"}\n`);
80
+ process.stdout.write(`✓ ${c.enriched ?? 0} companies refreshed, ${c.skipped_fresh ?? 0} already fresh, ${(c.errors || []).length} errors\n`);
81
+ });
82
+ } catch (e) { fail(e); }
83
+ });
84
+
71
85
  withCommonOpts(leads.command("set-status <id> <status>"))
72
86
  .description("Update a lead's status")
73
87
  .action(async function (id, status) {