@wirecat/zoom-cli 0.7.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.
@@ -1,5 +1,3 @@
1
- import { type FileHandle } from "node:fs/promises";
2
- /** Check the opened object before reading: Windows has no O_NOFOLLOW support. */
3
- export declare const openOrdinaryFile: (path: string) => Promise<FileHandle>;
1
+ export declare const openOrdinaryFile: (path: string) => Promise<import("fs/promises").FileHandle>;
4
2
  export declare const syncDirectory: (path: string) => Promise<void>;
5
3
  //# sourceMappingURL=ordinary-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ordinary-file.d.ts","sourceRoot":"","sources":["../src/ordinary-file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAA;AAM/D,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,SAAgB,MAAM,KAAG,OAAO,CAAC,UAAU,CA0CvE,CAAA;AAED,eAAO,MAAM,aAAa,SAAgB,MAAM,KAAG,OAAO,CAAC,IAAI,CAU9D,CAAA"}
1
+ {"version":3,"file":"ordinary-file.d.ts","sourceRoot":"","sources":["../src/ordinary-file.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,gBAAgB,SAAU,MAAM,8CAA2C,CAAA;AACxF,eAAO,MAAM,aAAa,SAAU,MAAM,kBAA2C,CAAA"}
@@ -1,64 +1,16 @@
1
- import { constants } from "node:fs";
2
- import { lstat, open } from "node:fs/promises";
1
+ import { CliError } from "@wirecat/cli-core";
2
+ import { openOrdinaryFile as sharedOpen, syncDirectory as sharedSync } from "@wirecat/cli-messaging/files";
3
3
  import { ZoomError } from "./errors.js";
4
- // Node 22's Windows path stat uses a 64-bit volume serial; handle stat uses its low DWORD.
5
- const deviceOf = (dev) => (process.platform === "win32" ? BigInt.asUintN(32, dev) : dev);
6
- /** Check the opened object before reading: Windows has no O_NOFOLLOW support. */
7
- export const openOrdinaryFile = async (path) => {
8
- const before = await lstat(path, { bigint: true });
9
- if (before.isSymbolicLink())
10
- throw new ZoomError("validation_error", "archive path must be an ordinary file without a symlink");
11
- if (!before.isFile())
12
- throw new ZoomError("validation_error", "archive path must be an ordinary file");
13
- const flags = process.platform === "win32"
14
- ? constants.O_RDONLY
15
- : constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0) | (constants.O_NONBLOCK ?? 0);
16
- const file = await open(path, flags);
4
+ const withZoomErrors = async (operation) => {
17
5
  try {
18
- const opened = await file.stat({ bigint: true });
19
- const after = await lstat(path, { bigint: true });
20
- if (!opened.isFile() || !after.isFile() || before.ino !== opened.ino || before.ino !== after.ino)
21
- throw new ZoomError("validation_error", "archive file changed while opening");
22
- if (process.platform === "win32" && before.dev === 0n && after.dev === 0n) {
23
- // Older Windows path stats omit the device; compare two handles before any content read.
24
- const witness = await open(path, flags);
25
- try {
26
- const identified = await witness.stat({ bigint: true });
27
- const final = await lstat(path, { bigint: true });
28
- if (opened.dev === 0n ||
29
- !identified.isFile() ||
30
- !final.isFile() ||
31
- deviceOf(identified.dev) !== deviceOf(opened.dev) ||
32
- identified.ino !== opened.ino ||
33
- final.ino !== before.ino ||
34
- (final.dev !== 0n && deviceOf(final.dev) !== deviceOf(opened.dev)))
35
- throw new ZoomError("validation_error", "archive file changed while opening");
36
- }
37
- finally {
38
- await witness.close();
39
- }
40
- }
41
- else if (deviceOf(before.dev) !== deviceOf(opened.dev) || deviceOf(before.dev) !== deviceOf(after.dev)) {
42
- throw new ZoomError("validation_error", "archive file changed while opening");
43
- }
44
- return file;
6
+ return await operation();
45
7
  }
46
8
  catch (error) {
47
- await file.close();
9
+ if (error instanceof CliError)
10
+ throw new ZoomError(error.code, error.message);
48
11
  throw error;
49
12
  }
50
13
  };
51
- export const syncDirectory = async (path) => {
52
- if (process.platform === "win32")
53
- return;
54
- const directory = await open(path, constants.O_RDONLY | (constants.O_DIRECTORY ?? 0) | (constants.O_NOFOLLOW ?? 0));
55
- try {
56
- if (!(await directory.stat()).isDirectory())
57
- throw new ZoomError("validation_error", "archive publication directory must be ordinary");
58
- await directory.sync();
59
- }
60
- finally {
61
- await directory.close();
62
- }
63
- };
14
+ export const openOrdinaryFile = (path) => withZoomErrors(() => sharedOpen(path));
15
+ export const syncDirectory = (path) => withZoomErrors(() => sharedSync(path));
64
16
  //# sourceMappingURL=ordinary-file.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ordinary-file.js","sourceRoot":"","sources":["../src/ordinary-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ordinary-file.js","sourceRoot":"","sources":["../src/ordinary-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC1G,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,cAAc,GAAG,KAAK,EAAK,SAA2B,EAAc,EAAE;IAC1E,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAA;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAC7E,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;AACxF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA"}
@@ -1,28 +1,2 @@
1
- export interface WavAudioDescriptor {
2
- id: string;
3
- contentHash: string;
4
- size: number;
5
- durationMs: number;
6
- format: "wav";
7
- sampleRate: 16000 | 48000;
8
- channels: 1 | 2;
9
- }
10
- export interface WavAudioOptions {
11
- maxBytes: number;
12
- maxDurationMs: number;
13
- signal?: AbortSignal;
14
- }
15
- export interface WavAudioPlan {
16
- readonly media: Readonly<WavAudioDescriptor>;
17
- }
18
- export interface WavPcmWindow {
19
- startMs: number;
20
- endMs: number;
21
- samples: Float32Array;
22
- }
23
- export declare const preflightWavAudio: (path: string, input: WavAudioOptions) => Promise<WavAudioPlan>;
24
- export declare const openWavAudio: (plan: WavAudioPlan, input: WavAudioOptions) => Promise<{
25
- windows(): AsyncIterable<WavPcmWindow>;
26
- close(): Promise<void>;
27
- }>;
1
+ export { openWavAudio, preflightWavAudio, type WavAudioDescriptor, type WavAudioOptions, type WavAudioPlan, type WavPcmWindow, } from "@wirecat/cli-messaging/speech/wav";
28
2
  //# sourceMappingURL=wav-audio.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wav-audio.d.ts","sourceRoot":"","sources":["../src/wav-audio.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,KAAK,CAAA;IACb,UAAU,EAAE,KAAK,GAAG,KAAK,CAAA;IACzB,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAA;CAChB;AACD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AACD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAA;CAC7C;AACD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,YAAY,CAAA;CACtB;AAmHD,eAAO,MAAM,iBAAiB,SAAgB,MAAM,SAAS,eAAe,KAAG,OAAO,CAAC,YAAY,CA8BlG,CAAA;AACD,eAAO,MAAM,YAAY,SACjB,YAAY,SACX,eAAe,KACrB,OAAO,CAAC;IAAE,OAAO,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;IAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CA+D5E,CAAA"}
1
+ {"version":3,"file":"wav-audio.d.ts","sourceRoot":"","sources":["../src/wav-audio.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,mCAAmC,CAAA"}
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.7.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,7 +53,7 @@
53
53
  "dependencies": {
54
54
  "@modelcontextprotocol/sdk": "1.32.1",
55
55
  "@wirecat/cli-core": "0.20.0",
56
- "@wirecat/cli-messaging": "0.246.0",
56
+ "@wirecat/cli-messaging": "0.248.0",
57
57
  "commander": "15.0.0"
58
58
  },
59
59
  "devDependencies": {