@wirecat/zoom-cli 0.30.0 → 0.32.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 (62) hide show
  1. package/README.md +6 -5
  2. package/dist/answer-output.d.ts +1 -0
  3. package/dist/answer-output.d.ts.map +1 -1
  4. package/dist/answer-output.js +7 -1
  5. package/dist/answer-output.js.map +1 -1
  6. package/dist/answers.d.ts +20 -0
  7. package/dist/answers.d.ts.map +1 -1
  8. package/dist/api.d.ts +4 -1
  9. package/dist/api.d.ts.map +1 -1
  10. package/dist/api.js +30 -30
  11. package/dist/api.js.map +1 -1
  12. package/dist/archive-commands.d.ts.map +1 -1
  13. package/dist/archive-commands.js +16 -3
  14. package/dist/archive-commands.js.map +1 -1
  15. package/dist/config.d.ts +4 -1
  16. package/dist/config.d.ts.map +1 -1
  17. package/dist/config.js +6 -4
  18. package/dist/config.js.map +1 -1
  19. package/dist/errors.d.ts +21 -0
  20. package/dist/errors.d.ts.map +1 -1
  21. package/dist/errors.js +51 -0
  22. package/dist/errors.js.map +1 -1
  23. package/dist/files.d.ts +3 -0
  24. package/dist/files.d.ts.map +1 -1
  25. package/dist/files.js +94 -12
  26. package/dist/files.js.map +1 -1
  27. package/dist/first-screen.js +2 -2
  28. package/dist/first-screen.js.map +1 -1
  29. package/dist/meeting-inventory-mcp.d.ts +10 -0
  30. package/dist/meeting-inventory-mcp.d.ts.map +1 -1
  31. package/dist/meeting-preparation-mcp.d.ts +15 -0
  32. package/dist/meeting-preparation-mcp.d.ts.map +1 -1
  33. package/dist/meeting-project-candidates-mcp.d.ts +10 -0
  34. package/dist/meeting-project-candidates-mcp.d.ts.map +1 -1
  35. package/dist/meeting-project-evidence-mcp.d.ts +10 -0
  36. package/dist/meeting-project-evidence-mcp.d.ts.map +1 -1
  37. package/dist/meeting-source.d.ts +4 -2
  38. package/dist/meeting-source.d.ts.map +1 -1
  39. package/dist/meeting-source.js +4 -3
  40. package/dist/meeting-source.js.map +1 -1
  41. package/dist/occurrence-schedule.d.ts.map +1 -1
  42. package/dist/occurrence-schedule.js +3 -11
  43. package/dist/occurrence-schedule.js.map +1 -1
  44. package/dist/program.d.ts.map +1 -1
  45. package/dist/program.js +12 -12
  46. package/dist/program.js.map +1 -1
  47. package/dist/recording-schedule-setup.d.ts +3 -1
  48. package/dist/recording-schedule-setup.d.ts.map +1 -1
  49. package/dist/recording-schedule-setup.js +2 -2
  50. package/dist/recording-schedule-setup.js.map +1 -1
  51. package/dist/recordings.d.ts +3 -1
  52. package/dist/recordings.d.ts.map +1 -1
  53. package/dist/recordings.js +15 -13
  54. package/dist/recordings.js.map +1 -1
  55. package/dist/version.d.ts +1 -1
  56. package/dist/version.js +1 -1
  57. package/dist/watch-service.d.ts +4 -2
  58. package/dist/watch-service.d.ts.map +1 -1
  59. package/dist/watch-service.js +5 -4
  60. package/dist/watch-service.js.map +1 -1
  61. package/package.json +3 -3
  62. package/skills/zoom-cli/SKILL.md +4 -2
package/dist/errors.d.ts CHANGED
@@ -1,5 +1,26 @@
1
+ import type { JsonValue } from "@wirecat/cli-core/meetings";
1
2
  export declare const checkCancelled: (signal?: AbortSignal) => void;
2
3
  export declare const object: (value: unknown) => Record<string, unknown>;
3
4
  export declare const string: (value: unknown) => string | null;
4
5
  export declare const number: (value: unknown) => number | null;
6
+ /** Epoch ms of a Zoom date-time, which must name its zone: a time without one would be read in the process zone. */
7
+ export declare const zoomInstant: (text: string, message: string) => number;
8
+ export declare const TIME_WITHOUT_ZONE = "time_without_zone";
9
+ /** Zoom times read without a zone during one command, so the answer can warn once. */
10
+ export declare class ZoneAssumptions {
11
+ private count;
12
+ private readonly zones;
13
+ add(zone: string): void;
14
+ take(): string[];
15
+ }
16
+ /**
17
+ * A Zoom response time. One without a zone is local time by Zoom's rule
18
+ * (https://developers.zoom.us/docs/api/using-zoom-apis/, "Time in Zoom API"), so it is read in the computer's zone,
19
+ * or in UTC when daylight saving makes that local time skipped or repeated; `zone` says which was assumed.
20
+ */
21
+ export declare const zoomTime: (text: string, message: string) => {
22
+ time: number;
23
+ zone: string | null;
24
+ };
25
+ export declare const withIssue: (metadata: Record<string, JsonValue>, doubtful: boolean) => Record<string, JsonValue>;
5
26
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,YAAa,WAAW,KAAG,IAKrD,CAAA;AACD,eAAO,MAAM,MAAM,UAAW,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAI7D,CAAA;AACD,eAAO,MAAM,MAAM,UAAW,OAAO,KAAG,MAAM,GAAG,IAAkE,CAAA;AACnH,eAAO,MAAM,MAAM,UAAW,OAAO,KAAG,MAAM,GAAG,IACmB,CAAA"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE3D,eAAO,MAAM,cAAc,YAAa,WAAW,KAAG,IAKrD,CAAA;AACD,eAAO,MAAM,MAAM,UAAW,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAI7D,CAAA;AACD,eAAO,MAAM,MAAM,UAAW,OAAO,KAAG,MAAM,GAAG,IAAkE,CAAA;AACnH,eAAO,MAAM,MAAM,UAAW,OAAO,KAAG,MAAM,GAAG,IACmB,CAAA;AACpE,oHAAoH;AACpH,eAAO,MAAM,WAAW,SAAU,MAAM,WAAW,MAAM,KAAG,MAS3D,CAAA;AACD,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AACpD,sFAAsF;AACtF,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAGtB;IACD,IAAI,IAAI,MAAM,EAAE,CAMf;CACF;AACD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,SAAU,MAAM,WAAW,MAAM,KAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAS3F,CAAA;AACD,eAAO,MAAM,SAAS,aAAc,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CACvC,CAAA"}
package/dist/errors.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { CliError, isCliError } from "@wirecat/cli-base";
2
+ import { timezoneOf, wallTime } from "@wirecat/cli-base/query";
2
3
  export const checkCancelled = (signal) => {
3
4
  if (!signal?.aborted)
4
5
  return;
@@ -14,4 +15,54 @@ export const object = (value) => {
14
15
  };
15
16
  export const string = (value) => (typeof value === "string" && value.trim() ? value : null);
16
17
  export const number = (value) => typeof value === "number" && Number.isFinite(value) ? value : null;
18
+ /** Epoch ms of a Zoom date-time, which must name its zone: a time without one would be read in the process zone. */
19
+ export const zoomInstant = (text, message) => {
20
+ const invalid = () => new CliError("invalid_response", message);
21
+ if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(text))
22
+ throw invalid();
23
+ const local = text.replace(/(?:Z|[+-]\d{2}:\d{2})$/, "Z");
24
+ const date = new Date(local);
25
+ if (!Number.isFinite(date.getTime()) || date.toISOString().slice(0, 19) !== local.slice(0, 19))
26
+ throw invalid();
27
+ const stamp = Date.parse(text);
28
+ if (!Number.isSafeInteger(stamp))
29
+ throw invalid();
30
+ return stamp;
31
+ };
32
+ export const TIME_WITHOUT_ZONE = "time_without_zone";
33
+ /** Zoom times read without a zone during one command, so the answer can warn once. */
34
+ export class ZoneAssumptions {
35
+ count = 0;
36
+ zones = new Set();
37
+ add(zone) {
38
+ this.count++;
39
+ this.zones.add(zone);
40
+ }
41
+ take() {
42
+ if (this.count === 0)
43
+ return [];
44
+ const notice = `${this.count} Zoom ${this.count === 1 ? "time had" : "times had"} no zone; read in ${[...this.zones].join(" or ")} and marked ${TIME_WITHOUT_ZONE}`;
45
+ this.count = 0;
46
+ this.zones.clear();
47
+ return [notice];
48
+ }
49
+ }
50
+ /**
51
+ * A Zoom response time. One without a zone is local time by Zoom's rule
52
+ * (https://developers.zoom.us/docs/api/using-zoom-apis/, "Time in Zoom API"), so it is read in the computer's zone,
53
+ * or in UTC when daylight saving makes that local time skipped or repeated; `zone` says which was assumed.
54
+ */
55
+ export const zoomTime = (text, message) => {
56
+ if (/(?:Z|[+-]\d{2}:\d{2})$/.test(text))
57
+ return { time: zoomInstant(text, message), zone: null };
58
+ const utc = zoomInstant(`${text}Z`, message);
59
+ const zone = timezoneOf();
60
+ try {
61
+ return { time: wallTime(text.replace(/(\.\d{3})\d+$/, "$1"), zone, { start: 0, end: text.length }), zone };
62
+ }
63
+ catch {
64
+ return { time: utc, zone: "UTC" };
65
+ }
66
+ };
67
+ export const withIssue = (metadata, doubtful) => doubtful ? { ...metadata, issues: [TIME_WITHOUT_ZONE] } : metadata;
17
68
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAExD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAoB,EAAQ,EAAE;IAC3D,IAAI,CAAC,MAAM,EAAE,OAAO;QAAE,OAAM;IAC5B,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,MAAM,MAAM,CAAC,MAAM,CAAA;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,YAAY,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAA;IACxF,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAA;AAC9G,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAc,EAA2B,EAAE;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,mCAAmC,CAAC,CAAA;IAC7E,OAAO,KAAgC,CAAA;AACzC,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AACnH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CACtD,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/files.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type ImportFile, type MeetingSource, type SourceMeeting } from "@wirecat/cli-core/meetings";
2
+ import { type ZoomConfig } from "./config.js";
2
3
  export interface DownloadedFile {
3
4
  name: string;
4
5
  content: string;
@@ -25,4 +26,6 @@ export declare class FilesSource implements MeetingSource {
25
26
  summary(): Promise<null>;
26
27
  files(): Promise<null>;
27
28
  }
29
+ /** What `meetings import --help` adds: the names zm reads and the zone it reads their time in. */
30
+ export declare const fileNamesHelp: (config: () => Pick<ZoomConfig, "filesTimezone">) => string;
28
31
  //# sourceMappingURL=files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAY,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG9G,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAwDD,eAAO,MAAM,WAAW,SAAU,MAAM,wBAAqB,aAc5D,CAAA;AACD,eAAO,MAAM,UAAU,SAAU,cAAc,aAAa,MAAM,wBAAqB,UAiCtF,CAAA;AAeD,eAAO,MAAM,uBAAuB,UAAW,cAAc,EAAE,wBAAqB,cAAc,EACrB,CAAA;AAC7E,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,QAAS,CAAA;AAEtC,eAAO,MAAM,mBAAmB,WAAkB,MAAM,KAAG,OAAO,CAAC,cAAc,EAAE,CA2BlF,CAAA;AACD,qBAAa,WAAY,YAAW,aAAa;IAK7C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,QAAQ,CAAC,QAAQ,UAAS;IAC1B,QAAQ,CAAC,gBAAgB,SAAQ;IACjC,QAAQ,CAAC,IAAI,UAAS;IACtB,YACmB,SAAS,EAAE,cAAc,EAAE,EAC3B,QAAQ,SAAQ,EAC/B;IACJ,OAAO,CAAC,OAAO,CAA2E;IAC1F,OAAO,CAAC,KAAK;IAKP,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAMtD;IACK,UAAU,CAAC,EAAE,EAAE,MAAM,yEAG1B;IACK,YAAY,kBAEjB;IACK,IAAI,kBAET;IACK,OAAO,kBAEZ;IACK,KAAK,kBAEV;CACF"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,aAAa,EAIlB,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AAExD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AA4ED,eAAO,MAAM,WAAW,SAAU,MAAM,wBAAqB,aAc5D,CAAA;AAmDD,eAAO,MAAM,UAAU,SAAU,cAAc,aAAa,MAAM,wBAAqB,UAoCtF,CAAA;AAoBD,eAAO,MAAM,uBAAuB,UAAW,cAAc,EAAE,wBAAqB,cAAc,EACrB,CAAA;AAC7E,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,QAAS,CAAA;AAEtC,eAAO,MAAM,mBAAmB,WAAkB,MAAM,KAAG,OAAO,CAAC,cAAc,EAAE,CA8BlF,CAAA;AACD,qBAAa,WAAY,YAAW,aAAa;IAK7C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,QAAQ,CAAC,QAAQ,UAAS;IAC1B,QAAQ,CAAC,gBAAgB,SAAQ;IACjC,QAAQ,CAAC,IAAI,UAAS;IACtB,YACmB,SAAS,EAAE,cAAc,EAAE,EAC3B,QAAQ,SAAQ,EAC/B;IACJ,OAAO,CAAC,OAAO,CAA2E;IAC1F,OAAO,CAAC,KAAK;IAKP,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAMtD;IACK,UAAU,CAAC,EAAE,EAAE,MAAM,yEAI1B;IACK,YAAY,kBAEjB;IACK,IAAI,kBAET;IACK,OAAO,kBAEZ;IACK,KAAK,kBAEV;CACF;AAED,kGAAkG;AAClG,eAAO,MAAM,aAAa,WAAY,MAAM,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,KAAG,MAY/E,CAAA"}
package/dist/files.js CHANGED
@@ -2,8 +2,9 @@ import { createHash } from "node:crypto";
2
2
  import { readdir, readFile, stat } from "node:fs/promises";
3
3
  import { basename, join } from "node:path";
4
4
  import { CliError } from "@wirecat/cli-base";
5
- import { parseVtt } from "@wirecat/cli-core/meetings";
5
+ import { parseTranscriptText, parseVtt, } from "@wirecat/cli-core/meetings";
6
6
  import { TRANSCRIPT_MAX_BYTES } from "./api.js";
7
+ import { filesZone } from "./config.js";
7
8
  const localTimestamp = (year, month, day, hour, minute, timezone) => {
8
9
  const target = Date.UTC(year, month - 1, day, hour, minute);
9
10
  const date = new Date(target);
@@ -43,10 +44,22 @@ const localTimestamp = (year, month, day, hour, minute, timezone) => {
43
44
  throw new CliError("validation_error", "transcript filename time is ambiguous or nonexistent in the selected timezone");
44
45
  return [...possibilities][0] ?? target;
45
46
  };
47
+ const FILE_NAME = /^(\d{4})-(\d{2})-(\d{2})_(\d{2})(\d{2})_(.+)\.(vtt|txt)$/i;
48
+ const isText = (name) => /\.txt$/i.test(name);
49
+ const MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
50
+ /** `Mar 4, 2026 10:30 AM`, as the Zoom web portal shows a recording: the wall clock of the zone the files were made in. */
51
+ const headerTime = (date, timezone) => {
52
+ const match = /^([A-Z][a-z]{2}) (\d{1,2}), (\d{4}) (\d{1,2}):(\d{2}) ([AP]M)$/.exec(date ?? "");
53
+ const month = MONTHS.indexOf(match?.[1] ?? "") + 1;
54
+ if (!match || month === 0)
55
+ return null;
56
+ const [, , day, year, hour, minute, half] = match;
57
+ return localTimestamp(Number(year), month, Number(day), (Number(hour) % 12) + (half === "PM" ? 12 : 0), Number(minute), timezone);
58
+ };
46
59
  export const fileMeeting = (name, timezone = "UTC") => {
47
- const match = /^(\d{4})-(\d{2})-(\d{2})_(\d{2})(\d{2})_(.+)\.vtt$/i.exec(basename(name));
60
+ const match = FILE_NAME.exec(basename(name));
48
61
  if (!match)
49
- throw new CliError("validation_error", "expected a transcript named YYYY-MM-DD_HHMM_topic.vtt");
62
+ throw new CliError("validation_error", "expected a transcript named YYYY-MM-DD_HHMM_topic.vtt or .txt");
50
63
  const [, year, month, day, hour, minute, topic = ""] = match;
51
64
  const startedAt = localTimestamp(Number(year), Number(month), Number(day), Number(hour), Number(minute), timezone);
52
65
  const slug = topic.normalize("NFC");
@@ -59,29 +72,74 @@ export const fileMeeting = (name, timezone = "UTC") => {
59
72
  timezone,
60
73
  };
61
74
  };
75
+ /**
76
+ * A `.txt` header names the meeting, when its recording was made, its Zoom meeting id and who spoke. zoom-searcher
77
+ * took that time, and the one in the file name, from the portal's "created" column: the end of the recording, not
78
+ * the start — on seven meetings the API also holds, it was the API's start plus the transcript's length, to the
79
+ * minute. So the start is that time less the last line's offset. The id is the series key the API uses, so the
80
+ * file's copy and the API's copy of one occurrence become one record. A speaker is a participant of this meeting
81
+ * only, keyed by name: a name alone never stands for the same person in another meeting.
82
+ */
83
+ const textHeader = (file, accountId, occurrenceId, timezone, nameTime) => {
84
+ if (!isText(file.name))
85
+ return undefined;
86
+ const { header, lines } = parseTranscriptText(file.content);
87
+ const participants = header.speakers.map((name, position) => ({
88
+ identity: {
89
+ provider: "zoom",
90
+ externalId: `name:${name}@${accountId}/${occurrenceId}:${position}`,
91
+ name,
92
+ metadata: null,
93
+ associatePerson: false,
94
+ },
95
+ displayName: name,
96
+ email: null,
97
+ role: null,
98
+ joinedAt: null,
99
+ leftAt: null,
100
+ durationMs: null,
101
+ sessions: null,
102
+ externalId: null,
103
+ metadata: null,
104
+ }));
105
+ const meetingId = header.meetingId?.replace(/\s/g, "");
106
+ const endedAt = headerTime(header.date, timezone) ?? nameTime;
107
+ const durationMs = lines.at(-1)?.startMs ?? 0;
108
+ return {
109
+ title: header.title,
110
+ startedAt: endedAt - durationMs,
111
+ endedAt,
112
+ durationMs,
113
+ seriesId: meetingId && /^\d+$/.test(meetingId) ? meetingId : null,
114
+ participants,
115
+ };
116
+ };
62
117
  export const importFile = (file, accountId, timezone = "UTC") => {
63
118
  const source = fileMeeting(file.name, timezone);
119
+ const header = textHeader(file, accountId, source.occurrence.id, timezone, Date.parse(source.occurrence.startedAt));
120
+ const title = header?.title ?? source.occurrence.title;
64
121
  return {
65
122
  content: file.content,
66
123
  source: "file",
124
+ ...(header ? { format: "text", participants: header.participants } : {}),
67
125
  meeting: {
68
126
  accountId,
69
127
  externalId: source.occurrence.id,
70
- title: source.occurrence.title,
128
+ title,
71
129
  description: null,
72
130
  location: null,
73
131
  joinUrl: null,
74
- startedAt: Date.parse(source.occurrence.startedAt),
75
- endedAt: null,
76
- durationMs: null,
132
+ startedAt: header?.startedAt ?? Date.parse(source.occurrence.startedAt),
133
+ endedAt: header?.endedAt ?? null,
134
+ durationMs: header?.durationMs ?? null,
77
135
  timezone,
78
136
  hostIdentityId: null,
79
137
  participantsCount: null,
80
138
  metadata: null,
81
139
  deletedAt: null,
82
140
  series: {
83
- externalId: source.occurrence.seriesId,
84
- title: source.series?.title ?? null,
141
+ externalId: header?.seriesId ?? source.occurrence.seriesId,
142
+ title: header?.title ?? source.series?.title ?? null,
85
143
  description: null,
86
144
  kind: null,
87
145
  recurrence: null,
@@ -98,6 +156,12 @@ const indexDownloadedFiles = (files, timezone) => {
98
156
  for (const file of [...files].sort((a, b) => a.name.localeCompare(b.name))) {
99
157
  const meeting = fileMeeting(file.name, timezone);
100
158
  const existing = result.get(meeting.occurrence.id);
159
+ // A .txt and a .vtt of one meeting are two copies; the .txt also carries the header.
160
+ if (existing && isText(existing.file.name) !== isText(file.name)) {
161
+ if (isText(file.name))
162
+ result.set(meeting.occurrence.id, { meeting, file });
163
+ continue;
164
+ }
101
165
  if (existing && existing.file.content !== file.content)
102
166
  throw new CliError("validation_error", "conflicting transcript files have the same occurrence key");
103
167
  if (!existing)
@@ -119,10 +183,11 @@ export const readDownloadedFiles = async (folder) => {
119
183
  throw error;
120
184
  });
121
185
  const entries = listing
122
- .filter((entry) => entry.isFile() && /\.vtt$/i.test(entry.name))
186
+ // Any .vtt is a transcript and a misnamed one is an error; a .txt is one only when named like one.
187
+ .filter((entry) => entry.isFile() && (/\.vtt$/i.test(entry.name) || (isText(entry.name) && FILE_NAME.test(entry.name))))
123
188
  .sort((a, b) => a.name.localeCompare(b.name));
124
189
  if (entries.length > FOLDER_MAX_FILES)
125
- throw new CliError("validation_error", `the folder holds ${entries.length} .vtt files and zm reads at most ${FOLDER_MAX_FILES} — move some into another folder`);
190
+ throw new CliError("validation_error", `the folder holds ${entries.length} transcript files and zm reads at most ${FOLDER_MAX_FILES} — move some into another folder`);
126
191
  const files = [];
127
192
  for (const entry of entries) {
128
193
  const path = join(folder, entry.name);
@@ -159,7 +224,9 @@ export class FilesSource {
159
224
  }
160
225
  async transcript(id) {
161
226
  const file = this.index().get(id)?.file;
162
- return file ? parseVtt(file.content) : null;
227
+ if (!file)
228
+ return null;
229
+ return isText(file.name) ? parseTranscriptText(file.content).lines : parseVtt(file.content);
163
230
  }
164
231
  async participants() {
165
232
  return null;
@@ -174,4 +241,19 @@ export class FilesSource {
174
241
  return null;
175
242
  }
176
243
  }
244
+ /** What `meetings import --help` adds: the names zm reads and the zone it reads their time in. */
245
+ export const fileNamesHelp = (config) => {
246
+ let zone;
247
+ try {
248
+ zone = config().filesTimezone
249
+ ? `files.timezone, now ${filesZone(config())}`
250
+ : `this computer's zone, now ${filesZone(config())}`;
251
+ }
252
+ catch {
253
+ zone = "files.timezone, else this computer's zone";
254
+ }
255
+ return `Files: YYYY-MM-DD_HHMM_topic.vtt, and YYYY-MM-DD_HHMM_topic.txt with a header (Встреча:, Дата:, Zoom ID:, Говорят:).
256
+ The time in a file name and in Дата: is read in ${zone}; set another with
257
+ zm config set files.timezone <IANA zone>. Times are stored in UTC, and the import names the zone it used.`;
258
+ };
177
259
  //# sourceMappingURL=files.js.map
package/dist/files.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAIL,mBAAmB,EACnB,QAAQ,GAET,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAA;AAMxD,MAAM,cAAc,GAAG,CACrB,IAAY,EACZ,KAAa,EACb,GAAW,EACX,IAAY,EACZ,MAAc,EACd,QAAgB,EACR,EAAE;IACV,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC3D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7B,IACE,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI;QAC9B,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,CAAC;QAChC,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG;QACzB,IAAI,GAAG,EAAE;QACT,MAAM,GAAG,EAAE;QAEX,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,sDAAsD,CAAC,CAAA;IAChG,IAAI,SAA8B,CAAA;IAClC,IAAI,CAAC;QACH,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC3C,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,gCAAgC,CAAC,CAAA;IAC1E,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACzG,OAAO,IAAI,CAAC,GAAG,CACb,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAClB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EACvB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACjB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAClB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CACrB,CAAA;IACH,CAAC,CAAA;IACD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;IACvC,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,GAAG,KAAK,CAAA;QAC5B,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAA;QACpD,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,MAAM;YAAE,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAClE,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;QAC1B,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,+EAA+E,CAChF,CAAA;IACH,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAA;AACxC,CAAC,CAAA;AACD,MAAM,SAAS,GAAG,2DAA2D,CAAA;AAC7E,MAAM,MAAM,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9D,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;AAEnG,2HAA2H;AAC3H,MAAM,UAAU,GAAG,CAAC,IAAmB,EAAE,QAAgB,EAAiB,EAAE;IAC1E,MAAM,KAAK,GAAG,gEAAgE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAC/F,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;IAClD,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACtC,MAAM,CAAC,EAAE,AAAD,EAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,CAAA;IACjD,OAAO,cAAc,CACnB,MAAM,CAAC,IAAI,CAAC,EACZ,KAAK,EACL,MAAM,CAAC,GAAG,CAAC,EACX,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAC9C,MAAM,CAAC,MAAM,CAAC,EACd,QAAQ,CACT,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK,EAAiB,EAAE;IAC3E,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,+DAA+D,CAAC,CAAA;IACnH,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,KAAK,CAAA;IAC5D,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAA;IAClH,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,EAAE,GAAG,QAAQ,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IAClH,MAAM,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACrC,OAAO;QACL,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE;QACjD,UAAU,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAChG,QAAQ;KACT,CAAA;AACH,CAAC,CAAA;AACD;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,CACjB,IAAoB,EACpB,SAAiB,EACjB,YAAoB,EACpB,QAAgB,EAChB,QAAgB,EAChB,EAAE;IACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IACxC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CACtC,CAAC,IAAI,EAAE,QAAQ,EAAoB,EAAE,CAAC,CAAC;QACrC,QAAQ,EAAE;YACR,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,QAAQ,IAAI,IAAI,SAAS,IAAI,YAAY,IAAI,QAAQ,EAAE;YACnE,IAAI;YACJ,QAAQ,EAAE,IAAI;YACd,eAAe,EAAE,KAAK;SACvB;QACD,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;KACf,CAAC,CACH,CAAA;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAA;IAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAA;IAC7C,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,OAAO,GAAG,UAAU;QAC/B,OAAO;QACP,UAAU;QACV,QAAQ,EAAE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QACjE,YAAY;KACb,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAoB,EAAE,SAAiB,EAAE,QAAQ,GAAG,KAAK,EAAc,EAAE;IAClG,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;IACnH,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAA;IACtD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,MAAM;QACd,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAe,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,OAAO,EAAE;YACP,SAAS;YACT,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE;YAChC,KAAK;YACL,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;YACvE,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI;YAChC,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI;YACtC,QAAQ;YACR,cAAc,EAAE,IAAI;YACpB,iBAAiB,EAAE,IAAI;YACvB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;YACf,MAAM,EAAE;gBACN,UAAU,EAAE,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ;gBAC1D,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI;gBACpD,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE,IAAI;gBACpB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,IAAI;aAChB;SACF;KACF,CAAA;AACH,CAAC,CAAA;AACD,MAAM,oBAAoB,GAAG,CAC3B,KAAuB,EACvB,QAAgB,EAC+C,EAAE;IACjE,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4D,CAAA;IAClF,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAClD,qFAAqF;QACrF,IAAI,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YAC3E,SAAQ;QACV,CAAC;QACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;YACpD,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,2DAA2D,CAAC,CAAA;QACrG,IAAI,CAAC,QAAQ;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACrE,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAuB,EAAE,QAAQ,GAAG,KAAK,EAAoB,EAAE,CACrG,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;AAC7E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAEtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,MAAc,EAA6B,EAAE;IACrF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAA4B,EAAE,EAAE;QACpG,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,qBAAqB,MAAM,EAAE,CAAC,CAAA;QAC3F,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,iBAAiB,MAAM,EAAE,CAAC,CAAA;QAC/F,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YACnD,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,MAAM,EAAE,CAAC,CAAA;QACzE,MAAM,KAAK,CAAA;IACb,CAAC,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,OAAO;QACrB,mGAAmG;SAClG,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAChH;SACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/C,IAAI,OAAO,CAAC,MAAM,GAAG,gBAAgB;QACnC,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,oBAAoB,OAAO,CAAC,MAAM,0CAA0C,gBAAgB,kCAAkC,CAC/H,CAAA;IACH,MAAM,KAAK,GAAqB,EAAE,CAAA;IAClC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,oBAAoB;YAChD,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,GAAG,KAAK,CAAC,IAAI,mBAAmB,oBAAoB,GAAG,IAAI,IAAI,CAAC,6CAA6C,CAC9G,CAAA;QACH,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAA;AACvC,CAAC,CAAA;AACD,MAAM,OAAO,WAAW;IAKH,SAAS;IACT,QAAQ;IALlB,QAAQ,GAAG,MAAM,CAAA;IACjB,gBAAgB,GAAG,KAAK,CAAA;IACxB,IAAI,GAAG,MAAM,CAAA;IACtB,YACmB,SAA2B,EAC3B,QAAQ,GAAG,KAAK;yBADhB,SAAS;wBACT,QAAQ;IACxB,CAAC;IACI,OAAO,CAA2E;IAClF,KAAK;QACX,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAA;QACrC,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IACD,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,iCAAiC,CAAC,CAAA;QACtG,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;aAC9B,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAA;IAC/D,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAA;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QACtB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7F,CAAC;IACD,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED,kGAAkG;AAClG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA+C,EAAU,EAAE;IACvF,IAAI,IAAY,CAAA;IAChB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa;YAC3B,CAAC,CAAC,uBAAuB,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,CAAC,CAAC,6BAA6B,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAA;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,2CAA2C,CAAA;IACpD,CAAC;IACD,OAAO;kDACyC,IAAI;0GACoD,CAAA;AAC1G,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { fileURLToPath } from "node:url";
2
- import { guideCommand, inSection, installHelp } from "@wirecat/cli-core/cli";
2
+ import { guideCommand, inSection, installHelp, MEMO_SCENARIOS } from "@wirecat/cli-core/cli";
3
3
  import { ZM } from "./read-only.js";
4
4
  // cli-core places its own groups (meetings, search, watch, serve, config, skill…); these are zm's.
5
5
  const SECTIONS = [
@@ -31,7 +31,7 @@ export const installFirstScreen = (program) => {
31
31
  placeInSections(program);
32
32
  const guide = guideCommand(ZM, {
33
33
  directory: fileURLToPath(new URL("../scenarios", import.meta.url)),
34
- worksWith: [{ tool: "memo", name: "person-brief", title: "One person across every tool" }],
34
+ worksWith: [MEMO_SCENARIOS.personBrief],
35
35
  profile: false,
36
36
  });
37
37
  // addCommand, unlike command(), leaves out the exit override: `guide --help` called process.exit itself.
@@ -1 +1 @@
1
- {"version":3,"file":"first-screen.js","sourceRoot":"","sources":["../src/first-screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,YAAY,EAAoB,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAE9F,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAEnC,mGAAmG;AACnG,MAAM,QAAQ,GAA8B;IAC1C,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IACxB,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxC,CAAC,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACxC,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACxC,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACxC,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IACrC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC;IACpC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAClC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAQ,EAAE;IACjD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;QACvC,IAAI,OAAO,GAAwB,OAAO,CAAA;QAC1C,KAAK,MAAM,IAAI,IAAI,IAAI;YAAE,OAAO,GAAG,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAA;QAC3F,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACpF,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC,CAAA;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAQ,EAAE;IAC3D,eAAe,CAAC,OAAO,CAAC,CAAA;IACxB,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE;QAC7B,SAAS,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,cAAc,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;QAC1F,OAAO,EAAE,KAAK;KACf,CAAC,CAAA;IACF,yGAAyG;IACzG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAA;IACxD,WAAW,CAAC,OAAO,EAAE;QACnB,KAAK,EACH,+GAA+G;QACjH,GAAG,EAAE;YACH,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,oDAAoD,EAAE;YACxF,EAAE,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,+CAA+C,EAAE;YAC7F,EAAE,OAAO,EAAE,2BAA2B,EAAE,IAAI,EAAE,yCAAyC,EAAE;YACzF,EAAE,OAAO,EAAE,8BAA8B,EAAE,IAAI,EAAE,0CAA0C,EAAE;YAC7F,EAAE,OAAO,EAAE,sCAAsC,EAAE,IAAI,EAAE,8CAA8C,EAAE;YACzG,EAAE,OAAO,EAAE,8BAA8B,EAAE,IAAI,EAAE,8CAA8C,EAAE;YACjG,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,2CAA2C,EAAE;YAC7E;gBACE,OAAO,EAAE,qBAAqB;gBAC9B,IAAI,EAAE,yEAAyE;aAChF;SACF;QACD,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,kBAAkB;KAC1B,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"first-screen.js","sourceRoot":"","sources":["../src/first-screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,YAAY,EAAoB,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE9G,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAEnC,mGAAmG;AACnG,MAAM,QAAQ,GAA8B;IAC1C,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IACxB,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxC,CAAC,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC7B,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACxC,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACxC,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACxC,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IACrC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC;IACpC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAClC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAQ,EAAE;IACjD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;QACvC,IAAI,OAAO,GAAwB,OAAO,CAAA;QAC1C,KAAK,MAAM,IAAI,IAAI,IAAI;YAAE,OAAO,GAAG,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAA;QAC3F,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACpF,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC,CAAA;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAQ,EAAE;IAC3D,eAAe,CAAC,OAAO,CAAC,CAAA;IACxB,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE;QAC7B,SAAS,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,cAAc,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,SAAS,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC;QACvC,OAAO,EAAE,KAAK;KACf,CAAC,CAAA;IACF,yGAAyG;IACzG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAA;IACxD,WAAW,CAAC,OAAO,EAAE;QACnB,KAAK,EACH,+GAA+G;QACjH,GAAG,EAAE;YACH,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,oDAAoD,EAAE;YACxF,EAAE,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,+CAA+C,EAAE;YAC7F,EAAE,OAAO,EAAE,2BAA2B,EAAE,IAAI,EAAE,yCAAyC,EAAE;YACzF,EAAE,OAAO,EAAE,8BAA8B,EAAE,IAAI,EAAE,0CAA0C,EAAE;YAC7F,EAAE,OAAO,EAAE,sCAAsC,EAAE,IAAI,EAAE,8CAA8C,EAAE;YACzG,EAAE,OAAO,EAAE,8BAA8B,EAAE,IAAI,EAAE,8CAA8C,EAAE;YACjG,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,2CAA2C,EAAE;YAC7E;gBACE,OAAO,EAAE,qBAAqB;gBAC9B,IAAI,EAAE,yEAAyE;aAChF;SACF;QACD,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,kBAAkB;KAC1B,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -53,6 +53,11 @@ export declare const readInventoryTool: (read: MeetingSeriesInventoryReader, inp
53
53
  source: string;
54
54
  }[] | undefined;
55
55
  truncated?: boolean | undefined;
56
+ timezone?: string | undefined;
57
+ window?: {
58
+ since?: string | undefined;
59
+ until?: string | undefined;
60
+ } | undefined;
56
61
  };
57
62
  } | {
58
63
  item: unknown;
@@ -88,6 +93,11 @@ export declare const readInventoryTool: (read: MeetingSeriesInventoryReader, inp
88
93
  source: string;
89
94
  }[] | undefined;
90
95
  truncated?: boolean | undefined;
96
+ timezone?: string | undefined;
97
+ window?: {
98
+ since?: string | undefined;
99
+ until?: string | undefined;
100
+ } | undefined;
91
101
  };
92
102
  };
93
103
  } | ({
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-inventory-mcp.d.ts","sourceRoot":"","sources":["../src/meeting-inventory-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,4BAA4B,EAAe,MAAM,uBAAuB,CAAA;AACtH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,eAAO,MAAM,iBAAiB,SACtB,4BAA4B,SAC3B,OAAO,UACN,WAAW,WACV;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE;;cAY/B,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAClC,CAAA"}
1
+ {"version":3,"file":"meeting-inventory-mcp.d.ts","sourceRoot":"","sources":["../src/meeting-inventory-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,4BAA4B,EAAe,MAAM,uBAAuB,CAAA;AACtH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,eAAO,MAAM,iBAAiB,SACtB,4BAA4B,SAC3B,OAAO,UACN,WAAW,WACV;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE;;cAY/B,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAClC,CAAA"}
@@ -110,6 +110,11 @@ export declare const readPreparationTool: (deps: {
110
110
  source: string;
111
111
  }[] | undefined;
112
112
  truncated?: boolean | undefined;
113
+ timezone?: string | undefined;
114
+ window?: {
115
+ since?: string | undefined;
116
+ until?: string | undefined;
117
+ } | undefined;
113
118
  };
114
119
  } | {
115
120
  item: unknown;
@@ -145,6 +150,11 @@ export declare const readPreparationTool: (deps: {
145
150
  source: string;
146
151
  }[] | undefined;
147
152
  truncated?: boolean | undefined;
153
+ timezone?: string | undefined;
154
+ window?: {
155
+ since?: string | undefined;
156
+ until?: string | undefined;
157
+ } | undefined;
148
158
  };
149
159
  };
150
160
  } | ({
@@ -462,6 +472,11 @@ export declare const readPreparationTool: (deps: {
462
472
  id: string;
463
473
  excerpt: string;
464
474
  offset_ms: number | null;
475
+ match?: "corrected" | "words" | undefined;
476
+ corrections?: {
477
+ from: string;
478
+ to: string[];
479
+ }[] | undefined;
465
480
  source?: {
466
481
  ref: string;
467
482
  title: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-preparation-mcp.d.ts","sourceRoot":"","sources":["../src/meeting-preparation-mcp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAA;AAOjC,eAAO,MAAM,kBAAkB,aAAc,cAAc;;;;;;;;;;;;;;;CAc1D,CAAA;AAED,eAAO,MAAM,mBAAmB,SACxB;IACJ,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;IACnF,WAAW,CAAC,EAAE,sBAAsB,CAAA;IACpC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB,SACM,OAAO,UACN,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA0BQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAClC,CAAA"}
1
+ {"version":3,"file":"meeting-preparation-mcp.d.ts","sourceRoot":"","sources":["../src/meeting-preparation-mcp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAA;AAOjC,eAAO,MAAM,kBAAkB,aAAc,cAAc;;;;;;;;;;;;;;;CAc1D,CAAA;AAED,eAAO,MAAM,mBAAmB,SACxB;IACJ,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;IACnF,WAAW,CAAC,EAAE,sBAAsB,CAAA;IACpC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB,SACM,OAAO,UACN,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA0BQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAClC,CAAA"}
@@ -93,6 +93,11 @@ export declare const readProjectCandidatesTool: (deps: {
93
93
  source: string;
94
94
  }[] | undefined;
95
95
  truncated?: boolean | undefined;
96
+ timezone?: string | undefined;
97
+ window?: {
98
+ since?: string | undefined;
99
+ until?: string | undefined;
100
+ } | undefined;
96
101
  };
97
102
  } | {
98
103
  item: unknown;
@@ -128,6 +133,11 @@ export declare const readProjectCandidatesTool: (deps: {
128
133
  source: string;
129
134
  }[] | undefined;
130
135
  truncated?: boolean | undefined;
136
+ timezone?: string | undefined;
137
+ window?: {
138
+ since?: string | undefined;
139
+ until?: string | undefined;
140
+ } | undefined;
131
141
  };
132
142
  };
133
143
  } | ({
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-project-candidates-mcp.d.ts","sourceRoot":"","sources":["../src/meeting-project-candidates-mcp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAEvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,eAAO,MAAM,yBAAyB,SAC9B;IACJ,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB,SACM,OAAO,UACN,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkBQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAClC,CAAA"}
1
+ {"version":3,"file":"meeting-project-candidates-mcp.d.ts","sourceRoot":"","sources":["../src/meeting-project-candidates-mcp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAEvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,eAAO,MAAM,yBAAyB,SAC9B;IACJ,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB,SACM,OAAO,UACN,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkBQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAClC,CAAA"}
@@ -93,6 +93,11 @@ export declare const readProjectEvidenceTool: (deps: {
93
93
  source: string;
94
94
  }[] | undefined;
95
95
  truncated?: boolean | undefined;
96
+ timezone?: string | undefined;
97
+ window?: {
98
+ since?: string | undefined;
99
+ until?: string | undefined;
100
+ } | undefined;
96
101
  };
97
102
  } | {
98
103
  item: unknown;
@@ -128,6 +133,11 @@ export declare const readProjectEvidenceTool: (deps: {
128
133
  source: string;
129
134
  }[] | undefined;
130
135
  truncated?: boolean | undefined;
136
+ timezone?: string | undefined;
137
+ window?: {
138
+ since?: string | undefined;
139
+ until?: string | undefined;
140
+ } | undefined;
131
141
  };
132
142
  };
133
143
  } | ({
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-project-evidence-mcp.d.ts","sourceRoot":"","sources":["../src/meeting-project-evidence-mcp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,SAC5B;IAAE,YAAY,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,SAC9F,OAAO,UACN,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkCQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAClC,CAAA"}
1
+ {"version":3,"file":"meeting-project-evidence-mcp.d.ts","sourceRoot":"","sources":["../src/meeting-project-evidence-mcp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,SAC5B;IAAE,YAAY,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,SAC9F,OAAO,UACN,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkCQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAClC,CAAA"}
@@ -1,13 +1,15 @@
1
1
  import type { MeetingSource } from "@wirecat/cli-core/meetings";
2
- import type { ZoomConfig } from "./config.js";
2
+ import { type ZoomConfig } from "./config.js";
3
+ import type { ZoneAssumptions } from "./errors.js";
3
4
  import type { ProgramDeps } from "./program.js";
4
5
  import type { TokenManager } from "./tokens.js";
5
6
  /** The API or folder source the config names, built on first use; reset() drops it between parses. */
6
- export declare const configuredMeetingSource: ({ deps, getConfig, tokens, fetch, }: {
7
+ export declare const configuredMeetingSource: ({ deps, getConfig, tokens, fetch, zones, }: {
7
8
  deps: Pick<ProgramDeps, "source" | "readFiles">;
8
9
  getConfig: () => ZoomConfig;
9
10
  tokens: () => TokenManager;
10
11
  fetch: () => typeof globalThis.fetch;
12
+ zones: ZoneAssumptions;
11
13
  }) => {
12
14
  source: MeetingSource;
13
15
  reset: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-source.d.ts","sourceRoot":"","sources":["../src/meeting-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,sGAAsG;AACtG,eAAO,MAAM,uBAAuB,wCAKjC;IACD,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAA;IAC/C,SAAS,EAAE,MAAM,UAAU,CAAA;IAC3B,MAAM,EAAE,MAAM,YAAY,CAAA;IAC1B,KAAK,EAAE,MAAM,OAAO,UAAU,CAAC,KAAK,CAAA;CACrC,KAAG;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAoD7C,CAAA"}
1
+ {"version":3,"file":"meeting-source.d.ts","sourceRoot":"","sources":["../src/meeting-source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,sGAAsG;AACtG,eAAO,MAAM,uBAAuB,+CAMjC;IACD,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAA;IAC/C,SAAS,EAAE,MAAM,UAAU,CAAA;IAC3B,MAAM,EAAE,MAAM,YAAY,CAAA;IAC1B,KAAK,EAAE,MAAM,OAAO,UAAU,CAAC,KAAK,CAAA;IACpC,KAAK,EAAE,eAAe,CAAA;CACvB,KAAG;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAoD7C,CAAA"}
@@ -1,8 +1,9 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
2
  import { ZoomApiSource } from "./api.js";
3
+ import { filesZone } from "./config.js";
3
4
  import { FilesSource, readDownloadedFiles } from "./files.js";
4
5
  /** The API or folder source the config names, built on first use; reset() drops it between parses. */
5
- export const configuredMeetingSource = ({ deps, getConfig, tokens, fetch, }) => {
6
+ export const configuredMeetingSource = ({ deps, getConfig, tokens, fetch, zones, }) => {
6
7
  let activeSource;
7
8
  const getSource = () => {
8
9
  if (deps.source)
@@ -13,11 +14,11 @@ export const configuredMeetingSource = ({ deps, getConfig, tokens, fetch, }) =>
13
14
  const manager = tokens();
14
15
  if (!manager.options.clientId)
15
16
  throw new CliError("configuration_error", "run zm config set zoom.client_id <Public Client ID> first");
16
- return new ZoomApiSource(manager, fetch());
17
+ return new ZoomApiSource(manager, fetch(), {}, zones);
17
18
  }
18
19
  if (!config.filesFolder)
19
20
  throw new CliError("configuration_error", "set files.folder before pulling from files");
20
- return new FilesSource(await (deps.readFiles ?? readDownloadedFiles)(config.filesFolder), config.filesTimezone);
21
+ return new FilesSource(await (deps.readFiles ?? readDownloadedFiles)(config.filesFolder), filesZone(config));
21
22
  })();
22
23
  return activeSource;
23
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-source.js","sourceRoot":"","sources":["../src/meeting-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meeting-source.js","sourceRoot":"","sources":["../src/meeting-source.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"occurrence-schedule.d.ts","sourceRoot":"","sources":["../src/occurrence-schedule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAM9F,eAAO,MAAM,oBAAoB,UAAW,OAAO,KAAG,MAAM,GAAG,IAa9D,CAAA;AA4BD,eAAO,MAAM,sBAAsB,UAAW,OAAO,aAAa,MAAM,SAAS,MAAM,KAAG,yBAoDzF,CAAA"}
1
+ {"version":3,"file":"occurrence-schedule.d.ts","sourceRoot":"","sources":["../src/occurrence-schedule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqB,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAM9F,eAAO,MAAM,oBAAoB,UAAW,OAAO,KAAG,MAAM,GAAG,IAI9D,CAAA;AA4BD,eAAO,MAAM,sBAAsB,UAAW,OAAO,aAAa,MAAM,SAAS,MAAM,KAAG,yBAoDzF,CAAA"}
@@ -1,22 +1,14 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
- import { object } from "./errors.js";
2
+ import { object, zoomInstant } from "./errors.js";
3
3
  function invalid(field) {
4
4
  throw new CliError("invalid_response", `Zoom meeting ${field} is invalid`);
5
5
  }
6
6
  export const zoomScheduledInstant = (value) => {
7
7
  if (value === undefined || value === null)
8
8
  return null;
9
- if (typeof value !== "string" ||
10
- !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?(?:Z|[+-]\d{2}:\d{2})$/.test(value))
9
+ if (typeof value !== "string")
11
10
  invalid("start_time");
12
- const local = value.replace(/(?:Z|[+-]\d{2}:\d{2})$/, "Z");
13
- const date = new Date(local);
14
- if (!Number.isFinite(date.getTime()) || date.toISOString().slice(0, 19) !== local.slice(0, 19))
15
- invalid("start_time");
16
- const stamp = Date.parse(value);
17
- if (!Number.isSafeInteger(stamp))
18
- invalid("start_time");
19
- return stamp;
11
+ return zoomInstant(value, "Zoom meeting start_time is invalid");
20
12
  };
21
13
  const end = (start, value) => {
22
14
  if (value === undefined || value === null)