@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/skills/zoom-cli/SKILL.md
CHANGED
|
@@ -13,24 +13,24 @@ on stderr; use `--fields` to limit returned content. `zm doctor --json` checks l
|
|
|
13
13
|
|
|
14
14
|
## Recording archives
|
|
15
15
|
|
|
16
|
-
Use `recordings sync --
|
|
16
|
+
Use `recordings sync --since-time <date> --until-time <date> --destination <directory> --jsonl` to archive history
|
|
17
17
|
across months. It emits serial occurrence receipts and accepts up to ten calendar years.
|
|
18
18
|
Use `recordings list` to find cloud recording occurrences, then `recordings show <id-or-uuid>` to
|
|
19
19
|
inspect assets. Download with `recordings download <id-or-uuid> --destination <directory>`.
|
|
20
20
|
Prefer occurrence UUIDs for recurring meetings. Download access depends on Zoom scopes and the
|
|
21
21
|
signed-in account; attending a meeting does not imply access to its recording API.
|
|
22
22
|
|
|
23
|
-
Re-run against the same destination to skip verified manifest entries. Use `recordings archive
|
|
23
|
+
Re-run against the same destination to skip verified manifest entries. Use `recordings archive check`
|
|
24
24
|
for local checksums; it works with `--offline`. The receipt distinguishes downloaded, skipped and
|
|
25
25
|
unavailable assets. A failed transfer can leave earlier completed files; retry starts the incomplete
|
|
26
26
|
file again. Existing files are never overwritten. Do not infer HTTP byte-range resume.
|
|
27
27
|
|
|
28
28
|
Read cues with `recordings archive transcript <directory>` or search their text with
|
|
29
|
-
`
|
|
29
|
+
`search meetings <query> --archive <directory> --limit 100`. Both work offline without configuration,
|
|
30
30
|
login or a database and verify each WebVTT file they read before returning results. Search can stop
|
|
31
31
|
before reading later files once it proves another match beyond the limit. Select `--uuid` or
|
|
32
32
|
comma-separated `--file-ids`; `--max-bytes` defaults to 8 MiB per file. Search is literal, normalized
|
|
33
|
-
and case-insensitive, with a maximum of 1000 matches. When `
|
|
33
|
+
and case-insensitive, with a maximum of 1000 matches. When `has_more` is true, increase the limit or
|
|
34
34
|
narrow the occurrence, file or query selection;
|
|
35
35
|
there is no continuation cursor. These reads do not import archive assets into the database.
|
|
36
36
|
|
|
@@ -49,32 +49,32 @@ adopt untracked files. Keep active and foreign locks intact.
|
|
|
49
49
|
## Stored meeting content
|
|
50
50
|
|
|
51
51
|
Stored `meetings` ids are local database ids, different from remote Zoom ids. Use `meetings show`,
|
|
52
|
-
`transcript`, `summary` and `search` for local reads. `transcript --history` includes retained versions.
|
|
52
|
+
`transcript`, `summary` and `search meetings` for local reads. `transcript --history` includes retained versions.
|
|
53
53
|
Export Markdown or VTT with `meetings export <id> --format markdown|vtt`; file output requires an
|
|
54
54
|
explicit `--output` path and never overwrites an existing file. VTT export requires an unambiguous
|
|
55
55
|
current transcript or an explicit transcript id.
|
|
56
56
|
|
|
57
57
|
Store commands use the shared SQLite database; `MESSAGING_STORE` selects an explicit path. Select a
|
|
58
|
-
local profile before import or pull. Reads require existing profile data; they do not register it. `
|
|
58
|
+
local profile before import or pull. Reads require existing profile data; they do not register it. `meetings sync --lookback-days` revisits late
|
|
59
59
|
transcripts. File imports preserve the API pull cursor. Serialize ingestion for the same account.
|
|
60
60
|
Local profile labels group stored data and do not select a different OAuth account.
|
|
61
61
|
|
|
62
|
-
`zm watch <folder> --jsonl` rescans legacy transcript files in the foreground; each cycle closes its
|
|
62
|
+
`zm watch files <folder> --jsonl` rescans legacy transcript files in the foreground; each cycle closes its
|
|
63
63
|
connection before emitting a receipt. Stop with Ctrl-C. Fully completed late receipts have at most
|
|
64
64
|
one second to flush; cancellation never starts another cycle. Hashed cloud archive VTT assets use
|
|
65
65
|
`recordings archive import`, separately from legacy folder import.
|
|
66
66
|
|
|
67
|
-
Use `zm watch
|
|
68
|
-
transcripts. Without
|
|
69
|
-
the configured folder. `--since` and `--lookback-days` apply only to API watching. Configuration is
|
|
67
|
+
Use `zm watch api --lookback-days 7 --jsonl` for repeated online pulls that revisit late
|
|
68
|
+
transcripts. Without `api` or `files`, watch uses the configured source; `files` without a folder
|
|
69
|
+
uses the configured folder. `--since-time` and `--lookback-days` apply only to API watching. Configuration is
|
|
70
70
|
captured before the first cycle, so restart to change profiles or source settings.
|
|
71
|
-
`--since` is the initial bound until a cursor write succeeds; later cycles use cursor plus overlap.
|
|
71
|
+
`--since-time` is the initial bound until a cursor write succeeds; later cycles use cursor plus overlap.
|
|
72
72
|
The selected overlap also subtracts from the initial bound.
|
|
73
73
|
|
|
74
74
|
`zm serve --mcp` provides seven read-only stored meeting tools. Discovery opens no database; reads
|
|
75
|
-
use the selected account. MCP uses its own framing, so omit JSON/JSONL/field-selection flags. `--meeting-context` adds
|
|
75
|
+
use the selected account. MCP uses its own framing, so omit JSON/JSONL/field-selection flags. `--meeting-context` adds four
|
|
76
76
|
read-only context tools; `--unified-search` adds one meetings-only shared search tool;
|
|
77
|
-
`--semantic --model <
|
|
77
|
+
`--semantic --model <model>` lets `search_meetings` rank existing vectors with `by_meaning`. Remote model selection also requires
|
|
78
78
|
`--base-url` and `--dims`. The server fixes the model at startup and the profile on its first read.
|
|
79
79
|
Clients cannot select another model or account. Generation and task creation are not MCP tools.
|
|
80
80
|
|
|
@@ -84,23 +84,29 @@ database held open by another process is kept until a later default-path open ca
|
|
|
84
84
|
|
|
85
85
|
## Evidence, context and shared search
|
|
86
86
|
|
|
87
|
+
Transcript word-search hits include a retained cue `ref`. Use `meetings passage <ref> --before-n 3
|
|
88
|
+
--after-n 3 --format markdown` to inspect nearby lines, or `--json` for structured cues. Context has
|
|
89
|
+
explicit boundaries and byte clipping; inclusive `before_ref`/`after_ref` anchors overlap. Historical
|
|
90
|
+
revisions remain readable and are marked superseded. `meeting_passage` is available with the
|
|
91
|
+
MCP `--meeting-context` option; it cannot select another account.
|
|
92
|
+
|
|
87
93
|
Use `meetings evidence meeting:<account>/<meeting>[/<transcript>[/<cue-position>]]` for bounded
|
|
88
94
|
stored evidence. Historical transcript references remain stable. Follow returned coverage and
|
|
89
|
-
continuation fields; use `--
|
|
95
|
+
continuation fields; use `--cursor` for a cue reference or `--after-transcript-id` for revision scans,
|
|
90
96
|
never both. Bound content with `--cues` and `--bytes`, and work with `--max-read-bytes` and
|
|
91
97
|
`--max-transcript-pages`. Do not treat a bounded page as complete history.
|
|
92
98
|
|
|
93
99
|
Use `meetings context person:<id>` for identity-linked context in the selected account. It does not
|
|
94
100
|
match speakers by name or prove that a linked participant spoke. Pending indexes and scan limits
|
|
95
|
-
can leave context incomplete. `meetings task-proposal <reference> --
|
|
101
|
+
can leave context incomplete. `meetings task-proposal <reference> --type question|request|mention|promise`
|
|
96
102
|
is read-only: `applied: false` and `persistence: "proposal-only"` do not mean a task was created.
|
|
97
103
|
|
|
98
104
|
`search all <query>` searches meetings by default. Broader `--only messages,mail,notes,meetings`
|
|
99
105
|
is explicit. Messages use the selected local account, mail includes stored email accounts, and
|
|
100
106
|
notes are store-global. Meetings use word prefixes; unsupported syntax or exact queries
|
|
101
|
-
are reported as skipped. Resume meetings-only results using the returned `meetings.
|
|
107
|
+
are reported as skipped. Resume meetings-only results using the returned `meetings.next_cursor` as
|
|
102
108
|
`--meeting-cursor '<json>'`, bound to account and query. JSONL retains the entire report, including
|
|
103
|
-
coverage, skips and cursors.
|
|
109
|
+
coverage, skips and cursors.
|
|
104
110
|
|
|
105
111
|
## Explicit vector work
|
|
106
112
|
|
|
@@ -111,10 +117,12 @@ models require explicit `--base-url` and `--dims`; OpenAI uses `OPENAI_API_KEY`.
|
|
|
111
117
|
is refused with `--offline`. Keep credentials out of endpoint URLs and output.
|
|
112
118
|
|
|
113
119
|
`--after-transcript-id` resumes chunk rebuilding; `--after-hash` resumes missing vectors. Current
|
|
114
|
-
revision hashes are rechecked before save. `meetings
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
120
|
+
revision hashes are rechecked before save. `search meetings <query> --model <model>` searches by
|
|
121
|
+
meaning: it first splits current transcripts again and embeds passages without a vector for that
|
|
122
|
+
model (with a remote model, those passages are sent to it), then ranks. Store filters do not apply.
|
|
123
|
+
Ranking covers scanned candidates, not all history. `--cursor` continues candidate scanning rather
|
|
124
|
+
than globally ranked pagination. The MCP `search_meetings` tool with `by_meaning` only reads
|
|
125
|
+
existing vectors. Index and archive completeness remain unknown. Use returned
|
|
118
126
|
candidate coverage and the explicit row/text byte bounds.
|
|
119
127
|
|
|
120
128
|
## Remote meeting changes
|
|
@@ -137,4 +145,4 @@ bounded by `--max-output-bytes`, separate from the download's per-file `--max-by
|
|
|
137
145
|
|
|
138
146
|
## Bounded context-filtered search
|
|
139
147
|
|
|
140
|
-
Use `meetings
|
|
148
|
+
Use `search meetings <query>` with `--since-time`/`--until-time` and optionally `--identity-id`, `--person-id`, `--event-id`, `--series-id`, `--project`, `--tag` or `--topic`. It indexes newly stored meetings before reading; there is no separate index step. Identity IDs come from observed participant results; person IDs follow explicit identity links. Filters select meetings, never attribute cue speech. Project names, keys and aliases resolve existing vocabulary and require confirmed membership; labels require explicit meeting taggings. Do not silently infer membership from matching words or merge similar participant names. Missing or ambiguous names fail. Inspect pending indexing and unknown archive coverage even for empty pages. `search_meetings` exposes the same selected-account MCP read.
|