@wirecat/zoom-cli 0.2.2 → 0.3.1
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 +98 -3
- package/dist/archive-import.d.ts +27 -0
- package/dist/archive-import.d.ts.map +1 -0
- package/dist/archive-import.js +125 -0
- package/dist/archive-import.js.map +1 -0
- package/dist/archive-transcripts.d.ts.map +1 -1
- package/dist/archive-transcripts.js +3 -3
- package/dist/archive-transcripts.js.map +1 -1
- package/dist/bin/zm.js +6 -1
- package/dist/bin/zm.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/ingestion-search-commands.d.ts +15 -0
- package/dist/ingestion-search-commands.d.ts.map +1 -0
- package/dist/ingestion-search-commands.js +66 -0
- package/dist/ingestion-search-commands.js.map +1 -0
- package/dist/mcp-server.d.ts +6 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +209 -6
- package/dist/mcp-server.js.map +1 -1
- package/dist/meeting-context-commands.d.ts +8 -0
- package/dist/meeting-context-commands.d.ts.map +1 -0
- package/dist/meeting-context-commands.js +77 -0
- package/dist/meeting-context-commands.js.map +1 -0
- package/dist/meeting-context.d.ts +30 -0
- package/dist/meeting-context.d.ts.map +1 -0
- package/dist/meeting-context.js +119 -0
- package/dist/meeting-context.js.map +1 -0
- package/dist/meeting-semantic-commands.d.ts +38 -0
- package/dist/meeting-semantic-commands.d.ts.map +1 -0
- package/dist/meeting-semantic-commands.js +98 -0
- package/dist/meeting-semantic-commands.js.map +1 -0
- package/dist/meeting-semantic.d.ts +10 -0
- package/dist/meeting-semantic.d.ts.map +1 -0
- package/dist/meeting-semantic.js +70 -0
- package/dist/meeting-semantic.js.map +1 -0
- package/dist/ordinary-file.d.ts +4 -0
- package/dist/ordinary-file.d.ts.map +1 -0
- package/dist/ordinary-file.js +51 -0
- package/dist/ordinary-file.js.map +1 -0
- package/dist/program.d.ts +16 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +138 -9
- package/dist/program.js.map +1 -1
- package/dist/recording-archive.d.ts.map +1 -1
- package/dist/recording-archive.js +2 -6
- package/dist/recording-archive.js.map +1 -1
- package/dist/store-connection.d.ts +1 -1
- package/dist/store-connection.d.ts.map +1 -1
- package/dist/store-connection.js +39 -2
- package/dist/store-connection.js.map +1 -1
- package/dist/unified-search.d.ts +6 -0
- package/dist/unified-search.d.ts.map +1 -0
- package/dist/unified-search.js +58 -0
- package/dist/unified-search.js.map +1 -0
- package/package.json +15 -7
- package/skills/zoom-cli/SKILL.md +54 -4
package/README.md
CHANGED
|
@@ -47,6 +47,11 @@ is an error; tokens are never written to a config file.
|
|
|
47
47
|
| `meetings summary <meeting>` | read stored summaries |
|
|
48
48
|
| `meetings export <meeting> --format markdown\|vtt` | export stored meeting content |
|
|
49
49
|
| `meetings search <query>`, `meetings people <query>` | find stored text or participants |
|
|
50
|
+
| `meetings evidence <reference>`, `meetings context <person>` | read bounded evidence or identity-linked person context |
|
|
51
|
+
| `meetings task-proposal <reference> --kind <kind>` | preview a task with meeting provenance |
|
|
52
|
+
| `meetings semantic <query> --model <id>` | rank scanned stored vectors with an explicit query model |
|
|
53
|
+
| `meetings embeddings --model <id>` | preview local vector generation; `--yes` applies one bounded batch |
|
|
54
|
+
| `search all <query>` | search meetings by default, or explicitly selected shared resources |
|
|
50
55
|
| `events list` | read stored events |
|
|
51
56
|
| `watch [folder] --source api\|files --jsonl` | repeatedly ingest the configured source in the foreground |
|
|
52
57
|
| `recordings list`, `recordings show <meeting>` | discover cloud recordings and asset metadata |
|
|
@@ -56,6 +61,7 @@ is an error; tokens are never written to a config file.
|
|
|
56
61
|
| `recordings archive recover <directory>` | preview recovery of stale local locks |
|
|
57
62
|
| `recordings archive transcript <directory>` | read verified archived WebVTT cues without a database |
|
|
58
63
|
| `recordings archive search <directory> <query>` | search verified archived cue text without a database |
|
|
64
|
+
| `recordings archive import <directory>` | verify archived VTT assets and append them to stored occurrences |
|
|
59
65
|
| `remote-meetings list\|show\|invitation` | read upcoming Zoom meetings and invitations |
|
|
60
66
|
| `remote-meetings create\|update\|cancel` | preview or apply a simple Zoom meeting change |
|
|
61
67
|
| `serve --mcp` | serve read-only stored meeting tools over MCP stdio |
|
|
@@ -103,6 +109,11 @@ existing profile and never register an account; import transcripts or pull first
|
|
|
103
109
|
meetings exist. `MESSAGING_STORE` overrides the shared database path for all these commands and MCP
|
|
104
110
|
reads. Metadata, help, configuration and login commands do not open the database.
|
|
105
111
|
|
|
112
|
+
The shared store uses `wirecat.db`. Opening its default path deletes the legacy unencrypted
|
|
113
|
+
`messages.db` and its `-wal` and `-shm` sidecars, without migrating them. The legacy files are kept
|
|
114
|
+
when `MESSAGING_STORE` is set, an explicit store path is supplied, or another process holds the
|
|
115
|
+
legacy database open. A later default-path open retries deletion after that process closes.
|
|
116
|
+
|
|
106
117
|
## Recover from errors
|
|
107
118
|
|
|
108
119
|
If the browser cannot start, select an installed browser with `--browser firefox`. In an interactive
|
|
@@ -125,8 +136,21 @@ exporter's `YYYY-MM-DD_HHMM_topic-slug.vtt` format. Occurrence ids derive from t
|
|
|
125
136
|
normalized topic; files carry no Zoom occurrence UUID. Participants remain unknown, and speaker
|
|
126
137
|
names are kept without guessing an identity.
|
|
127
138
|
|
|
128
|
-
Cloud archive assets use hashed filenames and retain their identity in manifests.
|
|
129
|
-
|
|
139
|
+
Cloud archive assets use hashed filenames and retain their identity in manifests. Use a separate
|
|
140
|
+
command to import these assets into the selected local profile:
|
|
141
|
+
|
|
142
|
+
```sh
|
|
143
|
+
zm recordings archive import ./zoom-archive --offline --jsonl
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Import verifies every selected VTT asset before opening the store. The default limits are 8 MiB
|
|
147
|
+
per file and 64 MiB in total; use `--max-bytes` and `--max-total-bytes` to change them. Select an
|
|
148
|
+
occurrence with `--uuid`, or assets with comma-separated `--file-ids`. Each occurrence is appended
|
|
149
|
+
atomically by its raw Zoom UUID, preserving other transcripts, summaries, participants and the
|
|
150
|
+
pull cursor. Corrected content retains earlier revisions; identical asset hashes are idempotent.
|
|
151
|
+
An occurrence with no known start time can receive transcripts only if it already exists. Receipts
|
|
152
|
+
report acknowledged or unavailable occurrences; they do not distinguish creation from replay.
|
|
153
|
+
Earlier acknowledged occurrences can remain committed if a later append fails.
|
|
130
154
|
|
|
131
155
|
Read or search archived transcripts directly:
|
|
132
156
|
|
|
@@ -202,6 +226,67 @@ and preview `recordings archive recover`. Add `--yes` to remove recognized locks
|
|
|
202
226
|
on this machine; active, foreign and unrecognized locks are preserved. Recovery removes stale lock
|
|
203
227
|
markers only. It does not repair an incomplete manifest or adopt an untracked file.
|
|
204
228
|
|
|
229
|
+
## Search and read evidence
|
|
230
|
+
|
|
231
|
+
`meetings search` keeps its existing literal transcript search. `search all` uses the shared search
|
|
232
|
+
service and searches only meetings by default:
|
|
233
|
+
|
|
234
|
+
```sh
|
|
235
|
+
zm search all "example plan" --limit 100 --max-meetings 100 --json
|
|
236
|
+
zm meetings evidence meeting:3/15/20/0 --cues 100 --bytes 65536 --json
|
|
237
|
+
zm meetings context person:7 --meetings 10 --scan-limit 1000 --json
|
|
238
|
+
zm meetings task-proposal meeting:3/15/20/0 --kind promise --json
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
Meeting references have the form `meeting:<account>/<meeting>[/<transcript>[/<cue-position>]]`.
|
|
242
|
+
They are restricted to the selected local account. Transcript references retain historical revision
|
|
243
|
+
identity. Evidence bounds both returned content and database reads; resume with its returned cue
|
|
244
|
+
reference using `--after`, or its revision cursor using `--after-transcript-id`. These continuation
|
|
245
|
+
options are mutually exclusive. `--max-read-bytes` defaults to 4 MiB per page and
|
|
246
|
+
`--max-transcript-pages` bounds revision scanning, including empty revisions. Follow the returned
|
|
247
|
+
continuation and completeness fields rather than assuming a bounded response is exhaustive.
|
|
248
|
+
|
|
249
|
+
Person context uses stored identity links and account presence, without matching speaker names.
|
|
250
|
+
A person linked to a meeting is not necessarily a speaker. Pending derived indexes or bounded scans
|
|
251
|
+
can leave context incomplete. Task proposals support question, request, mention and promise;
|
|
252
|
+
`applied: false` and `persistence: "proposal-only"` mean no task was created.
|
|
253
|
+
|
|
254
|
+
Broader search requires explicit `--only messages,mail,notes,meetings`. Selected message and mail
|
|
255
|
+
reads use the local account; notes are global to the shared store. Meeting matching uses word
|
|
256
|
+
prefixes; unsupported meeting syntax or exact queries are reported as skipped. A meetings-only
|
|
257
|
+
continuation uses the returned `meetings.nextCursor` as `--meeting-cursor '<json>'`, bound to its
|
|
258
|
+
account and query. JSONL emits one complete report, retaining skips, coverage and cursors.
|
|
259
|
+
|
|
260
|
+
## Explicit meeting vectors
|
|
261
|
+
|
|
262
|
+
Choose an already installed local model, or explicitly select a remote endpoint and dimensions:
|
|
263
|
+
|
|
264
|
+
```sh
|
|
265
|
+
zm meetings embeddings --model e5-small --json
|
|
266
|
+
zm meetings embeddings --model e5-small --yes --limit 100 --json
|
|
267
|
+
zm meetings semantic "example plan" --model e5-small --max-chunks 1000 --json
|
|
268
|
+
zm meetings semantic "example plan" --model example-model --base-url http://127.0.0.1:8080/v1 --dims 384 --json
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
The first embedding command previews existing chunk status without opening a model, downloading
|
|
272
|
+
files or generating vectors. `--yes` validates and opens the selected model before rebuilding chunks
|
|
273
|
+
and embedding one bounded batch. Local models must already be installed; this command never downloads
|
|
274
|
+
them. Remote endpoints are explicit; OpenAI endpoints use `OPENAI_API_KEY`. Remote models cannot be
|
|
275
|
+
used with `--offline`.
|
|
276
|
+
|
|
277
|
+
Generation uses current transcript revisions and rechecks their hashes before saving results.
|
|
278
|
+
`--after-transcript-id` continues rebuilding chunks; `--after-hash` continues missing-vector work.
|
|
279
|
+
These are separate cursors. Shared cached vectors remain available to other resources.
|
|
280
|
+
A completed generation can emit its acknowledged receipt during a bounded cancellation grace period,
|
|
281
|
+
then exit 130. Failed generation and cancelled queries emit no such receipt; a blocked output pipe
|
|
282
|
+
can prevent delivery.
|
|
283
|
+
|
|
284
|
+
Semantic search embeds only the query and reads existing vectors; it never rebuilds or generates
|
|
285
|
+
stored vectors. Results rank scanned candidates for the selected account and model. Use
|
|
286
|
+
`--after-chunk-id` to continue candidate scanning, not to page through globally ranked results.
|
|
287
|
+
The report states candidate scan coverage; index completeness and archive completeness are unknown.
|
|
288
|
+
`--max-rows` and `--max-text-bytes` bound transcript reads for generation and search.
|
|
289
|
+
|
|
205
290
|
## Watch a transcript folder
|
|
206
291
|
|
|
207
292
|
```sh
|
|
@@ -224,6 +309,13 @@ transcripts, summaries, exports, text search and participant search. Tool discov
|
|
|
224
309
|
database. Each read uses the selected local account and closes its connection before the response;
|
|
225
310
|
a caller cannot override the account. File exports and remote mutations are not exposed as tools.
|
|
226
311
|
|
|
312
|
+
Optional flags add tools without changing the defaults: `--meeting-context` adds evidence, person
|
|
313
|
+
context and task proposals; `--unified-search` adds meetings-only shared search;
|
|
314
|
+
`--semantic --model <id>` adds one read-only vector query tool. Remote semantic models additionally
|
|
315
|
+
require `--base-url` and `--dims`. The server fixes the model at startup and the profile on its first
|
|
316
|
+
read; restart it to change either. Clients cannot override either selection. Embedding generation
|
|
317
|
+
and task creation are never MCP tools.
|
|
318
|
+
|
|
227
319
|
MCP clients can launch `zm` with arguments `["serve", "--mcp"]`. Keep stdout for protocol messages;
|
|
228
320
|
omit `--json`, `--jsonl` and `--fields`. `--max-output-bytes` bounds each tool result, with zero meaning
|
|
229
321
|
unlimited. Select a profile and import or pull its data before reading tools; discovery is available
|
|
@@ -259,12 +351,15 @@ pnpm lint && pnpm typecheck && pnpm test:coverage && pnpm docs:check
|
|
|
259
351
|
pnpm build && pnpm smoke:bun
|
|
260
352
|
```
|
|
261
353
|
|
|
262
|
-
[
|
|
354
|
+
[Commands](docs/commands.md), [architecture](docs/dev/ARCHITECTURE.md), [testing](docs/dev/TESTING.md) and
|
|
263
355
|
[development setup](docs/dev/DEVELOPMENT.md) describe the local setup.
|
|
264
356
|
[Releasing](docs/dev/RELEASING.md) covers package checks and trusted publishing. Fixtures use invented
|
|
265
357
|
people and meetings. Tests use an injected keyring, scripted HTTP responses, temporary config
|
|
266
358
|
folders and the memory meeting store.
|
|
267
359
|
|
|
360
|
+
`pnpm generate:check` checks the generated command reference. `pnpm test:matrix` measures CLI
|
|
361
|
+
command and option coverage; its [matrix](docs/dev/test-matrix.md) records explicit exceptions.
|
|
362
|
+
|
|
268
363
|
## Licence
|
|
269
364
|
|
|
270
365
|
[Apache License 2.0](LICENSE).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MeetingTranscriptStore } from "@wirecat/cli-meetings";
|
|
2
|
+
import { type ArchiveTranscriptOptions } from "./archive-transcripts.js";
|
|
3
|
+
export interface ArchiveImportOptions extends ArchiveTranscriptOptions {
|
|
4
|
+
maxTotalBytes?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ArchiveImportPlan {
|
|
7
|
+
readonly verifiedAssets: number;
|
|
8
|
+
readonly occurrences: number;
|
|
9
|
+
readonly totalBytes: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ArchiveImportReceipt {
|
|
12
|
+
uuid: string;
|
|
13
|
+
assetIds: string[];
|
|
14
|
+
status: "acknowledged" | "unavailable";
|
|
15
|
+
meetingId?: number;
|
|
16
|
+
/** The append port does not distinguish a missing occurrence from a deleted one. */
|
|
17
|
+
reason?: "missing_or_deleted";
|
|
18
|
+
}
|
|
19
|
+
/** Complete verification and bounded preparation before the caller opens or registers an account. */
|
|
20
|
+
export declare const preflightArchiveImport: (destination: string, options?: ArchiveImportOptions) => Promise<ArchiveImportPlan>;
|
|
21
|
+
/** Atomic per occurrence, preserving an acknowledged receipt even when cancellation arrives during append. */
|
|
22
|
+
export declare function applyArchiveImport(plan: ArchiveImportPlan, store: MeetingTranscriptStore, options: {
|
|
23
|
+
accountId: number;
|
|
24
|
+
now?: number;
|
|
25
|
+
signal?: AbortSignal;
|
|
26
|
+
}): AsyncGenerator<ArchiveImportReceipt, void, void>;
|
|
27
|
+
//# sourceMappingURL=archive-import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive-import.d.ts","sourceRoot":"","sources":["../src/archive-import.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAoB,MAAM,uBAAuB,CAAA;AACrF,OAAO,EAAE,KAAK,wBAAwB,EAA0B,MAAM,0BAA0B,CAAA;AAGhG,MAAM,WAAW,oBAAqB,SAAQ,wBAAwB;IACpE,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AACD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AACD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,EAAE,cAAc,GAAG,aAAa,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,oBAAoB,CAAA;CAC9B;AASD,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,gBACpB,MAAM,YACV,oBAAoB,KAC5B,OAAO,CAAC,iBAAiB,CAyE3B,CAAA;AAED,8GAA8G;AAC9G,wBAAuB,kBAAkB,CACvC,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,sBAAsB,EAC7B,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACjE,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,CAqDlD"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { readArchiveTranscripts } from "./archive-transcripts.js";
|
|
3
|
+
import { checkCancelled, ZoomError } from "./errors.js";
|
|
4
|
+
const plans = new WeakMap();
|
|
5
|
+
/** Complete verification and bounded preparation before the caller opens or registers an account. */
|
|
6
|
+
export const preflightArchiveImport = async (destination, options = {}) => {
|
|
7
|
+
const maximum = options.maxTotalBytes === undefined ? 64 * 1024 ** 2 : options.maxTotalBytes;
|
|
8
|
+
if (!Number.isSafeInteger(maximum) || maximum <= 0)
|
|
9
|
+
throw new ZoomError("validation_error", "aggregate transcript byte limit must be a positive integer");
|
|
10
|
+
const prepared = new Map();
|
|
11
|
+
let verifiedAssets = 0;
|
|
12
|
+
let totalBytes = 0;
|
|
13
|
+
for await (const { meeting, asset, cues } of readArchiveTranscripts(destination, options)) {
|
|
14
|
+
checkCancelled(options.signal);
|
|
15
|
+
if (cues.some((cue) => !Number.isSafeInteger(cue.startMs) ||
|
|
16
|
+
!Number.isSafeInteger(cue.endMs) ||
|
|
17
|
+
cue.startMs < 0 ||
|
|
18
|
+
cue.endMs < cue.startMs))
|
|
19
|
+
throw new ZoomError("validation_error", "archive transcript cue times must be safe nonnegative ordered integers");
|
|
20
|
+
totalBytes += asset.size;
|
|
21
|
+
if (totalBytes > maximum)
|
|
22
|
+
throw new ZoomError("validation_error", "archive import exceeds the aggregate byte limit");
|
|
23
|
+
let startedAt = null;
|
|
24
|
+
if (meeting.startedAt !== null) {
|
|
25
|
+
startedAt = Date.parse(meeting.startedAt);
|
|
26
|
+
if (!Number.isSafeInteger(startedAt) ||
|
|
27
|
+
Math.abs(startedAt) > 8640000000000000 ||
|
|
28
|
+
new Date(startedAt).toISOString() !== meeting.startedAt)
|
|
29
|
+
throw new ZoomError("validation_error", "archive occurrence start must be a real ISO timestamp");
|
|
30
|
+
}
|
|
31
|
+
const group = prepared.get(meeting.uuid) ?? {
|
|
32
|
+
uuid: meeting.uuid,
|
|
33
|
+
assetIds: [],
|
|
34
|
+
transcripts: [],
|
|
35
|
+
...(startedAt !== null ? { create: { title: meeting.title, startedAt, timezone: null } } : {}),
|
|
36
|
+
};
|
|
37
|
+
group.assetIds.push(asset.id);
|
|
38
|
+
group.transcripts.push({
|
|
39
|
+
source: `zoom-archive:vtt:${createHash("sha256").update(asset.id).digest("hex")}`,
|
|
40
|
+
contentHash: asset.sha256,
|
|
41
|
+
format: "vtt",
|
|
42
|
+
language: null,
|
|
43
|
+
externalCreatedAt: null,
|
|
44
|
+
deletedAt: null,
|
|
45
|
+
metadata: {
|
|
46
|
+
provider: "zoom",
|
|
47
|
+
occurrenceUuid: meeting.uuid,
|
|
48
|
+
recordingFileId: asset.id,
|
|
49
|
+
archivePath: asset.path,
|
|
50
|
+
sha256: asset.sha256,
|
|
51
|
+
archiveManifestVersion: 1,
|
|
52
|
+
recordingType: asset.type,
|
|
53
|
+
recordingFormat: asset.format,
|
|
54
|
+
recordingStartedAt: asset.startedAt,
|
|
55
|
+
recordingEndedAt: asset.endedAt,
|
|
56
|
+
},
|
|
57
|
+
rows: cues.map((cue, position) => ({
|
|
58
|
+
position,
|
|
59
|
+
startMs: cue.startMs,
|
|
60
|
+
endMs: cue.endMs,
|
|
61
|
+
speakerName: cue.speaker,
|
|
62
|
+
text: cue.text,
|
|
63
|
+
normalizedText: null,
|
|
64
|
+
metadata: null,
|
|
65
|
+
})),
|
|
66
|
+
});
|
|
67
|
+
prepared.set(meeting.uuid, group);
|
|
68
|
+
verifiedAssets++;
|
|
69
|
+
}
|
|
70
|
+
const plan = Object.freeze({ verifiedAssets, occurrences: prepared.size, totalBytes });
|
|
71
|
+
plans.set(plan, [...prepared.values()]);
|
|
72
|
+
return plan;
|
|
73
|
+
};
|
|
74
|
+
/** Atomic per occurrence, preserving an acknowledged receipt even when cancellation arrives during append. */
|
|
75
|
+
export async function* applyArchiveImport(plan, store, options) {
|
|
76
|
+
const prepared = plans.get(plan);
|
|
77
|
+
const now = options.now ?? Date.now();
|
|
78
|
+
if (!prepared || !Number.isSafeInteger(options.accountId) || options.accountId < 1 || !Number.isSafeInteger(now))
|
|
79
|
+
throw new ZoomError("validation_error", "expected a verified archive plan, selected account and integer timestamp");
|
|
80
|
+
if (typeof store?.appendTranscripts !== "function")
|
|
81
|
+
throw new ZoomError("configuration_error", "the installed meeting store does not support transcript append");
|
|
82
|
+
for (const group of prepared) {
|
|
83
|
+
checkCancelled(options.signal);
|
|
84
|
+
let receipt;
|
|
85
|
+
try {
|
|
86
|
+
const details = await store.appendTranscripts({
|
|
87
|
+
accountId: options.accountId,
|
|
88
|
+
externalId: group.uuid,
|
|
89
|
+
create: group.create,
|
|
90
|
+
transcripts: structuredClone(group.transcripts),
|
|
91
|
+
now,
|
|
92
|
+
});
|
|
93
|
+
if (!details?.meeting ||
|
|
94
|
+
details.meeting.accountId !== options.accountId ||
|
|
95
|
+
details.meeting.externalId !== group.uuid ||
|
|
96
|
+
!Number.isSafeInteger(details.meeting.id) ||
|
|
97
|
+
details.meeting.id < 1 ||
|
|
98
|
+
details.meeting.deletedAt !== null)
|
|
99
|
+
throw new ZoomError("outcome_unknown", "archive append returned inconsistent ownership; verify stored state before retrying");
|
|
100
|
+
receipt = {
|
|
101
|
+
uuid: group.uuid,
|
|
102
|
+
assetIds: [...group.assetIds],
|
|
103
|
+
status: "acknowledged",
|
|
104
|
+
meetingId: details.meeting.id,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
if (error instanceof Error && "code" in error && error.code === "outcome_unknown")
|
|
109
|
+
throw new ZoomError("outcome_unknown", "archive append outcome is unknown; verify stored state before retrying");
|
|
110
|
+
if (error instanceof Error && "code" in error && error.code === "not_found")
|
|
111
|
+
receipt = {
|
|
112
|
+
uuid: group.uuid,
|
|
113
|
+
assetIds: [...group.assetIds],
|
|
114
|
+
status: "unavailable",
|
|
115
|
+
reason: "missing_or_deleted",
|
|
116
|
+
};
|
|
117
|
+
else {
|
|
118
|
+
checkCancelled(options.signal);
|
|
119
|
+
throw new ZoomError("provider_error", "archive transcript append failed; earlier occurrences may be committed");
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
yield receipt;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=archive-import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive-import.js","sourceRoot":"","sources":["../src/archive-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive-transcripts.d.ts","sourceRoot":"","sources":["../src/archive-transcripts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"archive-transcripts.d.ts","sourceRoot":"","sources":["../src/archive-transcripts.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAGrE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAkB,MAAM,wBAAwB,CAAA;AAEhG,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AACD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACnC,KAAK,EAAE,YAAY,CAAA;IACnB,IAAI,EAAE,cAAc,EAAE,CAAA;CACvB;AACD,MAAM,WAAW,8BAA+B,SAAQ,wBAAwB;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AACD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACnC,KAAK,EAAE,YAAY,CAAA;IACnB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAA;CACjB;AACD,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,sBAAsB,EAAE,CAAA;IAC/B,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;CACjB;AA0ED,4GAA4G;AAC5G,wBAAuB,sBAAsB,CAC3C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,wBAA6B,GACrC,cAAc,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,CA2B/C;AAED,sGAAsG;AACtG,eAAO,MAAM,wBAAwB,gBACtB,MAAM,SACZ,MAAM,YACJ,8BAA8B,KACtC,OAAO,CAAC,6BAA6B,CAiBvC,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
import {
|
|
3
|
-
import { open, realpath } from "node:fs/promises";
|
|
2
|
+
import { realpath } from "node:fs/promises";
|
|
4
3
|
import { join } from "node:path";
|
|
5
4
|
import { parseVtt } from "@wirecat/cli-meetings";
|
|
6
5
|
import { checkCancelled, ZoomError } from "./errors.js";
|
|
6
|
+
import { openOrdinaryFile } from "./ordinary-file.js";
|
|
7
7
|
import { inspectArchive } from "./recording-archive.js";
|
|
8
8
|
const validate = (destination, options) => {
|
|
9
9
|
const maxBytes = options.maxBytes === undefined ? 8 * 1024 ** 2 : options.maxBytes;
|
|
@@ -23,7 +23,7 @@ const readTranscript = async (destination, asset, maxBytes, signal) => {
|
|
|
23
23
|
if (asset.size > maxBytes)
|
|
24
24
|
throw new ZoomError("validation_error", "archive transcript exceeds the byte limit");
|
|
25
25
|
try {
|
|
26
|
-
const file = await
|
|
26
|
+
const file = await openOrdinaryFile(join(destination, asset.path));
|
|
27
27
|
try {
|
|
28
28
|
checkCancelled(signal);
|
|
29
29
|
const stat = await file.stat();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive-transcripts.js","sourceRoot":"","sources":["../src/archive-transcripts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"archive-transcripts.js","sourceRoot":"","sources":["../src/archive-transcripts.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/zm.js
CHANGED
|
@@ -45,10 +45,15 @@ try {
|
|
|
45
45
|
connectStore,
|
|
46
46
|
serveMcp: async (options) => {
|
|
47
47
|
const { serveMeetingMcp } = await import("../mcp-server.js");
|
|
48
|
+
let profileCaptured = false;
|
|
49
|
+
let profile;
|
|
48
50
|
await serveMeetingMcp({
|
|
49
51
|
...options,
|
|
50
52
|
connectStore: async () => {
|
|
51
|
-
|
|
53
|
+
if (!profileCaptured) {
|
|
54
|
+
profile = readConfig(configPath).accountProfile;
|
|
55
|
+
profileCaptured = true;
|
|
56
|
+
}
|
|
52
57
|
if (!profile)
|
|
53
58
|
throw new ZoomError("configuration_error", "select a local profile with zm config set account.profile <label>");
|
|
54
59
|
return connectStore({ profile, externalId: profileAccountKey(profile), intent: "read" });
|
package/dist/bin/zm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zm.js","sourceRoot":"","sources":["../../src/bin/zm.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;AAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AACpD,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAA;AAC1C,IAAI,UAAU,GAAG,KAAK,CAAA;AACtB,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAA;AACvF,MAAM,WAAW,GAAG,CAAC,KAA4B,EAAE,EAAE;IACnD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,UAAU,GAAG,IAAI,CAAA;QACjB,YAAY,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAA;QACnE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;IACtB,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,qBAAqB,EAAE,gCAAgC,CAAC,CAAC,CAAA;QACzF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;IACtB,CAAC;AACH,CAAC,CAAA;AACD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AAC9B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AAC/B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;AACvC,IAAI,CAAC;IACH,MAAM,YAAY,GAAG,oBAAoB,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC/D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;QAC9B,IAAI,QAAQ;YACV,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAA;QAC9C,CAAC;QACD,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,YAAY,KAAK,CAAC,MAAM,EAAE;QACnC,KAAK;KACN,CAAC,CAAA;IACF,OAAO,CAAC,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAClD,UAAU;QACV,MAAM;QACN,YAAY;QACZ,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC1B,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;YAC5D,MAAM,eAAe,CAAC;gBACpB,GAAG,OAAO;gBACV,YAAY,EAAE,KAAK,IAAI,EAAE;oBACvB,
|
|
1
|
+
{"version":3,"file":"zm.js","sourceRoot":"","sources":["../../src/bin/zm.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
export { encodeUuid, ZoomApiSource } from "./api.js";
|
|
2
|
+
export { type ArchiveImportOptions, type ArchiveImportPlan, type ArchiveImportReceipt, applyArchiveImport, preflightArchiveImport, } from "./archive-import.js";
|
|
2
3
|
export { type ArchiveTranscript, type ArchiveTranscriptMatch, type ArchiveTranscriptOptions, type ArchiveTranscriptSearchOptions, type ArchiveTranscriptSearchReport, readArchiveTranscripts, searchArchiveTranscripts, } from "./archive-transcripts.js";
|
|
3
4
|
export { profileAccountKey, readConfig, setConfig, type ZoomConfig } from "./config.js";
|
|
4
5
|
export { ZoomError } from "./errors.js";
|
|
5
6
|
export { type DownloadedFile, FilesSource, fileMeeting, importFile, readDownloadedFiles, validateDownloadedFiles, } from "./files.js";
|
|
6
7
|
export { type LoginOptions, login, REDIRECT } from "./login.js";
|
|
7
8
|
export { createMeetingMcpServer, type MeetingMcpOptions, serveMeetingMcp } from "./mcp-server.js";
|
|
9
|
+
export { createMeetingContextCapabilities, type EvidenceOptions, type MeetingContextCapabilities, type MeetingTaskKind, type PersonContextOptions, } from "./meeting-context.js";
|
|
10
|
+
export { createMeetingSemanticCapabilities } from "./meeting-semantic.js";
|
|
11
|
+
export type { MeetingEmbeddingOptions, MeetingModelOptions, MeetingSemanticCapabilities, MeetingSemanticOptions, } from "./meeting-semantic-commands.js";
|
|
8
12
|
export { createProgram, type ProgramDeps, run, type StoreConnection, type StoreConnectRequest } from "./program.js";
|
|
9
13
|
export { type ArchiveSyncOptions, type ArchiveSyncReceipt, syncRecordingArchive } from "./recording-sync.js";
|
|
10
14
|
export { type ArchivedFile, type ArchiveLockInfo, type ArchiveManifest, type ArchiveReport, type ArchiveVerification, type DownloadOptions, getZoomProfile, inspectArchive, inspectArchiveLocks, type RecordingAsset, type RecordingMeeting, type RecordingRange, recoverArchiveLocks, verifyArchive, type ZoomProfile, ZoomRecordings, } from "./recordings.js";
|
|
11
15
|
export { type MeetingChange, type MeetingMutation, type MutationOptions, type RemoteMeeting, ZoomRemoteMeetings, } from "./remote-meetings.js";
|
|
12
16
|
export { createStoreConnector, type StoreConnectionOptions } from "./store-connection.js";
|
|
13
17
|
export { TokenManager, type TokenOptions, type Tokens } from "./tokens.js";
|
|
18
|
+
export { runUnifiedSearch, type UnifiedSearch, type UnifiedSearchRequest } from "./unified-search.js";
|
|
14
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,KAAK,cAAc,EACnB,WAAW,EACX,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjG,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,GAAG,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACnH,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC5G,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,mBAAmB,EACnB,aAAa,EACb,KAAK,WAAW,EAChB,cAAc,GACf,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,kBAAkB,GACnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACzF,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,KAAK,cAAc,EACnB,WAAW,EACX,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjG,OAAO,EACL,gCAAgC,EAChC,KAAK,eAAe,EACpB,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAA;AACzE,YAAY,EACV,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,GAAG,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACnH,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC5G,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,mBAAmB,EACnB,aAAa,EACb,KAAK,WAAW,EAChB,cAAc,GACf,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,kBAAkB,GACnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACzF,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAE1E,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
export { encodeUuid, ZoomApiSource } from "./api.js";
|
|
2
|
+
export { applyArchiveImport, preflightArchiveImport, } from "./archive-import.js";
|
|
2
3
|
export { readArchiveTranscripts, searchArchiveTranscripts, } from "./archive-transcripts.js";
|
|
3
4
|
export { profileAccountKey, readConfig, setConfig } from "./config.js";
|
|
4
5
|
export { ZoomError } from "./errors.js";
|
|
5
6
|
export { FilesSource, fileMeeting, importFile, readDownloadedFiles, validateDownloadedFiles, } from "./files.js";
|
|
6
7
|
export { login, REDIRECT } from "./login.js";
|
|
7
8
|
export { createMeetingMcpServer, serveMeetingMcp } from "./mcp-server.js";
|
|
9
|
+
export { createMeetingContextCapabilities, } from "./meeting-context.js";
|
|
10
|
+
export { createMeetingSemanticCapabilities } from "./meeting-semantic.js";
|
|
8
11
|
export { createProgram, run } from "./program.js";
|
|
9
12
|
export { syncRecordingArchive } from "./recording-sync.js";
|
|
10
13
|
export { getZoomProfile, inspectArchive, inspectArchiveLocks, recoverArchiveLocks, verifyArchive, ZoomRecordings, } from "./recordings.js";
|
|
11
14
|
export { ZoomRemoteMeetings, } from "./remote-meetings.js";
|
|
12
15
|
export { createStoreConnector } from "./store-connection.js";
|
|
13
16
|
export { TokenManager } from "./tokens.js";
|
|
17
|
+
export { runUnifiedSearch } from "./unified-search.js";
|
|
14
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAML,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAEL,WAAW,EACX,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAqB,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAA0B,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjG,OAAO,EAAE,aAAa,EAAoB,GAAG,EAAkD,MAAM,cAAc,CAAA;AACnH,OAAO,EAAoD,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC5G,OAAO,EAOL,cAAc,EACd,cAAc,EACd,mBAAmB,EAInB,mBAAmB,EACnB,aAAa,EAEb,cAAc,GACf,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAKL,kBAAkB,GACnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,oBAAoB,EAA+B,MAAM,uBAAuB,CAAA;AACzF,OAAO,EAAE,YAAY,EAAkC,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAIL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAML,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAEL,WAAW,EACX,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAqB,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAA0B,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjG,OAAO,EACL,gCAAgC,GAKjC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAA;AAOzE,OAAO,EAAE,aAAa,EAAoB,GAAG,EAAkD,MAAM,cAAc,CAAA;AACnH,OAAO,EAAoD,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC5G,OAAO,EAOL,cAAc,EACd,cAAc,EACd,mBAAmB,EAInB,mBAAmB,EACnB,aAAa,EAEb,cAAc,GACf,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAKL,kBAAkB,GACnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,oBAAoB,EAA+B,MAAM,uBAAuB,CAAA;AACzF,OAAO,EAAE,YAAY,EAAkC,MAAM,aAAa,CAAA;AAE1E,OAAO,EAAE,gBAAgB,EAAiD,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { ArchiveImportPlan, applyArchiveImport, preflightArchiveImport } from "./archive-import.js";
|
|
3
|
+
import { type UnifiedSearch } from "./unified-search.js";
|
|
4
|
+
interface Deps {
|
|
5
|
+
preflight: typeof preflightArchiveImport;
|
|
6
|
+
apply: (plan: ArchiveImportPlan) => ReturnType<typeof applyArchiveImport>;
|
|
7
|
+
signal: () => AbortSignal | undefined;
|
|
8
|
+
output: (value: unknown) => void;
|
|
9
|
+
outputItems: (items: AsyncIterable<unknown>) => Promise<void>;
|
|
10
|
+
receipt: (value: unknown) => Promise<void>;
|
|
11
|
+
search: UnifiedSearch;
|
|
12
|
+
}
|
|
13
|
+
export declare const addIngestionSearchCommands: (program: Command, deps: Deps) => void;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=ingestion-search-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingestion-search-commands.d.ts","sourceRoot":"","sources":["../src/ingestion-search-commands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAGxG,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,qBAAqB,CAAA;AAE/E,UAAU,IAAI;IACZ,SAAS,EAAE,OAAO,sBAAsB,CAAA;IACxC,KAAK,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;IACzE,MAAM,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IACrC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,WAAW,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,EAAE,aAAa,CAAA;CACtB;AAQD,eAAO,MAAM,0BAA0B,YAAa,OAAO,QAAQ,IAAI,KAAG,IAwEzE,CAAA"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { annotate } from "@wirecat/cli-core/commands";
|
|
2
|
+
import { ZoomError } from "./errors.js";
|
|
3
|
+
import { bytes } from "./execution.js";
|
|
4
|
+
import { validateUnifiedSearch } from "./unified-search.js";
|
|
5
|
+
const cursor = (value) => {
|
|
6
|
+
try {
|
|
7
|
+
return JSON.parse(value);
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
throw new ZoomError("validation_error", "meeting cursor must be a JSON object");
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
export const addIngestionSearchCommands = (program, deps) => {
|
|
14
|
+
const archive = program.commands
|
|
15
|
+
.find((command) => command.name() === "recordings")
|
|
16
|
+
?.commands.find((command) => command.name() === "archive");
|
|
17
|
+
if (!archive)
|
|
18
|
+
throw new ZoomError("configuration_error", "archive command group is unavailable");
|
|
19
|
+
annotate(archive
|
|
20
|
+
.command("import")
|
|
21
|
+
.description("verify all selected VTT before atomic per-occurrence transcript append")
|
|
22
|
+
.argument("<directory>")
|
|
23
|
+
.option("--uuid <uuid>", "select an occurrence UUID")
|
|
24
|
+
.option("--file-ids <ids>", "select comma-separated VTT asset ids")
|
|
25
|
+
.option("--max-bytes <bytes>", "per-file VTT byte limit (default 8 MiB)", bytes)
|
|
26
|
+
.option("--max-total-bytes <bytes>", "aggregate VTT byte limit before any write (default 64 MiB)", bytes)
|
|
27
|
+
.action(async (directory, options) => {
|
|
28
|
+
const plan = await deps.preflight(directory, {
|
|
29
|
+
uuid: options.uuid,
|
|
30
|
+
fileIds: options.fileIds?.split(",").map((id) => id.trim()),
|
|
31
|
+
maxBytes: options.maxBytes,
|
|
32
|
+
maxTotalBytes: options.maxTotalBytes,
|
|
33
|
+
signal: deps.signal(),
|
|
34
|
+
});
|
|
35
|
+
const receipts = deps.apply(plan);
|
|
36
|
+
if (program.opts().jsonl) {
|
|
37
|
+
for await (const receipt of receipts)
|
|
38
|
+
await deps.receipt(receipt);
|
|
39
|
+
}
|
|
40
|
+
else
|
|
41
|
+
await deps.outputItems(receipts);
|
|
42
|
+
}), { origin: "handwritten", mutates: true, local: true, examples: ["zm recordings archive import ./archive --jsonl"] });
|
|
43
|
+
const search = program.command("search").description("opt-in shared store search; meetings by default");
|
|
44
|
+
annotate(search
|
|
45
|
+
.command("all")
|
|
46
|
+
.description("meeting word prefixes plus selected resources; notes are store-global; JSONL emits one complete report")
|
|
47
|
+
.argument("<query>")
|
|
48
|
+
.option("--only <resources>", "comma-separated meetings,messages,mail,notes (default meetings)")
|
|
49
|
+
.option("--limit <items>", "result bound 1 through 1000 (default 100)", bytes, 100)
|
|
50
|
+
.option("--max-meetings <count>", "candidate meeting scan bound 1 through 1000 (default 100)", bytes, 100)
|
|
51
|
+
.option("--meeting-cursor <json>", "source-only continuation from meetings.nextCursor", cursor)
|
|
52
|
+
.option("--exact", "request exact matching; unsupported meeting queries are reported as skipped")
|
|
53
|
+
.action(async (query, options) => {
|
|
54
|
+
const request = validateUnifiedSearch({
|
|
55
|
+
text: query,
|
|
56
|
+
limit: options.limit,
|
|
57
|
+
maxMeetings: options.maxMeetings,
|
|
58
|
+
only: options.only?.split(",").map((value) => value.trim()),
|
|
59
|
+
exact: options.exact,
|
|
60
|
+
meetingCursor: options.meetingCursor,
|
|
61
|
+
signal: deps.signal(),
|
|
62
|
+
});
|
|
63
|
+
deps.output(await deps.search(request));
|
|
64
|
+
}), { origin: "handwritten", mutates: false, examples: ['zm search all "example plan" --json'] });
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=ingestion-search-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingestion-search-commands.js","sourceRoot":"","sources":["../src/ingestion-search-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-server.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
2
|
import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
|
|
3
|
+
import { type MeetingModelOptions } from "./meeting-semantic-commands.js";
|
|
3
4
|
import type { StoreConnection } from "./program.js";
|
|
4
5
|
export interface MeetingMcpOptions {
|
|
5
6
|
/** Resolve the selected profile with read intent; each call owns a fresh connection. */
|
|
@@ -8,6 +9,11 @@ export interface MeetingMcpOptions {
|
|
|
8
9
|
signal?: AbortSignal;
|
|
9
10
|
/** Maximum UTF-8 bytes in a serialized tool result, including both content forms; zero is unlimited. */
|
|
10
11
|
maxResultBytes?: number;
|
|
12
|
+
/** Opt-in selected-profile meetings only; store-global notes are never exposed here. */
|
|
13
|
+
includeUnifiedSearch?: boolean;
|
|
14
|
+
includeMeetingContext?: boolean;
|
|
15
|
+
/** Explicit server-selected query model; tool callers cannot select models or generate vectors. */
|
|
16
|
+
semanticModel?: MeetingModelOptions;
|
|
11
17
|
}
|
|
12
18
|
/** Embedding seam. Caller owns transport shutdown; each tool call closes its read connection. */
|
|
13
19
|
export declare const createMeetingMcpServer: (options: MeetingMcpOptions) => Server;
|
package/dist/mcp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAA;AAe9E,OAAO,EAAE,KAAK,mBAAmB,EAAiD,MAAM,gCAAgC,CAAA;AACxH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAInD,MAAM,WAAW,iBAAiB;IAChC,wFAAwF;IACxF,YAAY,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAA;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,wGAAwG;IACxG,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,wFAAwF;IACxF,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,mGAAmG;IACnG,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACpC;AAwTD,iGAAiG;AACjG,eAAO,MAAM,sBAAsB,YAAa,iBAAiB,KAAG,MAAqC,CAAA;AAEzG,6FAA6F;AAC7F,eAAO,MAAM,eAAe,YAAmB,iBAAiB,cAAc,SAAS,KAAG,OAAO,CAAC,IAAI,CAkDrG,CAAA"}
|