@decibelsystems/tools 2.1.4 → 3.0.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/CHANGELOG.md +160 -0
- package/README.md +1 -1
- package/dist/agentPresence.d.ts +80 -0
- package/dist/agentPresence.d.ts.map +1 -1
- package/dist/agentPresence.js +177 -0
- package/dist/agentPresence.js.map +1 -1
- package/dist/agentic/index.d.ts +18 -8
- package/dist/agentic/index.d.ts.map +1 -1
- package/dist/agentic/index.js +18 -144
- package/dist/agentic/index.js.map +1 -1
- package/dist/agentic/types.d.ts +106 -0
- package/dist/agentic/types.d.ts.map +1 -1
- package/dist/agentic/types.js +77 -1
- package/dist/agentic/types.js.map +1 -1
- package/dist/architectAdrs.d.ts +14 -2
- package/dist/architectAdrs.d.ts.map +1 -1
- package/dist/architectAdrs.js +9 -3
- package/dist/architectAdrs.js.map +1 -1
- package/dist/client/transports.d.ts.map +1 -1
- package/dist/client/transports.js +13 -3
- package/dist/client/transports.js.map +1 -1
- package/dist/daemon.d.ts +19 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +181 -38
- package/dist/daemon.js.map +1 -1
- package/dist/daemonConfig.d.ts +30 -0
- package/dist/daemonConfig.d.ts.map +1 -1
- package/dist/daemonConfig.js +56 -9
- package/dist/daemonConfig.js.map +1 -1
- package/dist/decibelPaths.d.ts.map +1 -1
- package/dist/decibelPaths.js +39 -6
- package/dist/decibelPaths.js.map +1 -1
- package/dist/domain/issue.d.ts +77 -0
- package/dist/domain/issue.d.ts.map +1 -0
- package/dist/domain/issue.js +134 -0
- package/dist/domain/issue.js.map +1 -0
- package/dist/domain/issueCodec.d.ts +39 -0
- package/dist/domain/issueCodec.d.ts.map +1 -0
- package/dist/domain/issueCodec.js +298 -0
- package/dist/domain/issueCodec.js.map +1 -0
- package/dist/domain/issueRepository.d.ts +91 -0
- package/dist/domain/issueRepository.d.ts.map +1 -0
- package/dist/domain/issueRepository.js +257 -0
- package/dist/domain/issueRepository.js.map +1 -0
- package/dist/facades/definitions.d.ts +0 -1
- package/dist/facades/definitions.d.ts.map +1 -1
- package/dist/facades/definitions.js +94 -98
- package/dist/facades/definitions.js.map +1 -1
- package/dist/facades/index.d.ts +2 -1
- package/dist/facades/index.d.ts.map +1 -1
- package/dist/facades/index.js +1 -1
- package/dist/facades/index.js.map +1 -1
- package/dist/facades/types.d.ts +17 -0
- package/dist/facades/types.d.ts.map +1 -1
- package/dist/httpArgs.d.ts +11 -0
- package/dist/httpArgs.d.ts.map +1 -0
- package/dist/httpArgs.js +39 -0
- package/dist/httpArgs.js.map +1 -0
- package/dist/httpServer.d.ts +1 -12
- package/dist/httpServer.d.ts.map +1 -1
- package/dist/httpServer.js +173 -98
- package/dist/httpServer.js.map +1 -1
- package/dist/kernel.d.ts +55 -1
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +366 -31
- package/dist/kernel.js.map +1 -1
- package/dist/lib/agent-services/assumptions.d.ts.map +1 -1
- package/dist/lib/agent-services/assumptions.js +8 -2
- package/dist/lib/agent-services/assumptions.js.map +1 -1
- package/dist/lib/atomicWrite.d.ts +26 -0
- package/dist/lib/atomicWrite.d.ts.map +1 -0
- package/dist/lib/atomicWrite.js +73 -0
- package/dist/lib/atomicWrite.js.map +1 -0
- package/dist/lib/envelope.d.ts +31 -0
- package/dist/lib/envelope.d.ts.map +1 -0
- package/dist/lib/envelope.js +80 -0
- package/dist/lib/envelope.js.map +1 -0
- package/dist/lib/fileLock.d.ts +38 -0
- package/dist/lib/fileLock.d.ts.map +1 -0
- package/dist/lib/fileLock.js +124 -0
- package/dist/lib/fileLock.js.map +1 -0
- package/dist/lib/recordIdAllocator.d.ts +86 -0
- package/dist/lib/recordIdAllocator.d.ts.map +1 -0
- package/dist/lib/recordIdAllocator.js +161 -0
- package/dist/lib/recordIdAllocator.js.map +1 -0
- package/dist/license.js +3 -3
- package/dist/license.js.map +1 -1
- package/dist/projectRegistry.d.ts +65 -3
- package/dist/projectRegistry.d.ts.map +1 -1
- package/dist/projectRegistry.js +233 -33
- package/dist/projectRegistry.js.map +1 -1
- package/dist/runtime/circuitBreaker.d.ts +95 -0
- package/dist/runtime/circuitBreaker.d.ts.map +1 -0
- package/dist/runtime/circuitBreaker.js +178 -0
- package/dist/runtime/circuitBreaker.js.map +1 -0
- package/dist/runtime/ensureRuntime.d.ts +103 -0
- package/dist/runtime/ensureRuntime.d.ts.map +1 -0
- package/dist/runtime/ensureRuntime.js +281 -0
- package/dist/runtime/ensureRuntime.js.map +1 -0
- package/dist/runtime/extensions.d.ts +57 -0
- package/dist/runtime/extensions.d.ts.map +1 -0
- package/dist/runtime/extensions.js +216 -0
- package/dist/runtime/extensions.js.map +1 -0
- package/dist/runtime/localHttp.d.ts +24 -0
- package/dist/runtime/localHttp.d.ts.map +1 -0
- package/dist/runtime/localHttp.js +84 -0
- package/dist/runtime/localHttp.js.map +1 -0
- package/dist/runtime/projectResolution.d.ts +29 -0
- package/dist/runtime/projectResolution.d.ts.map +1 -0
- package/dist/runtime/projectResolution.js +67 -0
- package/dist/runtime/projectResolution.js.map +1 -0
- package/dist/runtime/protocol.d.ts +62 -0
- package/dist/runtime/protocol.d.ts.map +1 -0
- package/dist/runtime/protocol.js +74 -0
- package/dist/runtime/protocol.js.map +1 -0
- package/dist/sentinelIssues.d.ts +26 -2
- package/dist/sentinelIssues.d.ts.map +1 -1
- package/dist/sentinelIssues.js +163 -76
- package/dist/sentinelIssues.js.map +1 -1
- package/dist/server.js +65 -12
- package/dist/server.js.map +1 -1
- package/dist/setup.d.ts +83 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +445 -0
- package/dist/setup.js.map +1 -0
- package/dist/store/markdown.d.ts +14 -1
- package/dist/store/markdown.d.ts.map +1 -1
- package/dist/store/markdown.js +36 -3
- package/dist/store/markdown.js.map +1 -1
- package/dist/tools/agentic/index.d.ts.map +1 -1
- package/dist/tools/agentic/index.js +28 -2
- package/dist/tools/agentic/index.js.map +1 -1
- package/dist/tools/architect/index.d.ts.map +1 -1
- package/dist/tools/architect/index.js +7 -2
- package/dist/tools/architect/index.js.map +1 -1
- package/dist/tools/conductor/index.d.ts +9 -0
- package/dist/tools/conductor/index.d.ts.map +1 -0
- package/dist/tools/conductor/index.js +242 -0
- package/dist/tools/conductor/index.js.map +1 -0
- package/dist/tools/context.d.ts +10 -5
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +45 -18
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/coordinator/coordinator.d.ts.map +1 -1
- package/dist/tools/coordinator/coordinator.js +48 -19
- package/dist/tools/coordinator/coordinator.js.map +1 -1
- package/dist/tools/crit.d.ts +2 -1
- package/dist/tools/crit.d.ts.map +1 -1
- package/dist/tools/crit.js +19 -4
- package/dist/tools/crit.js.map +1 -1
- package/dist/tools/designer/index.d.ts.map +1 -1
- package/dist/tools/designer/index.js +4 -3
- package/dist/tools/designer/index.js.map +1 -1
- package/dist/tools/designer/lateral-tools.d.ts.map +1 -1
- package/dist/tools/designer/lateral-tools.js +4 -2
- package/dist/tools/designer/lateral-tools.js.map +1 -1
- package/dist/tools/designer.d.ts +2 -1
- package/dist/tools/designer.d.ts.map +1 -1
- package/dist/tools/designer.js +24 -12
- package/dist/tools/designer.js.map +1 -1
- package/dist/tools/dojo.d.ts +3 -2
- package/dist/tools/dojo.d.ts.map +1 -1
- package/dist/tools/dojo.js +64 -22
- package/dist/tools/dojo.js.map +1 -1
- package/dist/tools/dojoPolicy.js +1 -1
- package/dist/tools/dojoPolicy.js.map +1 -1
- package/dist/tools/friction.d.ts.map +1 -1
- package/dist/tools/friction.js +16 -6
- package/dist/tools/friction.js.map +1 -1
- package/dist/tools/guardian.d.ts +29 -7
- package/dist/tools/guardian.d.ts.map +1 -1
- package/dist/tools/guardian.js +90 -75
- package/dist/tools/guardian.js.map +1 -1
- package/dist/tools/hygiene/oracle-hygiene.d.ts.map +1 -1
- package/dist/tools/hygiene/oracle-hygiene.js +8 -2
- package/dist/tools/hygiene/oracle-hygiene.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +29 -18
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/learnings.d.ts +2 -1
- package/dist/tools/learnings.d.ts.map +1 -1
- package/dist/tools/learnings.js +31 -15
- package/dist/tools/learnings.js.map +1 -1
- package/dist/tools/oracle.d.ts.map +1 -1
- package/dist/tools/oracle.js +19 -6
- package/dist/tools/oracle.js.map +1 -1
- package/dist/tools/policy.d.ts +2 -1
- package/dist/tools/policy.d.ts.map +1 -1
- package/dist/tools/policy.js +28 -9
- package/dist/tools/policy.js.map +1 -1
- package/dist/tools/postoffice/index.d.ts +10 -0
- package/dist/tools/postoffice/index.d.ts.map +1 -0
- package/dist/tools/postoffice/index.js +218 -0
- package/dist/tools/postoffice/index.js.map +1 -0
- package/dist/tools/postoffice.d.ts +78 -0
- package/dist/tools/postoffice.d.ts.map +1 -0
- package/dist/tools/postoffice.js +199 -0
- package/dist/tools/postoffice.js.map +1 -0
- package/dist/tools/provenance.d.ts +7 -0
- package/dist/tools/provenance.d.ts.map +1 -1
- package/dist/tools/provenance.js +42 -16
- package/dist/tools/provenance.js.map +1 -1
- package/dist/tools/registry/index.d.ts.map +1 -1
- package/dist/tools/registry/index.js +41 -12
- package/dist/tools/registry/index.js.map +1 -1
- package/dist/tools/sentinel/index.d.ts +1 -0
- package/dist/tools/sentinel/index.d.ts.map +1 -1
- package/dist/tools/sentinel/index.js +88 -4
- package/dist/tools/sentinel/index.js.map +1 -1
- package/dist/tools/sentinel.d.ts +117 -1
- package/dist/tools/sentinel.d.ts.map +1 -1
- package/dist/tools/sentinel.js +761 -339
- package/dist/tools/sentinel.js.map +1 -1
- package/dist/tools/shared/index.d.ts +2 -1
- package/dist/tools/shared/index.d.ts.map +1 -1
- package/dist/tools/shared/index.js +2 -1
- package/dist/tools/shared/index.js.map +1 -1
- package/dist/tools/shared/response.d.ts +24 -0
- package/dist/tools/shared/response.d.ts.map +1 -1
- package/dist/tools/shared/response.js +61 -7
- package/dist/tools/shared/response.js.map +1 -1
- package/dist/tools/shared/storeRead.d.ts +153 -0
- package/dist/tools/shared/storeRead.d.ts.map +1 -0
- package/dist/tools/shared/storeRead.js +242 -0
- package/dist/tools/shared/storeRead.js.map +1 -0
- package/dist/tools/testSpec.d.ts +3 -2
- package/dist/tools/testSpec.d.ts.map +1 -1
- package/dist/tools/testSpec.js +51 -14
- package/dist/tools/testSpec.js.map +1 -1
- package/dist/tools/vector.d.ts +33 -1
- package/dist/tools/vector.d.ts.map +1 -1
- package/dist/tools/vector.js +31 -5
- package/dist/tools/vector.js.map +1 -1
- package/dist/tools/zoom/index.d.ts +15 -0
- package/dist/tools/zoom/index.d.ts.map +1 -0
- package/dist/tools/zoom/index.js +174 -0
- package/dist/tools/zoom/index.js.map +1 -0
- package/dist/tools/zoom.d.ts +234 -0
- package/dist/tools/zoom.d.ts.map +1 -0
- package/dist/tools/zoom.js +627 -0
- package/dist/tools/zoom.js.map +1 -0
- package/dist/transports/bridge.d.ts +1 -1
- package/dist/transports/bridge.d.ts.map +1 -1
- package/dist/transports/bridge.js +2 -0
- package/dist/transports/bridge.js.map +1 -1
- package/dist/transports/http.d.ts +1 -1
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +3 -1
- package/dist/transports/http.js.map +1 -1
- package/dist/transports/index.d.ts +1 -0
- package/dist/transports/index.d.ts.map +1 -1
- package/dist/transports/index.js +1 -0
- package/dist/transports/index.js.map +1 -1
- package/dist/transports/mcp.d.ts +1 -1
- package/dist/transports/mcp.d.ts.map +1 -1
- package/dist/transports/mcp.js +7 -3
- package/dist/transports/mcp.js.map +1 -1
- package/dist/transports/stdio.d.ts +1 -1
- package/dist/transports/stdio.d.ts.map +1 -1
- package/dist/transports/stdio.js +2 -0
- package/dist/transports/stdio.js.map +1 -1
- package/dist/transports/thinStdio.d.ts +22 -0
- package/dist/transports/thinStdio.d.ts.map +1 -0
- package/dist/transports/thinStdio.js +218 -0
- package/dist/transports/thinStdio.js.map +1 -0
- package/dist/transports/types.d.ts +8 -1
- package/dist/transports/types.d.ts.map +1 -1
- package/dist/types/agent-services.d.ts +7 -0
- package/dist/types/agent-services.d.ts.map +1 -1
- package/package.json +9 -4
- package/templates/com.decibel.daemon.plist +6 -1
- package/dist/tools/deck.d.ts +0 -11
- package/dist/tools/deck.d.ts.map +0 -1
- package/dist/tools/deck.js +0 -1656
- package/dist/tools/deck.js.map +0 -1
- package/dist/tools/mother.d.ts +0 -11
- package/dist/tools/mother.d.ts.map +0 -1
- package/dist/tools/mother.js +0 -503
- package/dist/tools/mother.js.map +0 -1
- package/dist/tools/registry.d.ts +0 -3
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/registry.js +0 -189
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/senken.d.ts +0 -11
- package/dist/tools/senken.d.ts.map +0 -1
- package/dist/tools/senken.js +0 -482
- package/dist/tools/senken.js.map +0 -1
- package/dist/tools/terminal.d.ts +0 -17
- package/dist/tools/terminal.d.ts.map +0 -1
- package/dist/tools/terminal.js +0 -968
- package/dist/tools/terminal.js.map +0 -1
- package/dist/tools/toolsIndex.d.ts +0 -5
- package/dist/tools/toolsIndex.d.ts.map +0 -1
- package/dist/tools/toolsIndex.js +0 -37
- package/dist/tools/toolsIndex.js.map +0 -1
package/dist/tools/vector.js
CHANGED
|
@@ -8,6 +8,7 @@ import fs from 'fs/promises';
|
|
|
8
8
|
import path from 'path';
|
|
9
9
|
import { resolveProjectPaths } from '../projectRegistry.js';
|
|
10
10
|
import { log } from '../config.js';
|
|
11
|
+
import { listDirEntriesOrThrow, countedStoreMeta } from './shared/storeRead.js';
|
|
11
12
|
// ============================================================================
|
|
12
13
|
// Constants
|
|
13
14
|
// ============================================================================
|
|
@@ -291,9 +292,23 @@ ${input.summary || 'No summary provided.'}
|
|
|
291
292
|
export async function listRuns(input) {
|
|
292
293
|
const projectId = input.projectId || input.project_id;
|
|
293
294
|
const runsDir = getRunsDir(projectId);
|
|
294
|
-
//
|
|
295
|
-
|
|
296
|
-
|
|
295
|
+
// Do NOT create the directory here. This tool is annotated readOnlyHint:true
|
|
296
|
+
// and callers treat it as a read: creating `.decibel/runs/` as a side effect
|
|
297
|
+
// of listing meant a mistyped project_id got a directory made for it and an
|
|
298
|
+
// empty list back, so "wrong project" and "no runs" were indistinguishable
|
|
299
|
+
// and the mistake left a trace on disk. A missing directory is simply no runs.
|
|
300
|
+
let entries;
|
|
301
|
+
try {
|
|
302
|
+
entries = await listDirEntriesOrThrow(runsDir);
|
|
303
|
+
}
|
|
304
|
+
catch (err) {
|
|
305
|
+
// ISS-0153: "I could not look" must not be swallowed into "nothing found".
|
|
306
|
+
if (err instanceof Error && err.message.startsWith('STORE_UNREADABLE'))
|
|
307
|
+
throw err;
|
|
308
|
+
if (err.code === 'ENOENT')
|
|
309
|
+
return { runs: [] };
|
|
310
|
+
throw err;
|
|
311
|
+
}
|
|
297
312
|
const runDirs = entries
|
|
298
313
|
.filter(e => e.isDirectory() && e.name.startsWith('RUN-'))
|
|
299
314
|
.map(e => e.name);
|
|
@@ -301,13 +316,19 @@ export async function listRuns(input) {
|
|
|
301
316
|
runDirs.sort().reverse();
|
|
302
317
|
const limit = input.limit || 20;
|
|
303
318
|
const runs = [];
|
|
319
|
+
// A run directory that exists and cannot be read is not an absent run. The
|
|
320
|
+
// log line below already recorded it — on the server's stdout, where the
|
|
321
|
+
// caller reading `runs: []` will never see it.
|
|
322
|
+
let unreadable = 0;
|
|
304
323
|
for (const run_id of runDirs.slice(0, limit)) {
|
|
305
324
|
try {
|
|
306
325
|
const runDir = path.join(runsDir, run_id);
|
|
307
326
|
const promptPath = path.join(runDir, 'prompt.json');
|
|
308
327
|
const eventsPath = path.join(runDir, 'events.jsonl');
|
|
309
|
-
if (!await fileExists(promptPath))
|
|
328
|
+
if (!await fileExists(promptPath)) {
|
|
329
|
+
unreadable++;
|
|
310
330
|
continue;
|
|
331
|
+
}
|
|
311
332
|
const promptContent = await fs.readFile(promptPath, 'utf-8');
|
|
312
333
|
const promptSpec = JSON.parse(promptContent);
|
|
313
334
|
// Filter by agent type if specified
|
|
@@ -316,6 +337,7 @@ export async function listRuns(input) {
|
|
|
316
337
|
}
|
|
317
338
|
// Count events and check for completion
|
|
318
339
|
let eventCount = 0;
|
|
340
|
+
let last_event_at;
|
|
319
341
|
let completed_at;
|
|
320
342
|
let success;
|
|
321
343
|
let summary;
|
|
@@ -326,6 +348,7 @@ export async function listRuns(input) {
|
|
|
326
348
|
// Check last event for completion
|
|
327
349
|
if (lines.length > 0) {
|
|
328
350
|
const lastEvent = JSON.parse(lines[lines.length - 1]);
|
|
351
|
+
last_event_at = lastEvent.ts;
|
|
329
352
|
if (lastEvent.type === 'run_completed') {
|
|
330
353
|
completed_at = lastEvent.ts;
|
|
331
354
|
success = lastEvent.payload?.success;
|
|
@@ -337,17 +360,20 @@ export async function listRuns(input) {
|
|
|
337
360
|
run_id,
|
|
338
361
|
agent: promptSpec.agent,
|
|
339
362
|
created_at: promptSpec.created_at,
|
|
363
|
+
last_event_at,
|
|
340
364
|
completed_at,
|
|
341
365
|
event_count: eventCount,
|
|
366
|
+
status: completed_at ? 'completed' : 'incomplete',
|
|
342
367
|
success,
|
|
343
368
|
summary,
|
|
344
369
|
});
|
|
345
370
|
}
|
|
346
371
|
catch (err) {
|
|
372
|
+
unreadable++;
|
|
347
373
|
log(`Vector: Error reading run ${run_id}: ${err}`);
|
|
348
374
|
}
|
|
349
375
|
}
|
|
350
|
-
return { runs };
|
|
376
|
+
return { runs, ...countedStoreMeta(runs.length, unreadable) };
|
|
351
377
|
}
|
|
352
378
|
/**
|
|
353
379
|
* Get details of a specific run
|
package/dist/tools/vector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../src/tools/vector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../src/tools/vector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ToolSpec } from '../types.js';
|
|
2
|
+
export declare const zoomSyncTool: ToolSpec;
|
|
3
|
+
export declare const zoomListTool: ToolSpec;
|
|
4
|
+
export declare const zoomRoutesTool: ToolSpec;
|
|
5
|
+
export declare const zoomStatusTool: ToolSpec;
|
|
6
|
+
/**
|
|
7
|
+
* Fail closed by absence. Without DECIBEL_ZOOM=1 the tools are never built, so
|
|
8
|
+
* the facade's actions point at nothing and dispatch answers "unknown facade" —
|
|
9
|
+
* the same shape an unallowlisted extension gets. An unregistered facade that
|
|
10
|
+
* returned a zero-shaped result instead would be indistinguishable from a real
|
|
11
|
+
* empty answer, which is exactly how a broken voice inbox once read as
|
|
12
|
+
* "0 messages".
|
|
13
|
+
*/
|
|
14
|
+
export declare const zoomTools: ToolSpec[];
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/zoom/index.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAyBvC,eAAO,MAAM,YAAY,EAAE,QAyC1B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,QAyB1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,QAuB5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,QA8B5B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,QAAQ,EAE1B,CAAC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// Zoom Tools — EPIC-0036
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Four verbs over the ingestion logic in ../zoom.ts.
|
|
5
|
+
//
|
|
6
|
+
// GATING. This facade reaches an account-wide admin Zoom credential:
|
|
7
|
+
// meeting_summary:read:admin reads EVERY meeting in the account, personal and
|
|
8
|
+
// client alike. Three independent gates, because ISS-0123 is explicit that tier
|
|
9
|
+
// alone is not a trustworthy boundary (ISS-0101, the DECIBEL_PRO bypass, is
|
|
10
|
+
// still open):
|
|
11
|
+
//
|
|
12
|
+
// 1. pro tier — the facade's declared tier
|
|
13
|
+
// 2. DECIBEL_ZOOM=1 — fail closed by ABSENCE (see zoomTools below). The
|
|
14
|
+
// senken.pro deployment that serves this repo's
|
|
15
|
+
// /call, /batch and /tools unauthenticated will not
|
|
16
|
+
// have this set, so the facade is not registered
|
|
17
|
+
// there and dispatch answers "unknown facade"
|
|
18
|
+
// rather than running.
|
|
19
|
+
// 3. localOnly — rejected over the HTTP transport by the kernel.
|
|
20
|
+
//
|
|
21
|
+
// Gate 2 is the one that actually holds. The loopback check behind gate 3 is
|
|
22
|
+
// weaker than it looks on senken.pro specifically, where a gunicorn front-end
|
|
23
|
+
// means a remote request can arrive at this process wearing a 127.0.0.1
|
|
24
|
+
// source address.
|
|
25
|
+
// ============================================================================
|
|
26
|
+
import { toolSuccess, toolError } from '../shared/index.js';
|
|
27
|
+
import { syncMeetings, loadRoutes, loadCredentials, unroutedDir, ZoomError, } from '../zoom.js';
|
|
28
|
+
function settle(err) {
|
|
29
|
+
if (err instanceof ZoomError) {
|
|
30
|
+
return toolError(err.message, err.hint);
|
|
31
|
+
}
|
|
32
|
+
return toolError(err instanceof Error ? err.message : String(err));
|
|
33
|
+
}
|
|
34
|
+
const windowProps = {
|
|
35
|
+
days: { type: 'number', description: 'Look back N days from today. Default 30. Ignored when `from` is given.' },
|
|
36
|
+
from: { type: 'string', description: 'Start date YYYY-MM-DD.' },
|
|
37
|
+
to: { type: 'string', description: 'End date YYYY-MM-DD. Defaults to today.' },
|
|
38
|
+
match: { type: 'string', description: 'Only meetings whose topic contains this substring (case-insensitive). A filter on top of routing, not a replacement for it.' },
|
|
39
|
+
};
|
|
40
|
+
export const zoomSyncTool = {
|
|
41
|
+
definition: {
|
|
42
|
+
name: 'zoom_sync',
|
|
43
|
+
description: 'Pull Zoom AI Companion meeting summaries and write them as markdown. Routed by default: each meeting goes to the project whose zoom.match rule its topic matches. Meetings matching no rule have their IDENTITY recorded in the unrouted bucket and their body deliberately left unfetched — add a match rule and re-run to claim them. Dedup is on meeting_uuid + start time, so re-running is safe and cheap.',
|
|
44
|
+
annotations: { title: 'Sync Zoom Summaries', readOnlyHint: false, destructiveHint: false, idempotentHint: true },
|
|
45
|
+
inputSchema: {
|
|
46
|
+
type: 'object',
|
|
47
|
+
properties: {
|
|
48
|
+
...windowProps,
|
|
49
|
+
route: { type: 'boolean', description: 'Fan out across the project registry. Default true. Set false with `out` to write everything into one directory.' },
|
|
50
|
+
out: { type: 'string', description: 'Single output directory. Only used when route is false.' },
|
|
51
|
+
dry_run: { type: 'boolean', description: 'Print the routing table and what would be written, touching nothing. Costs one list call and no detail calls.' },
|
|
52
|
+
force: { type: 'boolean', description: 'Re-download and overwrite files already on disk. Rarely what you want — dedup already handles re-runs.' },
|
|
53
|
+
status: { type: 'string', description: 'Value for the status: frontmatter field. Default "new".' },
|
|
54
|
+
no_frontmatter: { type: 'boolean', description: 'Write the summary body alone. Breaks dedup for those files — they become invisible to future runs.' },
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
handler: async (args) => {
|
|
59
|
+
try {
|
|
60
|
+
const opts = {
|
|
61
|
+
days: args.days,
|
|
62
|
+
from: args.from,
|
|
63
|
+
to: args.to,
|
|
64
|
+
match: args.match,
|
|
65
|
+
// Routed is the default. The original had it opt-in with a single
|
|
66
|
+
// directory as the default, which only made sense when the script lived
|
|
67
|
+
// inside the one repo it wrote to.
|
|
68
|
+
route: args.route === undefined ? true : !!args.route,
|
|
69
|
+
out: args.out,
|
|
70
|
+
dryRun: !!args.dry_run,
|
|
71
|
+
force: !!args.force,
|
|
72
|
+
status: args.status,
|
|
73
|
+
noFrontmatter: !!args.no_frontmatter,
|
|
74
|
+
};
|
|
75
|
+
return toolSuccess(await syncMeetings(opts));
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
return settle(err);
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
export const zoomListTool = {
|
|
83
|
+
definition: {
|
|
84
|
+
name: 'zoom_list',
|
|
85
|
+
description: 'Show what a sync would do without writing anything: the routing table, which meetings land where, and which match no rule. A dry run — one list call, no per-meeting detail fetches.',
|
|
86
|
+
annotations: { title: 'Preview Zoom Sync', readOnlyHint: true, destructiveHint: false, idempotentHint: true },
|
|
87
|
+
inputSchema: {
|
|
88
|
+
type: 'object',
|
|
89
|
+
properties: { ...windowProps },
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
handler: async (args) => {
|
|
93
|
+
try {
|
|
94
|
+
return toolSuccess(await syncMeetings({
|
|
95
|
+
days: args.days,
|
|
96
|
+
from: args.from,
|
|
97
|
+
to: args.to,
|
|
98
|
+
match: args.match,
|
|
99
|
+
route: true,
|
|
100
|
+
dryRun: true,
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
return settle(err);
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
export const zoomRoutesTool = {
|
|
109
|
+
definition: {
|
|
110
|
+
name: 'zoom_routes',
|
|
111
|
+
description: 'List the projects carrying a zoom.match rule, in the order routing resolves them (longest needle first). Reads the registry only — no Zoom API call, so it works without credentials.',
|
|
112
|
+
annotations: { title: 'List Zoom Routes', readOnlyHint: true, destructiveHint: false, idempotentHint: true },
|
|
113
|
+
inputSchema: { type: 'object', properties: {} },
|
|
114
|
+
},
|
|
115
|
+
handler: async () => {
|
|
116
|
+
try {
|
|
117
|
+
const routes = loadRoutes();
|
|
118
|
+
return toolSuccess({
|
|
119
|
+
routes: routes.map(r => ({ project: r.id, match: r.match, out: r.out })),
|
|
120
|
+
unrouted_bucket: unroutedDir(),
|
|
121
|
+
count: routes.length,
|
|
122
|
+
hint: routes.length === 0
|
|
123
|
+
? 'No project carries a zoom block. Add one: "zoom": { "match": ["plasiv"], "out": "meetings/raw" }'
|
|
124
|
+
: 'Routing is by meeting-topic substring, longest needle first. A client name appearing in an unrelated title will still misroute it.',
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
return settle(err);
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
export const zoomStatusTool = {
|
|
133
|
+
definition: {
|
|
134
|
+
name: 'zoom_status',
|
|
135
|
+
description: 'Report whether Zoom credentials resolve and where they came from, without calling Zoom. Never returns the secret itself.',
|
|
136
|
+
annotations: { title: 'Zoom Status', readOnlyHint: true, destructiveHint: false, idempotentHint: true },
|
|
137
|
+
inputSchema: { type: 'object', properties: {} },
|
|
138
|
+
},
|
|
139
|
+
handler: async () => {
|
|
140
|
+
try {
|
|
141
|
+
const creds = loadCredentials();
|
|
142
|
+
return toolSuccess({
|
|
143
|
+
configured: true,
|
|
144
|
+
account_id: creds.account_id,
|
|
145
|
+
client_id_suffix: creds.client_id.slice(-4),
|
|
146
|
+
scope: 'meeting_summary:read:admin (account-wide — reads every meeting in the account)',
|
|
147
|
+
routes: loadRoutes().length,
|
|
148
|
+
unrouted_bucket: unroutedDir(),
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
if (err instanceof ZoomError) {
|
|
153
|
+
// `reason`, not `error`. Reporting "not configured" IS a successful
|
|
154
|
+
// status read, but a payload carrying an `error` key with no failure
|
|
155
|
+
// marker is the exact shape S1 flags: every programmatic consumer that
|
|
156
|
+
// branches on `error` reads this as a failed call.
|
|
157
|
+
return toolSuccess({ configured: false, reason: err.message, hint: err.hint });
|
|
158
|
+
}
|
|
159
|
+
return settle(err);
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* Fail closed by absence. Without DECIBEL_ZOOM=1 the tools are never built, so
|
|
165
|
+
* the facade's actions point at nothing and dispatch answers "unknown facade" —
|
|
166
|
+
* the same shape an unallowlisted extension gets. An unregistered facade that
|
|
167
|
+
* returned a zero-shaped result instead would be indistinguishable from a real
|
|
168
|
+
* empty answer, which is exactly how a broken voice inbox once read as
|
|
169
|
+
* "0 messages".
|
|
170
|
+
*/
|
|
171
|
+
export const zoomTools = process.env.DECIBEL_ZOOM === '1'
|
|
172
|
+
? [zoomSyncTool, zoomListTool, zoomRoutesTool, zoomStatusTool]
|
|
173
|
+
: [];
|
|
174
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/zoom/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
export interface ZoomCredentials {
|
|
2
|
+
account_id: string;
|
|
3
|
+
client_id: string;
|
|
4
|
+
client_secret: string;
|
|
5
|
+
}
|
|
6
|
+
/** One entry from GET /meetings/meeting_summaries. Only the fields the port
|
|
7
|
+
* actually reads are typed; Zoom sends more. */
|
|
8
|
+
export interface MeetingSummary {
|
|
9
|
+
meeting_uuid?: string;
|
|
10
|
+
meeting_id?: number | string;
|
|
11
|
+
meeting_topic?: string;
|
|
12
|
+
meeting_start_time?: string;
|
|
13
|
+
summary_start_time?: string;
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}
|
|
16
|
+
/** GET /meetings/{uuid}/meeting_summary. Two shapes: the modern single
|
|
17
|
+
* markdown blob, and a deprecated split. See renderSummary. */
|
|
18
|
+
export interface MeetingDetail {
|
|
19
|
+
summary_content?: string;
|
|
20
|
+
summary_overview?: string;
|
|
21
|
+
summary_details?: Array<{
|
|
22
|
+
label?: string;
|
|
23
|
+
summary?: string;
|
|
24
|
+
}>;
|
|
25
|
+
next_steps?: unknown[];
|
|
26
|
+
[key: string]: unknown;
|
|
27
|
+
}
|
|
28
|
+
export interface ZoomRoute {
|
|
29
|
+
/** Decibel project id */
|
|
30
|
+
id: string;
|
|
31
|
+
/** Lowercased topic needles, longest first (see loadRoutes) */
|
|
32
|
+
match: string[];
|
|
33
|
+
/** Absolute output directory */
|
|
34
|
+
out: string;
|
|
35
|
+
}
|
|
36
|
+
export interface SyncOptions {
|
|
37
|
+
from?: string;
|
|
38
|
+
to?: string;
|
|
39
|
+
days?: number;
|
|
40
|
+
/** Single output directory. Ignored when route is true. */
|
|
41
|
+
out?: string;
|
|
42
|
+
/** Fan out across the project registry instead of one directory. */
|
|
43
|
+
route?: boolean;
|
|
44
|
+
/** Only topics containing this substring (case-insensitive). */
|
|
45
|
+
match?: string;
|
|
46
|
+
force?: boolean;
|
|
47
|
+
dryRun?: boolean;
|
|
48
|
+
status?: string;
|
|
49
|
+
noFrontmatter?: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface SyncResult {
|
|
52
|
+
from: string;
|
|
53
|
+
to: string;
|
|
54
|
+
returned: number;
|
|
55
|
+
in_range: number;
|
|
56
|
+
written: number;
|
|
57
|
+
skipped: number;
|
|
58
|
+
empty: number;
|
|
59
|
+
unrouted: number;
|
|
60
|
+
reclaimed: number;
|
|
61
|
+
dry_run: boolean;
|
|
62
|
+
routes?: Array<{
|
|
63
|
+
id: string;
|
|
64
|
+
match: string[];
|
|
65
|
+
out: string;
|
|
66
|
+
}>;
|
|
67
|
+
files: Array<{
|
|
68
|
+
name: string;
|
|
69
|
+
dest: string;
|
|
70
|
+
project: string | null;
|
|
71
|
+
action: string;
|
|
72
|
+
}>;
|
|
73
|
+
notes: string[];
|
|
74
|
+
}
|
|
75
|
+
export declare class ZoomError extends Error {
|
|
76
|
+
code: string;
|
|
77
|
+
hint?: string;
|
|
78
|
+
constructor(code: string, message: string, hint?: string);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Resolution order: environment, then the config.yaml `zoom` block, then the
|
|
82
|
+
* standalone JSON file, then the legacy path.
|
|
83
|
+
*
|
|
84
|
+
* The JSON file is where plasiv's credentials actually live today (mode 600),
|
|
85
|
+
* so it stays supported rather than being migrated out from under a working
|
|
86
|
+
* setup. config.yaml is the location EPIC-0036 asks for and is preferred for
|
|
87
|
+
* anything new — it is the same file the daemon already reads secrets from.
|
|
88
|
+
*
|
|
89
|
+
* Environment wins only when ALL THREE values are present. A half-set
|
|
90
|
+
* environment falling through to a complete file beats erroring on a partial
|
|
91
|
+
* override, and mixing the two sources produces an account_id from one Zoom app
|
|
92
|
+
* with a secret from another, which fails at the token call with a message that
|
|
93
|
+
* blames the wrong thing.
|
|
94
|
+
*/
|
|
95
|
+
export declare function loadCredentials(): ZoomCredentials;
|
|
96
|
+
/**
|
|
97
|
+
* Server-to-Server OAuth. The original fetched one token per run and never
|
|
98
|
+
* looked at it again; S2S tokens last an hour, so a backfill long enough to
|
|
99
|
+
* matter outlives its own credential and dies partway through with a 401 that
|
|
100
|
+
* looks like a permissions problem. This caches with an expiry and refetches.
|
|
101
|
+
*/
|
|
102
|
+
export declare function getToken(creds: ZoomCredentials, now?: number): Promise<string>;
|
|
103
|
+
/** Test seam, and the escape hatch after a credential change mid-process. */
|
|
104
|
+
export declare function clearTokenCache(): void;
|
|
105
|
+
export interface ApiGetDeps {
|
|
106
|
+
fetchImpl?: typeof fetch;
|
|
107
|
+
sleep?: (ms: number) => Promise<void>;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* The original had no retry, no backoff, no 429 handling and no concurrency
|
|
111
|
+
* cap — a serial loop issuing one detail call per meeting. Its clean log proves
|
|
112
|
+
* nothing, because it has only ever run at hand-driven volume; an account-wide
|
|
113
|
+
* backfill is the first time this would meet a rate limit.
|
|
114
|
+
*
|
|
115
|
+
* Retries 429 and 5xx with exponential backoff, honouring Retry-After when Zoom
|
|
116
|
+
* sends one. 4xx other than 429 is not retried — a 401 or a 404 does not get
|
|
117
|
+
* better by asking again.
|
|
118
|
+
*/
|
|
119
|
+
export declare function apiGet<T>(urlPath: string, token: string, params?: Record<string, string | number>, deps?: ApiGetDeps): Promise<T>;
|
|
120
|
+
/**
|
|
121
|
+
* Zoom requires meeting UUIDs to be DOUBLE URL-encoded when they start with "/"
|
|
122
|
+
* or contain "//", and single-encoded otherwise.
|
|
123
|
+
*
|
|
124
|
+
* UNVERIFIED AGAINST REAL DATA: none of the 26 files on the plasiv disk carry a
|
|
125
|
+
* uuid that triggers the double branch, so that path comes from Zoom's docs
|
|
126
|
+
* rather than from a case anyone here has seen. The single branch is confirmed —
|
|
127
|
+
* it produces the same %3D%3D that appears inside the task permalinks Zoom
|
|
128
|
+
* embeds in its own summary markdown.
|
|
129
|
+
*/
|
|
130
|
+
export declare function encodeMeetingUuid(uuid: string): string;
|
|
131
|
+
/**
|
|
132
|
+
* The list envelope is documented as `summaries`. When that key is absent this
|
|
133
|
+
* falls back to whatever list-of-dicts the payload does carry and says so,
|
|
134
|
+
* because the failure mode being defended against is a silent zero-result run:
|
|
135
|
+
* an envelope rename would otherwise read as "no meetings", which is
|
|
136
|
+
* indistinguishable from a quiet week.
|
|
137
|
+
*/
|
|
138
|
+
export declare function extractSummaryList(payload: Record<string, unknown>, notes?: string[]): MeetingSummary[];
|
|
139
|
+
export declare function listSummaries(token: string, from: string, to: string, notes?: string[], deps?: ApiGetDeps): Promise<MeetingSummary[]>;
|
|
140
|
+
/**
|
|
141
|
+
* Zoom returns the whole summary as markdown in `summary_content` on modern
|
|
142
|
+
* accounts. The split fields are the deprecated shape.
|
|
143
|
+
*
|
|
144
|
+
* UNVERIFIED AGAINST REAL DATA: the split branch has never been exercised here.
|
|
145
|
+
* Every one of the 26 files on the plasiv disk orders its sections Quick recap,
|
|
146
|
+
* Next steps, per-person groups, Collaboration, Summary — and the split branch
|
|
147
|
+
* structurally cannot put next_steps second, because it appends them last. That
|
|
148
|
+
* ordering is the proof the account is on summary_content. The split branch
|
|
149
|
+
* below is written from Zoom's field names, not from anything observed, and is
|
|
150
|
+
* kept only so an older account degrades into readable output instead of an
|
|
151
|
+
* empty file.
|
|
152
|
+
*/
|
|
153
|
+
export declare function renderSummary(detail: MeetingDetail): string;
|
|
154
|
+
export declare function startOf(summary: MeetingSummary): string;
|
|
155
|
+
/**
|
|
156
|
+
* Zoom ignores from/to on the summaries list endpoint, so the window has to be
|
|
157
|
+
* enforced here or it is a lie. An entry with no start time is kept rather than
|
|
158
|
+
* dropped — a missing timestamp is a reason to look at it, not to hide it.
|
|
159
|
+
*/
|
|
160
|
+
export declare function inRange(summary: MeetingSummary, from: string, to: string): boolean;
|
|
161
|
+
/** Five keys, same order, same spelling as the Python. The dedup index reads
|
|
162
|
+
* meeting_uuid back out of this block, so the format is load-bearing. */
|
|
163
|
+
export declare function buildFrontmatter(summary: MeetingSummary, status: string): string;
|
|
164
|
+
/**
|
|
165
|
+
* "{topic} {YYYY-MM-DD HH_MM}Z.md", topic stripped of characters that are
|
|
166
|
+
* illegal in a filename on some filesystem or other. Verified against the real
|
|
167
|
+
* file in the unrouted bucket: this produces "Ben - Pete 2026-08-12 17_04Z.md".
|
|
168
|
+
*/
|
|
169
|
+
export declare function filenameFor(summary: MeetingSummary): string;
|
|
170
|
+
export declare function unroutedDir(): string;
|
|
171
|
+
/**
|
|
172
|
+
* Projects carrying a `zoom` block in the registry:
|
|
173
|
+
*
|
|
174
|
+
* "zoom": { "match": ["plasiv"], "out": "meetings/raw" }
|
|
175
|
+
*
|
|
176
|
+
* Aliases are deliberately NOT matched. They are tool-call addresses — "dt",
|
|
177
|
+
* "dv" — and a two-letter needle matches almost any meeting title.
|
|
178
|
+
*
|
|
179
|
+
* Needles are sorted longest-first so routing is deterministic by specificity.
|
|
180
|
+
* The original took the first rule that matched in registry order, which means
|
|
181
|
+
* a project whose needle is a substring of another project's needle silently
|
|
182
|
+
* stole its meetings depending on file ordering.
|
|
183
|
+
*/
|
|
184
|
+
export declare function loadRoutes(): ZoomRoute[];
|
|
185
|
+
export declare function routeFor(summary: MeetingSummary, routes: ZoomRoute[]): ZoomRoute | null;
|
|
186
|
+
export interface KnownMeeting {
|
|
187
|
+
file: string;
|
|
188
|
+
uuid: string;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Index meeting_uuid out of the first 600 bytes of every .md in the given
|
|
192
|
+
* directories, keyed on uuid AND start time.
|
|
193
|
+
*
|
|
194
|
+
* Two deliberate departures from the original:
|
|
195
|
+
*
|
|
196
|
+
* 1. UUID ALONE IS NOT THE KEY. If Zoom reuses a uuid across occurrences of a
|
|
197
|
+
* recurring meeting, a uuid-keyed index silently skips the second occurrence
|
|
198
|
+
* as already-seen. Nobody has observed that here and the Python does not
|
|
199
|
+
* defend against it; keying on uuid+start costs nothing and closes it.
|
|
200
|
+
*
|
|
201
|
+
* 2. THE UNROUTED BUCKET IS NOT INDEXED HERE. See reclaim handling in
|
|
202
|
+
* syncMeetings — an unrouted entry is UNCLAIMED, not SEEN.
|
|
203
|
+
*/
|
|
204
|
+
export declare function indexKnownMeetings(dirs: string[]): Map<string, KnownMeeting>;
|
|
205
|
+
export declare function dedupKey(uuid: string, start: string): string;
|
|
206
|
+
/** The stub left in the unrouted bucket. Carries enough to see what is waiting
|
|
207
|
+
* — and nothing else.
|
|
208
|
+
*
|
|
209
|
+
* ISS-0123: a routed run does not merely READ non-client meetings, it WRITES
|
|
210
|
+
* them. The bucket on the plasiv machine holds a personal two-person meeting
|
|
211
|
+
* with its full body on disk, put there by a single hand-run. Storing a stub
|
|
212
|
+
* keeps the "never silently dropped" guarantee without spilling the content of
|
|
213
|
+
* every meeting in the account onto the filesystem as a side effect of pulling
|
|
214
|
+
* client ones.
|
|
215
|
+
*
|
|
216
|
+
* This is only safe BECAUSE the unrouted bucket is excluded from the dedup
|
|
217
|
+
* index. A stub in a seen-index would satisfy dedup forever and the real body
|
|
218
|
+
* would never arrive. Privacy stub and dedup fix are one change, not two. */
|
|
219
|
+
export declare function buildUnroutedStub(summary: MeetingSummary): string;
|
|
220
|
+
export interface SyncDeps extends ApiGetDeps {
|
|
221
|
+
credentials?: ZoomCredentials;
|
|
222
|
+
token?: string;
|
|
223
|
+
routes?: ZoomRoute[];
|
|
224
|
+
now?: Date;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Pull summaries and write them where they belong.
|
|
228
|
+
*
|
|
229
|
+
* The routed path is the interesting one and the least exercised — one manual
|
|
230
|
+
* run in its life — so it is written here from the spec rather than trusted
|
|
231
|
+
* from the source.
|
|
232
|
+
*/
|
|
233
|
+
export declare function syncMeetings(opts?: SyncOptions, deps?: SyncDeps): Promise<SyncResult>;
|
|
234
|
+
//# sourceMappingURL=zoom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../src/tools/zoom.ts"],"names":[],"mappings":"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"}
|