@wirecat/zoom-cli 0.7.3 → 0.9.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 +59 -56
- package/dist/api.d.ts +4 -2
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +4 -3
- package/dist/api.js.map +1 -1
- package/dist/archive-commands.d.ts.map +1 -1
- package/dist/archive-commands.js +37 -48
- package/dist/archive-commands.js.map +1 -1
- package/dist/archive-import.d.ts +1 -1
- package/dist/archive-import.d.ts.map +1 -1
- package/dist/archive-import.js +2 -2
- package/dist/archive-import.js.map +1 -1
- package/dist/archive-transcripts.d.ts +1 -1
- package/dist/archive-transcripts.d.ts.map +1 -1
- package/dist/archive-transcripts.js +1 -1
- package/dist/archive-transcripts.js.map +1 -1
- package/dist/bin/zm.js +14 -9
- package/dist/bin/zm.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +41 -14
- package/dist/commands.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -2
- package/dist/errors.js.map +1 -1
- package/dist/execution.js +2 -2
- package/dist/execution.js.map +1 -1
- package/dist/files.d.ts +4 -2
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +16 -6
- package/dist/files.js.map +1 -1
- package/dist/folders.js +1 -1
- package/dist/folders.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/ingestion-search-commands.d.ts.map +1 -1
- package/dist/ingestion-search-commands.js +12 -11
- package/dist/ingestion-search-commands.js.map +1 -1
- package/dist/keys.d.ts +3 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +16 -0
- package/dist/keys.js.map +1 -0
- package/dist/local-transcription-commands.js +8 -8
- package/dist/local-transcription-commands.js.map +1 -1
- package/dist/local-transcription.d.ts +2 -2
- package/dist/local-transcription.d.ts.map +1 -1
- package/dist/local-transcription.js +2 -2
- package/dist/local-transcription.js.map +1 -1
- package/dist/mcp-server.d.ts +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +59 -54
- package/dist/mcp-server.js.map +1 -1
- package/dist/meeting-context-commands.d.ts.map +1 -1
- package/dist/meeting-context-commands.js +22 -20
- package/dist/meeting-context-commands.js.map +1 -1
- package/dist/meeting-context.d.ts +6 -3
- package/dist/meeting-context.d.ts.map +1 -1
- package/dist/meeting-context.js +12 -4
- package/dist/meeting-context.js.map +1 -1
- package/dist/meeting-integration-commands.js +9 -9
- package/dist/meeting-integration-commands.js.map +1 -1
- package/dist/meeting-integration.d.ts +2 -2
- package/dist/meeting-integration.d.ts.map +1 -1
- package/dist/meeting-integration.js +1 -1
- package/dist/meeting-integration.js.map +1 -1
- package/dist/meeting-search-commands.d.ts +10 -20
- package/dist/meeting-search-commands.d.ts.map +1 -1
- package/dist/meeting-search-commands.js +123 -27
- package/dist/meeting-search-commands.js.map +1 -1
- package/dist/meeting-semantic-commands.d.ts +3 -1
- package/dist/meeting-semantic-commands.d.ts.map +1 -1
- package/dist/meeting-semantic-commands.js +11 -30
- package/dist/meeting-semantic-commands.js.map +1 -1
- package/dist/meeting-semantic.d.ts +2 -2
- package/dist/meeting-semantic.d.ts.map +1 -1
- package/dist/meeting-semantic.js +28 -1
- package/dist/meeting-semantic.js.map +1 -1
- package/dist/ordinary-file.js +3 -3
- package/dist/ordinary-file.js.map +1 -1
- package/dist/output-file.js +2 -2
- package/dist/output-file.js.map +1 -1
- package/dist/program.d.ts +4 -5
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +160 -133
- package/dist/program.js.map +1 -1
- package/dist/recording-archive.d.ts.map +1 -1
- package/dist/recording-archive.js +1 -1
- package/dist/recording-archive.js.map +1 -1
- package/dist/recording-partial-store.d.ts +1 -1
- package/dist/recording-partial-store.d.ts.map +1 -1
- package/dist/recording-promotion-store.d.ts +1 -1
- package/dist/recording-promotion-store.d.ts.map +1 -1
- package/dist/recording-promotion-store.js +1 -1
- package/dist/recording-promotion-store.js.map +1 -1
- package/dist/recording-schedule-commands.js +11 -11
- package/dist/recording-schedule-commands.js.map +1 -1
- package/dist/recording-schedule.d.ts +1 -1
- package/dist/recording-schedule.d.ts.map +1 -1
- package/dist/recording-schedule.js +1 -1
- package/dist/recording-schedule.js.map +1 -1
- package/dist/recording-sync-store.d.ts +1 -1
- package/dist/recording-sync-store.d.ts.map +1 -1
- package/dist/recording-sync-store.js +1 -1
- package/dist/recording-sync-store.js.map +1 -1
- package/dist/recording-sync.d.ts +1 -1
- package/dist/recording-sync.d.ts.map +1 -1
- package/dist/recording-sync.js +1 -1
- package/dist/recording-sync.js.map +1 -1
- package/dist/recordings.d.ts +1 -1
- package/dist/recordings.d.ts.map +1 -1
- package/dist/remote-http.js +2 -2
- package/dist/remote-http.js.map +1 -1
- package/dist/remote-meetings.d.ts +8 -8
- package/dist/remote-meetings.d.ts.map +1 -1
- package/dist/remote-meetings.js +1 -1
- package/dist/remote-meetings.js.map +1 -1
- package/dist/store-connection.d.ts +4 -4
- package/dist/store-connection.d.ts.map +1 -1
- package/dist/store-connection.js +13 -36
- package/dist/store-connection.js.map +1 -1
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +6 -6
- package/dist/tokens.js.map +1 -1
- package/dist/unified-search.d.ts +1 -1
- package/dist/unified-search.d.ts.map +1 -1
- package/dist/unified-search.js.map +1 -1
- package/dist/watch-commands.d.ts +4 -4
- package/dist/watch-commands.d.ts.map +1 -1
- package/dist/watch-commands.js +10 -10
- package/dist/watch-commands.js.map +1 -1
- package/dist/wav-audio.d.ts +1 -1
- package/dist/wav-audio.d.ts.map +1 -1
- package/dist/wav-audio.js +1 -1
- package/dist/wav-audio.js.map +1 -1
- package/package.json +4 -3
- package/skills/zoom-cli/SKILL.md +30 -22
package/README.md
CHANGED
|
@@ -29,8 +29,8 @@ 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
|
|
33
|
-
zm meetings
|
|
32
|
+
zm search meetings "quote" --since-time 2026-09-01 --json
|
|
33
|
+
zm meetings passage meeting:1/42/57/118 --format markdown # the line and its context
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
> **Agent:** You last spoke on 2 October in "Pricing review". You promised Bob a revised quote by
|
|
@@ -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
|
|
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
|
|
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
|
|
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 --
|
|
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 --
|
|
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] ·
|
|
@@ -93,8 +93,8 @@ More: [MCP and skills][docs/mcp.md] · [connect your AI agent][wirecat/en/docs/a
|
|
|
93
93
|
|
|
94
94
|
## Why zm
|
|
95
95
|
|
|
96
|
-
- **Context
|
|
97
|
-
|
|
96
|
+
- **Context across meetings.** Search available hosted meetings and imported transcripts in the shared
|
|
97
|
+
store. Read archived transcripts separately or import them before searching them together.
|
|
98
98
|
- **Local-first.** Meetings live in a SQLite database on your machine. Archived transcripts can be read
|
|
99
99
|
and searched offline, without login.
|
|
100
100
|
- **Every answer has a source.** References such as `meeting:1/42/57/118` point to one passage of one
|
|
@@ -108,17 +108,17 @@ More: [security][docs/security.md] · [Zoom on wirecat.dev][wirecat/en/docs/zoom
|
|
|
108
108
|
## What works today, and what does not yet
|
|
109
109
|
|
|
110
110
|
`zm` is at version 0.x; commands may still change. Today it reads hosted meetings, participants,
|
|
111
|
-
transcripts and AI summaries
|
|
111
|
+
transcripts and AI summaries available to the account through Zoom's official API, imports downloaded
|
|
112
112
|
WebVTT files, archives cloud recordings, transcribes local audio with an installed speech model,
|
|
113
113
|
links meetings to events and people, and creates, changes or cancels simple meetings.
|
|
114
114
|
|
|
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
|
|
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
|
|
@@ -130,31 +130,35 @@ More: [what is planned][gh/cli-meetings/blob/main/docs/dev/roadmap.md] · [Zoom
|
|
|
130
130
|
|
|
131
131
|
| Task | Commands |
|
|
132
132
|
|---|---|
|
|
133
|
-
| Set up and log in | `config show`, `config set <key> <value>`, `
|
|
134
|
-
| Bring meetings in | `
|
|
133
|
+
| Set up and log in | `config show`, `config set <key> <value>`, `session start [--browser <program>]`, `session status [--check]`, `doctor` |
|
|
134
|
+
| Bring meetings in | `meetings sync [--since-time <time>] [--lookback-days <days>]`, `meetings import <folder>`, `watch [api\|files] [folder] --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 | `
|
|
137
|
-
| Evidence and people | `meetings evidence <reference>`, `meetings context <person>`, `meetings link
|
|
138
|
-
| Search by meaning | `meetings
|
|
136
|
+
| Search | `search meetings <query>`, `meetings people <query>`, `search all <query>` |
|
|
137
|
+
| Evidence and people | `meetings passage <reference>`, `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 --
|
|
141
|
-
| Local archive | `recordings archive
|
|
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
|
|
|
145
|
-
Zoom meeting changes, links,
|
|
146
|
-
preview by default and run once with `--yes`; `--dry-run`
|
|
145
|
+
Zoom meeting changes, links, transcription, schedules, explicit `meetings embeddings` generation and
|
|
146
|
+
lock recovery preview by default and run once with `--yes`; `--dry-run` keeps the preview. Word search
|
|
147
|
+
updates its index automatically. Search with `--model` generates missing vectors before ranking; an
|
|
148
|
+
explicitly selected remote embedding endpoint receives those transcript passages and the query.
|
|
147
149
|
|
|
148
150
|
More: [usage][docs/usage.md] · [every command and option][docs/commands.md] · [Zoom on wirecat.dev][wirecat/en/docs/zoom]
|
|
149
151
|
|
|
150
152
|
## Your Zoom app and login
|
|
151
153
|
|
|
152
|
-
`zm` reads your meetings through Zoom's official API
|
|
153
|
-
Public Client OAuth.
|
|
154
|
-
|
|
155
|
-
|
|
154
|
+
`zm` reads your meetings through Zoom's official API using a **configured user-managed Zoom app**
|
|
155
|
+
with Public Client OAuth. Reuse an existing app available to your user or create one. Enable Public
|
|
156
|
+
Client OAuth, copy its Public Client ID, configure the redirect and add the required scopes manually.
|
|
157
|
+
The optional starter manifest supplies neither scopes nor Public Client OAuth. Zoom may show a
|
|
158
|
+
Client Secret, but `zm` does not use it. Recording archives and management need additional scopes.
|
|
159
|
+
Follow the [app setup guide][docs/zoom-app.md]; no credentials file is downloaded.
|
|
156
160
|
|
|
157
|
-
`zm
|
|
161
|
+
`zm session start` opens Zoom's consent page. Zoom redirects to the static page
|
|
158
162
|
`https://wirecat.dev/zoom-callback`, which passes the answer to a listener on your machine; if it
|
|
159
163
|
cannot, paste the `code=…&state=…` parameters it shows. Login checks the state and PKCE verifier and
|
|
160
164
|
stores tokens only in the system keyring. Browser login needs an interactive terminal; piped or JSON
|
|
@@ -181,13 +185,13 @@ More: [profiles][docs/sessions.md#select-a-local-profile] ·
|
|
|
181
185
|
## Pull, import and watch
|
|
182
186
|
|
|
183
187
|
```sh
|
|
184
|
-
zm
|
|
185
|
-
zm import ./downloaded-transcripts # .vtt files from your Zoom portal
|
|
186
|
-
zm watch
|
|
188
|
+
zm meetings sync --lookback-days 7 # hosted meetings, revisiting late transcripts
|
|
189
|
+
zm meetings import ./downloaded-transcripts # .vtt files from your Zoom portal
|
|
190
|
+
zm watch api --lookback-days 7 --jsonl # keep pulling in the foreground
|
|
187
191
|
```
|
|
188
192
|
|
|
189
193
|
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
|
|
194
|
+
`--since-time`. A failed occurrence leaves the cursor unchanged for the next pull. Imported files follow
|
|
191
195
|
the exporter's `YYYY-MM-DD_HHMM_topic-slug.vtt` names; set `files.timezone` to the zone they were
|
|
192
196
|
written in (UTC by default). Participants of imported files stay unknown, and speaker names are
|
|
193
197
|
never turned into identities.
|
|
@@ -197,16 +201,16 @@ More: [the local archive][docs/archive.md] · [Zoom on wirecat.dev][wirecat/en/d
|
|
|
197
201
|
## Archive cloud recordings
|
|
198
202
|
|
|
199
203
|
```sh
|
|
200
|
-
zm recordings sync --
|
|
201
|
-
zm recordings archive
|
|
202
|
-
zm
|
|
204
|
+
zm recordings sync --since-time 2026-01-01 --until-time 2026-10-10 --destination ./zoom-archive --jsonl
|
|
205
|
+
zm recordings archive check ./zoom-archive --offline --json
|
|
206
|
+
zm search meetings "example plan" --archive ./zoom-archive --offline --json
|
|
203
207
|
```
|
|
204
208
|
|
|
205
209
|
Sync covers up to ten years in monthly requests and downloads serially, streaming to disk. Each
|
|
206
210
|
occurrence gets a manifest with sizes and SHA-256 checksums, never signed URLs or tokens. Existing
|
|
207
211
|
files are never overwritten; repeated runs skip verified files. With a profile, interrupted downloads
|
|
208
|
-
resume safely. `recordings archive transcript
|
|
209
|
-
database; `recordings archive import` appends them to your stored meetings. `recordings schedule
|
|
212
|
+
resume safely. `recordings archive transcript` and `search meetings --archive` read verified WebVTT offline
|
|
213
|
+
without a database; `recordings archive import` appends them to your stored meetings. `recordings schedule
|
|
210
214
|
create --yes` installs a daily systemd user timer (Linux only).
|
|
211
215
|
|
|
212
216
|
What you can download depends on Zoom permissions, retention and your plan. Recordings of meetings
|
|
@@ -218,18 +222,17 @@ More: [archive cloud recordings][docs/archive.md#archive-cloud-recordings] ·
|
|
|
218
222
|
## Search and evidence
|
|
219
223
|
|
|
220
224
|
```sh
|
|
221
|
-
zm meetings
|
|
222
|
-
zm meetings search-page "example plan" --limit 20 --json # word search with continuation
|
|
225
|
+
zm search meetings "example plan" --limit 20 --json # word search with continuation
|
|
223
226
|
zm meetings evidence meeting:3/15/20/0 --cues 100 --json # the exact passage
|
|
224
227
|
zm meetings context person:7 --meetings 10 --json # meetings linked to a person
|
|
225
228
|
```
|
|
226
229
|
|
|
227
|
-
`search
|
|
228
|
-
pages with an opaque `--
|
|
230
|
+
`search meetings` indexes new meetings first, matches every word by prefix or by stored English, Spanish
|
|
231
|
+
and Russian word forms, and pages with an opaque `--cursor`. References have the form
|
|
229
232
|
`meeting:<account>/<meeting>[/<transcript>[/<cue-position>]]`, stay inside the selected account and
|
|
230
|
-
keep pointing at the same revision after a correction.
|
|
231
|
-
|
|
232
|
-
`
|
|
233
|
+
keep pointing at the same revision after a correction. Bounded reads report their
|
|
234
|
+
coverage and limits; archive completeness can remain unknown. `search all --only meetings,notes` adds store-wide notes. `search meetings
|
|
235
|
+
--model` searches by meaning with a model you name; nothing is downloaded for you.
|
|
233
236
|
|
|
234
237
|
More: [search and evidence][docs/search.md] · [topic search][docs/topic-search.md] ·
|
|
235
238
|
[Zoom on wirecat.dev][wirecat/en/docs/zoom]
|
|
@@ -254,10 +257,10 @@ with `["serve", "--mcp"]`:
|
|
|
254
257
|
```
|
|
255
258
|
|
|
256
259
|
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 <
|
|
258
|
-
|
|
260
|
+
search and participant search. `--meeting-context`, `--unified-search` and `--semantic --model <model>`
|
|
261
|
+
enable cited passages, shared search and ranking of existing semantic vectors. It reads only the selected profile, and never exposes
|
|
259
262
|
file exports, Zoom changes, embedding generation or task creation. A desktop app may need the full
|
|
260
|
-
path from `
|
|
263
|
+
path from `command -v zm` (Linux/macOS) or `where.exe zm` (Windows), and the same `ZM_CONFIG_DIR` or `MESSAGING_STORE` in the entry's `env`.
|
|
261
264
|
|
|
262
265
|
More: [MCP and skills][docs/mcp.md] · [MCP and skills on wirecat.dev][wirecat/en/docs/mcp] ·
|
|
263
266
|
[connect your AI agent][wirecat/en/docs/agents]
|
|
@@ -265,7 +268,7 @@ More: [MCP and skills][docs/mcp.md] · [MCP and skills on wirecat.dev][wirecat/e
|
|
|
265
268
|
## Manage Zoom meetings
|
|
266
269
|
|
|
267
270
|
```sh
|
|
268
|
-
zm remote-meetings create --
|
|
271
|
+
zm remote-meetings create --title "Example planning" --start-time 2026-10-20T10:00:00Z --duration-minutes 30 --json
|
|
269
272
|
zm remote-meetings cancel 123456789 --dry-run --json
|
|
270
273
|
```
|
|
271
274
|
|
|
@@ -291,7 +294,7 @@ More: [usage][docs/usage.md] · [Zoom on wirecat.dev][wirecat/en/docs/zoom]
|
|
|
291
294
|
|---|---|
|
|
292
295
|
| `zoom.clientId` | your Zoom app's Public Client ID |
|
|
293
296
|
| `account.profile` | the local profile label |
|
|
294
|
-
| `source` | `api` or `files` for `
|
|
297
|
+
| `source` | `api` or `files` for `meetings sync` and `watch` |
|
|
295
298
|
| `files.folder`, `files.timezone` | the transcript folder and the zone of its filenames |
|
|
296
299
|
| `ZM_CONFIG_DIR` | another configuration directory (also changes the keyring entry) |
|
|
297
300
|
| `MESSAGING_STORE` | another shared database path |
|
|
@@ -301,7 +304,7 @@ More: [configuration][docs/configuration.md] · [Zoom on wirecat.dev][wirecat/en
|
|
|
301
304
|
|
|
302
305
|
## Security model
|
|
303
306
|
|
|
304
|
-
-
|
|
307
|
+
- A configured Zoom public-client app with PKCE; no client secret is used.
|
|
305
308
|
- Tokens only in the system keyring, never in a config file; a missing keyring is an error.
|
|
306
309
|
- Network: Zoom's API, plus an embedding endpoint only when you name one. `--offline` refuses both.
|
|
307
310
|
- Manifests and saved jobs never hold signed URLs, tokens or credentials; diagnostics omit raw
|
|
@@ -314,9 +317,10 @@ More: [security][docs/security.md] · [security on wirecat.dev][wirecat/en/docs/
|
|
|
314
317
|
|
|
315
318
|
- **"Invalid redirect" from Zoom:** the manifest import left the redirect URL or Public Client OAuth
|
|
316
319
|
unset; fill them in by hand.
|
|
317
|
-
- **No transcripts:**
|
|
318
|
-
|
|
319
|
-
- **
|
|
320
|
+
- **No transcripts:** check generation, retention and permissions in the [app guide][docs/zoom-app.md].
|
|
321
|
+
Enabling a setting does not restore deleted text; attended meetings may need `zm meetings import`.
|
|
322
|
+
- **Missing-scope error:** add the named scope in your app, then `zm session start` again.
|
|
323
|
+
- **Browser does not start:** `zm session start --browser firefox`, or paste the callback parameters.
|
|
320
324
|
- **Lock left after a crash:** `zm recordings archive locks`, then `recover` with `--yes`.
|
|
321
325
|
|
|
322
326
|
More: [troubleshooting][docs/troubleshooting.md] · [Zoom on wirecat.dev][wirecat/en/docs/zoom]
|
|
@@ -350,8 +354,7 @@ More: [wirecat.dev](https://wirecat.dev) · [connect your AI agent][wirecat/en/d
|
|
|
350
354
|
| [Security][docs/security.md] | what reaches the disk and the network |
|
|
351
355
|
| [Architecture][docs/dev/architecture.md] · [Testing][docs/dev/testing.md] · [Releasing][docs/dev/releasing.md] | for contributors |
|
|
352
356
|
|
|
353
|
-
The
|
|
354
|
-
are the reference.
|
|
357
|
+
The [Zoom guides on wirecat.dev][wirecat/en/docs/zoom] include setup, search and archive instructions.
|
|
355
358
|
|
|
356
359
|
## Development
|
|
357
360
|
|
|
@@ -397,9 +400,9 @@ More: [development setup][docs/dev/development.md] · [test matrix][docs/dev/tes
|
|
|
397
400
|
[docs/troubleshooting.md]: https://github.com/WireCatLabs/zoom-cli/blob/main/docs/troubleshooting.md
|
|
398
401
|
[docs/usage.md]: https://github.com/WireCatLabs/zoom-cli/blob/main/docs/usage.md
|
|
399
402
|
[docs/zoom-app.md]: https://github.com/WireCatLabs/zoom-cli/blob/main/docs/zoom-app.md
|
|
400
|
-
[gh/cli-meetings/blob/main/docs/dev/roadmap.md]: https://github.com/WireCatLabs/cli-
|
|
403
|
+
[gh/cli-meetings/blob/main/docs/dev/roadmap.md]: https://github.com/WireCatLabs/cli-core/blob/main/docs/dev/MEETINGS.md#providers-next
|
|
401
404
|
[license]: https://github.com/WireCatLabs/zoom-cli/blob/main/LICENSE
|
|
402
405
|
[wirecat/en/docs/agents]: https://wirecat.dev/en/docs/agents
|
|
403
406
|
[wirecat/en/docs/mcp]: https://wirecat.dev/en/docs/mcp
|
|
404
407
|
[wirecat/en/docs/security]: https://wirecat.dev/en/docs/security
|
|
405
|
-
[wirecat/en/docs/zoom]: https://wirecat.dev/en/docs/
|
|
408
|
+
[wirecat/en/docs/zoom]: https://wirecat.dev/en/docs/zm
|
package/dist/api.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { type MeetingSource, type SourceMeeting, type SourceParticipant, type SummaryContent } from "@wirecat/cli-
|
|
1
|
+
import { type MeetingSource, type SourceMeeting, type SourceParticipant, type SummaryContent } from "@wirecat/cli-core/meetings";
|
|
2
2
|
import { type RemoteOptions } from "./remote-http.js";
|
|
3
3
|
import type { TokenManager } from "./tokens.js";
|
|
4
|
+
/** A mislabeled HTML login page must not become an empty saved transcript. */
|
|
5
|
+
export declare const TRANSCRIPT_MAX_BYTES: number;
|
|
4
6
|
export declare const encodeUuid: (uuid: string) => string;
|
|
5
7
|
export declare class ZoomApiSource implements MeetingSource {
|
|
6
8
|
private readonly tokens;
|
|
@@ -14,7 +16,7 @@ export declare class ZoomApiSource implements MeetingSource {
|
|
|
14
16
|
private pages;
|
|
15
17
|
meetings(since: string): Promise<SourceMeeting[]>;
|
|
16
18
|
participants(id: string): Promise<SourceParticipant[]>;
|
|
17
|
-
transcript(id: string): Promise<import("@wirecat/cli-
|
|
19
|
+
transcript(id: string): Promise<import("@wirecat/cli-core/meetings").TranscriptLine[] | null>;
|
|
18
20
|
summary(id: string): Promise<SummaryContent | null>;
|
|
19
21
|
chat(): Promise<null>;
|
|
20
22
|
files(): Promise<null>;
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,KAAK,aAAa,EAAc,MAAM,kBAAkB,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,QAAmB,CAAA;AAgBpD,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAC6E,CAAA;AAavH,qBAAa,aAAc,YAAW,aAAa;IAM/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,QAAQ,CAAC,QAAQ,UAAS;IAC1B,QAAQ,CAAC,gBAAgB,SAAQ;IACjC,QAAQ,CAAC,IAAI,SAAQ;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,YACmB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,KAAK,EACtC,OAAO,GAAE,aAAkB,EAG5B;IACD,OAAO,CAAC,OAAO;YAKD,KAAK;IAeb,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAqEtD;IACK,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAoE3D;IACK,UAAU,CAAC,EAAE,EAAE,MAAM,yEAkF1B;IAEK,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAmCxD;IACK,IAAI,kBAET;IACK,KAAK,kBAEV;CACF"}
|
package/dist/api.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { statusToCode } from "@wirecat/cli-base/http";
|
|
2
|
-
import { parseVtt, } from "@wirecat/cli-
|
|
2
|
+
import { parseVtt, } from "@wirecat/cli-core/meetings";
|
|
3
3
|
import { number, object, string, ZoomError } from "./errors.js";
|
|
4
4
|
import { ZoomRemote } from "./remote-http.js";
|
|
5
|
+
/** A mislabeled HTML login page must not become an empty saved transcript. */
|
|
6
|
+
export const TRANSCRIPT_MAX_BYTES = 10 * 1024 * 1024;
|
|
5
7
|
const json = (value) => {
|
|
6
8
|
if (value === null || typeof value === "boolean" || typeof value === "string")
|
|
7
9
|
return value;
|
|
@@ -248,8 +250,7 @@ export class ZoomApiSource {
|
|
|
248
250
|
}
|
|
249
251
|
if (!response.ok)
|
|
250
252
|
throw new ZoomError(statusToCode(response.status), `Transcript download failed (HTTP ${response.status})`);
|
|
251
|
-
|
|
252
|
-
const maxBytes = 10 * 1024 * 1024;
|
|
253
|
+
const maxBytes = TRANSCRIPT_MAX_BYTES;
|
|
253
254
|
const reader = response.body?.getReader();
|
|
254
255
|
if (!reader)
|
|
255
256
|
throw new ZoomError("invalid_response", "Zoom returned an invalid transcript");
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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"}
|
package/dist/archive-commands.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { annotate } from "@wirecat/cli-base/commands";
|
|
2
|
-
import { listed, recordingWindows } from "@wirecat/cli-
|
|
2
|
+
import { listed, recordingWindows } from "@wirecat/cli-core/meetings";
|
|
3
3
|
import { ZoomError } from "./errors.js";
|
|
4
4
|
import { bytes } from "./execution.js";
|
|
5
5
|
import { validateDownloadOptions } from "./recording-archive.js";
|
|
@@ -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("--
|
|
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("--
|
|
62
|
-
.option("--
|
|
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.
|
|
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", "
|
|
69
|
-
const from = options.
|
|
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 --
|
|
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("
|
|
75
|
-
.requiredOption("--
|
|
76
|
-
.requiredOption("--
|
|
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-
|
|
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.
|
|
90
|
-
if (options.
|
|
91
|
-
recordingWindows(options.
|
|
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.
|
|
96
|
-
to: options.
|
|
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.
|
|
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 --
|
|
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>", "
|
|
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
|
|
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("
|
|
163
|
-
.description("
|
|
164
|
-
.argument("<directory>")
|
|
165
|
-
.action(async (directory) => deps.output(listed(await deps.archive.inspect(directory, { signal: deps.signal() })))), "zm recordings archive
|
|
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("
|
|
168
|
-
.description("
|
|
169
|
-
.argument("<directory>")
|
|
170
|
-
.action(async (directory) => deps.output(listed(await deps.archive.verify(directory, { signal: deps.signal() })))), "zm recordings archive
|
|
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("
|
|
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
|
|
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 --
|
|
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 --
|
|
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")
|