@letterstory/cli 0.176.70 → 0.176.72
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 +5 -5
- package/lib/commands/automate.mjs +4 -4
- package/lib/commands/repo.mjs +5 -13
- package/package.json +1 -1
package/lib/cli.mjs
CHANGED
|
@@ -85,7 +85,7 @@ import {
|
|
|
85
85
|
import { fetchParkedSections, withoutParked } from "./parked.mjs";
|
|
86
86
|
|
|
87
87
|
// Matches cli/package.json; publish-cli.yml rewrites both to the published version.
|
|
88
|
-
export const VERSION = "0.176.
|
|
88
|
+
export const VERSION = "0.176.72";
|
|
89
89
|
|
|
90
90
|
/** The exit code for a gate refusal (CARD_REQUIRED, PAYMENT_FAILED, OUT_OF_TOKENS): 1 is a plain error. */
|
|
91
91
|
export const EXIT_PAYMENT_REQUIRED = 3;
|
|
@@ -357,7 +357,6 @@ export const BOOLEAN_FLAGS = new Set([
|
|
|
357
357
|
"now",
|
|
358
358
|
"opt-out-footer",
|
|
359
359
|
"postal-address-footer",
|
|
360
|
-
"privacy-only",
|
|
361
360
|
"redesign",
|
|
362
361
|
"release-mailbox",
|
|
363
362
|
"rival",
|
|
@@ -641,7 +640,7 @@ Reviewers:
|
|
|
641
640
|
automate list Your automations: an event, which ones it acts on,
|
|
642
641
|
and what Letterpress then does
|
|
643
642
|
automate show <automation-id>
|
|
644
|
-
automate add [--template post_new_issues|
|
|
643
|
+
automate add [--template post_new_issues|recommended_actions|competitor_pages|competitor_takes|
|
|
645
644
|
competitor_changes|icp_visitors|vc_visitors|plan_updates|weekly_release_notes|monthly_page_refresh]
|
|
646
645
|
[--name <n>] [--trigger competitor_page|competitor_change|visitor_identified|issue_found|build_suggestion|plan_update|custom|
|
|
647
646
|
schedule]
|
|
@@ -1807,7 +1806,8 @@ Repo changes (Claude Code edits your repo in a sandbox; the Letter GitHub App op
|
|
|
1807
1806
|
repo suggestions Fixes found and not acted on yet, and how to start each
|
|
1808
1807
|
repo settings [--action build|build_pr|build_merge|slack|linear] [--branch <name>|none] [--slack-agent <name|U…>|none]
|
|
1809
1808
|
[--slack-channel <C…>|none] [--autopilot-channel <C…>|none] [--listen <C…,C…>|none] [--autopilot on|off] [--autopilot-weekly <1-20>]
|
|
1810
|
-
[--autopilot-severity critical|warning] [--
|
|
1809
|
+
[--autopilot-severity critical|warning] [--autopilot-scope all|new]
|
|
1810
|
+
[--auto-merge 1h|12h|24h|3d|off] [--editor-auto-merge on|off]
|
|
1811
1811
|
[--agent letterpress-1|claude-code|default]
|
|
1812
1812
|
The org's defaults for every fix: build (preview first),
|
|
1813
1813
|
build_pr, or slack (post it to --slack-channel for your
|
|
@@ -1840,7 +1840,7 @@ Repo changes (Claude Code edits your repo in a sandbox; the Letter GitHub App op
|
|
|
1840
1840
|
repo install-letterprove --repo <owner/name> [--gitlab] [--branch <base>] [--action build|build_pr|build_merge|slack|linear] [--wait]
|
|
1841
1841
|
One PR adding Letterprove's script and identify calls
|
|
1842
1842
|
(pick the repo where users sign in)
|
|
1843
|
-
repo install-visitors [--site <id> | --host <domain>] [--repo <owner/name> [--gitlab]] [--branch <base>] [--action build|build_pr|build_merge|slack|linear] [--
|
|
1843
|
+
repo install-visitors [--site <id> | --host <domain>] [--repo <owner/name> [--gitlab]] [--branch <base>] [--action build|build_pr|build_merge|slack|linear] [--wait]
|
|
1844
1844
|
One PR adding the Visitors script tag and server snippet to the repo that
|
|
1845
1845
|
builds the site (--repo: another repo)
|
|
1846
1846
|
repo sites [--detect [--force]] Which website each repo builds, and the evidence
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// `automate` — Letterpress → Automations (docs/architecture/event-automations.md): an event, read
|
|
2
2
|
// against your filter (--instruction), then done by Letterpress as your prompt (--prompt) says.
|
|
3
3
|
// options / list / show / add / set / try / runs / approve / reject / send / remove, through the
|
|
4
|
-
// same tools the app uses. (A letterbase's writing automations are `automations`.) `list` also
|
|
5
|
-
// Letter runs for the account (source "letter": internal links, the blog's sync, the site's re-audit,
|
|
6
|
-
// autopilot, add-your-name suggestions, Auto-Plan
|
|
4
|
+
// same tools the app uses. (A letterbase's writing automations are made and paced with `automations`.) `list` also
|
|
5
|
+
// shows the jobs Letter runs for the account (source "letter": internal links, the blog's sync, the site's re-audit,
|
|
6
|
+
// Fix autopilot, add-your-name suggestions, Auto-Plan, and each letterbase's writing automations), each with its
|
|
7
|
+
// scope; `set <id> --on|--off` turns one on or off.
|
|
7
8
|
// Same flag/positional/io conventions as posts.mjs — no commander, no color.
|
|
8
9
|
|
|
9
10
|
import { CliError } from "../client.mjs";
|
|
@@ -21,7 +22,6 @@ const TRIGGERS = [
|
|
|
21
22
|
];
|
|
22
23
|
const TEMPLATES = [
|
|
23
24
|
"post_new_issues",
|
|
24
|
-
"fix_new_issues",
|
|
25
25
|
"recommended_actions",
|
|
26
26
|
"competitor_pages",
|
|
27
27
|
"competitor_takes",
|
package/lib/commands/repo.mjs
CHANGED
|
@@ -180,7 +180,6 @@ const ARGS = {
|
|
|
180
180
|
repo_name: { value: (flags) => splitRepo(flags).name },
|
|
181
181
|
base_branch: "branch",
|
|
182
182
|
action: { flag: "action", enum: ["build", "build_pr", "build_merge", "slack", "linear"] },
|
|
183
|
-
privacy_only: { flag: "privacy-only", type: "bool" },
|
|
184
183
|
},
|
|
185
184
|
get_repo_change_settings: {},
|
|
186
185
|
list_suggested_fixes: {},
|
|
@@ -230,6 +229,8 @@ const ARGS = {
|
|
|
230
229
|
value: (flags) => (flags["autopilot-weekly"] === undefined ? undefined : Number(flags["autopilot-weekly"])),
|
|
231
230
|
},
|
|
232
231
|
autopilot_min_severity: { flag: "autopilot-severity", enum: ["critical", "warning"] },
|
|
232
|
+
// --autopilot-scope all|new: every issue, by priority, or new issues only
|
|
233
|
+
autopilot_scope: { flag: "autopilot-scope", enum: ["all", "new"] },
|
|
233
234
|
// --auto-merge 1h|12h|24h|3d (or the hours: 1, 12, 24, 72), or --auto-merge off
|
|
234
235
|
auto_merge_after_hours: { value: (flags) => autoMergeHours(flags["auto-merge"]) },
|
|
235
236
|
// --agent letterpress-1|claude-code|default: the coding agent every change runs on (default = the deployment's)
|
|
@@ -567,20 +568,10 @@ async function repoInstallLetterprove(ctx) {
|
|
|
567
568
|
return followRun(ctx, result.run);
|
|
568
569
|
}
|
|
569
570
|
|
|
570
|
-
/** `repo install-visitors [--site id | --host getstylie.com] [--repo owner/name] [--branch b] [--
|
|
571
|
+
/** `repo install-visitors [--site id | --host getstylie.com] [--repo owner/name] [--branch b] [--wait]`: the Visitors script tag and server snippet → one PR. */
|
|
571
572
|
async function repoInstallVisitors(ctx) {
|
|
572
573
|
const { client, flags, io } = ctx;
|
|
573
|
-
refuseUnknownFlags(ctx, {}, [
|
|
574
|
-
"site",
|
|
575
|
-
"repo",
|
|
576
|
-
"owner",
|
|
577
|
-
"name",
|
|
578
|
-
"gitlab",
|
|
579
|
-
"branch",
|
|
580
|
-
"action",
|
|
581
|
-
"privacy-only",
|
|
582
|
-
"wait",
|
|
583
|
-
]);
|
|
574
|
+
refuseUnknownFlags(ctx, {}, ["site", "repo", "owner", "name", "gitlab", "branch", "action", "wait"]);
|
|
584
575
|
const result = await client.callTool(
|
|
585
576
|
"visitors_open_install_pr",
|
|
586
577
|
argsFromFlags(ARGS.visitors_open_install_pr, flags, ctx.positionals)
|
|
@@ -916,6 +907,7 @@ async function repoSettings(ctx) {
|
|
|
916
907
|
"autopilot",
|
|
917
908
|
"autopilot-weekly",
|
|
918
909
|
"autopilot-severity",
|
|
910
|
+
"autopilot-scope",
|
|
919
911
|
"auto-merge",
|
|
920
912
|
"editor-auto-merge",
|
|
921
913
|
"agent",
|