@ghostystudio/cli 0.68.0 → 0.70.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.
Files changed (3) hide show
  1. package/README.md +38 -1
  2. package/dist/index.js +4194 -3497
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -13,9 +13,12 @@ npm i -g @ghostystudio/cli && ghosty login
13
13
  ## Commands
14
14
 
15
15
  ```bash
16
+ ghosty login [--device] [--profile NAME] # browser OAuth2; --device = link + code (SSH, CI)
17
+ ghosty logout # signs out and revokes this device's session
16
18
  ghosty whoami
17
19
  ghosty usage # plan and usage this week / month (also: ghosty me usage)
18
20
  ghosty usage --workspace SLUG [--by agent,day] [--days 14] # a workspace's turns and tokens per agent/day (owner or staff)
21
+ ghosty plan open [workspace|personal] # pay, change plan or manage billing (opens the browser)
19
22
  ghosty engines ls [--models] # valid --engine / --model values and what each model costs
20
23
  ghosty bags ls|create|set|rm <workspace> ["bag"] [--tokens 20M] [--recurring on|off] [--hard-cap on|off] [--note] # token bags (changing: staff)
21
24
  ghosty spaces create <slug> [--combo …: staff] [--dry-run] # yours, trial
@@ -32,6 +35,9 @@ ghosty agents set <id> --prompt-base <base-id> --prompt-overlay overlay.json [--
32
35
  ghosty agents share|unshare <id> <email> [--role editor|admin] # share without handing it over · agents shares <id> lists them
33
36
  ghosty agents teams ls|on|off|rm <id> [workspace] [--handle x] # which Teams workspaces it answers in, and its @handle there
34
37
  ghosty agents archive|restore <id> # archive: stops answering, deleted after 7 days unless restored
38
+ ghosty agents token rotate|revoke <id> [--yes] # owner only: rotate prints the new gat_ token once
39
+ ghosty agents memory ls|add|edit|rm|enable|disable <id> … # rules its team taught it (--scope wa) and its promos (--promo --title --details --from --until)
40
+ ghosty agents transfer <id> --to EMAIL [--workspace SLUG] [--dry-run] # hand it over with box, memory and files · --workspace SLUG|none: move it between your workspaces
35
41
  ghosty agents rm <id> [--from-workspace] [--yes] # --from-workspace: turn it off in Teams first
36
42
  ghosty agents set <id> [--tool wa:tool=off,…] [--bag NAME|none] [--avatar URL|FILE]
37
43
  ghosty agents restart <id>
@@ -50,6 +56,8 @@ ghosty agents doctor <id> [--verbose] # exits 1 when it finds a
50
56
  ghosty agents docs ls|grant|revoke <id> [doc] [--write] [--no-deliver]
51
57
  ghosty agents docs add <id> --url URL | --file PATH [--description TEXT] [--grant read|write|no]
52
58
  ghosty agents set <id> --voice elevenlabs:ID --voice-replies auto --auto-stage on
59
+ ghosty agents set <id> --web-search on|off --email-any on|off --extensions developer=off,… # native web search · email anyone from customer channels · its box's extensions
60
+ ghosty agents set <id> --chat-starters "a|b" --channel-roles teams=equipo,programado=cliente # suggestions in its OWN chat (the widget's are embed --starters) · who talks on each channel
53
61
 
54
62
  ghosty files ls|get|put|rm <id> [path] [--file LOCAL] [--out LOCAL]
55
63
  ghosty skills ls|get|add|rm <id> [slug] [--file SKILL.md | --dir FOLDER] [--out DIR] # get without --out only lists
@@ -60,9 +68,11 @@ ghosty turns ls <id> [--errors | --status running|done|stopp
60
68
  ghosty turns ls --workspace SLUG --quota-hits [--days 14] # messages that got no turn because the balance ran out
61
69
  ghosty turns show <id> [turn-id|last] # what came in, what it answered, where the time went [--full]
62
70
  ghosty turns grep <id> "text" # what the customer or the agent said, and its turn [--since 7d] [--role user|agent]
71
+ ghosty turns jobs <id> # its background jobs from your chats (video, audio, captions, downloads; 24 h) · stop: turns cancel
63
72
  ghosty channels whatsapp ls|enable|disable <id> [number] [--dry-run]
64
73
  ghosty channels whatsapp link|unlink <id> --integration ID --answer on|off [--forward] [--dry-run] # bring a WABA number from Formmy
65
74
  ghosty channels whatsapp history <id> --integration ID [--days 7] [--dry-run] # its recent cards, messages and orders (no duplicates)
75
+ ghosty channels whatsapp|messenger connect <id> # opens Channels to connect with Meta (browser sign-in)
66
76
  ghosty channels wa import <id> --from-file F | --from-dir DIR --own-number yes|no [--dry-run] # personal WhatsApp session, no QR
67
77
  ghosty channels wa pair|status|pause <id> [--phone N]
68
78
  ghosty channels wa groups ls|enable|disable|set|create <id> [group] [--role equipo|cliente] [--wake mention|all] [--dry-run] # personal WhatsApp groups
@@ -73,6 +83,7 @@ ghosty cards ls <id> [--q TEXT] [--limit 20] #
73
83
  ghosty cards show <id> <folio|phone|id> [--limit 20] # a card's thread, attachments and whether gs kept a copy
74
84
  ghosty cards archive <id> --integration X | --column X | --before 30d [--dry-run]
75
85
  ghosty mcp get|set <id> [--file servers.json] # http headers accept ${turn.token} (per-turn key)
86
+ ghosty mcp connect <id> --name N --url https://… [--from-env VAR] [--no-open] # one remote MCP by URL; OAuth in the browser if it asks
76
87
 
77
88
  ghosty try <id> "message" [--session] [--reset]
78
89
  ghosty try <id> "message" --waba --session PHONE [--media FILE [--as-formmy]] [--history FILE] # real WhatsApp path, nothing sent
@@ -80,6 +91,9 @@ ghosty try <id> --replay FILE --out DIR [--max 15] [--concurrency 8] [--resume]
80
91
  ghosty chat <id> ["message"] [--conversation ID]
81
92
  ghosty conversations ls <id>
82
93
  ghosty conversations show <id> <conversation-id> [--limit 20] # what was said
94
+ ghosty conversations continue|model|share <id> <conversation-id> [model] [--off] # new linked thread · its model · read-only link
95
+ ghosty conversations permission <id> <conversation-id> [allow|deny] [--id P] [--always] # what the turn waits for, and answer it
96
+ ghosty conversations subagents <id> <conversation-id> [stop <task-id>] # its native subagents
83
97
 
84
98
  ghosty schedule add <id> "what to do" --in 30m | --at ISO [--every 12h --until ISO] [--conversation ID] [--title T]
85
99
  ghosty schedule ls <id>
@@ -89,16 +103,24 @@ ghosty teams post <workspace>#<room>[/<thread-id>] "msg" [--wait] # write ther
89
103
 
90
104
  ghosty me files ls|get|export|upload|rm [--q TEXT] [--kind image|video|audio|document|other] [--cursor C]
91
105
  ghosty me memories ls|add|edit|rm
106
+ ghosty me docs ls|get|export|check|tts|restore <doc> # editable docs your agents delivered: versions, PDF/Markdown, spelling, read aloud [--rev N]
92
107
  ghosty conversations archive|rm <id> --kind test|channel|personal [--before 7d] [--dry-run]
93
108
  ghosty agents docs dedupe [--dry-run] # your account: merge documents with the same content
94
109
  # Ghosty staff
95
110
  ghosty conversations ls --user EMAIL [--since 30d] · conversations show <id> <conv> --why|--tools
96
111
  ghosty turns stats [--since 14d] [--all] · push log --user EMAIL [--since 2d]
112
+ ghosty support ls|show|reply --all [--status open|waiting_customer|resolved] · support resolve|reopen <id> · support link <id> <issue|PR>
113
+ ghosty staff ls [staff] [client] [--all] · staff assign|unassign <staff> <client> [--reason] # staff on client accounts (logged)
114
+ ghosty settings ls|set|unset <KEY> [value] # platform switches (+id/-id edits a list)
97
115
  ghosty agents doctor --user EMAIL [agent] [--turns 8] · usage --images [--plan free] [--by user]
98
116
  ghosty novedades ls|create|set|test|send|rm [--title] [--body] [--image FILE] [--link] [--to] [--publish] [--at]
99
117
  ghosty sites ls [--house] · sites publish <file.html|folder> [--title] [--slug S] [--site <slug|id>] · sites slug <slug|id> <new-slug> # house sites on EasyBits
100
118
  ghosty credentials ls|set|rm [provider] [--from-env VAR] # never as an argument
101
119
  ghosty connectors ls|connect|disconnect [id] [--q TEXT] [--from-env VAR] [--no-open] # Shopify, Stripe, monday…
120
+ ghosty support open --title T --body TEXT · support ls | show <id> | reply <id> --body TEXT # ask Ghosty for help; answered by email
121
+ ghosty browser logout # revoke your terminal agents' browser tokens and disconnect Ghosty for Chrome
122
+ ghosty audit ls [--workspace SLUG] [--agent ID] [--actor EMAIL] [--action A] [--since 24h] [--limit N] # who changed what
123
+ ghosty factory runs ls|show|why|stats|rename [--workspace SLUG] [--room R] [--status S] [show --timing] [why --refresh] # Software Factory runs
102
124
  ghosty docs
103
125
 
104
126
  ghosty partner ls|enable|credentials|agent|tenants|audit|try # one agent for each of YOUR customers: ghosty partner --help
@@ -114,6 +136,21 @@ Every command has its own help with examples: `ghosty <command> --help` or `ghos
114
136
 
115
137
  Exit codes: `0` ok · `1` API error · `2` usage error · `3` not signed in.
116
138
 
139
+ ### Changes in 0.70.0
140
+
141
+ - `agents set --web-search on|off`, `--chat-starters "a|b"` (suggestions in the agent's OWN chat; the widget's stay in `agents embed --starters`, and `agents set --starters` now says so), `--channel-roles teams=equipo,programado=cliente`, `--extensions developer=off` and `--email-any on|off` (owner only).
142
+ - `mcp connect <id> --name N --url https://… [--from-env VAR] [--no-open]`: one remote MCP by its URL, without writing servers.json; if it asks for OAuth, the sign-in opens in the browser and gs adds it when you finish.
143
+ - `conversations continue|model|permission|share|subagents <id> <conv>`: carry on in a new linked thread, change its model, answer a permission the turn is waiting for (`allow|deny`, `--always`, `--id`), share it read-only (`--off`), list or stop native subagents. `chat` now prints each permission request with the command to answer it.
144
+ - `turns jobs <id>`: background jobs from your chats (video, audio, captions, downloads; 24 h). Read-only: stop them with `turns cancel`; repeating work is `schedule --every`.
145
+ - `me docs ls|get|export|check|tts|restore <doc>`: the editable docs your agents deliver (id or /app/docs/… link): versions, PDF/Markdown, spelling, read aloud.
146
+ - `agents token rotate|revoke <id>` (owner only), `agents memory …` (its team's rules and its promos) and `agents transfer <id> --to EMAIL | --workspace SLUG|none [--dry-run]`, on new `api/v2` routes.
147
+ - `channels whatsapp|messenger connect <id>` and `plan open [workspace|personal]` open the right page in the browser (Meta sign-in and billing stay on the web).
148
+ - README: login/logout, support, browser, audit, factory, staff and settings were missing.
149
+
150
+ ### Changes in 0.69.0
151
+
152
+ - `factory runs why` puts an unmet plan criterion on top (`approved_unmet_criterion`): approved without the preview a criterion asked for, merged without preview, smoke failed on the merged commit, or a CI criterion approved with CI `none`. Each one is listed with the criterion's text and the evidence (`acceptance[]` in `--json`). A saved analysis is redone if the run had events after it.
153
+
117
154
  ### Changes in 0.68.0
118
155
 
119
156
  - New `spaces members ls|add|rm <workspace> [email]`: a workspace's people without the Members screen (owner, admin or staff). `--role admin` lets them invite and remove; `--until 2026-10-28` or `--until 14d` gives a temporary seat that is removed automatically — for reviewer accounts (Meta, Google, Apple).
@@ -169,7 +206,7 @@ Exit codes: `0` ok · `1` API error · `2` usage error · `3` not signed in.
169
206
 
170
207
  ### Changes in 0.56.0
171
208
 
172
- - `factory runs why <run> [--refresh]`: why a run got stuck or failed — category, impact, the critical step with its evidence and what to change next time (a healthy run doesn't call the model).
209
+ - `factory runs why <run> [--refresh]`: why a run got stuck or failed — category, impact, the critical step with its evidence and what to change next time (a healthy run doesn't call the model). It first checks the approved plan's criteria against the verdict: a criterion "in the preview" approved without the preview ready comes out on top as `approved_unmet_criterion`.
173
210
  - `factory runs show --timing` lists stuck patterns (a command open 8+ min, the same command repeated, errors in a row, going back and forth, apt install in a box); `runs stats` counts runs with stuck alerts.
174
211
 
175
212
  ### Changes in 0.55.0