@letterstory/cli 0.176.38 → 0.176.39
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 +4 -3
- package/lib/commands/plan.mjs +14 -2
- package/package.json +1 -1
package/lib/cli.mjs
CHANGED
|
@@ -83,7 +83,7 @@ import {
|
|
|
83
83
|
import { fetchParkedSections, withoutParked } from "./parked.mjs";
|
|
84
84
|
|
|
85
85
|
// Matches cli/package.json; publish-cli.yml rewrites both to the published version.
|
|
86
|
-
export const VERSION = "0.176.
|
|
86
|
+
export const VERSION = "0.176.39";
|
|
87
87
|
|
|
88
88
|
/** The exit code for a gate refusal (CARD_REQUIRED, PAYMENT_FAILED, OUT_OF_TOKENS): 1 is a plain error. */
|
|
89
89
|
export const EXIT_PAYMENT_REQUIRED = 3;
|
|
@@ -1671,9 +1671,10 @@ Insights:
|
|
|
1671
1671
|
first), what to build (--lens build), or your own words. Nothing asked:
|
|
1672
1672
|
each list's head. The same answer as the console and Slack.
|
|
1673
1673
|
plan auto [activate|disable] [--site host] [--veto-hours <1-168>|off] [--auto-merge on|off]
|
|
1674
|
-
[--aggression low|medium|high|xhigh] [--
|
|
1674
|
+
[--aggression low|medium|high|xhigh] [--goal geo|seo|agent_conviction|inbound_conversion|any]
|
|
1675
|
+
[--slack-channel <C…>|none]
|
|
1675
1676
|
Auto-Plan on a site: Letterpress picks its strategies and builds
|
|
1676
|
-
them; each pick waits --veto-hours for a veto. Settings shown when none given.
|
|
1677
|
+
them (--goal: one goal's strategies, else any); each pick waits --veto-hours for a veto. Settings shown when none given.
|
|
1677
1678
|
plan pending [--site host] What Auto-Plan picked and is waiting to build
|
|
1678
1679
|
plan veto <proposal-id> Veto one: it is never built
|
|
1679
1680
|
plan later <action-id> [--outcome geo|…] [--site host] Queue a Plan row for later: Auto-Plan starts it once it's ready
|
package/lib/commands/plan.mjs
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
// organization's own domain). The same calls as the Plan's modal and its sidebar's Pending rows.
|
|
3
3
|
// plan auto → get_auto_plan
|
|
4
4
|
// plan auto [activate|disable] [--veto-hours <1-168>|off] [--auto-merge on|off]
|
|
5
|
-
// [--aggression low|medium|high|xhigh] [--
|
|
5
|
+
// [--aggression low|medium|high|xhigh] [--goal geo|seo|agent_conviction|inbound_conversion|any]
|
|
6
|
+
// [--slack-channel <C…>|none] → set_auto_plan
|
|
6
7
|
// plan pending → list_auto_plan_proposals (status pending)
|
|
7
8
|
// plan veto <proposal-id> → veto_auto_plan_proposal
|
|
8
9
|
// plan later <action-id> [--outcome geo|…] → queue_plan_action (Auto-Plan starts it once it's ready)
|
|
@@ -44,6 +45,17 @@ export const ARGS = {
|
|
|
44
45
|
},
|
|
45
46
|
merge: { value: onOff("auto-merge") },
|
|
46
47
|
aggression: { flag: "aggression", enum: ["low", "medium", "high", "xhigh"] },
|
|
48
|
+
// --goal geo picks strategies for that goal only; --goal any (the default) reads every strategy.
|
|
49
|
+
goal: {
|
|
50
|
+
value: (flags) => {
|
|
51
|
+
const v = flagStr(flags.goal);
|
|
52
|
+
if (v === undefined) return undefined;
|
|
53
|
+
if (v === "any") return null;
|
|
54
|
+
if (!["agent_conviction", "geo", "seo", "inbound_conversion"].includes(v))
|
|
55
|
+
throw new CliError("--goal takes agent_conviction, geo, seo, inbound_conversion, or any.");
|
|
56
|
+
return v;
|
|
57
|
+
},
|
|
58
|
+
},
|
|
47
59
|
slack_channel: {
|
|
48
60
|
value: (flags) => {
|
|
49
61
|
const v = flagStr(flags["slack-channel"]);
|
|
@@ -75,7 +87,7 @@ export const ARGS = {
|
|
|
75
87
|
},
|
|
76
88
|
};
|
|
77
89
|
|
|
78
|
-
const SETTING_FLAGS = ["veto-hours", "auto-merge", "aggression", "slack-channel"];
|
|
90
|
+
const SETTING_FLAGS = ["veto-hours", "auto-merge", "aggression", "goal", "slack-channel"];
|
|
79
91
|
|
|
80
92
|
export async function cmdPlan(ctx) {
|
|
81
93
|
const { client, flags, io } = ctx;
|