@wirecat/zoom-cli 0.6.0 → 0.7.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.
Files changed (83) hide show
  1. package/README.md +306 -370
  2. package/dist/api.d.ts +2 -2
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +1 -1
  5. package/dist/api.js.map +1 -1
  6. package/dist/archive-commands.js +1 -1
  7. package/dist/archive-commands.js.map +1 -1
  8. package/dist/archive-import.d.ts +1 -1
  9. package/dist/archive-import.d.ts.map +1 -1
  10. package/dist/archive-import.js.map +1 -1
  11. package/dist/archive-transcripts.d.ts +1 -1
  12. package/dist/archive-transcripts.d.ts.map +1 -1
  13. package/dist/archive-transcripts.js +1 -1
  14. package/dist/archive-transcripts.js.map +1 -1
  15. package/dist/files.d.ts +2 -2
  16. package/dist/files.d.ts.map +1 -1
  17. package/dist/files.js +1 -1
  18. package/dist/files.js.map +1 -1
  19. package/dist/local-transcription.d.ts +1 -1
  20. package/dist/local-transcription.d.ts.map +1 -1
  21. package/dist/local-transcription.js +1 -1
  22. package/dist/local-transcription.js.map +1 -1
  23. package/dist/mcp-server.js +1 -1
  24. package/dist/mcp-server.js.map +1 -1
  25. package/dist/meeting-integration-commands.js +1 -1
  26. package/dist/meeting-integration-commands.js.map +1 -1
  27. package/dist/meeting-integration.d.ts +1 -1
  28. package/dist/meeting-integration.d.ts.map +1 -1
  29. package/dist/meeting-integration.js.map +1 -1
  30. package/dist/meeting-search-commands.d.ts +1 -1
  31. package/dist/meeting-search-commands.d.ts.map +1 -1
  32. package/dist/ordinary-file.d.ts +1 -3
  33. package/dist/ordinary-file.d.ts.map +1 -1
  34. package/dist/ordinary-file.js +8 -56
  35. package/dist/ordinary-file.js.map +1 -1
  36. package/dist/program.d.ts +1 -1
  37. package/dist/program.d.ts.map +1 -1
  38. package/dist/program.js +2 -2
  39. package/dist/program.js.map +1 -1
  40. package/dist/recording-archive.d.ts.map +1 -1
  41. package/dist/recording-archive.js +1 -1
  42. package/dist/recording-archive.js.map +1 -1
  43. package/dist/recording-partial-store.d.ts +1 -1
  44. package/dist/recording-partial-store.d.ts.map +1 -1
  45. package/dist/recording-promotion-store.d.ts +1 -1
  46. package/dist/recording-promotion-store.d.ts.map +1 -1
  47. package/dist/recording-promotion-store.js +1 -1
  48. package/dist/recording-promotion-store.js.map +1 -1
  49. package/dist/recording-schedule-commands.js +1 -1
  50. package/dist/recording-schedule-commands.js.map +1 -1
  51. package/dist/recording-schedule.d.ts +1 -1
  52. package/dist/recording-schedule.d.ts.map +1 -1
  53. package/dist/recording-schedule.js +1 -1
  54. package/dist/recording-schedule.js.map +1 -1
  55. package/dist/recording-sync-store.d.ts +1 -1
  56. package/dist/recording-sync-store.d.ts.map +1 -1
  57. package/dist/recording-sync-store.js +1 -1
  58. package/dist/recording-sync-store.js.map +1 -1
  59. package/dist/recording-sync.d.ts +1 -1
  60. package/dist/recording-sync.d.ts.map +1 -1
  61. package/dist/recording-sync.js +1 -1
  62. package/dist/recording-sync.js.map +1 -1
  63. package/dist/recordings.d.ts +1 -1
  64. package/dist/recordings.d.ts.map +1 -1
  65. package/dist/recordings.js.map +1 -1
  66. package/dist/remote-meetings.d.ts +8 -8
  67. package/dist/remote-meetings.d.ts.map +1 -1
  68. package/dist/remote-meetings.js +1 -1
  69. package/dist/remote-meetings.js.map +1 -1
  70. package/dist/store-connection.d.ts +1 -1
  71. package/dist/store-connection.d.ts.map +1 -1
  72. package/dist/store-connection.js +1 -1
  73. package/dist/store-connection.js.map +1 -1
  74. package/dist/watch-commands.d.ts +1 -1
  75. package/dist/watch-commands.d.ts.map +1 -1
  76. package/dist/watch-commands.js +1 -1
  77. package/dist/watch-commands.js.map +1 -1
  78. package/dist/wav-audio.d.ts +1 -27
  79. package/dist/wav-audio.d.ts.map +1 -1
  80. package/dist/wav-audio.js +1 -190
  81. package/dist/wav-audio.js.map +1 -1
  82. package/package.json +2 -3
  83. package/skills/zoom-cli/SKILL.md +1 -1
package/dist/wav-audio.js CHANGED
@@ -1,191 +1,2 @@
1
- import { createHash } from "node:crypto";
2
- import { basename, resolve } from "node:path";
3
- import { checkCancelled, ZoomError } from "./errors.js";
4
- import { openOrdinaryFile } from "./ordinary-file.js";
5
- const prepared = new WeakMap();
6
- const invalid = () => {
7
- throw new ZoomError("validation_error", "local transcription requires PCM16 mono/stereo WAV at 16 or 48 kHz; convert the media locally to PCM WAV first");
8
- };
9
- const validate = (options) => {
10
- if (!Number.isSafeInteger(options.maxBytes) ||
11
- options.maxBytes < 1 ||
12
- options.maxBytes > 4 * 1024 ** 3 ||
13
- !Number.isSafeInteger(options.maxDurationMs) ||
14
- options.maxDurationMs < 1 ||
15
- options.maxDurationMs > 24 * 3600_000)
16
- throw new ZoomError("validation_error", "audio byte and duration budgets must be positive bounded integers");
17
- checkCancelled(options.signal);
18
- };
19
- const exact = async (file, offset, size, signal) => {
20
- const bytes = Buffer.alloc(size);
21
- let read = 0;
22
- while (read < size) {
23
- checkCancelled(signal);
24
- const result = await file.read(bytes, read, size - read, offset + read);
25
- if (!result.bytesRead)
26
- throw new ZoomError("validation_error", "WAV changed or was truncated while reading");
27
- read += result.bytesRead;
28
- }
29
- return bytes;
30
- };
31
- const layoutOf = async (file, size, options) => {
32
- if (size < 44 || size > options.maxBytes)
33
- invalid();
34
- const header = await exact(file, 0, 12, options.signal);
35
- if (header.toString("ascii", 0, 4) !== "RIFF" ||
36
- header.toString("ascii", 8, 12) !== "WAVE" ||
37
- header.readUInt32LE(4) + 8 !== size)
38
- invalid();
39
- let format;
40
- let data;
41
- let at = 12;
42
- let chunks = 0;
43
- while (at < size) {
44
- checkCancelled(options.signal);
45
- if (++chunks > 1024 || size - at < 8)
46
- invalid();
47
- const chunk = await exact(file, at, 8, options.signal);
48
- const kind = chunk.toString("ascii", 0, 4);
49
- const length = chunk.readUInt32LE(4);
50
- const start = at + 8;
51
- const next = start + length + (length % 2);
52
- if (next > size)
53
- invalid();
54
- if (kind === "fmt ") {
55
- if (format || ![16, 18].includes(length))
56
- invalid();
57
- const bytes = await exact(file, start, length, options.signal);
58
- const channels = bytes.readUInt16LE(2);
59
- const sampleRate = bytes.readUInt32LE(4);
60
- if (bytes.readUInt16LE(0) !== 1 ||
61
- ![1, 2].includes(channels) ||
62
- ![16000, 48000].includes(sampleRate) ||
63
- bytes.readUInt16LE(14) !== 16 ||
64
- bytes.readUInt16LE(12) !== channels * 2 ||
65
- bytes.readUInt32LE(8) !== sampleRate * channels * 2 ||
66
- (length === 18 && bytes.readUInt16LE(16) !== 0))
67
- invalid();
68
- format = { sampleRate: sampleRate, channels: channels };
69
- }
70
- else if (kind === "data") {
71
- if (data || !length)
72
- invalid();
73
- data = { offset: start, size: length };
74
- }
75
- at = next;
76
- }
77
- if (!format || !data || data.size % (format.channels * 2) !== 0)
78
- return invalid();
79
- const frames = data.size / (format.channels * 2);
80
- if (Math.ceil((frames * 1000) / format.sampleRate) > options.maxDurationMs)
81
- throw new ZoomError("validation_error", "WAV exceeds the configured duration limit");
82
- return { ...format, dataOffset: data.offset, dataSize: data.size, frames };
83
- };
84
- const hashRange = async (file, hash, start, end, signal) => {
85
- let at = start;
86
- while (at < end) {
87
- const bytes = await exact(file, at, Math.min(65536, end - at), signal);
88
- hash.update(bytes);
89
- at += bytes.length;
90
- }
91
- };
92
- const hashFile = async (file, size, signal) => {
93
- const hash = createHash("sha256");
94
- await hashRange(file, hash, 0, size, signal);
95
- if ((await file.stat()).size !== size)
96
- throw new ZoomError("validation_error", "WAV changed while verifying its content");
97
- return hash.digest("hex");
98
- };
99
- export const preflightWavAudio = async (path, input) => {
100
- const options = { ...input };
101
- validate(options);
102
- if (typeof path !== "string" || !path.trim() || /\0/.test(path))
103
- throw new ZoomError("validation_error", "local audio file is required");
104
- const absolute = resolve(path);
105
- const file = await openOrdinaryFile(absolute);
106
- try {
107
- const stat = await file.stat({ bigint: true });
108
- const size = Number(stat.size);
109
- const layout = await layoutOf(file, size, options);
110
- const contentHash = await hashFile(file, size, options.signal);
111
- const after = await file.stat({ bigint: true });
112
- if (stat.size !== after.size || stat.mtimeNs !== after.mtimeNs)
113
- throw new ZoomError("validation_error", "WAV changed while preparing the transcription");
114
- const media = Object.freeze({
115
- id: createHash("sha256").update(basename(absolute)).digest("hex"),
116
- contentHash,
117
- size,
118
- durationMs: Math.ceil((layout.frames * 1000) / layout.sampleRate),
119
- format: "wav",
120
- sampleRate: layout.sampleRate,
121
- channels: layout.channels,
122
- });
123
- const plan = Object.freeze({ media });
124
- prepared.set(plan, { path: absolute, dev: stat.dev, ino: stat.ino, layout });
125
- return plan;
126
- }
127
- finally {
128
- await file.close();
129
- }
130
- };
131
- export const openWavAudio = async (plan, input) => {
132
- const options = { ...input };
133
- validate(options);
134
- const known = prepared.get(plan);
135
- if (!known)
136
- throw new ZoomError("validation_error", "audio plan was not prepared by this adapter");
137
- const file = await openOrdinaryFile(known.path);
138
- try {
139
- const stat = await file.stat({ bigint: true });
140
- if (stat.dev !== known.dev || stat.ino !== known.ino || Number(stat.size) !== plan.media.size)
141
- throw new ZoomError("validation_error", "WAV identity changed before transcription");
142
- const layout = await layoutOf(file, plan.media.size, options);
143
- if (JSON.stringify(layout) !== JSON.stringify(known.layout) ||
144
- (await hashFile(file, plan.media.size, options.signal)) !== plan.media.contentHash)
145
- throw new ZoomError("validation_error", "WAV content changed before transcription");
146
- let closed = false;
147
- let consumed = false;
148
- return {
149
- async *windows() {
150
- if (closed || consumed)
151
- throw new ZoomError("configuration_error", "audio source can be consumed once before closing");
152
- consumed = true;
153
- const hash = createHash("sha256");
154
- await hashRange(file, hash, 0, layout.dataOffset, options.signal);
155
- const step = layout.sampleRate / 16000;
156
- for (let frame = 0; frame < layout.frames;) {
157
- checkCancelled(options.signal);
158
- const count = Math.min(layout.sampleRate * 30, layout.frames - frame);
159
- const bytes = await exact(file, layout.dataOffset + frame * layout.channels * 2, count * layout.channels * 2, options.signal);
160
- hash.update(bytes);
161
- const samples = new Float32Array(Math.floor(count / step));
162
- for (let index = 0; index < samples.length; index++) {
163
- let sum = 0;
164
- for (let offset = 0; offset < step; offset++)
165
- for (let channel = 0; channel < layout.channels; channel++)
166
- sum += bytes.readInt16LE(((index * step + offset) * layout.channels + channel) * 2);
167
- samples[index] = sum / (32768 * step * layout.channels);
168
- }
169
- const startMs = Math.floor((frame * 1000) / layout.sampleRate);
170
- frame += count;
171
- if (samples.length)
172
- yield { startMs, endMs: Math.ceil((frame * 1000) / layout.sampleRate), samples };
173
- }
174
- await hashRange(file, hash, layout.dataOffset + layout.dataSize, plan.media.size, options.signal);
175
- if (hash.digest("hex") !== plan.media.contentHash || (await file.stat()).size !== plan.media.size)
176
- throw new ZoomError("validation_error", "WAV changed during recognition; no transcript may be stored");
177
- },
178
- async close() {
179
- if (!closed) {
180
- closed = true;
181
- await file.close();
182
- }
183
- },
184
- };
185
- }
186
- catch (error) {
187
- await file.close();
188
- throw error;
189
- }
190
- };
1
+ export { openWavAudio, preflightWavAudio, } from "@wirecat/cli-messaging/speech/wav";
191
2
  //# sourceMappingURL=wav-audio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wav-audio.js","sourceRoot":"","sources":["../src/wav-audio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wav-audio.js","sourceRoot":"","sources":["../src/wav-audio.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,GAKlB,MAAM,mCAAmC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wirecat/zoom-cli",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "description": "Zoom cloud recording archives, persistent transcripts and meeting tools",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -53,8 +53,7 @@
53
53
  "dependencies": {
54
54
  "@modelcontextprotocol/sdk": "1.32.1",
55
55
  "@wirecat/cli-core": "0.20.0",
56
- "@wirecat/cli-meetings": "0.4.2",
57
- "@wirecat/cli-messaging": "0.241.0",
56
+ "@wirecat/cli-messaging": "0.248.0",
58
57
  "commander": "15.0.0"
59
58
  },
60
59
  "devDependencies": {
@@ -2,7 +2,7 @@
2
2
  name: zoom-cli
3
3
  description: Archive Zoom cloud recordings, read stored meeting transcripts and summaries, or manage a Zoom meeting through zm. Use for Zoom CLI workflows, not joining calls or operating the desktop video client.
4
4
  metadata:
5
- version: "0.3.0"
5
+ version: "0.5.1"
6
6
  ---
7
7
 
8
8
  # Zoom CLI