@letterstory/cli 0.61.1 → 0.62.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/lib/cli.mjs CHANGED
@@ -55,7 +55,7 @@ import {
55
55
  } from "./commands.mjs";
56
56
 
57
57
  // Keep in sync with cli/package.json.
58
- export const VERSION = "0.61.1";
58
+ export const VERSION = "0.62.0";
59
59
 
60
60
  // Flags that never take a value. Listing them explicitly means `deploy get --json <id>`
61
61
  // can't accidentally swallow the id as --json's value.
@@ -123,8 +123,9 @@ const BOOLEAN_FLAGS = new Set([
123
123
  "no-enrich",
124
124
  // `offerings set-collection <id> --none` (the org itself is the subject again).
125
125
  "none",
126
- // `prospects import|source --one-per-company`.
126
+ // `prospects import|source --one-per-company`, `prospects source --enrich`.
127
127
  "one-per-company",
128
+ "enrich",
128
129
  // `targets update <id> --clear-framing`.
129
130
  "clear-framing",
130
131
  ]);
@@ -614,9 +615,9 @@ Admin (STAFF key — --staff-key / LETTERSTORY_STAFF_API_KEY; acts before an org
614
615
  admin tuning-context [--q "<question>"] The experiment agent's context pack (JSON):
615
616
  the pipeline as deployed, levers, measures,
616
617
  goals, related history.
617
- admin tuning desk What waits on a person: comparisons to read
618
- blind, questions to decide, versions to
619
- promote, open corpus flags, overdue patterns.
618
+ admin tuning pipeline [--primitive write|research|shred|enhance|chain] [--refresh]
619
+ One primitive's stages as deployed, the
620
+ registry the Pipeline tab draws (JSON).
620
621
  admin tuning <sub> … The console's loop over a staff key: kernels,
621
622
  candidate, compare, comparisons, picks, pick,
622
623
  reading-list, pair, side-by-side, promote,
@@ -832,7 +833,8 @@ Prospects (who you write to):
832
833
  prospects create-list --name <n>
833
834
  prospects import --csv-file <path|-> [--list <list-id>|--list-name <n>] [--one-per-company]
834
835
  prospects source --description <who you want> [--list <list-id>|--list-name <n>] [--limit <1..100>]
835
- [--one-per-company] Fill a list from paid data providers (background)
836
+ [--one-per-company] [--enrich] Fill a list from paid data providers (background);
837
+ --enrich starts enrichment as soon as the pull lands
836
838
  prospects enrich [--list <list-id>] [--status <s>] [--q <search>]
837
839
  Funding + competitors for un-enriched rows
838
840
  prospects update <prospect-id> [--status new|contacted|replied|unsubscribed|archived] [--name <n>]
@@ -420,7 +420,7 @@ async function cmdAdminTuningContext(ctx) {
420
420
  * and promotion from the ledger (docs/architecture/tuning-foundation.md): the headless half of the
421
421
  * tuning console's Write › Kernels and Compare tabs. Needs `tuning:experiment` on the key.
422
422
  *
423
- * admin tuning desk what waits on a person: comparisons to read blind, questions to decide, versions to promote, open flags, overdue findings
423
+ * admin tuning pipeline [--primitive write|research|shred|enhance|chain] [--refresh] one primitive's stages as deployed (JSON)
424
424
  * admin tuning kernels every catalog kernel, live version, writer, candidates
425
425
  * admin tuning kernel <service-kernel-id> [--version N|live] one version's file (JSON)
426
426
  * admin tuning candidate <service-kernel-id> --file f.json [--note "…"] save a file as a candidate version
@@ -530,19 +530,11 @@ async function cmdAdminTuning(ctx) {
530
530
  const json = flagBool(flags.json);
531
531
  const T = "/api/superadmin/tuning";
532
532
  switch (sub) {
533
- case "desk": {
534
- const d = await staffRequest(ctx, "GET", `${T}/desk`);
535
- if (json) return printResult(io, flags, d);
536
- const lines = [];
537
- for (const c of d.to_read)
538
- lines.push(`read blind ${c.read}/${c.target} ${c.primitive.padEnd(8)} ${c.title} ${c.id}`);
539
- for (const e of d.to_decide) lines.push(`decide ${e.status.padEnd(9)} ${e.question} ${e.id}`);
540
- for (const e of d.to_promote) lines.push(`promote ship ${e.question} ${e.id}`);
541
- if (d.flags_open) lines.push(`flags ${d.flags_open} corpus flags open`);
542
- if (d.findings_overdue)
543
- lines.push(`triage ${d.findings_overdue} shipped patterns past their due date`);
544
- for (const err of d.errors ?? []) lines.push(`(could not read: ${err})`);
545
- return io.log(lines.join("\n") || "Nothing waits on a person.");
533
+ case "pipeline": {
534
+ const primitive = flagStr(flags.primitive) ?? "write";
535
+ const q = new URLSearchParams({ primitive });
536
+ if (flagBool(flags.refresh)) q.set("refresh", "1");
537
+ return printResult(io, { ...flags, json: true }, await staffRequest(ctx, "GET", `${T}/pipeline?${q}`));
546
538
  }
547
539
  case "kernels": {
548
540
  const r = await staffRequest(ctx, "GET", `${T}/kernel-files`);
@@ -203,6 +203,7 @@ export const ARGS = {
203
203
  list_name: "list-name",
204
204
  limit: { flag: "limit", type: "num" },
205
205
  one_per_company: { flag: "one-per-company", type: "bool" },
206
+ enrich: { flag: "enrich", type: "bool" },
206
207
  },
207
208
  enrich_prospects: {
208
209
  list_id: "list",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letterstory/cli",
3
- "version": "0.61.1",
3
+ "version": "0.62.0",
4
4
  "description": "Spin up and manage Letterstory phantom blogs from your terminal.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",