@wirecat/zoom-cli 0.7.2 → 0.8.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 +35 -36
- package/dist/archive-commands.d.ts.map +1 -1
- package/dist/archive-commands.js +36 -47
- package/dist/archive-commands.js.map +1 -1
- package/dist/bin/zm.js +13 -4
- package/dist/bin/zm.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +40 -14
- package/dist/commands.js.map +1 -1
- package/dist/execution.js +2 -2
- package/dist/execution.js.map +1 -1
- package/dist/folders.js +1 -1
- package/dist/folders.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/ingestion-search-commands.d.ts.map +1 -1
- package/dist/ingestion-search-commands.js +9 -9
- package/dist/ingestion-search-commands.js.map +1 -1
- package/dist/local-transcription-commands.js +7 -7
- package/dist/local-transcription-commands.js.map +1 -1
- package/dist/mcp-server.d.ts +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +41 -37
- package/dist/mcp-server.js.map +1 -1
- package/dist/meeting-context-commands.d.ts.map +1 -1
- package/dist/meeting-context-commands.js +22 -20
- package/dist/meeting-context-commands.js.map +1 -1
- package/dist/meeting-integration-commands.js +8 -8
- package/dist/meeting-integration-commands.js.map +1 -1
- package/dist/meeting-search-commands.d.ts +10 -28
- package/dist/meeting-search-commands.d.ts.map +1 -1
- package/dist/meeting-search-commands.js +120 -77
- package/dist/meeting-search-commands.js.map +1 -1
- package/dist/meeting-semantic-commands.d.ts +3 -1
- package/dist/meeting-semantic-commands.d.ts.map +1 -1
- package/dist/meeting-semantic-commands.js +11 -30
- package/dist/meeting-semantic-commands.js.map +1 -1
- package/dist/meeting-semantic.d.ts.map +1 -1
- package/dist/meeting-semantic.js +27 -0
- package/dist/meeting-semantic.js.map +1 -1
- package/dist/program.d.ts +2 -4
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +89 -112
- package/dist/program.js.map +1 -1
- package/dist/recording-schedule-commands.js +10 -10
- package/dist/recording-schedule-commands.js.map +1 -1
- package/dist/remote-http.js +2 -2
- package/dist/remote-http.js.map +1 -1
- package/dist/store-connection.d.ts.map +1 -1
- package/dist/store-connection.js +9 -35
- package/dist/store-connection.js.map +1 -1
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +6 -6
- package/dist/tokens.js.map +1 -1
- package/dist/watch-commands.d.ts +1 -1
- package/dist/watch-commands.d.ts.map +1 -1
- package/dist/watch-commands.js +4 -4
- package/dist/watch-commands.js.map +1 -1
- package/package.json +4 -3
- package/skills/zoom-cli/SKILL.md +19 -13
package/dist/store-connection.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CliError } from "@wirecat/cli-base";
|
|
2
|
-
import {
|
|
2
|
+
import { validateMeetingContextChange, } from "@wirecat/cli-messaging/meetings";
|
|
3
3
|
import { profileAccountKey } from "./config.js";
|
|
4
4
|
import { ZoomError } from "./errors.js";
|
|
5
5
|
import { createLocalTranscriptionCapabilities } from "./local-transcription.js";
|
|
@@ -26,7 +26,7 @@ export const createStoreConnector = (options = {}) => async (request) => {
|
|
|
26
26
|
input.externalId !== profileAccountKey(input.profile) ||
|
|
27
27
|
(input.intent !== "read" && input.intent !== "ingestion") ||
|
|
28
28
|
(input.capability !== undefined &&
|
|
29
|
-
!["transcript-append", "meeting-integration", "meeting-search"
|
|
29
|
+
!["transcript-append", "meeting-integration", "meeting-search"].includes(input.capability)))
|
|
30
30
|
throw new ZoomError("validation_error", "expected a selected Zoom profile and read or ingestion intent");
|
|
31
31
|
let store;
|
|
32
32
|
try {
|
|
@@ -55,10 +55,9 @@ export const createStoreConnector = (options = {}) => async (request) => {
|
|
|
55
55
|
if (input.capability === "meeting-integration" &&
|
|
56
56
|
(!notes || !knowledge || !memories || !facts || !contextMeetings))
|
|
57
57
|
throw new ZoomError("configuration_error", "the installed store does not support meeting knowledge integration");
|
|
58
|
-
if (input.capability === "meeting-search" &&
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
throw new ZoomError("configuration_error", "the installed meeting store does not support bounded search indexing");
|
|
58
|
+
if (input.capability === "meeting-search" &&
|
|
59
|
+
(typeof connected.meetings.searchHits !== "function" || typeof connected.meetings.indexSearch !== "function"))
|
|
60
|
+
throw new ZoomError("configuration_error", "the installed meeting store does not support meeting search");
|
|
62
61
|
return {
|
|
63
62
|
store: connected.meetings,
|
|
64
63
|
accountId,
|
|
@@ -109,37 +108,12 @@ export const createStoreConnector = (options = {}) => async (request) => {
|
|
|
109
108
|
}, { env: options.env, now: options.now }),
|
|
110
109
|
}
|
|
111
110
|
: {}),
|
|
112
|
-
...(typeof indexSearch === "function"
|
|
113
|
-
? {
|
|
114
|
-
meetingSearchIndex: async (input) => {
|
|
115
|
-
validateMeetingHitSearch("index", input);
|
|
116
|
-
const limit = input.limit ?? 100;
|
|
117
|
-
const maxReadBytes = input.maxReadBytes ?? 4194304;
|
|
118
|
-
const signal = input.signal;
|
|
119
|
-
const outcome = await dispatchMeetingMutation({ apply: input.apply, dryRun: input.dryRun, signal }, () => indexSearch.call(connected.meetings, { accountId, limit, maxReadBytes, signal }));
|
|
120
|
-
return {
|
|
121
|
-
applied: outcome.applied,
|
|
122
|
-
accountId,
|
|
123
|
-
request: { limit, maxReadBytes },
|
|
124
|
-
...(outcome.value ?? {}),
|
|
125
|
-
};
|
|
126
|
-
},
|
|
127
|
-
}
|
|
128
|
-
: {}),
|
|
129
|
-
...(typeof searchHits === "function"
|
|
111
|
+
...(typeof searchHits === "function" && typeof indexSearch === "function"
|
|
130
112
|
? {
|
|
131
113
|
meetingSearch: async (query, options) => {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
meetingId,
|
|
136
|
-
since,
|
|
137
|
-
until,
|
|
138
|
-
limit,
|
|
139
|
-
after,
|
|
140
|
-
maxReadBytes,
|
|
141
|
-
signal,
|
|
142
|
-
});
|
|
114
|
+
validateMeetingHitSearch(query, options);
|
|
115
|
+
const { searchMeetingHits } = await import("@wirecat/cli-messaging/services");
|
|
116
|
+
return searchMeetingHits({ meetings: connected.meetings, knowledge }, query, { ...options, accountId });
|
|
143
117
|
},
|
|
144
118
|
}
|
|
145
119
|
: {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-connection.js","sourceRoot":"","sources":["../src/store-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"store-connection.js","sourceRoot":"","sources":["../src/store-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAML,4BAA4B,GAC7B,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,oCAAoC,EAAE,MAAM,0BAA0B,CAAA;AAC/E,OAAO,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAA;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAsB3D,MAAM,sBAAsB,GAAG,CAAC,QAAwC,EAAwC,EAAE,CAChH,OAAO,QAAQ,CAAC,4BAA4B,KAAK,UAAU;IAC3D,OAAO,QAAQ,CAAC,UAAU,KAAK,UAAU;IACzC,OAAO,QAAQ,CAAC,WAAW,KAAK,UAAU;IAC1C,OAAO,QAAQ,CAAC,gBAAgB,KAAK,UAAU;IAC/C,OAAO,QAAQ,CAAC,qBAAqB,KAAK,UAAU;IACpD,OAAO,QAAQ,CAAC,iBAAiB,KAAK,UAAU,CAAA;AAKlD,MAAM,CAAC,MAAM,oBAAoB,GAC/B,CAAC,OAAO,GAA2B,EAAE,EAAE,EAAE,CACzC,KAAK,EAAE,OAA4B,EAA4B,EAAE;IAC/D,MAAM,KAAK,GAAG;QACZ,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,UAAU,EAAE,OAAO,EAAE,UAAU;KAChC,CAAA;IACD,IACE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QACjC,CAAC,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACxD,KAAK,CAAC,UAAU,KAAK,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC;QACrD,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC;QACzD,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS;YAC7B,CAAC,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7F,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,+DAA+D,CAAC,CAAA;IAC1G,IAAI,KAAqC,CAAA;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,SAAS,CAAA;QAC1F,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAC9E,MAAM,MAAM,GAAI,KAAK,CAAC,QAA4C,CAAC,iBAAiB,CAAA;QACpF,MAAM,aAAa,GAAI,KAAK,CAAC,QAAmD,CAAC,4BAA4B,CAAA;QAC7G,IACE,KAAK,CAAC,UAAU,KAAK,mBAAmB;YACxC,OAAO,MAAM,KAAK,UAAU;YAC5B,OAAO,aAAa,KAAK,UAAU;YAEnC,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,gEAAgE,CAAC,CAAA;QAC9G,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,CAAA;QAC3D,MAAM,SAAS,GACb,KAAK,CAAC,MAAM,KAAK,WAAW;YAC1B,CAAC,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YACvD,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACzC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC;YACnD,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,6CAA6C,CAAC,CAAA;QAC3F,MAAM,SAAS,GAAG,KAAK,CAAA;QACvB,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAA;QAChD,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAA;QAClD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;QAC7B,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAA;QACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAA;QACnC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;QAC7B,MAAM,eAAe,GAAG,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;QACnG,IACE,KAAK,CAAC,UAAU,KAAK,qBAAqB;YAC1C,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC;YAEjE,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,oEAAoE,CAAC,CAAA;QAClH,IACE,KAAK,CAAC,UAAU,KAAK,gBAAgB;YACrC,CAAC,OAAO,SAAS,CAAC,QAAQ,CAAC,UAAU,KAAK,UAAU,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,KAAK,UAAU,CAAC;YAE7G,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,6DAA6D,CAAC,CAAA;QAC3G,OAAO;YACL,KAAK,EAAE,SAAS,CAAC,QAAQ;YACzB,SAAS;YACT,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;YAC9B,GAAG,CAAC,OAAO,MAAM,KAAK,UAAU;gBAC9B,CAAC,CAAC;oBACE,iBAAiB,EAAE,CAAC,KAAiE,EAAE,EAAE;wBACvF,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;4BAC/B,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,8CAA8C,CAAC,CAAA;wBACzF,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;oBAC/C,CAAC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,aAAa,KAAK,UAAU;gBACrC,CAAC,CAAC;oBACE,4BAA4B,EAAE,CAC5B,KAAmF,EACnF,EAAE;wBACF,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;4BAC/B,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,8CAA8C,CAAC,CAAA;wBACzF,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;oBACtD,CAAC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,aAAa,KAAK,UAAU,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,eAAe,KAAK,UAAU;gBACjG,CAAC,CAAC;oBACE,oBAAoB,EAAE,oCAAoC,CACxD;wBACE,SAAS;wBACT,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;4BACtC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;4BACpF,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAA;4BAC9C,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;gCAAE,OAAO,IAAI,CAAA;4BACtD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;gCACvD,SAAS;gCACT,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;gCAClC,MAAM;6BACP,CAAC,CAAA;4BACF,IACE,OAAO,CAAC,SAAS,KAAK,SAAS;gCAC/B,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS;gCACtC,OAAO,CAAC,SAAS,KAAK,IAAI;gCAE1B,OAAO,IAAI,CAAA;4BACb,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAA;wBAC7E,CAAC;wBACD,4BAA4B,EAAE,CAAC,KAAK,EAAE,EAAE;4BACtC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;gCAC/B,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,qDAAqD,CAAC,CAAA;4BAChG,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;wBACtD,CAAC;qBACF,EACD,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CACvC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,UAAU,KAAK,UAAU,IAAI,OAAO,WAAW,KAAK,UAAU;gBACvE,CAAC,CAAC;oBACE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;wBACtC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;wBACxC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAA;wBAC7E,OAAO,iBAAiB,CACtB,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAoC,EAAE,SAAS,EAAE,EACvE,KAAK,EACL,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAC1B,CAAA;oBACH,CAAC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,KAAK,IAAI,SAAS,IAAI,QAAQ,IAAI,KAAK,IAAI,eAAe;gBAC5D,CAAC,CAAC;oBACE,kBAAkB,EAAE;wBAClB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;4BAC/C,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAA;4BAC9C,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;gCACvC,MAAM,IAAI,SAAS,CAAC,WAAW,EAAE,iDAAiD,CAAC,CAAA;4BACrF,MAAM,MAAM,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAA;4BAClD,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa;gCACnE,MAAM,IAAI,SAAS,CACjB,kBAAkB,EAClB,gEAAgE,CACjE,CAAA;4BACH,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAA;4BACzF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAA;4BAC3D,IAAI,OAAO,GAAG,CAAC,2BAA2B,KAAK,UAAU;gCACvD,MAAM,IAAI,SAAS,CACjB,qBAAqB,EACrB,+FAA+F,CAChG,CAAA;4BACH,MAAM,GAAG,CAAC,uBAAuB,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;gCACjF,MAAM,EAAE,QAAQ,CAAC,MAAM;6BACxB,CAAC,CAAA;4BACF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,2BAA2B,CACnD;gCACE,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;gCACtD,QAAQ,EAAE,eAAe;gCACzB,KAAK;gCACL,SAAS;gCACT,QAAQ;gCACR,KAAK;6BACN,EACD,GAAG,CACJ,CAAA;4BACD,IACE,OAAO,CAAC,SAAS,KAAK,SAAS;gCAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ;gCACvC,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO;gCAErC,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,0DAA0D,CAAC,CAAA;4BACrG,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;wBAClE,CAAC;qBACF;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC7B,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;gBAC5C,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAA;gBACtF,OAAO,0BAA0B,CAAC,SAAyB,EAAE,GAAG,EAAE;oBAChE,GAAG,OAAO;oBACV,cAAc,EAAE,GAAG;oBACnB,GAAG,EAAE,OAAO,CAAC,GAAG;iBACjB,CAAC,CAAA;YACJ,CAAC;YACD,cAAc,EAAE,gCAAgC,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC1F,GAAG,CAAC,SAAS,CAAC,cAAc;gBAC1B,CAAC,CAAC;oBACE,eAAe,EAAE,iCAAiC,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,EAAE;wBACtF,GAAG,EAAE,OAAO,CAAC,GAAG;qBACjB,CAAC;iBACH;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;QACH,CAAC;QACD,IAAI,KAAK,YAAY,SAAS;YAAE,MAAM,KAAK,CAAA;QAC3C,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;YACzD,MAAM,IAAI,SAAS,CACjB,qBAAqB,EACrB,+EAA+E,CAChF,CAAA;QACH,MAAM,IAAI,SAAS,CACjB,qBAAqB,EACrB,sGAAsG,CACvG,CAAA;IACH,CAAC;AACH,CAAC,CAAA"}
|
package/dist/tokens.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,MAAM,WAAW,MAAM;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AACD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,YAAY,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AACD,qBAAa,YAAY;IAEX,QAAQ,CAAC,OAAO,EAAE,YAAY;IAD1C,OAAO,CAAC,YAAY,CAAqC;IACzD,YAAqB,OAAO,EAAE,YAAY,EAAI;IAC9C,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,GAAE,OAAO,KAA0B,GAAG,YAAY,CAgBzF;IACD,IAAI,CAAC,QAAQ,SAAwB,GAAG,MAAM,GAAG,IAAI,CA8BpD;IACD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAwB,GAAG,IAAI,CAM3D;IACK,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,MAAM,WAAW,MAAM;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AACD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,YAAY,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,OAAO,KAAK,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AACD,qBAAa,YAAY;IAEX,QAAQ,CAAC,OAAO,EAAE,YAAY;IAD1C,OAAO,CAAC,YAAY,CAAqC;IACzD,YAAqB,OAAO,EAAE,YAAY,EAAI;IAC9C,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,GAAE,OAAO,KAA0B,GAAG,YAAY,CAgBzF;IACD,IAAI,CAAC,QAAQ,SAAwB,GAAG,MAAM,GAAG,IAAI,CA8BpD;IACD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAwB,GAAG,IAAI,CAM3D;IACK,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0DnH;IACK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAoB9B;CACF"}
|
package/dist/tokens.js
CHANGED
|
@@ -51,7 +51,7 @@ export class TokenManager {
|
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
53
|
catch {
|
|
54
|
-
throw new ZoomError("authentication_error", "saved login is invalid; run zm
|
|
54
|
+
throw new ZoomError("authentication_error", "saved login is invalid; run zm session start again");
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
save(tokens, clientId = this.options.clientId) {
|
|
@@ -78,16 +78,16 @@ export class TokenManager {
|
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
80
|
catch {
|
|
81
|
-
throw new ZoomError("outcome_unknown", "Zoom token exchange did not finish; run zm
|
|
81
|
+
throw new ZoomError("outcome_unknown", "Zoom token exchange did not finish; run zm session start again before retrying");
|
|
82
82
|
}
|
|
83
83
|
if (!response.ok)
|
|
84
|
-
throw new ZoomError("authentication_error", `Zoom token request failed (HTTP ${response.status}); run zm
|
|
84
|
+
throw new ZoomError("authentication_error", `Zoom token request failed (HTTP ${response.status}); run zm session start again`);
|
|
85
85
|
let body;
|
|
86
86
|
try {
|
|
87
87
|
body = object(await response.json());
|
|
88
88
|
}
|
|
89
89
|
catch {
|
|
90
|
-
throw new ZoomError("outcome_unknown", "Zoom returned an invalid token response; run zm
|
|
90
|
+
throw new ZoomError("outcome_unknown", "Zoom returned an invalid token response; run zm session start again before retrying");
|
|
91
91
|
}
|
|
92
92
|
const refreshToken = typeof body.refresh_token === "string" ? body.refresh_token : previous?.refreshToken;
|
|
93
93
|
if (typeof body.access_token !== "string" ||
|
|
@@ -99,7 +99,7 @@ export class TokenManager {
|
|
|
99
99
|
!Number.isFinite((this.options.now?.() ?? Date.now()) + body.expires_in * 1000) ||
|
|
100
100
|
(body.scope !== undefined && typeof body.scope !== "string") ||
|
|
101
101
|
(body.refresh_token !== undefined && typeof body.refresh_token !== "string"))
|
|
102
|
-
throw new ZoomError("outcome_unknown", "Zoom returned an invalid token response; run zm
|
|
102
|
+
throw new ZoomError("outcome_unknown", "Zoom returned an invalid token response; run zm session start again before retrying");
|
|
103
103
|
const tokens = {
|
|
104
104
|
accessToken: body.access_token,
|
|
105
105
|
refreshToken,
|
|
@@ -114,7 +114,7 @@ export class TokenManager {
|
|
|
114
114
|
const clientId = this.options.clientId;
|
|
115
115
|
const saved = this.load(clientId);
|
|
116
116
|
if (!saved)
|
|
117
|
-
throw new ZoomError("authentication_error", "run zm
|
|
117
|
+
throw new ZoomError("authentication_error", "run zm session start first");
|
|
118
118
|
if (saved.expiresAt > (this.options.now?.() ?? Date.now()) + 30000)
|
|
119
119
|
return saved;
|
|
120
120
|
let refreshing = this.refreshState.get(clientId);
|
package/dist/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAgB/D,MAAM,OAAO,YAAY;IAEF,OAAO;IADpB,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAA;IACzD,YAAqB,OAAqB;uBAArB,OAAO;IAAiB,CAAC;IAC9C,UAAU,CAAC,MAAoB,EAAE,OAAO,GAAiB,IAAI,CAAC,OAAO,CAAC,KAAK;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,QAA4B,CAAA;QAChC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;YAC9B,IAAI,QAAQ;gBACV,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAA;gBAC5B,OAAO,QAAQ,CAAA;YACjB,CAAC;YACD,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;SACvG,CAAC,CAAA;QACF,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACvC,OAAO,MAAM,CAAA;IACf,CAAC;IACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ;QACnC,IAAI,KAAoB,CAAA;QACxB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,+BAA+B,CAAC,CAAA;QAC7E,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;YACvC,IACE,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;gBACrC,CAAC,KAAK,CAAC,WAAW;gBAClB,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;gBACtC,CAAC,KAAK,CAAC,YAAY;gBACnB,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;gBACnC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;gBACjC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC5B,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;gBAEjD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;YACxC,OAAO;gBACL,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,SAAS,CAAC,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
|
package/dist/watch-commands.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type RunReport, type WatchSleep } from "@wirecat/cli-messaging/meetings
|
|
|
2
2
|
import { type Command } from "commander";
|
|
3
3
|
export interface WatchFlags {
|
|
4
4
|
source?: "api" | "files";
|
|
5
|
-
|
|
5
|
+
sinceTime?: string;
|
|
6
6
|
lookbackDays?: number;
|
|
7
7
|
interval: number;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-commands.d.ts","sourceRoot":"","sources":["../src/watch-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAyB,MAAM,iCAAiC,CAAA;AACxG,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,WAAW,CAAA;AAIhD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,CAAA;IACxB,
|
|
1
|
+
{"version":3,"file":"watch-commands.d.ts","sourceRoot":"","sources":["../src/watch-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAyB,MAAM,iCAAiC,CAAA;AACxG,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,WAAW,CAAA;AAIhD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;CACjB;AACD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,KAAK,GAAG,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CACnB;AACD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,WAAW,CAAA;IACzB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,KAAK,SAAS,CAAA;IACrE,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IACpE,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAkBD,eAAO,MAAM,eAAe,YAAa,OAAO,QAAQ,gBAAgB,KAAG,IA+B1E,CAAA"}
|
package/dist/watch-commands.js
CHANGED
|
@@ -15,16 +15,16 @@ const since = (value) => {
|
|
|
15
15
|
!Number.isFinite(Date.parse(value)) ||
|
|
16
16
|
!Number.isFinite(dayTime) ||
|
|
17
17
|
new Date(dayTime).toISOString().slice(0, 10) !== day)
|
|
18
|
-
throw new ZoomError("validation_error", "since must be a real ISO
|
|
18
|
+
throw new ZoomError("validation_error", "--since-time must be a real ISO 8601 time with a time zone");
|
|
19
19
|
return value;
|
|
20
20
|
};
|
|
21
21
|
export const addWatchCommand = (program, deps) => {
|
|
22
22
|
const command = program
|
|
23
23
|
.command("watch")
|
|
24
|
-
.description("
|
|
25
|
-
.argument("[folder]", "downloaded
|
|
24
|
+
.description("keep fetching new meetings from Zoom, or rescanning a folder, until stopped")
|
|
25
|
+
.argument("[folder]", "folder of downloaded transcripts; implies --source files")
|
|
26
26
|
.addOption(new Option("--source <source>", "api or files; otherwise uses configured source").choices(["api", "files"]))
|
|
27
|
-
.option("--since <
|
|
27
|
+
.option("--since-time <time>", "on the first run, fetch meetings from this ISO 8601 time", since)
|
|
28
28
|
.option("--lookback-days <days>", "API cursor overlap for late transcripts (0 through 31)", days)
|
|
29
29
|
.option("--interval <duration>", "delay after each completed receipt (1s through 24h)", duration, 10000)
|
|
30
30
|
.action(async (folder, options) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-commands.js","sourceRoot":"","sources":["../src/watch-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAmC,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACxG,OAAO,EAAgB,MAAM,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAuBzC,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE;IACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;QAC5C,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,oDAAoD,CAAC,CAAA;IAC/F,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC,CAAA;AACD,MAAM,KAAK,GAAG,CAAC,KAAa,EAAU,EAAE;IACtC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC,CAAA;IAC9C,IACE,CAAC,oGAAoG,CAAC,IAAI,CAAC,KAAK,CAAC;QACjH,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG;QAEpD,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"watch-commands.js","sourceRoot":"","sources":["../src/watch-commands.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wirecat/zoom-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Zoom cloud recording archives, persistent transcripts and meeting tools",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -46,14 +46,15 @@
|
|
|
46
46
|
"generate": "pnpm build && node scripts/commands.ts",
|
|
47
47
|
"generate:check": "pnpm build && node scripts/commands.ts --check",
|
|
48
48
|
"test:matrix": "pnpm test --maxWorkers 2 && pnpm build && pnpm test:matrix:check",
|
|
49
|
+
"lint:commands": "node node_modules/@wirecat/cli-base/dist/dev/bin.js lint --cli dist/bin/zm.js",
|
|
49
50
|
"test:matrix:check": "node node_modules/@wirecat/cli-base/dist/dev/bin.js test-matrix --program scripts/command-program.ts --untested scripts/test-matrix-untested.ts --name zm --check",
|
|
50
51
|
"contracts:upgrade": "pnpm --dir contracts/previous install --frozen-lockfile --ignore-scripts && cli-contract contracts/upgrade.json",
|
|
51
52
|
"security:no-leak": "cli-testing security no-leak . contracts/no-leak.json"
|
|
52
53
|
},
|
|
53
54
|
"dependencies": {
|
|
54
55
|
"@modelcontextprotocol/sdk": "1.32.1",
|
|
55
|
-
"@wirecat/cli-base": "0.
|
|
56
|
-
"@wirecat/cli-messaging": "0.
|
|
56
|
+
"@wirecat/cli-base": "0.24.0",
|
|
57
|
+
"@wirecat/cli-messaging": "0.258.0",
|
|
57
58
|
"commander": "15.0.0"
|
|
58
59
|
},
|
|
59
60
|
"devDependencies": {
|
package/skills/zoom-cli/SKILL.md
CHANGED
|
@@ -13,20 +13,20 @@ on stderr; use `--fields` to limit returned content. `zm doctor --json` checks l
|
|
|
13
13
|
|
|
14
14
|
## Recording archives
|
|
15
15
|
|
|
16
|
-
Use `recordings sync --
|
|
16
|
+
Use `recordings sync --since-time <date> --until-time <date> --destination <directory> --jsonl` to archive history
|
|
17
17
|
across months. It emits serial occurrence receipts and accepts up to ten calendar years.
|
|
18
18
|
Use `recordings list` to find cloud recording occurrences, then `recordings show <id-or-uuid>` to
|
|
19
19
|
inspect assets. Download with `recordings download <id-or-uuid> --destination <directory>`.
|
|
20
20
|
Prefer occurrence UUIDs for recurring meetings. Download access depends on Zoom scopes and the
|
|
21
21
|
signed-in account; attending a meeting does not imply access to its recording API.
|
|
22
22
|
|
|
23
|
-
Re-run against the same destination to skip verified manifest entries. Use `recordings archive
|
|
23
|
+
Re-run against the same destination to skip verified manifest entries. Use `recordings archive check`
|
|
24
24
|
for local checksums; it works with `--offline`. The receipt distinguishes downloaded, skipped and
|
|
25
25
|
unavailable assets. A failed transfer can leave earlier completed files; retry starts the incomplete
|
|
26
26
|
file again. Existing files are never overwritten. Do not infer HTTP byte-range resume.
|
|
27
27
|
|
|
28
28
|
Read cues with `recordings archive transcript <directory>` or search their text with
|
|
29
|
-
`
|
|
29
|
+
`search meetings <query> --archive <directory> --limit 100`. Both work offline without configuration,
|
|
30
30
|
login or a database and verify each WebVTT file they read before returning results. Search can stop
|
|
31
31
|
before reading later files once it proves another match beyond the limit. Select `--uuid` or
|
|
32
32
|
comma-separated `--file-ids`; `--max-bytes` defaults to 8 MiB per file. Search is literal, normalized
|
|
@@ -55,7 +55,7 @@ explicit `--output` path and never overwrites an existing file. VTT export requi
|
|
|
55
55
|
current transcript or an explicit transcript id.
|
|
56
56
|
|
|
57
57
|
Store commands use the shared SQLite database; `MESSAGING_STORE` selects an explicit path. Select a
|
|
58
|
-
local profile before import or pull. Reads require existing profile data; they do not register it. `
|
|
58
|
+
local profile before import or pull. Reads require existing profile data; they do not register it. `meetings sync --lookback-days` revisits late
|
|
59
59
|
transcripts. File imports preserve the API pull cursor. Serialize ingestion for the same account.
|
|
60
60
|
Local profile labels group stored data and do not select a different OAuth account.
|
|
61
61
|
|
|
@@ -66,15 +66,15 @@ one second to flush; cancellation never starts another cycle. Hashed cloud archi
|
|
|
66
66
|
|
|
67
67
|
Use `zm watch --source api --lookback-days 7 --jsonl` for repeated online pulls that revisit late
|
|
68
68
|
transcripts. Without a folder or explicit source, watch uses the configured source; files can use
|
|
69
|
-
the configured folder. `--since` and `--lookback-days` apply only to API watching. Configuration is
|
|
69
|
+
the configured folder. `--since-time` and `--lookback-days` apply only to API watching. Configuration is
|
|
70
70
|
captured before the first cycle, so restart to change profiles or source settings.
|
|
71
|
-
`--since` is the initial bound until a cursor write succeeds; later cycles use cursor plus overlap.
|
|
71
|
+
`--since-time` is the initial bound until a cursor write succeeds; later cycles use cursor plus overlap.
|
|
72
72
|
The selected overlap also subtracts from the initial bound.
|
|
73
73
|
|
|
74
74
|
`zm serve --mcp` provides seven read-only stored meeting tools. Discovery opens no database; reads
|
|
75
75
|
use the selected account. MCP uses its own framing, so omit JSON/JSONL/field-selection flags. `--meeting-context` adds three
|
|
76
76
|
read-only context tools; `--unified-search` adds one meetings-only shared search tool;
|
|
77
|
-
`--semantic --model <
|
|
77
|
+
`--semantic --model <model>` lets `search_meetings` rank existing vectors with `by_meaning`. Remote model selection also requires
|
|
78
78
|
`--base-url` and `--dims`. The server fixes the model at startup and the profile on its first read.
|
|
79
79
|
Clients cannot select another model or account. Generation and task creation are not MCP tools.
|
|
80
80
|
|
|
@@ -92,7 +92,7 @@ never both. Bound content with `--cues` and `--bytes`, and work with `--max-read
|
|
|
92
92
|
|
|
93
93
|
Use `meetings context person:<id>` for identity-linked context in the selected account. It does not
|
|
94
94
|
match speakers by name or prove that a linked participant spoke. Pending indexes and scan limits
|
|
95
|
-
can leave context incomplete. `meetings task-proposal <reference> --
|
|
95
|
+
can leave context incomplete. `meetings task-proposal <reference> --type question|request|mention|promise`
|
|
96
96
|
is read-only: `applied: false` and `persistence: "proposal-only"` do not mean a task was created.
|
|
97
97
|
|
|
98
98
|
`search all <query>` searches meetings by default. Broader `--only messages,mail,notes,meetings`
|
|
@@ -100,7 +100,7 @@ is explicit. Messages use the selected local account, mail includes stored email
|
|
|
100
100
|
notes are store-global. Meetings use word prefixes; unsupported syntax or exact queries
|
|
101
101
|
are reported as skipped. Resume meetings-only results using the returned `meetings.nextCursor` as
|
|
102
102
|
`--meeting-cursor '<json>'`, bound to account and query. JSONL retains the entire report, including
|
|
103
|
-
coverage, skips and cursors.
|
|
103
|
+
coverage, skips and cursors.
|
|
104
104
|
|
|
105
105
|
## Explicit vector work
|
|
106
106
|
|
|
@@ -111,10 +111,12 @@ models require explicit `--base-url` and `--dims`; OpenAI uses `OPENAI_API_KEY`.
|
|
|
111
111
|
is refused with `--offline`. Keep credentials out of endpoint URLs and output.
|
|
112
112
|
|
|
113
113
|
`--after-transcript-id` resumes chunk rebuilding; `--after-hash` resumes missing vectors. Current
|
|
114
|
-
revision hashes are rechecked before save. `meetings
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
114
|
+
revision hashes are rechecked before save. `search meetings <query> --model <model>` searches by
|
|
115
|
+
meaning: it first splits current transcripts again and embeds passages without a vector for that
|
|
116
|
+
model (with a remote model, those passages are sent to it), then ranks. Store filters do not apply.
|
|
117
|
+
Ranking covers scanned candidates, not all history. `--cursor` continues candidate scanning rather
|
|
118
|
+
than globally ranked pagination. The MCP `search_meetings` tool with `by_meaning` only reads
|
|
119
|
+
existing vectors. Index and archive completeness remain unknown. Use returned
|
|
118
120
|
candidate coverage and the explicit row/text byte bounds.
|
|
119
121
|
|
|
120
122
|
## Remote meeting changes
|
|
@@ -134,3 +136,7 @@ Cached `session status` does not contact Zoom; `--check` explicitly verifies rem
|
|
|
134
136
|
Use `--timeout <milliseconds>` for a positive whole-command deadline and cancellation for foreground
|
|
135
137
|
jobs. `--offline` refuses network access. Recording videos stream to disk; ordinary result output is
|
|
136
138
|
bounded by `--max-output-bytes`, separate from the download's per-file `--max-bytes` limit.
|
|
139
|
+
|
|
140
|
+
## Bounded context-filtered search
|
|
141
|
+
|
|
142
|
+
Use `search meetings <query>` with `--since-time`/`--until-time` and optionally `--identity-id`, `--person-id`, `--event-id`, `--series-id`, `--project`, `--tag` or `--topic`. It indexes newly stored meetings before reading; there is no separate index step. Identity IDs come from observed participant results; person IDs follow explicit identity links. Filters select meetings, never attribute cue speech. Project names, keys and aliases resolve existing vocabulary and require confirmed membership; labels require explicit meeting taggings. Do not silently infer membership from matching words or merge similar participant names. Missing or ambiguous names fail. Inspect pending indexing and unknown archive coverage even for empty pages. `search_meetings` exposes the same selected-account MCP read.
|