@wirecat/zoom-cli 0.4.0 → 0.5.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 +76 -2
- package/dist/archive-import.d.ts +6 -2
- package/dist/archive-import.d.ts.map +1 -1
- package/dist/archive-import.js +32 -8
- package/dist/archive-import.js.map +1 -1
- package/dist/execution.d.ts.map +1 -1
- package/dist/execution.js +1 -0
- package/dist/execution.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/local-transcription-commands.d.ts +9 -0
- package/dist/local-transcription-commands.d.ts.map +1 -0
- package/dist/local-transcription-commands.js +51 -0
- package/dist/local-transcription-commands.js.map +1 -0
- package/dist/local-transcription.d.ts +52 -0
- package/dist/local-transcription.d.ts.map +1 -0
- package/dist/local-transcription.js +161 -0
- package/dist/local-transcription.js.map +1 -0
- package/dist/meeting-integration-commands.d.ts +9 -0
- package/dist/meeting-integration-commands.d.ts.map +1 -0
- package/dist/meeting-integration-commands.js +64 -0
- package/dist/meeting-integration-commands.js.map +1 -0
- package/dist/meeting-integration.d.ts +12 -0
- package/dist/meeting-integration.d.ts.map +1 -0
- package/dist/meeting-integration.js +9 -0
- package/dist/meeting-integration.js.map +1 -0
- package/dist/meeting-search-commands.d.ts +33 -0
- package/dist/meeting-search-commands.d.ts.map +1 -0
- package/dist/meeting-search-commands.js +85 -0
- package/dist/meeting-search-commands.js.map +1 -0
- package/dist/program.d.ts +15 -3
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +93 -4
- package/dist/program.js.map +1 -1
- package/dist/store-connection.d.ts +5 -1
- package/dist/store-connection.d.ts.map +1 -1
- package/dist/store-connection.js +145 -9
- package/dist/store-connection.js.map +1 -1
- package/dist/wav-audio.d.ts +28 -0
- package/dist/wav-audio.d.ts.map +1 -0
- package/dist/wav-audio.js +191 -0
- package/dist/wav-audio.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-transcription.js","sourceRoot":"","sources":["../src/local-transcription.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import { type MeetingIntegrationCapabilities } from "./meeting-integration.js";
|
|
3
|
+
export declare const addMeetingIntegrationCommands: (program: Command, deps: {
|
|
4
|
+
integration: () => Promise<MeetingIntegrationCapabilities>;
|
|
5
|
+
signal: () => AbortSignal | undefined;
|
|
6
|
+
output: (value: unknown) => void;
|
|
7
|
+
receipt: (value: unknown) => Promise<void>;
|
|
8
|
+
}) => void;
|
|
9
|
+
//# sourceMappingURL=meeting-integration-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-integration-commands.d.ts","sourceRoot":"","sources":["../src/meeting-integration-commands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,EAEL,KAAK,8BAA8B,EAEpC,MAAM,0BAA0B,CAAA;AAEjC,eAAO,MAAM,6BAA6B,YAC/B,OAAO,QACV;IACJ,WAAW,EAAE,MAAM,OAAO,CAAC,8BAA8B,CAAC,CAAA;IAC1D,MAAM,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IACrC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3C,SAgGF,CAAA"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { annotate } from "@wirecat/cli-core/commands";
|
|
2
|
+
import { validateMeetingContextChange } from "@wirecat/cli-meetings";
|
|
3
|
+
import { ZoomError } from "./errors.js";
|
|
4
|
+
import { bytes } from "./execution.js";
|
|
5
|
+
import { integrationReference, } from "./meeting-integration.js";
|
|
6
|
+
export const addMeetingIntegrationCommands = (program, deps) => {
|
|
7
|
+
const meetings = program.commands.find((command) => command.name() === "meetings");
|
|
8
|
+
if (!meetings)
|
|
9
|
+
throw new ZoomError("configuration_error", "meeting command group is unavailable");
|
|
10
|
+
const label = (command, example, mutates = false) => annotate(command, {
|
|
11
|
+
origin: "handwritten",
|
|
12
|
+
mutates,
|
|
13
|
+
...(mutates ? { local: true } : {}),
|
|
14
|
+
examples: [example],
|
|
15
|
+
});
|
|
16
|
+
const guards = (command) => command.option("--yes", "apply this local change once").option("--dry-run", "preview even when --yes is present");
|
|
17
|
+
const apply = async (reference, input, options) => {
|
|
18
|
+
const target = integrationReference(reference);
|
|
19
|
+
const change = validateMeetingContextChange(input);
|
|
20
|
+
if (change.action !== "event.link" && change.action !== "person.link")
|
|
21
|
+
throw new ZoomError("validation_error", "meeting linking supports only explicit event or person changes");
|
|
22
|
+
const result = await (await deps.integration()).change(target.reference, change, {
|
|
23
|
+
apply: options.yes,
|
|
24
|
+
dryRun: options.dryRun,
|
|
25
|
+
signal: deps.signal(),
|
|
26
|
+
});
|
|
27
|
+
if (result.applied)
|
|
28
|
+
await deps.receipt(result);
|
|
29
|
+
else
|
|
30
|
+
deps.output(result);
|
|
31
|
+
};
|
|
32
|
+
const nullableId = (value) => (value === "none" ? "none" : bytes(value));
|
|
33
|
+
label(guards(meetings
|
|
34
|
+
.command("link-event")
|
|
35
|
+
.description("preview or apply an owner-selected event link")
|
|
36
|
+
.argument("<reference>")
|
|
37
|
+
.requiredOption("--event-id <id>", "stored event id, or none to unlink", nullableId)
|
|
38
|
+
.option("--expected-event-id <id>", "compare current event id, or none", nullableId)).action(async (reference, options) => apply(reference, {
|
|
39
|
+
action: "event.link",
|
|
40
|
+
eventId: options.eventId === "none" ? null : options.eventId,
|
|
41
|
+
...(options.expectedEventId === undefined
|
|
42
|
+
? {}
|
|
43
|
+
: { expectedEventId: options.expectedEventId === "none" ? null : options.expectedEventId }),
|
|
44
|
+
}, options)), "zm meetings link-event meeting:1/1 --event-id 1 --yes --json", true);
|
|
45
|
+
label(guards(meetings
|
|
46
|
+
.command("link-person")
|
|
47
|
+
.description("preview or apply an explicit participant identity link to a stored person")
|
|
48
|
+
.argument("<reference>")
|
|
49
|
+
.requiredOption("--participant-id <id>", "participant id from this meeting", bytes)
|
|
50
|
+
.requiredOption("--person <uid>", "explicit stored person UID")
|
|
51
|
+
.option("--target-accounts <ids>", "explicit additional account ids authorized for target-person lookup")
|
|
52
|
+
.option("--expected-person <uid>", "compare current person UID, or none")).action(async (reference, options) => apply(reference, {
|
|
53
|
+
action: "person.link",
|
|
54
|
+
participantId: options.participantId,
|
|
55
|
+
personUid: options.person,
|
|
56
|
+
...(options.targetAccounts === undefined
|
|
57
|
+
? {}
|
|
58
|
+
: { targetAccountIds: options.targetAccounts.split(",").map((item) => bytes(item.trim())) }),
|
|
59
|
+
...(options.expectedPerson === undefined
|
|
60
|
+
? {}
|
|
61
|
+
: { expectedPersonUid: options.expectedPerson === "none" ? null : options.expectedPerson }),
|
|
62
|
+
}, options)), "zm meetings link-person meeting:1/1 --participant-id 1 --person 1 --yes --json", true);
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=meeting-integration-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-integration-commands.js","sourceRoot":"","sources":["../src/meeting-integration-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MeetingContextChange, MeetingContextReceipt, MeetingMutationOptions } from "@wirecat/cli-meetings";
|
|
2
|
+
export type MeetingLinkChange = Extract<MeetingContextChange, {
|
|
3
|
+
action: "event.link" | "person.link";
|
|
4
|
+
}>;
|
|
5
|
+
export interface MeetingIntegrationCapabilities {
|
|
6
|
+
change(reference: string, change: MeetingLinkChange, options?: MeetingMutationOptions): Promise<MeetingContextReceipt<unknown>>;
|
|
7
|
+
}
|
|
8
|
+
export declare const integrationReference: (reference: string) => {
|
|
9
|
+
parsed: import("@wirecat/cli-messaging").MeetingReference;
|
|
10
|
+
reference: string;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=meeting-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-integration.d.ts","sourceRoot":"","sources":["../src/meeting-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAIhH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAAE,MAAM,EAAE,YAAY,GAAG,aAAa,CAAA;CAAE,CAAC,CAAA;AACvG,MAAM,WAAW,8BAA8B;IAC7C,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAA;CAC3C;AAED,eAAO,MAAM,oBAAoB,cAAe,MAAM;;;CAKrD,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { canonicalMeetingReference, parseMeetingReference } from "@wirecat/cli-messaging";
|
|
2
|
+
import { ZoomError } from "./errors.js";
|
|
3
|
+
export const integrationReference = (reference) => {
|
|
4
|
+
const parsed = parseMeetingReference(reference);
|
|
5
|
+
if (parsed.transcriptId !== undefined)
|
|
6
|
+
throw new ZoomError("validation_error", "this operation requires a root meeting reference");
|
|
7
|
+
return { parsed, reference: canonicalMeetingReference(reference) };
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=meeting-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-integration.js","sourceRoot":"","sources":["../src/meeting-integration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAWvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAE,EAAE;IACxD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAC/C,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;QACnC,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,kDAAkD,CAAC,CAAA;IAC7F,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB,CAAC,SAAS,CAAC,EAAE,CAAA;AACpE,CAAC,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { MeetingSearchOptions, MeetingSearchPage } from "@wirecat/cli-meetings";
|
|
2
|
+
import type { Command } from "commander";
|
|
3
|
+
export type MeetingHitSearchOptions = Omit<MeetingSearchOptions, "accountId">;
|
|
4
|
+
export type MeetingHitSearch = (query: string, options: MeetingHitSearchOptions) => Promise<MeetingSearchPage>;
|
|
5
|
+
export type MeetingSearchIndex = (options: {
|
|
6
|
+
limit?: number;
|
|
7
|
+
maxReadBytes?: number;
|
|
8
|
+
apply?: boolean;
|
|
9
|
+
dryRun?: boolean;
|
|
10
|
+
signal?: AbortSignal;
|
|
11
|
+
}) => Promise<{
|
|
12
|
+
applied: boolean;
|
|
13
|
+
accountId: number;
|
|
14
|
+
indexed?: number;
|
|
15
|
+
remaining?: number;
|
|
16
|
+
request: {
|
|
17
|
+
limit: number;
|
|
18
|
+
maxReadBytes: number;
|
|
19
|
+
};
|
|
20
|
+
}>;
|
|
21
|
+
export declare const validateMeetingHitSearch: (query: string, options?: MeetingHitSearchOptions) => void;
|
|
22
|
+
export declare const addMeetingHitSearchCommand: (program: Command, deps: {
|
|
23
|
+
search: () => Promise<MeetingHitSearch>;
|
|
24
|
+
signal: () => AbortSignal | undefined;
|
|
25
|
+
output: (value: unknown) => void;
|
|
26
|
+
}) => void;
|
|
27
|
+
export declare const addMeetingSearchIndexCommand: (program: Command, deps: {
|
|
28
|
+
index: () => Promise<MeetingSearchIndex>;
|
|
29
|
+
signal: () => AbortSignal | undefined;
|
|
30
|
+
output: (value: unknown) => void;
|
|
31
|
+
receipt: (value: unknown) => Promise<void>;
|
|
32
|
+
}) => void;
|
|
33
|
+
//# sourceMappingURL=meeting-search-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-search-commands.d.ts","sourceRoot":"","sources":["../src/meeting-search-commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACpF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAA;AAC7E,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAC9G,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,KAAK,OAAO,CAAC;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CACjD,CAAC,CAAA;AAEF,eAAO,MAAM,wBAAwB,UAAW,MAAM,YAAW,uBAAuB,SAkBvF,CAAA;AAcD,eAAO,MAAM,0BAA0B,YAC5B,OAAO,QACV;IACJ,MAAM,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACvC,MAAM,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IACrC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACjC,SA8BF,CAAA;AAED,eAAO,MAAM,4BAA4B,YAC9B,OAAO,QACV;IACJ,KAAK,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACxC,MAAM,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IACrC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3C,SA0BF,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { annotate } from "@wirecat/cli-core/commands";
|
|
2
|
+
import { ZoomError } from "./errors.js";
|
|
3
|
+
import { bytes } from "./execution.js";
|
|
4
|
+
export const validateMeetingHitSearch = (query, options = {}) => {
|
|
5
|
+
const integer = (value, low, high) => Number.isSafeInteger(value) && value >= low && value <= high;
|
|
6
|
+
if (typeof query !== "string" ||
|
|
7
|
+
!query.trim() ||
|
|
8
|
+
query.includes("\0") ||
|
|
9
|
+
new TextEncoder().encode(query).byteLength > 65536 ||
|
|
10
|
+
!integer(options.limit ?? 100, 1, 1000) ||
|
|
11
|
+
!integer(options.maxReadBytes ?? 4194304, 1, 67108864) ||
|
|
12
|
+
(options.meetingId !== undefined && !integer(options.meetingId, 1, Number.MAX_SAFE_INTEGER)) ||
|
|
13
|
+
(options.since !== undefined && !integer(options.since, -8640000000000000, 8640000000000000)) ||
|
|
14
|
+
(options.until !== undefined && !integer(options.until, -8640000000000000, 8640000000000000)) ||
|
|
15
|
+
(options.since !== undefined && options.until !== undefined && options.since > options.until) ||
|
|
16
|
+
(options.after !== undefined &&
|
|
17
|
+
(typeof options.after !== "string" || !/^[A-Za-z0-9_-]{1,1000}$/.test(options.after))))
|
|
18
|
+
throw new ZoomError("validation_error", "invalid bounded meeting search query, cursor or limits");
|
|
19
|
+
};
|
|
20
|
+
const timestamp = (value) => {
|
|
21
|
+
const parsed = Date.parse(value);
|
|
22
|
+
const date = value.slice(0, 10);
|
|
23
|
+
const day = Date.parse(`${date}T00:00:00Z`);
|
|
24
|
+
if (!/^\d{4}-\d{2}-\d{2}(?:T.+(?:Z|[+-]\d{2}:\d{2}))?$/.test(value) ||
|
|
25
|
+
!Number.isFinite(parsed) ||
|
|
26
|
+
!Number.isFinite(day) ||
|
|
27
|
+
new Date(day).toISOString().slice(0, 10) !== date)
|
|
28
|
+
throw new ZoomError("validation_error", "meeting search dates require a real ISO date or timestamp with offset");
|
|
29
|
+
return parsed;
|
|
30
|
+
};
|
|
31
|
+
export const addMeetingHitSearchCommand = (program, deps) => {
|
|
32
|
+
const meetings = program.commands.find((command) => command.name() === "meetings");
|
|
33
|
+
if (!meetings)
|
|
34
|
+
throw new ZoomError("configuration_error", "meeting command group is unavailable");
|
|
35
|
+
annotate(meetings
|
|
36
|
+
.command("search-page")
|
|
37
|
+
.description("bounded keyword search with configured stemming and hit continuation")
|
|
38
|
+
.argument("<query>")
|
|
39
|
+
.option("--meeting-id <id>", "restrict to a meeting in the selected account", bytes)
|
|
40
|
+
.option("--since <date>", "meeting start at or after an ISO date or timestamp", timestamp)
|
|
41
|
+
.option("--until <date>", "meeting start at or before an ISO date or timestamp", timestamp)
|
|
42
|
+
.option("--limit <count>", "hit limit from 1 through 1000 (default 100)", bytes)
|
|
43
|
+
.option("--after <cursor>", "opaque nextCursor from the same query and selected account")
|
|
44
|
+
.option("--max-read-bytes <bytes>", "raw SQL read budget from 1 through 67108864 (default 4194304)", bytes)
|
|
45
|
+
.action(async (query, options) => {
|
|
46
|
+
validateMeetingHitSearch(query, options);
|
|
47
|
+
const request = {
|
|
48
|
+
meetingId: options.meetingId,
|
|
49
|
+
since: options.since,
|
|
50
|
+
until: options.until,
|
|
51
|
+
limit: options.limit,
|
|
52
|
+
after: options.after,
|
|
53
|
+
maxReadBytes: options.maxReadBytes,
|
|
54
|
+
signal: deps.signal(),
|
|
55
|
+
};
|
|
56
|
+
deps.output(await (await deps.search())(query, request));
|
|
57
|
+
}), { origin: "handwritten", mutates: false, examples: ['zm meetings search-page "Alice Example" --limit 20 --json'] });
|
|
58
|
+
};
|
|
59
|
+
export const addMeetingSearchIndexCommand = (program, deps) => {
|
|
60
|
+
const meetings = program.commands.find((command) => command.name() === "meetings");
|
|
61
|
+
if (!meetings)
|
|
62
|
+
throw new ZoomError("configuration_error", "meeting command group is unavailable");
|
|
63
|
+
annotate(meetings
|
|
64
|
+
.command("search-index")
|
|
65
|
+
.description("preview or apply one bounded batch of queued meeting search indexing")
|
|
66
|
+
.option("--limit <count>", "queued record limit from 1 through 1000 (default 100)", bytes)
|
|
67
|
+
.option("--max-read-bytes <bytes>", "raw SQL read budget from 1 through 67108864 (default 4194304)", bytes)
|
|
68
|
+
.option("--yes", "apply this indexing batch once")
|
|
69
|
+
.option("--dry-run", "preview even when --yes is present")
|
|
70
|
+
.action(async (options) => {
|
|
71
|
+
validateMeetingHitSearch("index", options);
|
|
72
|
+
const result = await (await deps.index())({
|
|
73
|
+
limit: options.limit,
|
|
74
|
+
maxReadBytes: options.maxReadBytes,
|
|
75
|
+
apply: options.yes,
|
|
76
|
+
dryRun: options.dryRun,
|
|
77
|
+
signal: deps.signal(),
|
|
78
|
+
});
|
|
79
|
+
if (result.applied)
|
|
80
|
+
await deps.receipt(result);
|
|
81
|
+
else
|
|
82
|
+
deps.output(result);
|
|
83
|
+
}), { origin: "handwritten", mutates: true, local: true, examples: ["zm meetings search-index --yes --json"] });
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=meeting-search-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-search-commands.js","sourceRoot":"","sources":["../src/meeting-search-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/program.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { type SleepLike } from "@wirecat/cli-core";
|
|
2
|
-
import { type MeetingSource, type MeetingStore, type MeetingTranscriptStore } from "@wirecat/cli-meetings";
|
|
2
|
+
import { type MeetingSource, type MeetingStore, type MeetingTranscriptReceiptStore, type MeetingTranscriptStore } from "@wirecat/cli-meetings";
|
|
3
3
|
import { Command } from "commander";
|
|
4
4
|
import { type ArchiveService, type ArchiveTranscriptService, type RecordingsService, type RemoteMeetingsService } from "./archive-commands.js";
|
|
5
5
|
import { readDownloadedFiles } from "./files.js";
|
|
6
|
+
import type { LocalTranscriptionCapabilities } from "./local-transcription.js";
|
|
6
7
|
import type { MeetingContextCapabilities } from "./meeting-context.js";
|
|
8
|
+
import type { MeetingIntegrationCapabilities } from "./meeting-integration.js";
|
|
9
|
+
import { type MeetingHitSearch, type MeetingSearchIndex } from "./meeting-search-commands.js";
|
|
7
10
|
import { type MeetingModelOptions, type MeetingSemanticCapabilities } from "./meeting-semantic-commands.js";
|
|
8
11
|
import { type RecordingScheduleService } from "./recording-schedule.js";
|
|
9
12
|
import { TokenManager } from "./tokens.js";
|
|
@@ -13,6 +16,11 @@ export interface StoreConnection {
|
|
|
13
16
|
accountId: number;
|
|
14
17
|
close: () => Promise<void>;
|
|
15
18
|
appendTranscripts?: MeetingTranscriptStore["appendTranscripts"];
|
|
19
|
+
appendTranscriptsWithReceipt?: MeetingTranscriptReceiptStore["appendTranscriptsWithReceipt"];
|
|
20
|
+
meetingIntegration?: MeetingIntegrationCapabilities;
|
|
21
|
+
meetingSearch?: MeetingHitSearch;
|
|
22
|
+
meetingSearchIndex?: MeetingSearchIndex;
|
|
23
|
+
meetingTranscription?: LocalTranscriptionCapabilities;
|
|
16
24
|
unifiedSearch?: UnifiedSearch;
|
|
17
25
|
meetingContext?: MeetingContextCapabilities;
|
|
18
26
|
meetingSemantic?: MeetingSemanticCapabilities;
|
|
@@ -21,7 +29,7 @@ export interface StoreConnectRequest {
|
|
|
21
29
|
profile: string;
|
|
22
30
|
externalId: string;
|
|
23
31
|
intent: "read" | "ingestion";
|
|
24
|
-
capability?: "transcript-append";
|
|
32
|
+
capability?: "transcript-append" | "meeting-integration" | "meeting-search" | "meeting-search-index";
|
|
25
33
|
}
|
|
26
34
|
export interface ProgramDeps {
|
|
27
35
|
configPath: string;
|
|
@@ -30,10 +38,14 @@ export interface ProgramDeps {
|
|
|
30
38
|
store?: MeetingStore;
|
|
31
39
|
accountId?: number;
|
|
32
40
|
connectStore?: (request: StoreConnectRequest) => Promise<StoreConnection>;
|
|
33
|
-
transcriptStore?: MeetingTranscriptStore
|
|
41
|
+
transcriptStore?: Partial<MeetingTranscriptStore & MeetingTranscriptReceiptStore>;
|
|
34
42
|
unifiedSearch?: UnifiedSearch;
|
|
35
43
|
meetingContext?: MeetingContextCapabilities;
|
|
36
44
|
meetingSemantic?: MeetingSemanticCapabilities;
|
|
45
|
+
meetingIntegration?: MeetingIntegrationCapabilities;
|
|
46
|
+
meetingSearch?: MeetingHitSearch;
|
|
47
|
+
meetingSearchIndex?: MeetingSearchIndex;
|
|
48
|
+
meetingTranscription?: LocalTranscriptionCapabilities;
|
|
37
49
|
source?: MeetingSource;
|
|
38
50
|
recordings?: RecordingsService;
|
|
39
51
|
recordingSchedule?: RecordingScheduleService;
|
package/dist/program.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAEA,OAAO,EASL,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAE5B,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAA;AAGnD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAE7B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAA;AAO9B,OAAO,EAA2B,mBAAmB,EAA2B,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
|
package/dist/program.js
CHANGED
|
@@ -15,8 +15,11 @@ import { checkCancelled, ZoomError } from "./errors.js";
|
|
|
15
15
|
import { bytes, duration, resetCliOptions, startExecution } from "./execution.js";
|
|
16
16
|
import { FilesSource, importFile, readDownloadedFiles, validateDownloadedFiles } from "./files.js";
|
|
17
17
|
import { addIngestionSearchCommands } from "./ingestion-search-commands.js";
|
|
18
|
+
import { addLocalTranscriptionCommands } from "./local-transcription-commands.js";
|
|
18
19
|
import { login } from "./login.js";
|
|
19
20
|
import { addMeetingContextCommands } from "./meeting-context-commands.js";
|
|
21
|
+
import { addMeetingIntegrationCommands } from "./meeting-integration-commands.js";
|
|
22
|
+
import { addMeetingHitSearchCommand, addMeetingSearchIndexCommand, } from "./meeting-search-commands.js";
|
|
20
23
|
import { addMeetingSemanticCommands, validateMeetingModel, } from "./meeting-semantic-commands.js";
|
|
21
24
|
import { createRecordingScheduleService } from "./recording-schedule.js";
|
|
22
25
|
import { addRecordingScheduleCommands } from "./recording-schedule-commands.js";
|
|
@@ -123,7 +126,7 @@ export const createProgram = (deps) => {
|
|
|
123
126
|
.option("--interactive", "permit browser approval in an interactive terminal")
|
|
124
127
|
.option("--quiet", "suppress non-error diagnostics")
|
|
125
128
|
.option("--fields <paths>", "project result fields, such as id,title")
|
|
126
|
-
.option("--timeout <duration>", "command deadline: reads 30s, login 5m, downloads 1h; watch/MCP have no default", duration)
|
|
129
|
+
.option("--timeout <duration>", "command deadline: reads 30s, login 5m, downloads/transcription 1h; watch/MCP have no default", duration)
|
|
127
130
|
.option("--max-output-bytes <bytes>", "bound rendered result bytes (default 4194304; zero is unlimited)", bytes)
|
|
128
131
|
.option("--offline", "refuse network requests")
|
|
129
132
|
.exitOverride()
|
|
@@ -159,7 +162,18 @@ export const createProgram = (deps) => {
|
|
|
159
162
|
"search",
|
|
160
163
|
].includes(family.name()) ||
|
|
161
164
|
(family.name() === "meetings" &&
|
|
162
|
-
[
|
|
165
|
+
[
|
|
166
|
+
"evidence",
|
|
167
|
+
"context",
|
|
168
|
+
"task-proposal",
|
|
169
|
+
"semantic",
|
|
170
|
+
"embeddings",
|
|
171
|
+
"link-event",
|
|
172
|
+
"link-person",
|
|
173
|
+
"search-page",
|
|
174
|
+
"search-index",
|
|
175
|
+
"transcribe",
|
|
176
|
+
].includes(action.name())))
|
|
163
177
|
return;
|
|
164
178
|
const config = getConfig();
|
|
165
179
|
if (opts.offline && action.name() === "pull" && config.source === "api" && !deps.source)
|
|
@@ -685,9 +699,12 @@ export const createProgram = (deps) => {
|
|
|
685
699
|
capability: "transcript-append",
|
|
686
700
|
});
|
|
687
701
|
accountId = connection.accountId;
|
|
688
|
-
if (!connection.appendTranscripts)
|
|
702
|
+
if (!connection.appendTranscripts && !connection.appendTranscriptsWithReceipt)
|
|
689
703
|
throw new ZoomError("configuration_error", "the installed meeting store does not support transcript append");
|
|
690
|
-
store = {
|
|
704
|
+
store = {
|
|
705
|
+
appendTranscripts: connection.appendTranscripts,
|
|
706
|
+
appendTranscriptsWithReceipt: connection.appendTranscriptsWithReceipt,
|
|
707
|
+
};
|
|
691
708
|
}
|
|
692
709
|
for await (const item of applyArchiveImport(plan, store, {
|
|
693
710
|
accountId: accountId ?? 0,
|
|
@@ -712,6 +729,78 @@ export const createProgram = (deps) => {
|
|
|
712
729
|
return runUnifiedSearch(connection.unifiedSearch, request);
|
|
713
730
|
},
|
|
714
731
|
});
|
|
732
|
+
const integrationConnection = async (capability) => {
|
|
733
|
+
const config = getConfig();
|
|
734
|
+
if (!config.accountProfile || !deps.connectStore)
|
|
735
|
+
throw new ZoomError("configuration_error", "select a stored local profile for meeting integration");
|
|
736
|
+
connection = await deps.connectStore({
|
|
737
|
+
profile: config.accountProfile,
|
|
738
|
+
externalId: profileAccountKey(config.accountProfile),
|
|
739
|
+
intent: "read",
|
|
740
|
+
capability,
|
|
741
|
+
});
|
|
742
|
+
return connection;
|
|
743
|
+
};
|
|
744
|
+
const integrationOutput = (value) => buffer(render(value, program.opts().jsonl ? "jsonl" : program.opts().json ? "json" : "text", deps, fields, true));
|
|
745
|
+
addMeetingIntegrationCommands(program, {
|
|
746
|
+
signal,
|
|
747
|
+
output: integrationOutput,
|
|
748
|
+
receipt,
|
|
749
|
+
integration: async () => {
|
|
750
|
+
if (deps.meetingIntegration)
|
|
751
|
+
return deps.meetingIntegration;
|
|
752
|
+
const connected = await integrationConnection("meeting-integration");
|
|
753
|
+
if (!connected.meetingIntegration)
|
|
754
|
+
throw new ZoomError("configuration_error", "meeting integration is unavailable in this store connector");
|
|
755
|
+
return connected.meetingIntegration;
|
|
756
|
+
},
|
|
757
|
+
});
|
|
758
|
+
addLocalTranscriptionCommands(program, {
|
|
759
|
+
signal,
|
|
760
|
+
output: integrationOutput,
|
|
761
|
+
receipt,
|
|
762
|
+
capabilities: async () => {
|
|
763
|
+
if (deps.meetingTranscription)
|
|
764
|
+
return deps.meetingTranscription;
|
|
765
|
+
const config = getConfig();
|
|
766
|
+
if (!config.accountProfile || !deps.connectStore)
|
|
767
|
+
throw new ZoomError("configuration_error", "select a stored local profile for transcription");
|
|
768
|
+
connection = await deps.connectStore({
|
|
769
|
+
profile: config.accountProfile,
|
|
770
|
+
externalId: profileAccountKey(config.accountProfile),
|
|
771
|
+
intent: "read",
|
|
772
|
+
capability: "transcript-append",
|
|
773
|
+
});
|
|
774
|
+
if (!connection.meetingTranscription)
|
|
775
|
+
throw new ZoomError("configuration_error", "local transcription is unavailable in this store connector");
|
|
776
|
+
return connection.meetingTranscription;
|
|
777
|
+
},
|
|
778
|
+
});
|
|
779
|
+
addMeetingHitSearchCommand(program, {
|
|
780
|
+
signal,
|
|
781
|
+
output: integrationOutput,
|
|
782
|
+
search: async () => {
|
|
783
|
+
if (deps.meetingSearch)
|
|
784
|
+
return deps.meetingSearch;
|
|
785
|
+
const connected = await integrationConnection("meeting-search");
|
|
786
|
+
if (!connected.meetingSearch)
|
|
787
|
+
throw new ZoomError("configuration_error", "bounded meeting search is unavailable in this store connector");
|
|
788
|
+
return connected.meetingSearch;
|
|
789
|
+
},
|
|
790
|
+
});
|
|
791
|
+
addMeetingSearchIndexCommand(program, {
|
|
792
|
+
signal,
|
|
793
|
+
output: integrationOutput,
|
|
794
|
+
receipt,
|
|
795
|
+
index: async () => {
|
|
796
|
+
if (deps.meetingSearchIndex)
|
|
797
|
+
return deps.meetingSearchIndex;
|
|
798
|
+
const connected = await integrationConnection("meeting-search-index");
|
|
799
|
+
if (!connected.meetingSearchIndex)
|
|
800
|
+
throw new ZoomError("configuration_error", "bounded meeting indexing is unavailable in this store connector");
|
|
801
|
+
return connected.meetingSearchIndex;
|
|
802
|
+
},
|
|
803
|
+
});
|
|
715
804
|
addMeetingContextCommands(program, {
|
|
716
805
|
signal,
|
|
717
806
|
output: (value) => buffer(render(value, program.opts().jsonl ? "jsonl" : program.opts().json ? "json" : "text", deps, fields, true)),
|