@wirecat/zoom-cli 0.7.3 → 0.8.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 (60) hide show
  1. package/README.md +35 -36
  2. package/dist/archive-commands.d.ts.map +1 -1
  3. package/dist/archive-commands.js +36 -47
  4. package/dist/archive-commands.js.map +1 -1
  5. package/dist/bin/zm.js +13 -4
  6. package/dist/bin/zm.js.map +1 -1
  7. package/dist/commands.d.ts.map +1 -1
  8. package/dist/commands.js +40 -14
  9. package/dist/commands.js.map +1 -1
  10. package/dist/execution.js +2 -2
  11. package/dist/execution.js.map +1 -1
  12. package/dist/folders.js +1 -1
  13. package/dist/folders.js.map +1 -1
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/ingestion-search-commands.d.ts.map +1 -1
  17. package/dist/ingestion-search-commands.js +9 -9
  18. package/dist/ingestion-search-commands.js.map +1 -1
  19. package/dist/local-transcription-commands.js +7 -7
  20. package/dist/local-transcription-commands.js.map +1 -1
  21. package/dist/mcp-server.d.ts +1 -1
  22. package/dist/mcp-server.d.ts.map +1 -1
  23. package/dist/mcp-server.js +41 -44
  24. package/dist/mcp-server.js.map +1 -1
  25. package/dist/meeting-context-commands.d.ts.map +1 -1
  26. package/dist/meeting-context-commands.js +22 -20
  27. package/dist/meeting-context-commands.js.map +1 -1
  28. package/dist/meeting-integration-commands.js +8 -8
  29. package/dist/meeting-integration-commands.js.map +1 -1
  30. package/dist/meeting-search-commands.d.ts +10 -20
  31. package/dist/meeting-search-commands.d.ts.map +1 -1
  32. package/dist/meeting-search-commands.js +123 -27
  33. package/dist/meeting-search-commands.js.map +1 -1
  34. package/dist/meeting-semantic-commands.d.ts +3 -1
  35. package/dist/meeting-semantic-commands.d.ts.map +1 -1
  36. package/dist/meeting-semantic-commands.js +11 -30
  37. package/dist/meeting-semantic-commands.js.map +1 -1
  38. package/dist/meeting-semantic.d.ts.map +1 -1
  39. package/dist/meeting-semantic.js +27 -0
  40. package/dist/meeting-semantic.js.map +1 -1
  41. package/dist/program.d.ts +2 -4
  42. package/dist/program.d.ts.map +1 -1
  43. package/dist/program.js +89 -112
  44. package/dist/program.js.map +1 -1
  45. package/dist/recording-schedule-commands.js +10 -10
  46. package/dist/recording-schedule-commands.js.map +1 -1
  47. package/dist/remote-http.js +2 -2
  48. package/dist/remote-http.js.map +1 -1
  49. package/dist/store-connection.d.ts.map +1 -1
  50. package/dist/store-connection.js +8 -31
  51. package/dist/store-connection.js.map +1 -1
  52. package/dist/tokens.d.ts.map +1 -1
  53. package/dist/tokens.js +6 -6
  54. package/dist/tokens.js.map +1 -1
  55. package/dist/watch-commands.d.ts +1 -1
  56. package/dist/watch-commands.d.ts.map +1 -1
  57. package/dist/watch-commands.js +4 -4
  58. package/dist/watch-commands.js.map +1 -1
  59. package/package.json +4 -3
  60. package/skills/zoom-cli/SKILL.md +16 -14
package/README.md CHANGED
@@ -29,7 +29,7 @@ what you promised in yesterday's call, and get the answer with a reference to th
29
29
  ```sh
30
30
  zm remote-meetings list --json # your upcoming meetings
31
31
  zm meetings people "Bob Sample" --json # him among past participants
32
- zm meetings search "quote" --since 2026-09-01 --json
32
+ zm search meetings "quote" --since-time 2026-09-01 --json
33
33
  zm meetings evidence meeting:1/42/57/118 --json # the exact passage
34
34
  ```
35
35
 
@@ -47,15 +47,15 @@ walks through app settings, browser approval and callback completion.
47
47
  ```sh
48
48
  npm install -g @wirecat/zoom-cli
49
49
  zm config set zoom.clientId <public-client-id>
50
- zm login # approve in your browser; the token goes to the keyring
50
+ zm session start # approve in your browser; the token goes to the keyring
51
51
  zm config set account.profile personal # a label for your stored meetings
52
- zm pull --lookback-days 7
52
+ zm meetings sync --lookback-days 7
53
53
  zm meetings list
54
54
  ```
55
55
 
56
56
  Check Zoom's transcript generation and retention settings first: the API reads available hosted
57
57
  meeting text, and permission does not create a transcript. For an attended meeting, obtain a VTT
58
- file from the host or download one if allowed, then run `zm import <folder>`. Full guide:
58
+ file from the host or download one if allowed, then run `zm meetings import <folder>`. Full guide:
59
59
  [installation][docs/installation.md].
60
60
 
61
61
  More: [installation][docs/installation.md] · [your Zoom app][docs/zoom-app.md] ·
@@ -64,16 +64,16 @@ More: [installation][docs/installation.md] · [your Zoom app][docs/zoom-app.md]
64
64
  ## What you can do
65
65
 
66
66
  **Prepare for a call.** *"I meet Bob Sample tomorrow. What did we talk about last time?"*
67
- `remote-meetings list` shows upcoming meetings; `meetings people`, `meetings search-page` (word
67
+ `remote-meetings list` shows upcoming meetings; `meetings people`, `search meetings` (word
68
68
  search that also matches English, Spanish and Russian word forms) and `meetings context person:<id>`
69
69
  bring back past meetings with the same people.
70
70
 
71
71
  **Follow up after it.** *"What did I promise in today's call?"* The agent reads
72
72
  `meetings transcript` and `meetings summary`, cites passages with `meetings evidence`, and
73
- `meetings task-proposal --kind promise` previews a follow-up task tied to that passage.
73
+ `meetings task-proposal --type promise` previews a follow-up task tied to that passage.
74
74
 
75
75
  **Keep the whole history.** *"Back up every recording since January."*
76
- `recordings sync --from 2026-01-01 --to 2026-10-10 --destination ./zoom-archive --jsonl` downloads
76
+ `recordings sync --since-time 2026-01-01 --until-time 2026-10-10 --destination ./zoom-archive --jsonl` downloads
77
77
  video, audio, transcripts and chat with SHA-256 manifests; `recordings schedule` runs it daily.
78
78
 
79
79
  More: [the local archive][docs/archive.md] · [search and evidence][docs/search.md] ·
@@ -115,10 +115,10 @@ links meetings to events and people, and creates, changes or cancels simple meet
115
115
  - **It does not find commitments on its own.** Your agent finds them in transcripts;
116
116
  `task-proposal` only previews a task and creates nothing.
117
117
  - **People are linked by hand.** `zm` never guesses a person from a speaker name; person context
118
- covers participants already linked to a person, for example with `meetings link-person`.
118
+ covers participants already linked to a person, for example with `meetings link`.
119
119
  - **Local transcription takes PCM16 WAV only** (16 or 48 kHz) and an already installed speech model;
120
120
  video files are not decoded, and speakers stay unknown.
121
- - **Attended meetings need a manual download** from your Zoom portal, then `zm import`.
121
+ - **Attended meetings need a manual download** from your Zoom portal, then `zm meetings import`.
122
122
  - **A company-managed Zoom account** may need an admin to approve your app.
123
123
  - **Daily archive jobs install only on Linux.** Other platforms can preview them.
124
124
  - **Zoom only, for now.** Google Meet and Microsoft Teams are
@@ -131,14 +131,14 @@ More: [what is planned][gh/cli-meetings/blob/main/docs/dev/roadmap.md] · [Zoom
131
131
  | Task | Commands |
132
132
  |---|---|
133
133
  | Set up and log in | `config show`, `config set <key> <value>`, `login [--browser <program>]`, `session status [--check]`, `doctor` |
134
- | Bring meetings in | `pull [--since <date>] [--lookback-days <days>]`, `import <folder>`, `watch [folder] --source api\|files --jsonl` |
134
+ | Bring meetings in | `meetings sync [--since-time <time>] [--lookback-days <days>]`, `meetings import <folder>`, `watch [folder] --source api\|files --jsonl` |
135
135
  | Read stored meetings | `meetings list`, `meetings show <meeting>`, `meetings transcript <meeting>`, `meetings summary <meeting>`, `meetings export <meeting> --format markdown\|vtt`, `events list` |
136
- | Search | `meetings search-page <query>`, `meetings search-index`, `meetings search <query>`, `meetings people <query>`, `search all <query>` |
137
- | Evidence and people | `meetings evidence <reference>`, `meetings context <person>`, `meetings link-person <reference>`, `meetings link-event <reference>`, `meetings task-proposal <reference> --kind <kind>` |
138
- | Search by meaning | `meetings embeddings --model <id>`, `meetings semantic <query> --model <id>` |
136
+ | Search | `search meetings <query>`, `meetings people <query>`, `search all <query>` |
137
+ | Evidence and people | `meetings evidence <reference>`, `meetings context <person>`, `meetings link <reference>`, `meetings update <reference>`, `meetings task-proposal <reference> --type <type>` |
138
+ | Search by meaning | `search meetings <query> --model <model>`, `meetings embeddings --model <model>` |
139
139
  | Local transcription | `meetings transcribe <meeting> <file> --model <model>` |
140
- | Cloud recordings | `recordings list`, `recordings show <meeting>`, `recordings download <meeting> --destination <directory>`, `recordings sync --from <date> --to <date> --destination <directory> --jsonl`, `recordings schedule create\|list\|show\|run\|disable` |
141
- | Local archive | `recordings archive inspect\|verify\|locks\|recover <directory>`, `recordings archive transcript\|search\|import <directory>` |
140
+ | Cloud recordings | `recordings list`, `recordings show <meeting>`, `recordings download <meeting> --destination <directory>`, `recordings sync --since-time <date> --until-time <date> --destination <directory> --jsonl`, `recordings schedule create\|list\|show\|run\|disable` |
141
+ | Local archive | `recordings archive show\|check\|locks\|recover <directory>`, `recordings archive transcript\|import <directory>`, `search meetings <query> --archive <directory>` |
142
142
  | Zoom meetings | `remote-meetings list\|show\|invitation`, `remote-meetings create\|update\|cancel` |
143
143
  | Agents | `serve --mcp`, `skill show`, `skill install [--for claude\|agents\|all]`, `commands --json`, `complete -- <words...>` |
144
144
 
@@ -154,7 +154,7 @@ Public Client OAuth. Create it once from the supplied manifest: it asks for read
154
154
  meetings, participants, transcripts and AI summaries. Recording archives and meeting management need
155
155
  extra scopes, which you add only if you want those features. The app has no client secret.
156
156
 
157
- `zm login` opens Zoom's consent page. Zoom redirects to the static page
157
+ `zm session start` opens Zoom's consent page. Zoom redirects to the static page
158
158
  `https://wirecat.dev/zoom-callback`, which passes the answer to a listener on your machine; if it
159
159
  cannot, paste the `code=…&state=…` parameters it shows. Login checks the state and PKCE verifier and
160
160
  stores tokens only in the system keyring. Browser login needs an interactive terminal; piped or JSON
@@ -181,13 +181,13 @@ More: [profiles][docs/sessions.md#select-a-local-profile] ·
181
181
  ## Pull, import and watch
182
182
 
183
183
  ```sh
184
- zm pull --lookback-days 7 # hosted meetings, revisiting late transcripts
185
- zm import ./downloaded-transcripts # .vtt files from your Zoom portal
184
+ zm meetings sync --lookback-days 7 # hosted meetings, revisiting late transcripts
185
+ zm meetings import ./downloaded-transcripts # .vtt files from your Zoom portal
186
186
  zm watch --source api --lookback-days 7 --jsonl # keep pulling in the foreground
187
187
  ```
188
188
 
189
189
  The cursor alone does not revisit transcripts that appear late; use `--lookback-days` or an older
190
- `--since`. A failed occurrence leaves the cursor unchanged for the next pull. Imported files follow
190
+ `--since-time`. A failed occurrence leaves the cursor unchanged for the next pull. Imported files follow
191
191
  the exporter's `YYYY-MM-DD_HHMM_topic-slug.vtt` names; set `files.timezone` to the zone they were
192
192
  written in (UTC by default). Participants of imported files stay unknown, and speaker names are
193
193
  never turned into identities.
@@ -197,16 +197,16 @@ More: [the local archive][docs/archive.md] · [Zoom on wirecat.dev][wirecat/en/d
197
197
  ## Archive cloud recordings
198
198
 
199
199
  ```sh
200
- zm recordings sync --from 2026-01-01 --to 2026-10-10 --destination ./zoom-archive --jsonl
201
- zm recordings archive verify ./zoom-archive --offline --json
202
- zm recordings archive search ./zoom-archive "example plan" --offline --json
200
+ zm recordings sync --since-time 2026-01-01 --until-time 2026-10-10 --destination ./zoom-archive --jsonl
201
+ zm recordings archive check ./zoom-archive --offline --json
202
+ zm search meetings "example plan" --archive ./zoom-archive --offline --json
203
203
  ```
204
204
 
205
205
  Sync covers up to ten years in monthly requests and downloads serially, streaming to disk. Each
206
206
  occurrence gets a manifest with sizes and SHA-256 checksums, never signed URLs or tokens. Existing
207
207
  files are never overwritten; repeated runs skip verified files. With a profile, interrupted downloads
208
- resume safely. `recordings archive transcript|search` read verified WebVTT offline without a
209
- database; `recordings archive import` appends them to your stored meetings. `recordings schedule
208
+ resume safely. `recordings archive transcript` and `search meetings --archive` read verified WebVTT offline
209
+ without a database; `recordings archive import` appends them to your stored meetings. `recordings schedule
210
210
  create --yes` installs a daily systemd user timer (Linux only).
211
211
 
212
212
  What you can download depends on Zoom permissions, retention and your plan. Recordings of meetings
@@ -218,18 +218,17 @@ More: [archive cloud recordings][docs/archive.md#archive-cloud-recordings] ·
218
218
  ## Search and evidence
219
219
 
220
220
  ```sh
221
- zm meetings search-index --limit 100 --yes --json # index queued meetings, one batch
222
- zm meetings search-page "example plan" --limit 20 --json # word search with continuation
221
+ zm search meetings "example plan" --limit 20 --json # word search with continuation
223
222
  zm meetings evidence meeting:3/15/20/0 --cues 100 --json # the exact passage
224
223
  zm meetings context person:7 --meetings 10 --json # meetings linked to a person
225
224
  ```
226
225
 
227
- `search-page` matches every word by prefix or by stored English, Spanish and Russian word forms, and
228
- pages with an opaque `--after` cursor. References have the form
226
+ `search meetings` indexes new meetings first, matches every word by prefix or by stored English, Spanish
227
+ and Russian word forms, and pages with an opaque `--cursor`. References have the form
229
228
  `meeting:<account>/<meeting>[/<transcript>[/<cue-position>]]`, stay inside the selected account and
230
229
  keep pointing at the same revision after a correction. Every bounded read reports whether it is
231
- complete. `search all --only meetings,notes` adds store-wide notes. `meetings embeddings` and
232
- `meetings semantic` search by meaning with a model you name; nothing is downloaded for you.
230
+ complete. `search all --only meetings,notes` adds store-wide notes. `search meetings
231
+ --model` searches by meaning with a model you name; nothing is downloaded for you.
233
232
 
234
233
  More: [search and evidence][docs/search.md] · [topic search][docs/topic-search.md] ·
235
234
  [Zoom on wirecat.dev][wirecat/en/docs/zoom]
@@ -254,7 +253,7 @@ with `["serve", "--mcp"]`:
254
253
  ```
255
254
 
256
255
  The server has seven read-only tools: meeting list and show, transcripts, summaries, exports, text
257
- search and participant search. `--meeting-context`, `--unified-search` and `--semantic --model <id>`
256
+ search and participant search. `--meeting-context`, `--unified-search` and `--semantic --model <model>`
258
257
  add evidence, shared search and meaning search. It reads only the selected profile, and never exposes
259
258
  file exports, Zoom changes, embedding generation or task creation. A desktop app may need the full
260
259
  path from `which zm`, and the same `ZM_CONFIG_DIR` or `MESSAGING_STORE` in the entry's `env`.
@@ -265,7 +264,7 @@ More: [MCP and skills][docs/mcp.md] · [MCP and skills on wirecat.dev][wirecat/e
265
264
  ## Manage Zoom meetings
266
265
 
267
266
  ```sh
268
- zm remote-meetings create --topic "Example planning" --start-time 2026-10-20T10:00:00Z --duration-minutes 30 --json
267
+ zm remote-meetings create --title "Example planning" --start-time 2026-10-20T10:00:00Z --duration-minutes 30 --json
269
268
  zm remote-meetings cancel 123456789 --dry-run --json
270
269
  ```
271
270
 
@@ -291,7 +290,7 @@ More: [usage][docs/usage.md] · [Zoom on wirecat.dev][wirecat/en/docs/zoom]
291
290
  |---|---|
292
291
  | `zoom.clientId` | your Zoom app's Public Client ID |
293
292
  | `account.profile` | the local profile label |
294
- | `source` | `api` or `files` for `pull` and `watch` |
293
+ | `source` | `api` or `files` for `meetings sync` and `watch` |
295
294
  | `files.folder`, `files.timezone` | the transcript folder and the zone of its filenames |
296
295
  | `ZM_CONFIG_DIR` | another configuration directory (also changes the keyring entry) |
297
296
  | `MESSAGING_STORE` | another shared database path |
@@ -314,9 +313,9 @@ More: [security][docs/security.md] · [security on wirecat.dev][wirecat/en/docs/
314
313
 
315
314
  - **"Invalid redirect" from Zoom:** the manifest import left the redirect URL or Public Client OAuth
316
315
  unset; fill them in by hand.
317
- - **No transcripts:** turn on **Allow hosts to retain transcripts**; attended meetings need `zm import`.
318
- - **Missing-scope error:** add the named scope in your app, then `zm login` again.
319
- - **Browser does not start:** `zm login --browser firefox`, or paste the callback parameters.
316
+ - **No transcripts:** turn on **Allow hosts to retain transcripts**; attended meetings need `zm meetings import`.
317
+ - **Missing-scope error:** add the named scope in your app, then `zm session start` again.
318
+ - **Browser does not start:** `zm session start --browser firefox`, or paste the callback parameters.
320
319
  - **Lock left after a crash:** `zm recordings archive locks`, then `recover` with `--yes`.
321
320
 
322
321
  More: [troubleshooting][docs/troubleshooting.md] · [Zoom on wirecat.dev][wirecat/en/docs/zoom]
@@ -1 +1 @@
1
- {"version":3,"file":"archive-commands.d.ts","sourceRoot":"","sources":["../src/archive-commands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAGhG,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGrH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAkC,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE9F,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,GAChF,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAA;AAC1C,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,kBAAkB,EAClB,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAChE,CAAA;AACD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,cAAc,CAAA;IAC9B,MAAM,EAAE,OAAO,aAAa,CAAA;IAC5B,KAAK,EAAE,OAAO,mBAAmB,CAAA;IACjC,OAAO,EAAE,OAAO,mBAAmB,CAAA;CACpC;AACD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,sBAAsB,CAAA;IACnC,MAAM,EAAE,OAAO,wBAAwB,CAAA;CACxC;AACD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,iBAAiB,CAAA;IACnC,cAAc,EAAE,MAAM,qBAAqB,CAAA;IAC3C,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,wBAAwB,CAAA;IACrC,MAAM,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IACrC,GAAG,EAAE,MAAM,IAAI,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAClC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,GAAG,EAAE,MAAM,MAAM,CAAA;CAClB;AAwDD,eAAO,MAAM,kBAAkB,YAAa,OAAO,QAAQ,mBAAmB,KAAG,IA+QhF,CAAA"}
1
+ {"version":3,"file":"archive-commands.d.ts","sourceRoot":"","sources":["../src/archive-commands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAGhG,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGrH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAkC,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE9F,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,GAChF,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAA;AAC1C,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,kBAAkB,EAClB,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAChE,CAAA;AACD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,cAAc,CAAA;IAC9B,MAAM,EAAE,OAAO,aAAa,CAAA;IAC5B,KAAK,EAAE,OAAO,mBAAmB,CAAA;IACjC,OAAO,EAAE,OAAO,mBAAmB,CAAA;CACpC;AACD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,sBAAsB,CAAA;IACnC,MAAM,EAAE,OAAO,wBAAwB,CAAA;CACxC;AACD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,iBAAiB,CAAA;IACnC,cAAc,EAAE,MAAM,qBAAqB,CAAA;IAC3C,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,wBAAwB,CAAA;IACrC,MAAM,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IACrC,GAAG,EAAE,MAAM,IAAI,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAClC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,GAAG,EAAE,MAAM,MAAM,CAAA;CAClB;AA0DD,eAAO,MAAM,kBAAkB,YAAa,OAAO,QAAQ,mBAAmB,KAAG,IA4PhF,CAAA"}
@@ -36,11 +36,9 @@ const archiveScope = (deps, options) => {
36
36
  const resumable = (command) => command
37
37
  .option("--resume", "resume verified partial downloads and archive progress; requires a local profile")
38
38
  .option("--no-resume", "disable persistent resume state for this invocation");
39
- const change = (options) => Object.fromEntries(["topic", "startTime", "durationMinutes", "timezone", "agenda", "type"]
40
- .filter((key) => options[key] !== undefined)
41
- .map((key) => [key, options[key]]));
39
+ const change = ({ title, ...options }) => Object.fromEntries(Object.entries({ topic: title, ...options }).filter(([key, value]) => value !== undefined && ["topic", "startTime", "durationMinutes", "timezone", "agenda", "type"].includes(key)));
42
40
  const changes = (command) => command
43
- .option("--topic <text>", "meeting topic")
41
+ .option("--title <text>", "meeting title")
44
42
  .option("--start-time <timestamp>", "ISO start time with timezone")
45
43
  .option("--duration-minutes <minutes>", "positive meeting duration in minutes", positive)
46
44
  .option("--timezone <zone>", "IANA timezone")
@@ -58,26 +56,26 @@ export const addArchiveCommands = (program, deps) => {
58
56
  label(recordings
59
57
  .command("list")
60
58
  .description("list cloud recording occurrences (last 30 days by default)")
61
- .option("--from <date>", "first YYYY-MM-DD date")
62
- .option("--to <date>", "last YYYY-MM-DD date")
59
+ .option("--since-time <time>", "first day, YYYY-MM-DD")
60
+ .option("--until-time <time>", "last day, YYYY-MM-DD")
63
61
  .action(async (options) => {
64
62
  deps.api();
65
- const to = options.to ?? new Date(deps.now()).toISOString().slice(0, 10);
63
+ const to = options.untilTime ?? new Date(deps.now()).toISOString().slice(0, 10);
66
64
  const end = Date.parse(`${to}T00:00:00Z`);
67
65
  if (!/^\d{4}-\d{2}-\d{2}$/.test(to) || !Number.isFinite(end) || new Date(end).toISOString().slice(0, 10) !== to)
68
- throw new ZoomError("validation_error", "to must be a real YYYY-MM-DD date");
69
- const from = options.from ?? new Date(end - 30 * 86400000).toISOString().slice(0, 10);
66
+ throw new ZoomError("validation_error", "--until-time must be a real YYYY-MM-DD date");
67
+ const from = options.sinceTime ?? new Date(end - 30 * 86400000).toISOString().slice(0, 10);
70
68
  deps.output(listed(await deps.recordings().list({ from, to, signal: deps.signal() })));
71
- }), "zm recordings list --from 2026-10-01 --to 2026-10-10 --json");
69
+ }), "zm recordings list --since-time 2026-10-01 --until-time 2026-10-10 --json");
72
70
  label(resumable(recordings
73
71
  .command("sync")
74
- .description("serial monthly recording archive synchronization with completed JSONL receipts")
75
- .requiredOption("--from <date>", "first YYYY-MM-DD date")
76
- .requiredOption("--to <date>", "last YYYY-MM-DD date (at most ten years)")
72
+ .description("download a date range of recordings into an archive folder, a month at a time")
73
+ .requiredOption("--since-time <time>", "first day, YYYY-MM-DD")
74
+ .requiredOption("--until-time <time>", "last day, YYYY-MM-DD; at most ten years after the first")
77
75
  .requiredOption("--destination <directory>", "explicit archive directory")
78
76
  .option("--max-bytes <bytes>", "maximum bytes per recording file", positive))
79
77
  .option("--checkpoint <file>", "explicit durable checkpoint file; implies resume")
80
- .option("--recheck-from <date>", "revisit completed windows from this YYYY-MM-DD date for late recordings")
78
+ .option("--recheck-since-time <time>", "look again from this day, YYYY-MM-DD, for recordings that came late")
81
79
  .option("--max-pages <pages>", "catalog page limit from 1 through 10000 (default 1000)", discoveryLimit)
82
80
  .option("--max-entries <entries>", "occurrence limit from 1 through 10000 (default 10000)", discoveryLimit)
83
81
  .action(async (options) => {
@@ -86,26 +84,26 @@ export const addArchiveCommands = (program, deps) => {
86
84
  if (program.opts().json)
87
85
  throw new ZoomError("validation_error", "recording sync streams receipts; use --jsonl");
88
86
  const scope = archiveScope(deps, options);
89
- recordingWindows(options.from, options.to);
90
- if (options.recheckFrom !== undefined)
91
- recordingWindows(options.recheckFrom, options.recheckFrom);
87
+ recordingWindows(options.sinceTime, options.untilTime);
88
+ if (options.recheckSinceTime !== undefined)
89
+ recordingWindows(options.recheckSinceTime, options.recheckSinceTime);
92
90
  validateDownloadOptions({ ...options, ...scope });
93
91
  deps.api();
94
92
  for await (const receipt of syncRecordingArchive(deps.recordings(), {
95
- from: options.from,
96
- to: options.to,
93
+ from: options.sinceTime,
94
+ to: options.untilTime,
97
95
  destination: options.destination,
98
96
  ...scope,
99
97
  maxBytes: options.maxBytes,
100
98
  checkpointPath: options.checkpoint,
101
- recheckFrom: options.recheckFrom,
99
+ recheckFrom: options.recheckSinceTime,
102
100
  maxPages: options.maxPages,
103
101
  maxEntries: options.maxEntries,
104
102
  now: deps.now,
105
103
  signal: deps.signal(),
106
104
  }))
107
105
  await deps.receipt(receipt);
108
- }), "zm recordings sync --from 2026-01-01 --to 2026-10-10 --destination ./archive --jsonl", "local");
106
+ }), "zm recordings sync --since-time 2026-01-01 --until-time 2026-10-10 --destination ./archive --jsonl", "local");
109
107
  label(recordings
110
108
  .command("show")
111
109
  .description("show downloadable asset metadata without signed URLs")
@@ -136,7 +134,7 @@ export const addArchiveCommands = (program, deps) => {
136
134
  const transcriptOptions = (command) => command
137
135
  .option("--uuid <uuid>", "select an occurrence UUID")
138
136
  .option("--file-ids <ids>", "select comma-separated transcript asset ids")
139
- .option("--max-bytes <bytes>", "maximum VTT bytes per file (default 8 MiB)", positive);
137
+ .option("--max-bytes <bytes>", "largest transcript file to read, in bytes (default 8 MiB)", positive);
140
138
  const selected = (options) => ({
141
139
  uuid: options.uuid,
142
140
  fileIds: options.fileIds?.split(",").map((id) => id.trim()),
@@ -145,38 +143,29 @@ export const addArchiveCommands = (program, deps) => {
145
143
  });
146
144
  label(transcriptOptions(archive
147
145
  .command("transcript")
148
- .description("read checksum-verified local VTT cues without Zoom or a database")
149
- .argument("<directory>")).action(async (directory, options) => {
146
+ .description("read the transcripts of a local archive, checking each file first")
147
+ .argument("<directory>", "archive folder")).action(async (directory, options) => {
150
148
  await deps.outputItems(deps.transcripts.read(directory, selected(options)));
151
149
  }), "zm recordings archive transcript ./zoom-archive --uuid example-occurrence --json");
152
- label(transcriptOptions(archive
153
- .command("search")
154
- .description("literal normalized text search across verified local VTT cues")
155
- .argument("<directory>")
156
- .argument("<query>"))
157
- .option("--limit <matches>", "maximum matches from 1 through 1000 (default 100)", positive)
158
- .action(async (directory, query, options) => {
159
- deps.output(await deps.transcripts.search(directory, query, { ...selected(options), limit: options.limit }));
160
- }), 'zm recordings archive search ./zoom-archive "example plan" --limit 10 --json');
161
150
  label(archive
162
- .command("inspect")
163
- .description("read local transfer manifests")
164
- .argument("<directory>")
165
- .action(async (directory) => deps.output(listed(await deps.archive.inspect(directory, { signal: deps.signal() })))), "zm recordings archive inspect ./zoom-archive --json");
151
+ .command("show")
152
+ .description("show what a local archive holds, from its transfer records")
153
+ .argument("<directory>", "archive folder")
154
+ .action(async (directory) => deps.output(listed(await deps.archive.inspect(directory, { signal: deps.signal() })))), "zm recordings archive show ./zoom-archive --json");
166
155
  label(archive
167
- .command("verify")
168
- .description("verify local file sizes and checksums")
169
- .argument("<directory>")
170
- .action(async (directory) => deps.output(listed(await deps.archive.verify(directory, { signal: deps.signal() })))), "zm recordings archive verify ./zoom-archive --json");
156
+ .command("check")
157
+ .description("check the size and checksum of every file in a local archive")
158
+ .argument("<directory>", "archive folder")
159
+ .action(async (directory) => deps.output(listed(await deps.archive.verify(directory, { signal: deps.signal() })))), "zm recordings archive check ./zoom-archive --json");
171
160
  label(archive
172
161
  .command("locks")
173
- .description("inspect active, stale or foreign archive locks")
174
- .argument("<directory>")
162
+ .description("list the locks on a local archive: active, stale or another machine's")
163
+ .argument("<directory>", "archive folder")
175
164
  .action(async (directory) => deps.output(listed(await deps.archive.locks(directory, { signal: deps.signal() })))), "zm recordings archive locks ./zoom-archive --json");
176
165
  label(archive
177
166
  .command("recover")
178
- .description("preview recovery of recognized stale local locks")
179
- .argument("<directory>")
167
+ .description("preview removing stale locks; --yes removes them")
168
+ .argument("<directory>", "archive folder")
180
169
  .option("--yes", "remove recognized locks left by a dead local process")
181
170
  .option("--dry-run", "preview only, including when --yes is present")
182
171
  .action(async (directory, options) => deps.output(await deps.archive.recover(directory, {
@@ -209,11 +198,11 @@ export const addArchiveCommands = (program, deps) => {
209
198
  deps.api();
210
199
  deps.output(await deps.remoteMeetings().invitation(id, { signal: deps.signal() }));
211
200
  }), "zm remote-meetings invitation 123456789 --json");
212
- label(changes(remote.command("create").description("preview a meeting creation; --yes performs it once")).action(async (options) => deps.output(await deps.remoteMeetings().create(change(options), mutation(options, deps)))), 'zm remote-meetings create --topic "Example planning" --start-time 2026-10-10T15:30:00Z --dry-run --json', "remote");
201
+ label(changes(remote.command("create").description("preview a meeting creation; --yes performs it once")).action(async (options) => deps.output(await deps.remoteMeetings().create(change(options), mutation(options, deps)))), 'zm remote-meetings create --title "Example planning" --start-time 2026-10-10T15:30:00Z --dry-run --json', "remote");
213
202
  label(changes(remote
214
203
  .command("update")
215
204
  .description("preview a meeting update; --yes performs it once")
216
- .argument("<meeting>", "positive numeric Zoom meeting id")).action(async (id, options) => deps.output(await deps.remoteMeetings().update(id, change(options), mutation(options, deps)))), 'zm remote-meetings update 123456789 --topic "Example planning" --dry-run --json', "remote");
205
+ .argument("<meeting>", "positive numeric Zoom meeting id")).action(async (id, options) => deps.output(await deps.remoteMeetings().update(id, change(options), mutation(options, deps)))), 'zm remote-meetings update 123456789 --title "Example planning" --dry-run --json', "remote");
217
206
  label(remote
218
207
  .command("cancel")
219
208
  .description("preview a cancellation; --yes performs it once")
@@ -1 +1 @@
1
- {"version":3,"file":"archive-commands.js","sourceRoot":"","sources":["../src/archive-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archive-commands.js","sourceRoot":"","sources":["../src/archive-commands.ts"],"names":[],"mappings":"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"}
package/dist/bin/zm.js CHANGED
@@ -3,7 +3,8 @@ import { spawn } from "node:child_process";
3
3
  import { join } from "node:path";
4
4
  import { createInterface } from "node:readline/promises";
5
5
  import { fileURLToPath } from "node:url";
6
- import { CliError, systemKeyring } from "@wirecat/cli-base";
6
+ import { CliError, errorObjectOf, exitCodeOfError, isCliError, systemKeyring } from "@wirecat/cli-base";
7
+ import { migrateFolders } from "@wirecat/cli-messaging/background";
7
8
  import { profileAccountKey, readConfig } from "../config.js";
8
9
  import { ZoomError } from "../errors.js";
9
10
  import { loginService, zmPaths } from "../folders.js";
@@ -32,6 +33,7 @@ process.once("SIGINT", cancel);
32
33
  process.once("SIGTERM", cancel);
33
34
  process.stdout.on("error", onPipeError);
34
35
  try {
36
+ migrateFolders({ command: "zm", appName: "zm", envPrefix: "ZM" });
35
37
  const connectStore = createStoreConnector({ env: process.env });
36
38
  const tokens = new TokenManager({
37
39
  get clientId() {
@@ -96,9 +98,16 @@ try {
96
98
  : undefined,
97
99
  });
98
100
  }
99
- catch {
100
- process.stderr.write(`${JSON.stringify({ error: { code: "configuration_error", message: "could not load zm configuration" } })}\n`);
101
- process.exitCode = 3;
101
+ catch (error) {
102
+ if (isCliError(error)) {
103
+ const object = errorObjectOf(error);
104
+ process.stderr.write(`${JSON.stringify(object)}\n`);
105
+ process.exitCode = exitCodeOfError(object);
106
+ }
107
+ else {
108
+ process.stderr.write(`${JSON.stringify({ error: { code: "configuration_error", message: "could not load zm configuration" } })}\n`);
109
+ process.exitCode = 3;
110
+ }
102
111
  }
103
112
  finally {
104
113
  process.removeListener("SIGINT", cancel);
@@ -1 +1 @@
1
- {"version":3,"file":"zm.js","sourceRoot":"","sources":["../../src/bin/zm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zm.js","sourceRoot":"","sources":["../../src/bin/zm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACnC,MAAM,EAAE,MAAM,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC3C,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,MAAM,EAAE,MAAM,OAAO,CAAA;IACrB,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACpD;AACD,eAAO,MAAM,mBAAmB,YAAa,OAAO,QAAQ,oBAAoB,KAAG,IAqDlF,CAAA;AAED,eAAO,MAAM,uBAAuB,YAAa,OAAO,KAAG,IAkB1D,CAAA"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMxC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACnC,MAAM,EAAE,MAAM,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC3C,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B,MAAM,EAAE,MAAM,OAAO,CAAA;IACrB,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACpD;AACD,eAAO,MAAM,mBAAmB,YAAa,OAAO,QAAQ,oBAAoB,KAAG,IAkElF,CAAA;AAED,eAAO,MAAM,uBAAuB,YAAa,OAAO,KAAG,IAoB1D,CAAA"}
package/dist/commands.js CHANGED
@@ -1,7 +1,9 @@
1
- import { projectFields } from "@wirecat/cli-base";
1
+ import { EXIT_CODES, GENERIC_FAILURE, projectFields } from "@wirecat/cli-base";
2
2
  import { annotate, describeOptions, describeProgram, flatten, metaOf, } from "@wirecat/cli-base/commands";
3
3
  import { formatSuggestions, suggest } from "@wirecat/cli-base/completion";
4
4
  import { ZoomError } from "./errors.js";
5
+ import { VERSION } from "./version.js";
6
+ const CONTRACT = 0;
5
7
  export const addStandardCommands = (program, deps) => {
6
8
  annotate(program
7
9
  .command("commands")
@@ -9,13 +11,26 @@ export const addStandardCommands = (program, deps) => {
9
11
  .argument("[path...]", "resource or command path")
10
12
  .action((path) => {
11
13
  const all = describeProgram(program);
12
- const scoped = path.length ? flatten(all).filter((item) => item.path.join(" ") === path.join(" ")) : all;
13
- if (path.length && !scoped.length)
14
- throw new ZoomError("validation_error", "unknown command path; use zm commands --json");
14
+ const scoped = path.length ? scopeOf(all, path) : undefined;
15
+ const commands = scoped ? [scoped.command] : all;
16
+ if (!program.opts().json && !program.opts().jsonl) {
17
+ deps.discovery(flatten(commands).map(({ usage, summary, description, mutates }) => ({
18
+ command: usage,
19
+ description: summary ?? description,
20
+ writes: mutates ? "yes" : "",
21
+ })));
22
+ return;
23
+ }
15
24
  const fields = deps.fields();
16
25
  deps.discovery({
17
- commands: fields ? projectDiscovery(scoped, fields) : scoped,
18
- options: describeOptions(program),
26
+ cli: "zm",
27
+ version: VERSION,
28
+ contract: CONTRACT,
29
+ description: program.description(),
30
+ globalOptions: describeOptions(program),
31
+ ...(scoped ? { scope: scoped.command.path, inheritedOptions: scoped.inheritedOptions } : {}),
32
+ commands: fields ? projectDiscovery(commands, fields) : commands,
33
+ exitCodes: { ok: 0, internal_error: GENERIC_FAILURE, ...EXIT_CODES },
19
34
  });
20
35
  }), { mutates: false, examples: ["zm commands --json"] });
21
36
  annotate(program
@@ -37,9 +52,7 @@ export const addStandardCommands = (program, deps) => {
37
52
  .command("doctor")
38
53
  .description("check local runtime and public config without a login or database")
39
54
  .action(() => deps.output(deps.doctor())), { mutates: false, examples: ["zm doctor --json"] });
40
- const session = program
41
- .command("session")
42
- .description("inspect the saved OAuth session separately from local data profiles");
55
+ const session = program.command("session").description("the saved Zoom login, separate from local data profiles");
43
56
  annotate(session
44
57
  .command("status")
45
58
  .description("show cached login state; remote verification is explicit")
@@ -57,7 +70,7 @@ export const annotateMeetingCommands = (program) => {
57
70
  if (command.commands.length)
58
71
  continue;
59
72
  const path = item.path.join(" ");
60
- const knownLocal = ["config set", "login", "pull", "import", "meetings export"].includes(path);
73
+ const knownLocal = ["config set", "session start", "meetings sync", "meetings import", "meetings export"].includes(path);
61
74
  const mutates = knownLocal || metaOf(command).mutates === true;
62
75
  annotate(command, {
63
76
  origin: "handwritten",
@@ -70,20 +83,33 @@ export const annotateMeetingCommands = (program) => {
70
83
  const exampleFor = (path) => {
71
84
  if (path === "serve")
72
85
  return "zm serve --mcp";
73
- if (path === "login")
74
- return "zm login --interactive";
86
+ if (path === "session start")
87
+ return "zm session start --interactive";
75
88
  const argumentsByPath = {
76
89
  "config set": "account.profile personal",
77
90
  "meetings show": "1",
78
91
  "meetings transcript": "1",
79
92
  "meetings summary": "1",
80
93
  "meetings export": "1 --format markdown",
81
- "meetings search": '"example plan"',
82
94
  "meetings people": '"Alice Example"',
83
- import: "./downloaded-transcripts",
95
+ "meetings import": "./downloaded-transcripts",
84
96
  };
85
97
  return `zm ${path}${argumentsByPath[path] ? ` ${argumentsByPath[path]}` : ""} --json`;
86
98
  };
99
+ const scopeOf = (all, path) => {
100
+ const inheritedOptions = [];
101
+ let available = all;
102
+ let command;
103
+ for (const word of path) {
104
+ if (command?.options.length)
105
+ inheritedOptions.push({ path: command.path, options: command.options });
106
+ command = available.find((item) => item.name === word);
107
+ if (!command)
108
+ throw new ZoomError("validation_error", "unknown command path; use zm commands --json");
109
+ available = command.commands;
110
+ }
111
+ return { command: command, inheritedOptions };
112
+ };
87
113
  const projectDiscovery = (commands, fields) => commands.map((command) => ({
88
114
  ...projectFields(command, fields),
89
115
  path: command.path,