@absolutejs/voice 0.0.22-beta.149 → 0.0.22-beta.150
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/dist/deliveryRuntime.d.ts +53 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +131 -19
- package/package.json +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Elysia } from 'elysia';
|
|
2
|
-
import { createVoiceAuditSinkDeliveryWorker, type VoiceAuditSinkDeliveryQueueSummary, type VoiceAuditSinkDeliveryRecord, type VoiceAuditSinkDeliveryWorkerOptions, type VoiceAuditSinkDeliveryWorkerResult } from './auditSinks';
|
|
3
|
-
import { createVoiceTraceSinkDeliveryWorker, type VoiceTraceSinkDeliveryQueueSummary, type VoiceTraceSinkDeliveryWorkerOptions, type VoiceTraceSinkDeliveryWorkerResult } from './queue';
|
|
4
|
-
import type
|
|
2
|
+
import { createVoiceAuditSinkDeliveryWorker, type VoiceAuditSinkDeliveryQueueSummary, type VoiceAuditSinkDeliveryRecord, type VoiceAuditSinkDeliveryStore, type VoiceAuditSinkDeliveryWorkerOptions, type VoiceAuditSinkDeliveryWorkerResult, type VoiceS3AuditSinkClient } from './auditSinks';
|
|
3
|
+
import { createVoiceTraceSinkDeliveryWorker, type VoiceRedisTaskLeaseCoordinator, type VoiceTraceSinkDeliveryQueueSummary, type VoiceTraceSinkDeliveryWorkerOptions, type VoiceTraceSinkDeliveryWorkerResult } from './queue';
|
|
4
|
+
import { type StoredVoiceTraceEvent, type VoiceS3TraceSinkClient, VoiceTraceSinkDeliveryRecord, VoiceTraceSinkDeliveryStore } from './trace';
|
|
5
|
+
import type { StoredVoiceAuditEvent } from './audit';
|
|
5
6
|
export type VoiceDeliveryRuntimeAuditConfig<TDelivery extends VoiceAuditSinkDeliveryRecord = VoiceAuditSinkDeliveryRecord> = VoiceAuditSinkDeliveryWorkerOptions<TDelivery> & {
|
|
6
7
|
autoStart?: boolean;
|
|
7
8
|
onError?: (error: unknown) => Promise<void> | void;
|
|
@@ -48,6 +49,55 @@ export type VoiceDeliveryRuntimeRoutesOptions = {
|
|
|
48
49
|
tickPath?: false | string;
|
|
49
50
|
title?: string;
|
|
50
51
|
};
|
|
52
|
+
export type VoiceDeliveryRuntimePresetMode = 'file' | 's3' | 'webhook';
|
|
53
|
+
export type VoiceDeliveryRuntimePresetLeaseConfig = VoiceRedisTaskLeaseCoordinator | {
|
|
54
|
+
audit: VoiceRedisTaskLeaseCoordinator;
|
|
55
|
+
trace: VoiceRedisTaskLeaseCoordinator;
|
|
56
|
+
};
|
|
57
|
+
export type VoiceDeliveryRuntimePresetBaseOptions = {
|
|
58
|
+
auditDeliveries: VoiceAuditSinkDeliveryStore;
|
|
59
|
+
auditSinkId?: string;
|
|
60
|
+
auditWorkerId?: string;
|
|
61
|
+
autoStart?: boolean;
|
|
62
|
+
failures?: {
|
|
63
|
+
maxFailures?: number;
|
|
64
|
+
};
|
|
65
|
+
leases: VoiceDeliveryRuntimePresetLeaseConfig;
|
|
66
|
+
pollIntervalMs?: number;
|
|
67
|
+
traceDeliveries: VoiceTraceSinkDeliveryStore;
|
|
68
|
+
traceSinkId?: string;
|
|
69
|
+
traceWorkerId?: string;
|
|
70
|
+
};
|
|
71
|
+
export type VoiceDeliveryRuntimeWebhookPresetOptions = VoiceDeliveryRuntimePresetBaseOptions & {
|
|
72
|
+
backoffMs?: number;
|
|
73
|
+
body?: {
|
|
74
|
+
audit?: (input: {
|
|
75
|
+
events: StoredVoiceAuditEvent[];
|
|
76
|
+
}) => Promise<Record<string, unknown>> | Record<string, unknown>;
|
|
77
|
+
trace?: (input: {
|
|
78
|
+
events: StoredVoiceTraceEvent[];
|
|
79
|
+
}) => Promise<Record<string, unknown>> | Record<string, unknown>;
|
|
80
|
+
};
|
|
81
|
+
fetch?: typeof fetch;
|
|
82
|
+
headers?: Record<string, string>;
|
|
83
|
+
mode: 'webhook';
|
|
84
|
+
retries?: number;
|
|
85
|
+
signingSecret?: string;
|
|
86
|
+
timeoutMs?: number;
|
|
87
|
+
url: string;
|
|
88
|
+
};
|
|
89
|
+
export type VoiceDeliveryRuntimeS3PresetOptions = VoiceDeliveryRuntimePresetBaseOptions & {
|
|
90
|
+
bucket?: string;
|
|
91
|
+
client?: VoiceS3AuditSinkClient & VoiceS3TraceSinkClient;
|
|
92
|
+
keyPrefix?: string;
|
|
93
|
+
mode: 's3';
|
|
94
|
+
};
|
|
95
|
+
export type VoiceDeliveryRuntimeFilePresetOptions = VoiceDeliveryRuntimePresetBaseOptions & {
|
|
96
|
+
directory: string;
|
|
97
|
+
mode: 'file';
|
|
98
|
+
};
|
|
99
|
+
export type VoiceDeliveryRuntimePresetOptions = VoiceDeliveryRuntimeFilePresetOptions | VoiceDeliveryRuntimeS3PresetOptions | VoiceDeliveryRuntimeWebhookPresetOptions;
|
|
100
|
+
export declare const createVoiceDeliveryRuntimePresetConfig: (options: VoiceDeliveryRuntimePresetOptions) => VoiceDeliveryRuntimeConfig;
|
|
51
101
|
export declare const createVoiceDeliveryRuntime: <TAuditDelivery extends VoiceAuditSinkDeliveryRecord = VoiceAuditSinkDeliveryRecord, TTraceDelivery extends VoiceTraceSinkDeliveryRecord = VoiceTraceSinkDeliveryRecord>(config: VoiceDeliveryRuntimeConfig<TAuditDelivery, TTraceDelivery>) => VoiceDeliveryRuntime;
|
|
52
102
|
export declare const buildVoiceDeliveryRuntimeReport: (runtime: VoiceDeliveryRuntime) => Promise<VoiceDeliveryRuntimeReport>;
|
|
53
103
|
export declare const renderVoiceDeliveryRuntimeHTML: (report: VoiceDeliveryRuntimeReport, options?: {
|
package/dist/index.d.ts
CHANGED
|
@@ -13,12 +13,12 @@ export { createVoiceReconnectContractRoutes, renderVoiceReconnectContractHTML, s
|
|
|
13
13
|
export { buildVoiceDiagnosticsMarkdown, createVoiceDiagnosticsRoutes, resolveVoiceDiagnosticsTraceFilter } from './diagnosticsRoutes';
|
|
14
14
|
export { buildVoiceDemoReadyReport, createVoiceDemoReadyRoutes, renderVoiceDemoReadyHTML } from './demoReadyRoutes';
|
|
15
15
|
export { buildVoiceDeliverySinkReport, createVoiceDeliverySinkDescriptor, createVoiceDeliverySinkPair, createVoiceDeliverySinkRoutes, createVoiceFileDeliverySink, createVoicePostgresDeliverySink, createVoiceS3DeliverySink, createVoiceSQLiteDeliverySink, createVoiceWebhookDeliverySink, renderVoiceDeliverySinkHTML } from './deliverySinkRoutes';
|
|
16
|
-
export { buildVoiceDeliveryRuntimeReport, createVoiceDeliveryRuntime, createVoiceDeliveryRuntimeRoutes, renderVoiceDeliveryRuntimeHTML } from './deliveryRuntime';
|
|
16
|
+
export { buildVoiceDeliveryRuntimeReport, createVoiceDeliveryRuntime, createVoiceDeliveryRuntimePresetConfig, createVoiceDeliveryRuntimeRoutes, renderVoiceDeliveryRuntimeHTML } from './deliveryRuntime';
|
|
17
17
|
export { applyVoiceDataRetentionPolicy, buildVoiceDataRetentionPlan } from './dataControl';
|
|
18
18
|
export type { VoiceDataRetentionPolicy, VoiceDataRetentionReport, VoiceDataRetentionScope, VoiceDataRetentionScopeReport, VoiceDataRetentionStores } from './dataControl';
|
|
19
19
|
export type { VoiceDemoReadyReport, VoiceDemoReadyRoutesOptions, VoiceDemoReadySection, VoiceDemoReadyStatus } from './demoReadyRoutes';
|
|
20
20
|
export type { VoiceDeliverySinkDescriptor, VoiceDeliverySinkDescriptorInput, VoiceDeliverySinkKind, VoiceDeliverySinkPairOptions, VoiceDeliverySinkReport, VoiceDeliverySinkRoutesOptions, VoiceTraceDeliverySinkSurface } from './deliverySinkRoutes';
|
|
21
|
-
export type { VoiceDeliveryRuntime, VoiceDeliveryRuntimeAuditConfig, VoiceDeliveryRuntimeConfig, VoiceDeliveryRuntimeReport, VoiceDeliveryRuntimeRoutesOptions, VoiceDeliveryRuntimeSummary, VoiceDeliveryRuntimeTickResult, VoiceDeliveryRuntimeTraceConfig } from './deliveryRuntime';
|
|
21
|
+
export type { VoiceDeliveryRuntime, VoiceDeliveryRuntimeAuditConfig, VoiceDeliveryRuntimeConfig, VoiceDeliveryRuntimeFilePresetOptions, VoiceDeliveryRuntimePresetLeaseConfig, VoiceDeliveryRuntimePresetMode, VoiceDeliveryRuntimePresetOptions, VoiceDeliveryRuntimeReport, VoiceDeliveryRuntimeRoutesOptions, VoiceDeliveryRuntimeS3PresetOptions, VoiceDeliveryRuntimeSummary, VoiceDeliveryRuntimeTickResult, VoiceDeliveryRuntimeTraceConfig, VoiceDeliveryRuntimeWebhookPresetOptions } from './deliveryRuntime';
|
|
22
22
|
export { compareVoiceEvalBaseline, createVoiceFileEvalBaselineStore, createVoiceFileScenarioFixtureStore, createVoiceEvalRoutes, renderVoiceEvalBaselineHTML, renderVoiceEvalHTML, renderVoiceScenarioEvalHTML, renderVoiceScenarioFixtureEvalHTML, runVoiceScenarioEvals, runVoiceScenarioFixtureEvals, runVoiceSessionEvals } from './evalRoutes';
|
|
23
23
|
export { createVoiceSimulationSuiteRoutes, renderVoiceSimulationSuiteHTML, runVoiceSimulationSuite } from './simulationSuite';
|
|
24
24
|
export { createVoiceWorkflowContract, createVoiceWorkflowContractHandler, createVoiceWorkflowContractPreset, createVoiceWorkflowScenario, recordVoiceWorkflowContractTrace, validateVoiceWorkflowRouteResult } from './workflowContract';
|
package/dist/index.js
CHANGED
|
@@ -11566,6 +11566,8 @@ var createVoiceDeliverySinkRoutes = (options) => {
|
|
|
11566
11566
|
};
|
|
11567
11567
|
// src/deliveryRuntime.ts
|
|
11568
11568
|
import { Elysia as Elysia12 } from "elysia";
|
|
11569
|
+
import { mkdir } from "fs/promises";
|
|
11570
|
+
import { dirname, join } from "path";
|
|
11569
11571
|
var escapeHtml15 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
11570
11572
|
var renderSummaryCard = (label, summary) => {
|
|
11571
11573
|
if (!summary) {
|
|
@@ -11573,6 +11575,115 @@ var renderSummaryCard = (label, summary) => {
|
|
|
11573
11575
|
}
|
|
11574
11576
|
return `<article><span>${escapeHtml15(label)}</span><strong>${String(summary.delivered)}/${String(summary.total)}</strong><p class="muted">${String(summary.pending)} pending · ${String(summary.failed)} failed · ${String(summary.deadLettered)} dead-lettered</p></article>`;
|
|
11575
11577
|
};
|
|
11578
|
+
var resolvePresetLeases = (leases) => ("claim" in leases) ? {
|
|
11579
|
+
audit: leases,
|
|
11580
|
+
trace: leases
|
|
11581
|
+
} : leases;
|
|
11582
|
+
var createDeliveryRuntimeFileSink = (input) => ({
|
|
11583
|
+
deliver: async ({ events }) => {
|
|
11584
|
+
const firstEvent = events[0];
|
|
11585
|
+
const fileName = `${Date.now()}-${encodeURIComponent(firstEvent?.id ?? crypto.randomUUID())}.json`;
|
|
11586
|
+
const path = join(input.directory, input.kind, fileName);
|
|
11587
|
+
await mkdir(dirname(path), { recursive: true });
|
|
11588
|
+
await Bun.write(path, JSON.stringify({
|
|
11589
|
+
eventCount: events.length,
|
|
11590
|
+
events,
|
|
11591
|
+
source: "absolutejs-voice"
|
|
11592
|
+
}, null, 2));
|
|
11593
|
+
return {
|
|
11594
|
+
attempts: 1,
|
|
11595
|
+
deliveredAt: Date.now(),
|
|
11596
|
+
deliveredTo: `file://${path}`,
|
|
11597
|
+
eventCount: events.length,
|
|
11598
|
+
responseBody: { path },
|
|
11599
|
+
status: "delivered"
|
|
11600
|
+
};
|
|
11601
|
+
},
|
|
11602
|
+
id: input.id,
|
|
11603
|
+
kind: "file"
|
|
11604
|
+
});
|
|
11605
|
+
var createPresetSinks = (options) => {
|
|
11606
|
+
const auditSinkId = options.auditSinkId ?? `voice-${options.mode}-audit-sink`;
|
|
11607
|
+
const traceSinkId = options.traceSinkId ?? `voice-${options.mode}-trace-sink`;
|
|
11608
|
+
if (options.mode === "webhook") {
|
|
11609
|
+
return {
|
|
11610
|
+
audit: createVoiceAuditHTTPSink({
|
|
11611
|
+
backoffMs: options.backoffMs,
|
|
11612
|
+
body: options.body?.audit,
|
|
11613
|
+
fetch: options.fetch,
|
|
11614
|
+
headers: options.headers,
|
|
11615
|
+
id: auditSinkId,
|
|
11616
|
+
retries: options.retries,
|
|
11617
|
+
signingSecret: options.signingSecret,
|
|
11618
|
+
timeoutMs: options.timeoutMs,
|
|
11619
|
+
url: options.url
|
|
11620
|
+
}),
|
|
11621
|
+
trace: createVoiceTraceHTTPSink({
|
|
11622
|
+
backoffMs: options.backoffMs,
|
|
11623
|
+
body: options.body?.trace,
|
|
11624
|
+
fetch: options.fetch,
|
|
11625
|
+
headers: options.headers,
|
|
11626
|
+
id: traceSinkId,
|
|
11627
|
+
retries: options.retries,
|
|
11628
|
+
signingSecret: options.signingSecret,
|
|
11629
|
+
timeoutMs: options.timeoutMs,
|
|
11630
|
+
url: options.url
|
|
11631
|
+
})
|
|
11632
|
+
};
|
|
11633
|
+
}
|
|
11634
|
+
if (options.mode === "s3") {
|
|
11635
|
+
return {
|
|
11636
|
+
audit: createVoiceAuditS3Sink({
|
|
11637
|
+
bucket: options.bucket,
|
|
11638
|
+
client: options.client,
|
|
11639
|
+
id: auditSinkId,
|
|
11640
|
+
keyPrefix: `${options.keyPrefix ?? "voice/deliveries"}/audit`
|
|
11641
|
+
}),
|
|
11642
|
+
trace: createVoiceTraceS3Sink({
|
|
11643
|
+
bucket: options.bucket,
|
|
11644
|
+
client: options.client,
|
|
11645
|
+
id: traceSinkId,
|
|
11646
|
+
keyPrefix: `${options.keyPrefix ?? "voice/deliveries"}/trace`
|
|
11647
|
+
})
|
|
11648
|
+
};
|
|
11649
|
+
}
|
|
11650
|
+
return {
|
|
11651
|
+
audit: createDeliveryRuntimeFileSink({
|
|
11652
|
+
directory: options.directory,
|
|
11653
|
+
id: auditSinkId,
|
|
11654
|
+
kind: "audit"
|
|
11655
|
+
}),
|
|
11656
|
+
trace: createDeliveryRuntimeFileSink({
|
|
11657
|
+
directory: options.directory,
|
|
11658
|
+
id: traceSinkId,
|
|
11659
|
+
kind: "trace"
|
|
11660
|
+
})
|
|
11661
|
+
};
|
|
11662
|
+
};
|
|
11663
|
+
var createVoiceDeliveryRuntimePresetConfig = (options) => {
|
|
11664
|
+
const leases = resolvePresetLeases(options.leases);
|
|
11665
|
+
const sinks = createPresetSinks(options);
|
|
11666
|
+
return {
|
|
11667
|
+
audit: {
|
|
11668
|
+
autoStart: options.autoStart,
|
|
11669
|
+
deliveries: options.auditDeliveries,
|
|
11670
|
+
leases: leases.audit,
|
|
11671
|
+
maxFailures: options.failures?.maxFailures,
|
|
11672
|
+
pollIntervalMs: options.pollIntervalMs,
|
|
11673
|
+
sinks: [sinks.audit],
|
|
11674
|
+
workerId: options.auditWorkerId ?? `voice-${options.mode}-audit-worker`
|
|
11675
|
+
},
|
|
11676
|
+
trace: {
|
|
11677
|
+
autoStart: options.autoStart,
|
|
11678
|
+
deliveries: options.traceDeliveries,
|
|
11679
|
+
leases: leases.trace,
|
|
11680
|
+
maxFailures: options.failures?.maxFailures,
|
|
11681
|
+
pollIntervalMs: options.pollIntervalMs,
|
|
11682
|
+
sinks: [sinks.trace],
|
|
11683
|
+
workerId: options.traceWorkerId ?? `voice-${options.mode}-trace-worker`
|
|
11684
|
+
}
|
|
11685
|
+
};
|
|
11686
|
+
};
|
|
11576
11687
|
var createVoiceDeliveryRuntime = (config) => {
|
|
11577
11688
|
const audit = config.audit ? createVoiceAuditSinkDeliveryWorker(config.audit) : undefined;
|
|
11578
11689
|
const trace = config.trace ? createVoiceTraceSinkDeliveryWorker(config.trace) : undefined;
|
|
@@ -11882,8 +11993,8 @@ var applyVoiceDataRetentionPolicy = async (options) => {
|
|
|
11882
11993
|
var buildVoiceDataRetentionPlan = (options) => applyVoiceDataRetentionPolicy({ ...options, dryRun: true });
|
|
11883
11994
|
// src/evalRoutes.ts
|
|
11884
11995
|
import { Elysia as Elysia15 } from "elysia";
|
|
11885
|
-
import { mkdir } from "fs/promises";
|
|
11886
|
-
import { dirname } from "path";
|
|
11996
|
+
import { mkdir as mkdir2 } from "fs/promises";
|
|
11997
|
+
import { dirname as dirname2 } from "path";
|
|
11887
11998
|
|
|
11888
11999
|
// src/qualityRoutes.ts
|
|
11889
12000
|
import { Elysia as Elysia14 } from "elysia";
|
|
@@ -12519,7 +12630,7 @@ var createVoiceFileEvalBaselineStore = (filePath) => ({
|
|
|
12519
12630
|
return text.trim() ? JSON.parse(text) : undefined;
|
|
12520
12631
|
},
|
|
12521
12632
|
set: async (report) => {
|
|
12522
|
-
await
|
|
12633
|
+
await mkdir2(dirname2(filePath), { recursive: true });
|
|
12523
12634
|
await Bun.write(filePath, JSON.stringify(report, null, 2));
|
|
12524
12635
|
}
|
|
12525
12636
|
});
|
|
@@ -17325,14 +17436,14 @@ var createVoicePhoneAgent = (options) => {
|
|
|
17325
17436
|
};
|
|
17326
17437
|
};
|
|
17327
17438
|
// src/fileStore.ts
|
|
17328
|
-
import { mkdir as
|
|
17329
|
-
import { join } from "path";
|
|
17439
|
+
import { mkdir as mkdir3, readFile, readdir, rename, rm, writeFile } from "fs/promises";
|
|
17440
|
+
import { join as join2 } from "path";
|
|
17330
17441
|
var listJsonFiles = async (directory) => {
|
|
17331
17442
|
try {
|
|
17332
17443
|
const entries = await readdir(directory, {
|
|
17333
17444
|
withFileTypes: true
|
|
17334
17445
|
});
|
|
17335
|
-
return entries.filter((entry) => entry.isFile() && entry.name.endsWith(".json")).map((entry) =>
|
|
17446
|
+
return entries.filter((entry) => entry.isFile() && entry.name.endsWith(".json")).map((entry) => join2(directory, entry.name));
|
|
17336
17447
|
} catch (error) {
|
|
17337
17448
|
if (error.code === "ENOENT") {
|
|
17338
17449
|
return [];
|
|
@@ -17341,11 +17452,11 @@ var listJsonFiles = async (directory) => {
|
|
|
17341
17452
|
}
|
|
17342
17453
|
};
|
|
17343
17454
|
var encodeStoreId = (id) => `${encodeURIComponent(id)}.json`;
|
|
17344
|
-
var resolveFilePath = (directory, id) =>
|
|
17455
|
+
var resolveFilePath = (directory, id) => join2(directory, encodeStoreId(id));
|
|
17345
17456
|
var createMemoryStoreId = (input) => `${input.assistantId}:${input.namespace}:${input.key}`;
|
|
17346
17457
|
var readJsonFile = async (path) => JSON.parse(await readFile(path, "utf8"));
|
|
17347
17458
|
var writeJsonFile = async (path, value, options) => {
|
|
17348
|
-
await
|
|
17459
|
+
await mkdir3(options.directory, {
|
|
17349
17460
|
recursive: true
|
|
17350
17461
|
});
|
|
17351
17462
|
const tempPath = `${path}.${crypto.randomUUID()}.tmp`;
|
|
@@ -17680,47 +17791,47 @@ var createVoiceFileAssistantMemoryStore = (options) => {
|
|
|
17680
17791
|
var createVoiceFileRuntimeStorage = (options) => ({
|
|
17681
17792
|
audit: createVoiceFileAuditEventStore({
|
|
17682
17793
|
...options,
|
|
17683
|
-
directory:
|
|
17794
|
+
directory: join2(options.directory, "audit")
|
|
17684
17795
|
}),
|
|
17685
17796
|
auditDeliveries: createVoiceFileAuditSinkDeliveryStore({
|
|
17686
17797
|
...options,
|
|
17687
|
-
directory:
|
|
17798
|
+
directory: join2(options.directory, "audit-deliveries")
|
|
17688
17799
|
}),
|
|
17689
17800
|
campaigns: createVoiceFileCampaignStore({
|
|
17690
17801
|
...options,
|
|
17691
|
-
directory:
|
|
17802
|
+
directory: join2(options.directory, "campaigns")
|
|
17692
17803
|
}),
|
|
17693
17804
|
events: createVoiceFileIntegrationEventStore({
|
|
17694
17805
|
...options,
|
|
17695
|
-
directory:
|
|
17806
|
+
directory: join2(options.directory, "events")
|
|
17696
17807
|
}),
|
|
17697
17808
|
externalObjects: createVoiceFileExternalObjectMapStore({
|
|
17698
17809
|
...options,
|
|
17699
|
-
directory:
|
|
17810
|
+
directory: join2(options.directory, "external-objects")
|
|
17700
17811
|
}),
|
|
17701
17812
|
memories: createVoiceFileAssistantMemoryStore({
|
|
17702
17813
|
...options,
|
|
17703
|
-
directory:
|
|
17814
|
+
directory: join2(options.directory, "memories")
|
|
17704
17815
|
}),
|
|
17705
17816
|
reviews: createVoiceFileReviewStore({
|
|
17706
17817
|
...options,
|
|
17707
|
-
directory:
|
|
17818
|
+
directory: join2(options.directory, "reviews")
|
|
17708
17819
|
}),
|
|
17709
17820
|
session: createVoiceFileSessionStore({
|
|
17710
17821
|
...options,
|
|
17711
|
-
directory:
|
|
17822
|
+
directory: join2(options.directory, "sessions")
|
|
17712
17823
|
}),
|
|
17713
17824
|
tasks: createVoiceFileTaskStore({
|
|
17714
17825
|
...options,
|
|
17715
|
-
directory:
|
|
17826
|
+
directory: join2(options.directory, "tasks")
|
|
17716
17827
|
}),
|
|
17717
17828
|
traceDeliveries: createVoiceFileTraceSinkDeliveryStore({
|
|
17718
17829
|
...options,
|
|
17719
|
-
directory:
|
|
17830
|
+
directory: join2(options.directory, "trace-deliveries")
|
|
17720
17831
|
}),
|
|
17721
17832
|
traces: createVoiceFileTraceEventStore({
|
|
17722
17833
|
...options,
|
|
17723
|
-
directory:
|
|
17834
|
+
directory: join2(options.directory, "traces")
|
|
17724
17835
|
})
|
|
17725
17836
|
});
|
|
17726
17837
|
var createStoredVoiceCallReviewArtifact = (id, artifact) => withVoiceCallReviewId(id, artifact);
|
|
@@ -23566,6 +23677,7 @@ export {
|
|
|
23566
23677
|
createVoiceDeliverySinkPair,
|
|
23567
23678
|
createVoiceDeliverySinkDescriptor,
|
|
23568
23679
|
createVoiceDeliveryRuntimeRoutes,
|
|
23680
|
+
createVoiceDeliveryRuntimePresetConfig,
|
|
23569
23681
|
createVoiceDeliveryRuntime,
|
|
23570
23682
|
createVoiceCampaignWorkerLoop,
|
|
23571
23683
|
createVoiceCampaignWorker,
|