@letterstory/cli 0.108.2 → 0.109.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 +2 -1
- package/lib/commands/onboard.mjs +2 -0
- package/lib/commands/org.mjs +18 -1
- package/lib/commands/site.mjs +8 -0
- package/package.json +1 -1
package/lib/cli.mjs
CHANGED
|
@@ -60,7 +60,7 @@ import {
|
|
|
60
60
|
} from "./commands.mjs";
|
|
61
61
|
|
|
62
62
|
// Keep in sync with cli/package.json.
|
|
63
|
-
export const VERSION = "0.
|
|
63
|
+
export const VERSION = "0.109.0";
|
|
64
64
|
|
|
65
65
|
// Flags that never take a value. Listing them explicitly means `deploy get --json <id>`
|
|
66
66
|
// can't accidentally swallow the id as --json's value. Every `type: "bool"` flag (and its
|
|
@@ -893,6 +893,7 @@ Seers (event-driven signals -> drafts):
|
|
|
893
893
|
org export [--sections <s>…] [--file <path>] The org's whole config as one JSON bundle
|
|
894
894
|
org export --split <dir> …as one file per record (for keeping config in git)
|
|
895
895
|
org join <dir> [--file <path>] Rebuild the bundle from a --split directory
|
|
896
|
+
org integrations Every integration and whether it's connected
|
|
896
897
|
org diff <file|dir> What applying a bundle would change (reads only)
|
|
897
898
|
org apply <file|dir> [--dry-run] [--prune --yes] Make the org match a bundle (adds/updates; --prune deletes)
|
|
898
899
|
[--allow spends,sends,destroys,access --yes] Also apply gated changes (admins; without --yes it only previews)
|
package/lib/commands/onboard.mjs
CHANGED
|
@@ -179,6 +179,8 @@ export const ARGS = {
|
|
|
179
179
|
propose_primitive_plan: {
|
|
180
180
|
domain: { positional: 0, label: "domain" },
|
|
181
181
|
retry: { flag: "retry", type: "bool" },
|
|
182
|
+
// Only these primitives, as a plan recipe allows: kernel,phantom,mailer,sequence.
|
|
183
|
+
primitives: { flag: "primitives", type: "list" },
|
|
182
184
|
},
|
|
183
185
|
propose_phantom_plan: {
|
|
184
186
|
client_domain: { positional: 0, label: "client-domain" },
|
package/lib/commands/org.mjs
CHANGED
|
@@ -26,6 +26,7 @@ export const ARGS = {
|
|
|
26
26
|
confirm: { flag: "confirm" },
|
|
27
27
|
},
|
|
28
28
|
get_org_config_source: {},
|
|
29
|
+
list_integrations: {},
|
|
29
30
|
connect_org_config_source: {
|
|
30
31
|
repo: { positional: 0, label: "owner/name" },
|
|
31
32
|
branch: { flag: "branch" },
|
|
@@ -53,11 +54,27 @@ export async function cmdOrg(ctx) {
|
|
|
53
54
|
return orgApply(rest);
|
|
54
55
|
case "git":
|
|
55
56
|
return orgGit(rest);
|
|
57
|
+
case "integrations":
|
|
58
|
+
return orgIntegrations(rest);
|
|
56
59
|
default:
|
|
57
|
-
throw new CliError(
|
|
60
|
+
throw new CliError(
|
|
61
|
+
`Unknown org subcommand: ${sub ?? "(none)"}. Try: export, join, diff, apply, git, integrations`
|
|
62
|
+
);
|
|
58
63
|
}
|
|
59
64
|
}
|
|
60
65
|
|
|
66
|
+
/** `org integrations`: every integration and whether it's connected (list_integrations). */
|
|
67
|
+
async function orgIntegrations(ctx) {
|
|
68
|
+
const { client, flags, io } = ctx;
|
|
69
|
+
refuseUnknownFlags(ctx, {}, []);
|
|
70
|
+
const result = await client.callTool("list_integrations", {});
|
|
71
|
+
ok(ctx, result.message);
|
|
72
|
+
printResult(io, flags, result, (r) =>
|
|
73
|
+
r.integrations.map((i) => `${i.connected ? "●" : "○"} ${i.name}${i.detail ? ` (${i.detail})` : ""}`).join("\n")
|
|
74
|
+
);
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
61
78
|
const ROOT_FILE = "organization.json";
|
|
62
79
|
|
|
63
80
|
function slug(name) {
|
package/lib/commands/site.mjs
CHANGED
|
@@ -58,6 +58,14 @@ const ARGS = {
|
|
|
58
58
|
unfold: { flag: "unfold", type: "bool" },
|
|
59
59
|
subtree: { flag: "subtree", type: "bool" },
|
|
60
60
|
since: { flag: "since" },
|
|
61
|
+
// The ranking's top n, or "all", instead of the attention policy's short list.
|
|
62
|
+
focus_size: {
|
|
63
|
+
value: (flags) => {
|
|
64
|
+
const raw = flags["focus-size"];
|
|
65
|
+
if (raw === undefined || raw === true) return undefined;
|
|
66
|
+
return raw === "all" ? "all" : Number(raw);
|
|
67
|
+
},
|
|
68
|
+
},
|
|
61
69
|
},
|
|
62
70
|
list_competitor_sites: {
|
|
63
71
|
since: { flag: "since" },
|