@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.
Files changed (45) hide show
  1. package/README.md +76 -2
  2. package/dist/archive-import.d.ts +6 -2
  3. package/dist/archive-import.d.ts.map +1 -1
  4. package/dist/archive-import.js +32 -8
  5. package/dist/archive-import.js.map +1 -1
  6. package/dist/execution.d.ts.map +1 -1
  7. package/dist/execution.js +1 -0
  8. package/dist/execution.js.map +1 -1
  9. package/dist/index.d.ts +3 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/local-transcription-commands.d.ts +9 -0
  14. package/dist/local-transcription-commands.d.ts.map +1 -0
  15. package/dist/local-transcription-commands.js +51 -0
  16. package/dist/local-transcription-commands.js.map +1 -0
  17. package/dist/local-transcription.d.ts +52 -0
  18. package/dist/local-transcription.d.ts.map +1 -0
  19. package/dist/local-transcription.js +161 -0
  20. package/dist/local-transcription.js.map +1 -0
  21. package/dist/meeting-integration-commands.d.ts +9 -0
  22. package/dist/meeting-integration-commands.d.ts.map +1 -0
  23. package/dist/meeting-integration-commands.js +64 -0
  24. package/dist/meeting-integration-commands.js.map +1 -0
  25. package/dist/meeting-integration.d.ts +12 -0
  26. package/dist/meeting-integration.d.ts.map +1 -0
  27. package/dist/meeting-integration.js +9 -0
  28. package/dist/meeting-integration.js.map +1 -0
  29. package/dist/meeting-search-commands.d.ts +33 -0
  30. package/dist/meeting-search-commands.d.ts.map +1 -0
  31. package/dist/meeting-search-commands.js +85 -0
  32. package/dist/meeting-search-commands.js.map +1 -0
  33. package/dist/program.d.ts +15 -3
  34. package/dist/program.d.ts.map +1 -1
  35. package/dist/program.js +93 -4
  36. package/dist/program.js.map +1 -1
  37. package/dist/store-connection.d.ts +5 -1
  38. package/dist/store-connection.d.ts.map +1 -1
  39. package/dist/store-connection.js +145 -9
  40. package/dist/store-connection.js.map +1 -1
  41. package/dist/wav-audio.d.ts +28 -0
  42. package/dist/wav-audio.d.ts.map +1 -0
  43. package/dist/wav-audio.js +191 -0
  44. package/dist/wav-audio.js.map +1 -0
  45. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-transcription.js","sourceRoot":"","sources":["../src/local-transcription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAatC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAqB,MAAM,gBAAgB,CAAA;AAkBnF,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,KAAgC,EAA6B,EAAE;IAC/G,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,EAAE,CAAA;IAC5B,IACE,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;QACjC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;QAC1B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAE9B,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,uDAAuD,CAAC,CAAA;IAClG,IACE,OAAO,CAAC,eAAe,KAAK,SAAS;QACrC,CAAC,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ;YAC1C,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC;YACpC,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI;YACrC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAE3C,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,yDAAyD,CAAC,CAAA;IACpG,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI;QAChC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,aAAa,CAAC;QAChD,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,GAAG,QAAQ,EAAE,gBAAgB,CAAC;QACxD,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC;QAC9C,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,uBAAuB,CAAC;KACvD;QACR,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC;YACnF,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,WAAW,KAAK,SAAS,CAAC,CAAA;IACtE,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS;YACnD,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,0DAA0D,CAAC,CAAA;IACvG,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,OAAoC,EAAE,EAAE;IACvF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7B,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;QAClH,MAAM,IAAI,SAAS,CAAC,iBAAiB,EAAE,iEAAiE,CAAC,CAAA;IAC3G,OAAO;QACL,OAAO,EAAE,IAAa;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACpC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;QACnD,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW;QACtC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;QACxC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK;QACtC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,IAAI,IAAI;QACvD,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,sBAAsB;KACnE,CAAA;AACH,CAAC,CAAA;AACD,MAAM,UAAU,GAAG,KAAK,IAA8B,EAAE;IACtD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAA;IAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,2BAA2B,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,EAAE,CAAA;AACjG,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,IAAY,EACZ,OAKC,EAC2B,EAAE;IAC9B,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;IACpF,IAAI,IAA8B,CAAA;IAClC,IAAI,WAA8D,CAAA;IAClE,IAAI,MAAmC,CAAA;IACvC,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,OAAO;YACpB,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAC9B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,UAAU,CAAC,EAAE,CAAA;YAChD,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACnE,IAAI,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,GAAG,IAAI,CAAC,KAAK;gBACb,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;oBACzB,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,MAAM,EAAE,eAAwB;iBACjC,CAAC;aACH,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO;YAC5B,IACE,CAAC,IAAI;gBACL,CAAC,WAAW;gBACZ,CAAC,MAAM;gBACP,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW;gBAC5C,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC1B,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;gBAC9B,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU;gBAC1C,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM;gBAC/C,KAAK,CAAC,WAAW,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK;gBAC7C,KAAK,CAAC,WAAW,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO;gBAEjD,MAAM,IAAI,SAAS,CACjB,kBAAkB,EAClB,4EAA4E,CAC7E,CAAA;YACH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC/C,IAAI,KAAwC,CAAA;YAC5C,IAAI,CAAC;gBACH,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC9B,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;oBAC3C,SAAS,EAAE,QAAQ,CAAC,eAAe;oBACnC,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,CAAA;gBACF,IACE,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM;oBACnC,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK;oBACjC,KAAK,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO;oBAErC,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,6DAA6D,CAAC,CAAA;gBACxG,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC3C,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;oBAC9B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;oBAC9E,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;oBAC9B,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;gBAC9D,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC;oBACH,MAAM,KAAK,EAAE,KAAK,EAAE,CAAA;gBACtB,CAAC;wBAAS,CAAC;oBACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAClD,KAIC,EACD,KAAK,GAA6F,EAAE,EACpE,EAAE;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC;QACnD,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,0DAA0D,CAAC,CAAA;IACrG,MAAM,OAAO,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;IAC7E,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,4BAA4B,GAAG,KAAK,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnF,OAAO;QACL,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG;YACnC,MAAM,OAAO,GAAG,iCAAiC,CAAC,GAAG,CAAC,CAAA;YACtD,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAC9B,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAChE,MAAM,KAAK,GAAG,QAAQ,IAAI;gBACxB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;aAChC,CAAA;YACD,IACE,CAAC,KAAK;gBACN,KAAK,CAAC,SAAS,KAAK,SAAS;gBAC7B,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;gBACtC,KAAK,CAAC,SAAS,GAAG,CAAC;gBACnB,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;gBACpC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;gBAExB,MAAM,IAAI,SAAS,CAAC,WAAW,EAAE,+CAA+C,CAAC,CAAA;YACnF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;YAC7G,MAAM,MAAM,GAAG,4BAA4B,CAAC,IAAI,EAAE;gBAChD,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAA;YACF,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAA;YACnE,OAAO,iBAAiB,CACtB,MAAM,EACN;gBACE,4BAA4B,CAAC,KAAK;oBAChC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;wBACzE,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,sDAAsD,CAAC,CAAA;oBACjG,OAAO,4BAA4B,CAAC,KAAK,CAAC,CAAA;gBAC5C,CAAC;aACF,EACD,MAAM,EACN,OAAO,CACR,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
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
- ["evidence", "context", "task-proposal", "semantic", "embeddings"].includes(action.name())))
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 = { appendTranscripts: connection.appendTranscripts };
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)),