@ghostystudio/cli 0.58.1 → 0.59.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 +43 -15
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -109,6 +109,11 @@ Every command has its own help with examples: `ghosty <command> --help` or `ghos
|
|
|
109
109
|
|
|
110
110
|
Exit codes: `0` ok · `1` API error · `2` usage error · `3` not signed in.
|
|
111
111
|
|
|
112
|
+
### Changes in 0.59.0
|
|
113
|
+
|
|
114
|
+
- `spaces archive <workspace>` / `spaces restore <workspace>`: archive a workspace (same as Settings → Archive: it leaves `/app` and `spaces ls`; agents and data stay) or bring it back. Owner or staff; dry run first, archiving asks you to type the slug; logged as `workspace.archive` / `workspace.restore`.
|
|
115
|
+
- `spaces ls` no longer lists archived workspaces you are a member of (same as `/app`).
|
|
116
|
+
|
|
112
117
|
### Changes in 0.58.1
|
|
113
118
|
|
|
114
119
|
- `agents docs add|replace --file` sends the file type from its extension. Before, the server stored every CLI upload as `application/octet-stream`, and a PDF reached WhatsApp customers as `.bin`.
|
package/dist/index.js
CHANGED
|
@@ -8169,7 +8169,17 @@ var SERVER_MESSAGES = [
|
|
|
8169
8169
|
["s\xF3lo el due\xF1o del agente maneja su widget web", "only the agent's owner manages its web widget"],
|
|
8170
8170
|
["dominio no v\xE1lido: {} (usa ejemplo.com o *.ejemplo.com, sin https:// ni rutas)", "invalid domain: {} (use example.com or *.example.com, no https:// or paths)"],
|
|
8171
8171
|
["el widget web s\xF3lo corre con Claude o MiniGhosty (ghosty-lite): son los que a\xEDslan a cada visitante", "the web widget only runs on Claude or MiniGhosty (ghosty-lite): they isolate each visitor"],
|
|
8172
|
-
["pon al menos un dominio donde va a vivir el widget (--domains ejemplo.com)", "add at least one domain where the widget will live (--domains example.com)"]
|
|
8172
|
+
["pon al menos un dominio donde va a vivir el widget (--domains ejemplo.com)", "add at least one domain where the widget will live (--domains example.com)"],
|
|
8173
|
+
// — Espacios (`workspaces.server.ts`: crear y archivar)
|
|
8174
|
+
["Ahora mismo no tenemos sitio para espacios nuevos. Te apuntamos en la lista y te avisamos en cuanto se libere \u2014 normalmente es cuesti\xF3n de horas.", "We have no room for new workspaces right now. You're on the list and we'll let you know as soon as there is \u2014 usually within hours."],
|
|
8175
|
+
["Para archivar escribe el nombre exacto: {}", "To archive, type the exact name: {}"],
|
|
8176
|
+
['correo inv\xE1lido: "{}"', 'invalid email: "{}"'],
|
|
8177
|
+
['el workspace "{}" ya existe', 'workspace "{}" already exists'],
|
|
8178
|
+
["slug inv\xE1lido (2-40, min\xFAsculas/n\xFAmeros/guiones, no reservado)", "invalid slug (2-40, lowercase/numbers/hyphens, not reserved)"],
|
|
8179
|
+
["{} rebot\xF3 antes y dejamos de escribirle. Hay que revisar esa direcci\xF3n.", "{} bounced before and we stopped writing to it. Check that address."],
|
|
8180
|
+
["{} tiene que confirmar su correo antes de crear un espacio, y no pudimos mandarte la liga ahora mismo. P\xEDdela otra vez desde /verify-email.", "{} must confirm their email before creating a workspace, and we couldn't send the link right now. Ask for it again from /verify-email."],
|
|
8181
|
+
["{} tiene que confirmar su correo antes de crear un espacio. Acabamos de mandarte la liga; \xE1brela y vuelve a intentarlo.", "{} must confirm their email before creating a workspace. We just sent you the link; open it and try again."],
|
|
8182
|
+
["{} ya tiene {} workspace(s) y su plan ({}) permite {}.", "{} already has {} workspace(s) and their plan ({}) allows {}."]
|
|
8173
8183
|
];
|
|
8174
8184
|
|
|
8175
8185
|
// src/i18n.ts
|
|
@@ -8468,7 +8478,7 @@ async function postLong(path, body, timeoutMs = 9e5) {
|
|
|
8468
8478
|
const req = httpsRequest(`${base}${path}`, {
|
|
8469
8479
|
method: "POST",
|
|
8470
8480
|
timeout: timeoutMs,
|
|
8471
|
-
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.
|
|
8481
|
+
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.59.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
|
|
8472
8482
|
}, (res) => {
|
|
8473
8483
|
let buf = "";
|
|
8474
8484
|
res.on("data", (c) => buf += c);
|
|
@@ -8510,7 +8520,7 @@ async function request(path, opts = {}, retried = false) {
|
|
|
8510
8520
|
method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
|
|
8511
8521
|
headers: {
|
|
8512
8522
|
authorization: `Bearer ${token}`,
|
|
8513
|
-
"user-agent": `ghosty-cli/${"0.
|
|
8523
|
+
"user-agent": `ghosty-cli/${"0.59.0"}`,
|
|
8514
8524
|
"accept-language": lang(),
|
|
8515
8525
|
...opts.body !== void 0 ? { "content-type": "application/json" } : {},
|
|
8516
8526
|
...opts.headers
|
|
@@ -10408,7 +10418,7 @@ async function call(path, v, init = {}) {
|
|
|
10408
10418
|
"x-ghosty-ts": ts,
|
|
10409
10419
|
"x-ghosty-sig": sig,
|
|
10410
10420
|
"content-type": "application/json",
|
|
10411
|
-
"user-agent": `ghosty-cli/${"0.
|
|
10421
|
+
"user-agent": `ghosty-cli/${"0.59.0"}`
|
|
10412
10422
|
},
|
|
10413
10423
|
body: method === "GET" ? void 0 : raw
|
|
10414
10424
|
});
|
|
@@ -12514,7 +12524,7 @@ var HELPS_ES = {
|
|
|
12514
12524
|
]
|
|
12515
12525
|
},
|
|
12516
12526
|
spaces: {
|
|
12517
|
-
summary: "Espacios: crea uno a tu nombre (prueba), lista los tuyos (o, staff, los de cualquiera) y operaciones del staff de Ghosty \u2014 entrar/salir del espacio de un cliente, cambiar su combo, mover \xABpagado hasta\xBB, renombrar su slug, cambiar de due\xF1o. Cada cambio queda en la bit\xE1cora del espacio.",
|
|
12527
|
+
summary: "Espacios: crea uno a tu nombre (prueba), lista los tuyos (o, staff, los de cualquiera) y operaciones del staff de Ghosty \u2014 entrar/salir del espacio de un cliente, cambiar su combo, mover \xABpagado hasta\xBB, renombrar su slug, cambiar de due\xF1o \u2014 y, due\xF1o o staff, archivarlo o restaurarlo. Cada cambio queda en la bit\xE1cora del espacio.",
|
|
12518
12528
|
flags: [
|
|
12519
12529
|
["--user EMAIL", "ls (staff): los espacios de esa persona"],
|
|
12520
12530
|
["--combo C", "set (staff): teams | sales | both \u2014 sin Ventas sus tableros existen pero nadie los ve; create: distinto de teams, s\xF3lo staff"],
|
|
@@ -12529,7 +12539,7 @@ var HELPS_ES = {
|
|
|
12529
12539
|
["-n, --dry-run", "ense\xF1a qu\xE9 cambia, no cambia nada"],
|
|
12530
12540
|
["--yes", "s\xE1ltate la confirmaci\xF3n (obligatorio sin terminal)"]
|
|
12531
12541
|
],
|
|
12532
|
-
notes: ["create sigue las reglas de la web: queda a tu nombre, nace como prueba de 30 d\xEDas, tu correo debe estar confirmado y tu plan topa cu\xE1ntos tienes. Sigue: ghosty partner enable <slug>.", "Con suscripci\xF3n de Stripe renew se niega: la fecha la mueve la factura pagada.", "rename cambia s\xF3lo el slug (id y namespace se quedan, as\xED que tablero, Stripe y WhatsApp siguen funcionando); las ligas viejas <slug>.sales dejan de servir.", "transfer se lleva los agentes con el espacio
|
|
12542
|
+
notes: ["create sigue las reglas de la web: queda a tu nombre, nace como prueba de 30 d\xEDas, tu correo debe estar confirmado y tu plan topa cu\xE1ntos tienes. Sigue: ghosty partner enable <slug>.", "Con suscripci\xF3n de Stripe renew se niega: la fecha la mueve la factura pagada.", "rename cambia s\xF3lo el slug (id y namespace se quedan, as\xED que tablero, Stripe y WhatsApp siguen funcionando); las ligas viejas <slug>.sales dejan de servir.", "archive hace lo mismo que Ajustes \u2192 Archivar: el espacio sale de /app y de spaces ls, sus agentes y datos se quedan; pide escribir el slug. Deshacer: ghosty spaces restore <slug>. Queda en bit\xE1cora como workspace.archive / workspace.restore.", "transfer se lleva los agentes con el espacio: las cajas ACP se mudan al due\xF1o nuevo con su /data, las del pool se reciclan (el due\xF1o va horneado en la caja); sin --copy-keys la simulaci\xF3n dice qu\xE9 llaves le faltan al nuevo \u2014 esos agentes dejar\xEDan de contestar."]
|
|
12533
12543
|
},
|
|
12534
12544
|
staff: {
|
|
12535
12545
|
summary: "Staff de Ghosty asignado a CUENTAS cliente (admin delegado que act\xFAa como s\xED mismo): ve y opera con su propia sesi\xF3n los agentes (con y sin espacio), documentos, bases y tableros de esa cuenta. Sin llaves, cobro, traspasos ni borrados. S\xF3lo el staff de Ghosty asigna; el cliente s\xF3lo ve \xABTu ejecutivo de Ghosty\xBB. Cada cambio y cada escritura quedan en la bit\xE1cora.",
|
|
@@ -13247,8 +13257,8 @@ HELPS.novedades = {
|
|
|
13247
13257
|
learn: `${REF}#soporte`
|
|
13248
13258
|
};
|
|
13249
13259
|
HELPS.spaces = {
|
|
13250
|
-
summary: "Workspaces: create one of your own (trial), list yours (or, staff, anyone's), and Ghosty staff operations \u2014 join/leave a client's workspace, change its combo, move \xABpaid until\xBB, rename its slug, change its owner. Each change is logged in the workspace's audit.",
|
|
13251
|
-
usage: ["ghosty spaces ls [--user EMAIL]", "ghosty spaces create <slug> [--combo teams|sales|both] [--dry-run]", "ghosty spaces join|leave <workspace>", "ghosty spaces set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off [--dry-run]", "ghosty spaces renew <workspace> --until YYYY-MM-DD [--note TEXT] [--dry-run] [--yes]", "ghosty spaces rename <old> <new> [--dry-run] [--yes]", "ghosty spaces transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run] [--yes]", "ghosty spaces log <workspace> [--since 30d] [--action workspace] [--limit N]"],
|
|
13260
|
+
summary: "Workspaces: create one of your own (trial), list yours (or, staff, anyone's), and Ghosty staff operations \u2014 join/leave a client's workspace, change its combo, move \xABpaid until\xBB, rename its slug, change its owner \u2014 and, owner or staff, archive or restore it. Each change is logged in the workspace's audit.",
|
|
13261
|
+
usage: ["ghosty spaces ls [--user EMAIL]", "ghosty spaces create <slug> [--combo teams|sales|both] [--dry-run]", "ghosty spaces join|leave <workspace>", "ghosty spaces set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off [--dry-run]", "ghosty spaces renew <workspace> --until YYYY-MM-DD [--note TEXT] [--dry-run] [--yes]", "ghosty spaces rename <old> <new> [--dry-run] [--yes]", "ghosty spaces archive|restore <workspace> [--dry-run] [--yes]", "ghosty spaces transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run] [--yes]", "ghosty spaces log <workspace> [--since 30d] [--action workspace] [--limit N]"],
|
|
13252
13262
|
flags: [
|
|
13253
13263
|
["--user EMAIL", "ls (staff): that person's workspaces"],
|
|
13254
13264
|
["--combo C", "set (staff): teams | sales | both \u2014 without Sales its boards exist but nobody sees them; create: other than teams, staff only"],
|
|
@@ -13263,8 +13273,8 @@ HELPS.spaces = {
|
|
|
13263
13273
|
["-n, --dry-run", "show what changes, change nothing"],
|
|
13264
13274
|
["--yes", "skip the confirmation (required without a terminal)"]
|
|
13265
13275
|
],
|
|
13266
|
-
examples: ["ghosty spaces ls", "ghosty spaces create mailmask --dry-run", "ghosty spaces ls --user brenda@siiqtec.com", "ghosty spaces join denik", "ghosty spaces set denik --combo sales --dry-run", "ghosty spaces set mailmask --model-cap 4 --house-claude on", 'ghosty spaces renew descti --until 2026-11-01 --note "pag\xF3 octubre"', "ghosty spaces rename totequim siiqtec --dry-run", "ghosty spaces transfer siiqtec --to siiqtec@gmail.com --keep-as admin --copy-keys --dry-run", "ghosty spaces log siiqtec --since 30d"],
|
|
13267
|
-
notes: ["create follows the same rules as the web: you own it, it starts as a 30-day trial, your email must be confirmed, and your plan caps how many you own. Next: ghosty partner enable <slug>.", "With a Stripe subscription renew refuses: the paid invoice moves the date.", "rename changes only the slug (id and namespace stay, so board, Stripe and WhatsApp keep working); old <slug>.sales links stop working.", "transfer moves the agents with the workspace
|
|
13276
|
+
examples: ["ghosty spaces ls", "ghosty spaces create mailmask --dry-run", "ghosty spaces ls --user brenda@siiqtec.com", "ghosty spaces join denik", "ghosty spaces set denik --combo sales --dry-run", "ghosty spaces set mailmask --model-cap 4 --house-claude on", 'ghosty spaces renew descti --until 2026-11-01 --note "pag\xF3 octubre"', "ghosty spaces rename totequim siiqtec --dry-run", "ghosty spaces archive box-xfer-test --dry-run", "ghosty spaces transfer siiqtec --to siiqtec@gmail.com --keep-as admin --copy-keys --dry-run", "ghosty spaces log siiqtec --since 30d"],
|
|
13277
|
+
notes: ["create follows the same rules as the web: you own it, it starts as a 30-day trial, your email must be confirmed, and your plan caps how many you own. Next: ghosty partner enable <slug>.", "With a Stripe subscription renew refuses: the paid invoice moves the date.", "rename changes only the slug (id and namespace stay, so board, Stripe and WhatsApp keep working); old <slug>.sales links stop working.", "archive does what Settings \u2192 Archive does: the workspace leaves /app and spaces ls, its agents and data stay; it asks you to type the slug. Undo: ghosty spaces restore <slug>. Logged as workspace.archive / workspace.restore.", "transfer moves the agents with the workspace: ACP boxes move to the new owner with their /data, pool boxes are recycled (the owner is baked into the box); without --copy-keys the dry run lists which keys the new owner lacks \u2014 those agents would stop answering."],
|
|
13268
13278
|
learn: `${REF}#espacios`
|
|
13269
13279
|
};
|
|
13270
13280
|
HELPS.workspaces = HELPS.spaces;
|
|
@@ -13844,7 +13854,7 @@ ${bagsText(r)}`);
|
|
|
13844
13854
|
}
|
|
13845
13855
|
}
|
|
13846
13856
|
async function spacesCmd(sub, slug, arg, v, context) {
|
|
13847
|
-
const ex = "ghosty spaces ls [--user EMAIL] \xB7 create <slug> [--combo teams|sales|both] [--dry-run] \xB7 join|leave <workspace> \xB7 set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off \xB7 renew <workspace> --until 2026-11-01 [--note TEXT] \xB7 rename <old> <new> [--dry-run] \xB7 transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run] \xB7 log <workspace> [--since 30d] [--action workspace]";
|
|
13857
|
+
const ex = "ghosty spaces ls [--user EMAIL] \xB7 create <slug> [--combo teams|sales|both] [--dry-run] \xB7 join|leave <workspace> \xB7 set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off \xB7 renew <workspace> --until 2026-11-01 [--note TEXT] \xB7 rename <old> <new> [--dry-run] \xB7 archive|restore <workspace> [--dry-run] \xB7 transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run] \xB7 log <workspace> [--since 30d] [--action workspace]";
|
|
13848
13858
|
if (!sub || sub === "ls" || sub === "list") {
|
|
13849
13859
|
const r = await api(`/api/v2/workspaces${v.user ? `?user=${enc10(v.user)}` : ""}`);
|
|
13850
13860
|
const rows = r.workspaces.map((w) => ({ workspace: w.slug, role: w.role ?? "", plan: w.plan, combo: w.combo, owner: w.owner ?? "", paid: w.paidUntil ?? "" }));
|
|
@@ -13927,6 +13937,22 @@ ${t("Rename?", "\xBFRenombrar?")}`, { yes: v.yes, expect: plan.from, retry: `gho
|
|
|
13927
13937
|
const r = await api(path, { method: "POST", body: { to: arg } });
|
|
13928
13938
|
return out(r, () => `${lavender("\u2713")} ${t(`Renamed: ${r.from} \u2192 ${r.to}. Undo: ghosty spaces rename ${r.to} ${r.from}`, `Renombrado: ${r.from} \u2192 ${r.to}. Deshacer: ghosty spaces rename ${r.to} ${r.from}`)}`);
|
|
13929
13939
|
}
|
|
13940
|
+
if (sub === "archive" || sub === "restore") {
|
|
13941
|
+
slug = needSpace(slug, `ghosty spaces ${sub} <workspace> --dry-run`);
|
|
13942
|
+
const archive = sub === "archive";
|
|
13943
|
+
const path = wsPath(slug, "/archive");
|
|
13944
|
+
const plan = await api(path, { method: "POST", body: { archive, dryRun: true } });
|
|
13945
|
+
const line2 = `${plan.slug}: ${plan.from} \u2192 ${bold(plan.to)} ${dim(t(`(${plan.agents} agent(s); they and their data stay as they are)`, `(${plan.agents} agente(s); ellos y sus datos se quedan igual)`))}`;
|
|
13946
|
+
if (!plan.changed) return out(plan, () => dim(t(`Nothing to do: ${plan.slug} is already ${plan.from}.`, `Nada que hacer: ${plan.slug} ya est\xE1 ${plan.from}.`)));
|
|
13947
|
+
if (v["dry-run"]) return out(plan, () => `${line2}
|
|
13948
|
+
${dim(t("Dry run: nothing changed.", "Simulaci\xF3n: no cambi\xF3 nada."))}`);
|
|
13949
|
+
const retry = `ghosty spaces ${sub} ${slug}`;
|
|
13950
|
+
requireYesIfHeadless(v.yes, retry);
|
|
13951
|
+
await confirm(`${line2}
|
|
13952
|
+
${archive ? t("Archive it?", "\xBFArchivarlo?") : t("Restore it?", "\xBFRestaurarlo?")}`, { yes: v.yes, retry, ...archive ? { expect: plan.slug } : {} });
|
|
13953
|
+
const r = await api(path, { method: "POST", body: { archive } });
|
|
13954
|
+
return out(r, () => archive ? `${lavender("\u2713")} ${t(`Archived: ${r.slug}. Undo: ghosty spaces restore ${r.slug}`, `Archivado: ${r.slug}. Deshacer: ghosty spaces restore ${r.slug}`)}` : `${lavender("\u2713")} ${t(`Restored: ${r.slug}.`, `Restaurado: ${r.slug}.`)}`);
|
|
13955
|
+
}
|
|
13930
13956
|
if (sub === "transfer") {
|
|
13931
13957
|
slug = needSpace(slug ?? context, "ghosty spaces transfer <workspace> --to EMAIL --dry-run");
|
|
13932
13958
|
const toEmail = v.to ?? arg;
|
|
@@ -14641,7 +14667,8 @@ ${bold("Workspaces")} ${dim("(changing them: Ghosty staff)")}
|
|
|
14641
14667
|
spaces set <workspace> --combo sales teams | sales | both (without Sales its boards are invisible) [--model-cap 0.25|1|4|none: most expensive model] [--house-claude on|off]
|
|
14642
14668
|
spaces renew <workspace> --until DATE Move \xABpaid until\xBB (logged) [--note] [--dry-run]
|
|
14643
14669
|
spaces rename <old> <new> Change its slug only [--dry-run]
|
|
14644
|
-
spaces
|
|
14670
|
+
spaces archive|restore <workspace> Archive it (out of /app and spaces ls; agents and data stay) or bring it back (owner or staff) [--dry-run]
|
|
14671
|
+
spaces transfer <workspace> --to EMAIL New owner; agents go with it (ACP boxes move with their /data, pool boxes are recycled) [--keep-as admin|member|none] [--copy-keys] [--dry-run]
|
|
14645
14672
|
spaces log <workspace> Its log: transfers, staff in/out, renewals (owner or staff) [--since 30d] [--action workspace]
|
|
14646
14673
|
staff ls [staff-email] [client-email] Ghosty staff assigned to client accounts (staff) [--all: also revoked]
|
|
14647
14674
|
staff assign|unassign <staff> <client> Staff sees and runs that account's agents, documents, databases and boards as themselves (no keys, billing or transfers; logged) [--reason]
|
|
@@ -14808,7 +14835,8 @@ ${bold("Espacios")} ${dim("(cambiarlos: staff de Ghosty)")}
|
|
|
14808
14835
|
spaces set <espacio> --combo sales teams | sales | both (sin Ventas sus tableros no se ven) [--model-cap 0.25|1|4|none: el modelo m\xE1s caro] [--house-claude on|off]
|
|
14809
14836
|
spaces renew <espacio> --until FECHA Mueve \xABpagado hasta\xBB (queda en bit\xE1cora) [--note] [--dry-run]
|
|
14810
14837
|
spaces rename <viejo> <nuevo> Cambia s\xF3lo su slug [--dry-run]
|
|
14811
|
-
spaces
|
|
14838
|
+
spaces archive|restore <espacio> Arch\xEDvalo (sale de /app y de spaces ls; agentes y datos se quedan) o tr\xE1elo de vuelta (due\xF1o o staff) [--dry-run]
|
|
14839
|
+
spaces transfer <espacio> --to CORREO Due\xF1o nuevo; los agentes se van con \xE9l (las cajas ACP se mudan con su /data, las del pool se reciclan) [--keep-as admin|member|none] [--copy-keys] [--dry-run]
|
|
14812
14840
|
spaces log <espacio> Su bit\xE1cora: traspasos, staff que entra o sale, renovaciones (due\xF1o o staff) [--since 30d] [--action workspace]
|
|
14813
14841
|
staff ls [correo-staff] [correo-cliente] Staff de Ghosty asignado a cuentas cliente (staff) [--all: tambi\xE9n revocadas]
|
|
14814
14842
|
staff assign|unassign <staff> <cliente> El staff ve y opera agentes, documentos, bases y tableros de esa cuenta como s\xED mismo (sin llaves, cobro ni traspasos; queda en bit\xE1cora) [--reason]
|
|
@@ -15221,7 +15249,7 @@ async function main() {
|
|
|
15221
15249
|
const tokens = splitTokens(pos, v);
|
|
15222
15250
|
globals.token = tokens.session;
|
|
15223
15251
|
globals.profile = v.profile;
|
|
15224
|
-
if (v.version) return out({ version: "0.
|
|
15252
|
+
if (v.version) return out({ version: "0.59.0" }, () => "0.59.0");
|
|
15225
15253
|
for (const n of normalizeArgs(pos, v)) if (!globals.json) info(dim(n));
|
|
15226
15254
|
const context = (await readConfig()).workspace;
|
|
15227
15255
|
if (!explicitToken()?.startsWith("gat_")) {
|
|
@@ -15387,7 +15415,7 @@ async function main() {
|
|
|
15387
15415
|
throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
|
|
15388
15416
|
}
|
|
15389
15417
|
}
|
|
15390
|
-
var notice = updateNotice("0.
|
|
15418
|
+
var notice = updateNotice("0.59.0").catch(() => null);
|
|
15391
15419
|
main().then(
|
|
15392
15420
|
async () => {
|
|
15393
15421
|
const n = await notice;
|
package/package.json
CHANGED