@ghostystudio/cli 0.16.0 → 0.16.1
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/README.md +4 -0
- package/dist/index.js +14 -10
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -87,6 +87,10 @@ Exit codes: `0` ok · `1` API error · `2` usage error · `3` not signed in.
|
|
|
87
87
|
- `try --replay FILE --out DIR`: replays real conversations from your machine. The report is written after every step, survives Ghosty deploys (it honors `Retry-After`), and `--resume` continues a partial run.
|
|
88
88
|
- `agents doctor` speaks English like the rest of the CLI; `channels whatsapp ls` returns a full URL.
|
|
89
89
|
|
|
90
|
+
### Changes in 0.16.1
|
|
91
|
+
|
|
92
|
+
- `agents create --like`: `--board same|main|new|NAME` (`new` = its own board with the source's columns, one per number) and `--no-notify` (shared with the same people, no email).
|
|
93
|
+
|
|
90
94
|
### Changes in 0.16.0
|
|
91
95
|
|
|
92
96
|
- `agents create --like <agent> [--copy-dbs] [--dry-run]`: a new agent with another's setup (skills and their switches, toolsets, connectors, voice, databases, documents, board, shares), never its prompt, env or channels.
|
package/dist/index.js
CHANGED
|
@@ -288,7 +288,7 @@ async function postLong(path, body, timeoutMs = 9e5) {
|
|
|
288
288
|
const req = httpsRequest(`${base}${path}`, {
|
|
289
289
|
method: "POST",
|
|
290
290
|
timeout: timeoutMs,
|
|
291
|
-
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.16.
|
|
291
|
+
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.16.1"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
|
|
292
292
|
}, (res) => {
|
|
293
293
|
let buf = "";
|
|
294
294
|
res.on("data", (c) => buf += c);
|
|
@@ -330,7 +330,7 @@ async function request(path, opts = {}, retried = false) {
|
|
|
330
330
|
method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
|
|
331
331
|
headers: {
|
|
332
332
|
authorization: `Bearer ${token}`,
|
|
333
|
-
"user-agent": `ghosty-cli/${"0.16.
|
|
333
|
+
"user-agent": `ghosty-cli/${"0.16.1"}`,
|
|
334
334
|
...opts.body !== void 0 ? { "content-type": "application/json" } : {},
|
|
335
335
|
...opts.headers
|
|
336
336
|
},
|
|
@@ -573,8 +573,8 @@ async function agentsCreate(v) {
|
|
|
573
573
|
if (v.workspace) body.workspace = v.workspace;
|
|
574
574
|
const channels = parseChannels(v.channels);
|
|
575
575
|
if (channels) body.channels = channels;
|
|
576
|
-
if (v.like) Object.assign(body, { like: v.like, ...v["copy-dbs"] ? { copyDbs: true } : {}, ...v["dry-run"] ? { dryRun: true } : {} });
|
|
577
|
-
else if (v["dry-run"]) throw usage("--dry-run
|
|
576
|
+
if (v.like) Object.assign(body, { like: v.like, ...v["copy-dbs"] ? { copyDbs: true } : {}, ...v["dry-run"] ? { dryRun: true } : {}, ...v.board ? { board: v.board } : {}, ...v["no-notify"] ? { notify: false } : {} });
|
|
577
|
+
else if (v["dry-run"] || v.board || v["no-notify"]) throw usage("--dry-run, --board and --no-notify go with --like.");
|
|
578
578
|
if (v.like && v["dry-run"]) {
|
|
579
579
|
const p = await api("/api/v2/me/agents", { method: "POST", body });
|
|
580
580
|
return out(p, () => `${dim(`like ${v.like} \xB7 ${p.engine ?? "?"} \xB7 ${p.model ?? "default"}${p.workspace ? ` \xB7 workspace ${p.workspace}` : ""}`)}
|
|
@@ -1269,7 +1269,7 @@ async function call(path, v, init = {}) {
|
|
|
1269
1269
|
"x-ghosty-ts": ts,
|
|
1270
1270
|
"x-ghosty-sig": sig,
|
|
1271
1271
|
"content-type": "application/json",
|
|
1272
|
-
"user-agent": `ghosty-cli/${"0.16.
|
|
1272
|
+
"user-agent": `ghosty-cli/${"0.16.1"}`
|
|
1273
1273
|
},
|
|
1274
1274
|
body: method === "GET" ? void 0 : raw
|
|
1275
1275
|
});
|
|
@@ -2059,7 +2059,7 @@ var HELPS = {
|
|
|
2059
2059
|
summary: "Create, inspect, change, check and delete agents.",
|
|
2060
2060
|
usage: [
|
|
2061
2061
|
"ghosty agents ls",
|
|
2062
|
-
"ghosty agents create --name NAME [--engine E] [--model M] [--prompt TEXT | --prompt-file FILE] [--env K=V,\u2026] [--workspace SLUG] [--channels teams=off,\u2026] [--like AGENT [--copy-dbs] [--dry-run]]",
|
|
2062
|
+
"ghosty agents create --name NAME [--engine E] [--model M] [--prompt TEXT | --prompt-file FILE] [--env K=V,\u2026] [--workspace SLUG] [--channels teams=off,\u2026] [--like AGENT [--copy-dbs] [--board same|main|new|NAME] [--no-notify] [--dry-run]]",
|
|
2063
2063
|
"ghosty agents get <agent-id> [--fields name,model,prompt] [--prompt-out FILE]",
|
|
2064
2064
|
"ghosty agents set <agent-id> [--name] [--engine] [--model] [--prompt | --prompt-file] [--env K=V,\u2026] [--connect ID,\u2026] [--disconnect ID,\u2026] [--voice E:ID] [--voice-replies auto|off] [--auto-stage on|off] [--toolsets crm,sales | +crm,-sales]",
|
|
2065
2065
|
"ghosty agents set <agent-id> --prompt-base <base-agent-id> --prompt-overlay overlay.json [--dry-run [--out FILE]] | --prompt-base none",
|
|
@@ -2079,6 +2079,8 @@ var HELPS = {
|
|
|
2079
2079
|
["--prompt-out FILE", "get: write the prompt to FILE (edit it and come back with set --prompt-file)"],
|
|
2080
2080
|
["--like AGENT", "create: copy that agent's setup (skills and their switches, toolsets, connectors, voice, databases, documents, board, shares) \u2014 not its prompt, env or channels. docs grant: the same documents"],
|
|
2081
2081
|
["--copy-dbs", "create --like: duplicate its databases with their rows instead of granting the same ones"],
|
|
2082
|
+
["--board B", "create --like: same (the source's board, default) \xB7 main \xB7 new (a board named like the agent, with the source's columns: one board per number) \xB7 or an existing board"],
|
|
2083
|
+
["--no-notify", "create --like: share it with the same people WITHOUT emailing them"],
|
|
2082
2084
|
["--workspace SLUG", "create: born in that workspace (you own or administer it), owned by its owner and active in its Teams"],
|
|
2083
2085
|
["--channels k=on|off,\u2026", "create/set: turn channels on/off: teams, web, whatsapp, messenger, wa (personal WhatsApp)"],
|
|
2084
2086
|
["--toolsets LIST", "set: gs tool groups it gets (crm, sales\u2026): a list replaces; +x / -x add or remove"],
|
|
@@ -2120,7 +2122,7 @@ var HELPS = {
|
|
|
2120
2122
|
"ghosty agents share <id> ana@empresa.com --role admin",
|
|
2121
2123
|
"ghosty agents get <id> --prompt-out PROMPT.md",
|
|
2122
2124
|
"ghosty agents get <id> --fields toolsets,connectors # what it really has: effective toolsets, connectors connected + granted",
|
|
2123
|
-
"ghosty agents create --name tania-mkt --like <pia-id> --dry-run",
|
|
2125
|
+
"ghosty agents create --name tania-mkt --like <pia-id> --board new --no-notify --dry-run",
|
|
2124
2126
|
'ghosty agents docs grant <id> "Cat\xE1logo.pdf" "Precios.xlsx" \xB7 ghosty agents docs grant <id> --like <other-id>',
|
|
2125
2127
|
"ghosty agents set <pia-id> --prompt-base <tania-id> --prompt-overlay capa.json --dry-run --out /tmp/pia.md",
|
|
2126
2128
|
'ghosty agents demo <id> --slug guardias --on --vence "2026-10-15T20:00" --starter "Ens\xE9\xF1ame c\xF3mo empezar"',
|
|
@@ -2448,7 +2450,7 @@ ${bold("Agents")}
|
|
|
2448
2450
|
agents ls List your agents
|
|
2449
2451
|
agents create Create an agent --name [--engine] [--model] [--prompt | --prompt-file FILE] [--env K=V,\u2026]
|
|
2450
2452
|
[--workspace SLUG] [--channels teams=off,\u2026] born in a workspace, active in its Teams
|
|
2451
|
-
[--like AGENT [--copy-dbs] [--dry-run]] with another agent's setup (not its prompt, env or channels)
|
|
2453
|
+
[--like AGENT [--copy-dbs] [--board same|main|new|NAME] [--no-notify] [--dry-run]] with another agent's setup (not its prompt, env or channels)
|
|
2452
2454
|
agents get <id> Show an agent's config [--fields name,model,prompt] [--prompt-out FILE]
|
|
2453
2455
|
agents set <id> Change identity or engine [--name] [--engine] [--model] [--prompt | --prompt-file FILE] [--env K=V,\u2026]
|
|
2454
2456
|
[--connect google-drive,\u2026] [--disconnect \u2026] give/remove access to your connectors
|
|
@@ -2604,6 +2606,8 @@ async function main() {
|
|
|
2604
2606
|
"as-formmy": { type: "boolean" },
|
|
2605
2607
|
like: { type: "string" },
|
|
2606
2608
|
"copy-dbs": { type: "boolean" },
|
|
2609
|
+
"no-notify": { type: "boolean" },
|
|
2610
|
+
board: { type: "string" },
|
|
2607
2611
|
only: { type: "string" },
|
|
2608
2612
|
enable: { type: "string" },
|
|
2609
2613
|
disable: { type: "string" },
|
|
@@ -2650,7 +2654,7 @@ async function main() {
|
|
|
2650
2654
|
const tokens = splitTokens(pos, v);
|
|
2651
2655
|
globals.token = tokens.session;
|
|
2652
2656
|
globals.profile = v.profile;
|
|
2653
|
-
if (v.version) return out({ version: "0.16.
|
|
2657
|
+
if (v.version) return out({ version: "0.16.1" }, () => "0.16.1");
|
|
2654
2658
|
const [cmd, sub, a1, a2] = pos;
|
|
2655
2659
|
if (cmd === "partner" && (v.help || !sub || sub === "help")) return out({ help: PARTNER_HELP }, () => PARTNER_HELP);
|
|
2656
2660
|
const topic = cmd === "help" ? sub : v.help ? cmd : void 0;
|
|
@@ -2738,7 +2742,7 @@ async function main() {
|
|
|
2738
2742
|
throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
|
|
2739
2743
|
}
|
|
2740
2744
|
}
|
|
2741
|
-
var notice = updateNotice("0.16.
|
|
2745
|
+
var notice = updateNotice("0.16.1").catch(() => null);
|
|
2742
2746
|
main().then(
|
|
2743
2747
|
async () => {
|
|
2744
2748
|
const n = await notice;
|
package/package.json
CHANGED