@ghostystudio/cli 0.26.0 → 0.27.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/README.md +5 -0
- package/dist/index.js +69 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -70,6 +70,7 @@ ghosty conversations show <id> <conversation-id> [--limit 20] # what was said
|
|
|
70
70
|
ghosty schedule add <id> "what to do" --in 30m | --at ISO [--every 12h --until ISO] [--conversation ID] [--title T]
|
|
71
71
|
ghosty schedule ls <id>
|
|
72
72
|
ghosty schedule rm <id> <schedule-id>
|
|
73
|
+
ghosty schedule add|ls|rm <id> … --teams <workspace>#<room>[/<thread-id>] # in a Teams room/thread: it answers there as if mentioned
|
|
73
74
|
|
|
74
75
|
ghosty me files ls|upload|rm [--kind image|video|audio|document|other]
|
|
75
76
|
ghosty credentials ls|set|rm [provider] [--from-env VAR] # never as an argument
|
|
@@ -86,6 +87,10 @@ Every command has its own help with examples: `ghosty <command> --help` or `ghos
|
|
|
86
87
|
|
|
87
88
|
Exit codes: `0` ok · `1` API error · `2` usage error · `3` not signed in.
|
|
88
89
|
|
|
90
|
+
### Changes in 0.27.0
|
|
91
|
+
|
|
92
|
+
- `schedule add <id> "…" --teams <workspace>#<room>[/<thread-id>] --at ISO | --in 30m`: at that time the agent answers in that Teams room or thread as if mentioned (with the room's memory). `schedule ls|rm <id> --teams <workspace>`.
|
|
93
|
+
|
|
89
94
|
### Changes in 0.26.0
|
|
90
95
|
|
|
91
96
|
- `ghosty engines ls [--models]`: engines and models valid for `--engine`/`--model`; an unknown model is rejected with the valid list (also without `--engine`).
|
package/dist/index.js
CHANGED
|
@@ -8002,6 +8002,18 @@ var SERVER_MESSAGES = [
|
|
|
8002
8002
|
["s\xF3lo el due\xF1o (o staff) puede borrar el agente", "only the owner (or staff) can delete the agent"],
|
|
8003
8003
|
["ghosty agents rm <agente> --from-workspace lo quita de Teams y lo borra", "ghosty agents rm <agent> --from-workspace takes it out of Teams and deletes it"],
|
|
8004
8004
|
["Se acab\xF3 el saldo de este agente ({}). Era una carga \xFAnica y no se recarga. Los dem\xE1s agentes del espacio siguen con el suyo.", "This agent ran out of balance ({}). It was a one-time load and doesn't refill. The other agents in the workspace keep theirs."],
|
|
8005
|
+
["el token del agente no programa turnos en Teams: usa tu sesi\xF3n", "the agent's token doesn't schedule turns in Teams: use your session"],
|
|
8006
|
+
["falta workspace (el espacio de Teams)", "missing workspace (the Teams workspace)"],
|
|
8007
|
+
["no eres miembro de \xAB{}\xBB", "you're not a member of \xAB{}\xBB"],
|
|
8008
|
+
["el agente no est\xE1 activo en el Teams de {}", "the agent isn't active in {}'s Teams"],
|
|
8009
|
+
["faltan channel, text o dueAt (ISO)", "missing channel, text or dueAt (ISO)"],
|
|
8010
|
+
["no pude hablar con Teams de {}: {}", "couldn't reach {}'s Teams: {}"],
|
|
8011
|
+
["@{} no est\xE1 activo en este espacio", "@{} isn't active in this workspace"],
|
|
8012
|
+
["no hay un room \xAB{}\xBB en este espacio", "there's no room \xAB{}\xBB in this workspace"],
|
|
8013
|
+
["el mensaje {} no es de #{}", "message {} isn't from #{}"],
|
|
8014
|
+
["el mensaje {} es una respuesta; usa el del inicio del hilo ({})", "message {} is a reply; use the one that starts the thread ({})"],
|
|
8015
|
+
["dueAt tiene que ser una fecha futura (epoch en segundos)", "dueAt must be a future date (epoch seconds)"],
|
|
8016
|
+
["no hay un turno pendiente con ese id (\xBFya corri\xF3?)", "no pending turn with that id (did it already run?)"],
|
|
8005
8017
|
// — Infra interna (casi nunca llega al CLI, pero por si acaso)
|
|
8006
8018
|
["SESSION_SECRET ausente en producci\xF3n \u2014 las cookies quedar\xEDan firmadas con un valor p\xFAblico. Inyectarlo con ./scripts/set_gs_secret.sh SESSION_SECRET (openssl rand -hex 32).", "SESSION_SECRET missing in production \u2014 cookies would be signed with a public value. Inject it with ./scripts/set_gs_secret.sh SESSION_SECRET (openssl rand -hex 32)."],
|
|
8007
8019
|
["sqld: fetch sin namespace", "sqld: fetch without namespace"],
|
|
@@ -8303,7 +8315,7 @@ async function postLong(path, body, timeoutMs = 9e5) {
|
|
|
8303
8315
|
const req = httpsRequest(`${base}${path}`, {
|
|
8304
8316
|
method: "POST",
|
|
8305
8317
|
timeout: timeoutMs,
|
|
8306
|
-
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.
|
|
8318
|
+
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.27.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
|
|
8307
8319
|
}, (res) => {
|
|
8308
8320
|
let buf = "";
|
|
8309
8321
|
res.on("data", (c) => buf += c);
|
|
@@ -8345,7 +8357,7 @@ async function request(path, opts = {}, retried = false) {
|
|
|
8345
8357
|
method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
|
|
8346
8358
|
headers: {
|
|
8347
8359
|
authorization: `Bearer ${token}`,
|
|
8348
|
-
"user-agent": `ghosty-cli/${"0.
|
|
8360
|
+
"user-agent": `ghosty-cli/${"0.27.0"}`,
|
|
8349
8361
|
"accept-language": lang(),
|
|
8350
8362
|
...opts.body !== void 0 ? { "content-type": "application/json" } : {},
|
|
8351
8363
|
...opts.headers
|
|
@@ -9227,7 +9239,40 @@ var short = (s, n = 60) => s.length > n ? s.slice(0, n - 1) + "\u2026" : s;
|
|
|
9227
9239
|
async function agentSchedule(agent) {
|
|
9228
9240
|
return api(`/api/v2/me/agents/${enc4(agent)}/schedule`);
|
|
9229
9241
|
}
|
|
9242
|
+
function parseTeamsTarget(raw) {
|
|
9243
|
+
const m = /^([a-z0-9-]+)(?:#([^/\s]+)(?:\/(\d+))?)?$/i.exec(raw.trim());
|
|
9244
|
+
if (!m) throw usage(t(`Bad --teams: ${raw}.`, `--teams inv\xE1lido: ${raw}.`), t("Use workspace#room or workspace#room/<thread message id>, e.g. descti#general/4812", "Usa espacio#room o espacio#room/<id del mensaje del hilo>, p. ej. descti#general/4812"));
|
|
9245
|
+
return { workspace: m[1], ...m[2] ? { channel: m[2] } : {}, ...m[3] ? { parentId: Number(m[3]) } : {} };
|
|
9246
|
+
}
|
|
9247
|
+
async function teamsSchedule(sub, agent, arg, v) {
|
|
9248
|
+
const target = parseTeamsTarget(v.teams);
|
|
9249
|
+
const path = `/api/v2/agents/${enc4(agent)}/teams-schedule`;
|
|
9250
|
+
const when = (epoch) => new Date(epoch * 1e3).toLocaleString("es-MX", { timeZone: "America/Mexico_City", dateStyle: "medium", timeStyle: "short" });
|
|
9251
|
+
if (sub === "ls" || sub === "list") {
|
|
9252
|
+
const r2 = await api(`${path}?workspace=${enc4(target.workspace)}`);
|
|
9253
|
+
const rows = r2.scheduled.map((x) => ({ id: x.id, due: when(x.dueAt), where: `#${x.channel}${x.parentId ? `/${x.parentId}` : ""}`, by: x.by, text: short(x.text) }));
|
|
9254
|
+
return out(r2, () => rows.length ? table(rows, ["id", "due", "where", "by", "text"]) : dim(t("No scheduled turns in Teams.", "No hay turnos programados en Teams.")));
|
|
9255
|
+
}
|
|
9256
|
+
if (sub === "rm" || sub === "cancel") {
|
|
9257
|
+
if (!arg) throw usage(t("Missing schedule id.", "Falta el id del turno."), `ghosty schedule rm <agent-id> <id> --teams ${target.workspace}`);
|
|
9258
|
+
const r2 = await api(path, { method: "DELETE", body: { workspace: target.workspace, id: arg } });
|
|
9259
|
+
return out(r2, () => `${lavender("\u2713")} ${t("Canceled.", "Cancelado.")}`);
|
|
9260
|
+
}
|
|
9261
|
+
if (sub !== "add") throw usage(t(`Unknown schedule subcommand: ${sub ?? "(none)"}.`, `Subcomando de schedule desconocido: ${sub ?? "(ninguno)"}.`), "ghosty schedule add|ls|rm <agent-id> \u2026 --teams workspace#room[/thread]");
|
|
9262
|
+
if (!arg) throw usage(t("Missing what to do.", "Falta qu\xE9 hacer."), `ghosty schedule add <agent-id> "\u2026" --teams ${v.teams} --at 2026-10-01T09:00`);
|
|
9263
|
+
if (!target.channel) throw usage(t("Missing the room.", "Falta el room."), t("Use --teams workspace#room or workspace#room/<thread id>", "Usa --teams espacio#room o espacio#room/<id del hilo>"));
|
|
9264
|
+
if (!v.at && !v.in) throw usage(t("Say when.", "Di cu\xE1ndo."), t("Use --in 30m or --at 2026-10-01T09:00-06:00", "Usa --in 30m o --at 2026-10-01T09:00-06:00"));
|
|
9265
|
+
if (v.at && v.in) throw usage(t("Use --at or --in, not both.", "Usa --at o --in, no ambos."));
|
|
9266
|
+
if (v.every) throw usage(t("--every is not supported with --teams yet.", "--every todav\xEDa no va con --teams."));
|
|
9267
|
+
const dueAt = v.in ? new Date(Date.now() + minutesOf(v.in, "--in") * 6e4).toISOString() : isoOf(v.at, "--at");
|
|
9268
|
+
const r = await api(path, { method: "POST", body: { workspace: target.workspace, channel: target.channel, ...target.parentId ? { parentId: target.parentId } : {}, text: arg, dueAt } });
|
|
9269
|
+
out(r, () => `${lavender("\u2713")} ${t(`@${r.handle} will answer in #${r.channel}${r.parentId ? ` (thread ${r.parentId})` : ""} on ${when(r.dueAt)}.`, `@${r.handle} contestar\xE1 en #${r.channel}${r.parentId ? ` (hilo ${r.parentId})` : ""} el ${when(r.dueAt)}.`)} ${dim(`id ${r.id} \xB7 ${t("cancel", "cancelar")}: ghosty schedule rm ${agent} ${r.id} --teams ${target.workspace}`)}`);
|
|
9270
|
+
}
|
|
9230
9271
|
async function scheduleCmd(sub, agent, arg, v) {
|
|
9272
|
+
if (v.teams) {
|
|
9273
|
+
if (!agent) throw usage(t("Missing agent id.", "Falta el id del agente."), 'ghosty schedule add <agent-id> "\u2026" --teams workspace#room/thread --at ISO');
|
|
9274
|
+
return teamsSchedule(sub, agent, arg, v);
|
|
9275
|
+
}
|
|
9231
9276
|
if (sub === "ls" || sub === "list") {
|
|
9232
9277
|
if (!agent) throw usage(t("Missing agent id.", "Falta el id del agente."), t("Example", "Ejemplo") + ": ghosty schedule ls <agent-id>");
|
|
9233
9278
|
const r = await agentSchedule(agent);
|
|
@@ -9379,7 +9424,7 @@ async function call(path, v, init = {}) {
|
|
|
9379
9424
|
"x-ghosty-ts": ts,
|
|
9380
9425
|
"x-ghosty-sig": sig,
|
|
9381
9426
|
"content-type": "application/json",
|
|
9382
|
-
"user-agent": `ghosty-cli/${"0.
|
|
9427
|
+
"user-agent": `ghosty-cli/${"0.27.0"}`
|
|
9383
9428
|
},
|
|
9384
9429
|
body: method === "GET" ? void 0 : raw
|
|
9385
9430
|
});
|
|
@@ -10533,6 +10578,7 @@ var HELPS_ES = {
|
|
|
10533
10578
|
["--no-deliver", "docs grant/add: puede leerlo pero nunca mand\xE1rselo a quien escribe"],
|
|
10534
10579
|
["--url URL | --file PATH", "docs add: de d\xF3nde sale el documento (URL p\xFAblica, hasta 25 MB, o un archivo local)"],
|
|
10535
10580
|
["--grant read|write|no", "docs add: acceso de este agente (default read; no = s\xF3lo subirlo a la cuenta)"],
|
|
10581
|
+
["--note TEXT", "docs replace/restore: por qu\xE9 cambi\xF3 (sale en docs history)"],
|
|
10536
10582
|
["--role R", "share: editor (lo configura y lo usa) o admin (adem\xE1s lo comparte); repetirlo sobre un correo ya compartido cambia el rol"],
|
|
10537
10583
|
["--yes", "rm: se salta la confirmaci\xF3n (obligatorio sin terminal)"],
|
|
10538
10584
|
["--slug NAME", "demo: nombre de la liga; se le agrega un c\xF3digo de 6 caracteres (/p/NAME-CODE)"],
|
|
@@ -10648,7 +10694,8 @@ var HELPS_ES = {
|
|
|
10648
10694
|
},
|
|
10649
10695
|
schedule: {
|
|
10650
10696
|
summary: "Turnos que corren despu\xE9s, con el reloj propio del agente.",
|
|
10651
|
-
replace: [['"what to do"', '"qu\xE9 hacer"']]
|
|
10697
|
+
replace: [['"what to do"', '"qu\xE9 hacer"'], ["# answers in that thread as if mentioned", "# contesta en ese hilo como si lo mencionaran"]],
|
|
10698
|
+
notes: ["--teams: el agente tiene que estar activo en el Teams de ese espacio y t\xFA ser miembro. El id del hilo es el del mensaje con que empieza."]
|
|
10652
10699
|
},
|
|
10653
10700
|
me: { summary: "Tu cuenta: archivos y uso." },
|
|
10654
10701
|
credentials: {
|
|
@@ -10831,6 +10878,8 @@ var HELPS = {
|
|
|
10831
10878
|
"ghosty agents doctor <agent-id> [--verbose]",
|
|
10832
10879
|
"ghosty agents docs ls|grant|revoke <agent-id> [doc\u2026] [--write] [--no-deliver] [--like AGENT]",
|
|
10833
10880
|
"ghosty agents docs add <agent-id> --url URL | --file PATH [--name N] [--description TEXT] [--grant read|write|no] [--no-deliver]",
|
|
10881
|
+
"ghosty agents docs replace <agent-id> <doc> --url URL | --file PATH [--note TEXT] # new version: keeps name, access and the agents that use it",
|
|
10882
|
+
"ghosty agents docs history|restore <agent-id> <doc> [n]",
|
|
10834
10883
|
"ghosty agents share <agent-id> <email> [--role editor|admin]",
|
|
10835
10884
|
"ghosty agents unshare <agent-id> <email> [--yes]",
|
|
10836
10885
|
"ghosty agents shares <agent-id>",
|
|
@@ -10860,6 +10909,7 @@ var HELPS = {
|
|
|
10860
10909
|
["--no-deliver", "docs grant/add: it can read it but never send it to whoever writes"],
|
|
10861
10910
|
["--url URL | --file PATH", "docs add: where the document comes from (public URL, up to 25 MB, or a local file)"],
|
|
10862
10911
|
["--grant read|write|no", "docs add: access for this agent (default read; no = only upload to the account)"],
|
|
10912
|
+
["--note TEXT", "docs replace/restore: why it changed (shown in docs history)"],
|
|
10863
10913
|
["--role R", "share: editor (configures and uses it) or admin (also shares it); again on a shared email changes the role"],
|
|
10864
10914
|
["--yes", "rm: skip the confirmation (required without a terminal)"],
|
|
10865
10915
|
["--slug NAME", "demo: link name; a 6-char code is appended (/p/NAME-CODE)"],
|
|
@@ -10887,6 +10937,8 @@ var HELPS = {
|
|
|
10887
10937
|
'ghosty agents docs grant <id> "Cat\xE1logo 2026.pdf"',
|
|
10888
10938
|
"ghosty agents docs grant <id> precios.xlsx --write --no-deliver",
|
|
10889
10939
|
'ghosty agents docs add <id> --url https://example.com/lista.pdf --description "Precios 2026"',
|
|
10940
|
+
'ghosty agents docs replace <id> "Cat\xE1logo.pdf" --file catalogo-oct.pdf --note "precios de octubre"',
|
|
10941
|
+
'ghosty agents docs history <id> "Cat\xE1logo.pdf" \xB7 ghosty agents docs restore <id> "Cat\xE1logo.pdf" 3',
|
|
10890
10942
|
"ghosty agents create --name Pia --engine claude --workspace ventas --channels teams=off",
|
|
10891
10943
|
"ghosty agents set <id> --toolsets +crm",
|
|
10892
10944
|
"ghosty agents share <id> ana@empresa.com --role admin",
|
|
@@ -11054,8 +11106,9 @@ var HELPS = {
|
|
|
11054
11106
|
},
|
|
11055
11107
|
schedule: {
|
|
11056
11108
|
summary: "Turns that run later, on the agent's own clock.",
|
|
11057
|
-
usage: ['ghosty schedule add <agent-id> "what to do" --in 30m | --at ISO [--every 12h --until ISO] [--conversation ID] [--title T]', "ghosty schedule ls <agent-id>", "ghosty schedule rm <agent-id> <schedule-id>"],
|
|
11058
|
-
examples: ['ghosty schedule add <id> "revisa pedidos pendientes" --every 12h --in 1h'],
|
|
11109
|
+
usage: ['ghosty schedule add <agent-id> "what to do" --in 30m | --at ISO [--every 12h --until ISO] [--conversation ID] [--title T]', "ghosty schedule ls <agent-id>", "ghosty schedule rm <agent-id> <schedule-id>", 'ghosty schedule add <agent-id> "what to do" --teams <workspace>#<room>[/<thread-id>] --in 30m | --at ISO', "ghosty schedule ls|rm <agent-id> [id] --teams <workspace>"],
|
|
11110
|
+
examples: ['ghosty schedule add <id> "revisa pedidos pendientes" --every 12h --in 1h', 'ghosty schedule add minighosty "Pres\xE9ntate al equipo" --teams descti#general/4812 --at 2026-10-01T09:00 # answers in that thread as if mentioned'],
|
|
11111
|
+
notes: ["--teams: the agent must be active in that workspace's Teams and you must be a member. The thread id is the id of the message that starts it."],
|
|
11059
11112
|
learn: `${REF}#programar-turnos`
|
|
11060
11113
|
},
|
|
11061
11114
|
me: {
|
|
@@ -11878,6 +11931,8 @@ ${bold("Agents")}
|
|
|
11878
11931
|
agents docs ls|grant|revoke <id> [doc] Documents it reads and may send [--write] [--no-deliver]
|
|
11879
11932
|
agents docs grant <id> A B\u2026 Grant several documents at once [--like AGENT] copies another agent's
|
|
11880
11933
|
agents docs add <id> Upload a document and grant it --url URL | --file PATH [--description] [--grant read|write|no]
|
|
11934
|
+
agents docs replace <id> <doc> New version (keeps name and access) --url URL | --file PATH [--note]
|
|
11935
|
+
agents docs history|restore <id> <doc> [n] Its versions; restore n as a new version
|
|
11881
11936
|
agents share|unshare <id> <email> Share it without handing it over [--role editor|admin] \xB7 agents shares <id> lists them
|
|
11882
11937
|
agents rm <id> Delete an agent (owner only; asks you to type its name, or --yes) [--from-workspace: turn it off in Teams first]
|
|
11883
11938
|
agents restart <id> Restart an ACP agent (needsRestart) so it loads new skills
|
|
@@ -11923,6 +11978,7 @@ ${bold("Schedule turns")} ${dim("(each run lands in a conversation and notifies
|
|
|
11923
11978
|
schedule ls <id> Pending turns and recent runs
|
|
11924
11979
|
schedule add <id> "what to do" Schedule a turn --in 30m | --at ISO [--every 12h --until ISO] [--conversation ID] [--title T]
|
|
11925
11980
|
schedule rm <id> <schedule-id> Cancel a pending turn
|
|
11981
|
+
schedule add|ls|rm <id> \u2026 --teams WS#room[/thread] The same in a Teams room or thread: it answers there as if mentioned
|
|
11926
11982
|
|
|
11927
11983
|
${bold("Partners")} ${dim("(give an agent to each of YOUR customers \u2014 see: ghosty partner --help)")}
|
|
11928
11984
|
partner ls | enable | credentials | agent | tenants | audit | try
|
|
@@ -11983,6 +12039,8 @@ ${bold("Agentes")}
|
|
|
11983
12039
|
agents docs ls|grant|revoke <id> [doc] Documentos que lee y puede enviar [--write] [--no-deliver]
|
|
11984
12040
|
agents docs grant <id> A B\u2026 Da varios documentos a la vez [--like AGENTE] copia los de otro agente
|
|
11985
12041
|
agents docs add <id> Sube un documento y d\xE1selo --url URL | --file RUTA [--description] [--grant read|write|no]
|
|
12042
|
+
agents docs replace <id> <doc> Versi\xF3n nueva (conserva nombre y accesos) --url URL | --file RUTA [--note]
|
|
12043
|
+
agents docs history|restore <id> <doc> [n] Sus versiones; restaura la n como versi\xF3n nueva
|
|
11986
12044
|
agents share|unshare <id> <correo> Comp\xE1rtelo sin cederlo [--role editor|admin] \xB7 agents shares <id> los lista
|
|
11987
12045
|
agents rm <id> Borra un agente (s\xF3lo el due\xF1o; te pide escribir su nombre, o --yes) [--from-workspace: antes lo desactiva en Teams]
|
|
11988
12046
|
agents restart <id> Reinicia un agente ACP (needsRestart) para que cargue skills nuevas
|
|
@@ -12028,6 +12086,7 @@ ${bold("Turnos programados")} ${dim("(cada corrida cae en una conversaci\xF3n y
|
|
|
12028
12086
|
schedule ls <id> Turnos pendientes y corridas recientes
|
|
12029
12087
|
schedule add <id> "qu\xE9 hacer" Programa un turno --in 30m | --at ISO [--every 12h --until ISO] [--conversation ID] [--title T]
|
|
12030
12088
|
schedule rm <id> <schedule-id> Cancela un turno pendiente
|
|
12089
|
+
schedule add|ls|rm <id> \u2026 --teams ESP#room[/hilo] Lo mismo en un room o hilo de Teams: contesta ah\xED como si lo mencionaran
|
|
12031
12090
|
|
|
12032
12091
|
${bold("Partners")} ${dim("(dale un agente a cada uno de TUS clientes \u2014 ver: ghosty partner --help)")}
|
|
12033
12092
|
partner ls | enable | credentials | agent | tenants | audit | try
|
|
@@ -12220,7 +12279,8 @@ async function main() {
|
|
|
12220
12279
|
"from-workspace": { type: "boolean" },
|
|
12221
12280
|
"quota-hits": { type: "boolean" },
|
|
12222
12281
|
by: { type: "string" },
|
|
12223
|
-
models: { type: "boolean" }
|
|
12282
|
+
models: { type: "boolean" },
|
|
12283
|
+
teams: { type: "string" }
|
|
12224
12284
|
}
|
|
12225
12285
|
});
|
|
12226
12286
|
globals.json = Boolean(v.json);
|
|
@@ -12228,7 +12288,7 @@ async function main() {
|
|
|
12228
12288
|
const tokens = splitTokens(pos, v);
|
|
12229
12289
|
globals.token = tokens.session;
|
|
12230
12290
|
globals.profile = v.profile;
|
|
12231
|
-
if (v.version) return out({ version: "0.
|
|
12291
|
+
if (v.version) return out({ version: "0.27.0" }, () => "0.27.0");
|
|
12232
12292
|
for (const n of normalizeArgs(pos, v)) if (!globals.json) info(dim(n));
|
|
12233
12293
|
const context = (await readConfig()).workspace;
|
|
12234
12294
|
if (!explicitToken()?.startsWith("gat_")) {
|
|
@@ -12357,7 +12417,7 @@ async function main() {
|
|
|
12357
12417
|
throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
|
|
12358
12418
|
}
|
|
12359
12419
|
}
|
|
12360
|
-
var notice = updateNotice("0.
|
|
12420
|
+
var notice = updateNotice("0.27.0").catch(() => null);
|
|
12361
12421
|
main().then(
|
|
12362
12422
|
async () => {
|
|
12363
12423
|
const n = await notice;
|
package/package.json
CHANGED