@absolutejs/voice 0.0.22-beta.241 → 0.0.22-beta.243
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/angular/index.d.ts +1 -0
- package/dist/angular/index.js +306 -181
- package/dist/angular/voice-proof-trends.service.d.ts +12 -0
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.js +490 -190
- package/dist/client/proofTrends.d.ts +19 -0
- package/dist/client/proofTrendsWidget.d.ts +37 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +118 -70
- package/dist/proofTrends.d.ts +44 -0
- package/dist/react/VoiceProofTrends.d.ts +6 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.js +730 -350
- package/dist/react/useVoiceProofTrends.d.ts +8 -0
- package/dist/svelte/createVoiceProofTrends.d.ts +7 -0
- package/dist/svelte/index.d.ts +1 -0
- package/dist/svelte/index.js +90 -0
- package/dist/vue/VoiceProofTrends.d.ts +21 -0
- package/dist/vue/index.d.ts +2 -0
- package/dist/vue/index.js +704 -321
- package/dist/vue/useVoiceProofTrends.d.ts +9 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -12292,6 +12292,7 @@ var createVoicePlatformCoverageRoutes = (options) => {
|
|
|
12292
12292
|
return routes;
|
|
12293
12293
|
};
|
|
12294
12294
|
// src/proofTrends.ts
|
|
12295
|
+
import { Elysia as Elysia14 } from "elysia";
|
|
12295
12296
|
var DEFAULT_VOICE_PROOF_TRENDS_MAX_AGE_MS = 24 * 60 * 60 * 1000;
|
|
12296
12297
|
var normalizeMaxAgeMs = (value) => typeof value === "number" && Number.isFinite(value) && value > 0 ? value : DEFAULT_VOICE_PROOF_TRENDS_MAX_AGE_MS;
|
|
12297
12298
|
var toTimeMs = (value) => {
|
|
@@ -12334,6 +12335,50 @@ var buildEmptyVoiceProofTrendReport = (source = "", maxAgeMs) => buildVoiceProof
|
|
|
12334
12335
|
source,
|
|
12335
12336
|
status: "empty"
|
|
12336
12337
|
});
|
|
12338
|
+
var normalizeVoiceProofTrendReport = (value, options = {}) => {
|
|
12339
|
+
if ("status" in value && value.status === "empty") {
|
|
12340
|
+
return buildEmptyVoiceProofTrendReport(value.source || options.source || "", options.maxAgeMs ?? value.maxAgeMs);
|
|
12341
|
+
}
|
|
12342
|
+
return buildVoiceProofTrendReport({
|
|
12343
|
+
...value,
|
|
12344
|
+
maxAgeMs: options.maxAgeMs ?? value.maxAgeMs,
|
|
12345
|
+
source: value.source ?? options.source
|
|
12346
|
+
});
|
|
12347
|
+
};
|
|
12348
|
+
var readVoiceProofTrendReportFile = async (path, options = {}) => {
|
|
12349
|
+
const file = Bun.file(path);
|
|
12350
|
+
if (!await file.exists()) {
|
|
12351
|
+
return buildEmptyVoiceProofTrendReport(path, options.maxAgeMs);
|
|
12352
|
+
}
|
|
12353
|
+
try {
|
|
12354
|
+
const parsed = await file.json();
|
|
12355
|
+
return normalizeVoiceProofTrendReport(parsed, {
|
|
12356
|
+
maxAgeMs: options.maxAgeMs,
|
|
12357
|
+
source: path
|
|
12358
|
+
});
|
|
12359
|
+
} catch {
|
|
12360
|
+
return buildVoiceProofTrendReport({
|
|
12361
|
+
maxAgeMs: options.maxAgeMs,
|
|
12362
|
+
source: path
|
|
12363
|
+
});
|
|
12364
|
+
}
|
|
12365
|
+
};
|
|
12366
|
+
var createVoiceProofTrendRoutes = (options) => {
|
|
12367
|
+
const path = options.path ?? "/api/voice/proof-trends";
|
|
12368
|
+
const routes = new Elysia14({
|
|
12369
|
+
name: options.name ?? "absolutejs-voice-proof-trends"
|
|
12370
|
+
});
|
|
12371
|
+
routes.get(path, async () => {
|
|
12372
|
+
const value = options.source !== undefined ? typeof options.source === "function" ? await options.source() : options.source : options.jsonPath ? await readVoiceProofTrendReportFile(options.jsonPath, {
|
|
12373
|
+
maxAgeMs: options.maxAgeMs
|
|
12374
|
+
}) : buildEmptyVoiceProofTrendReport("", options.maxAgeMs);
|
|
12375
|
+
return Response.json(normalizeVoiceProofTrendReport(value, {
|
|
12376
|
+
maxAgeMs: options.maxAgeMs,
|
|
12377
|
+
source: options.jsonPath
|
|
12378
|
+
}), { headers: options.headers });
|
|
12379
|
+
});
|
|
12380
|
+
return routes;
|
|
12381
|
+
};
|
|
12337
12382
|
var formatVoiceProofTrendAge = (ageMs) => {
|
|
12338
12383
|
if (typeof ageMs !== "number" || !Number.isFinite(ageMs)) {
|
|
12339
12384
|
return "unknown";
|
|
@@ -12353,7 +12398,7 @@ var formatVoiceProofTrendAge = (ageMs) => {
|
|
|
12353
12398
|
return `${days}d ${hours % 24}h`;
|
|
12354
12399
|
};
|
|
12355
12400
|
// src/liveOps.ts
|
|
12356
|
-
import { Elysia as
|
|
12401
|
+
import { Elysia as Elysia15 } from "elysia";
|
|
12357
12402
|
var VOICE_LIVE_OPS_ACTIONS = [
|
|
12358
12403
|
"assign",
|
|
12359
12404
|
"create-task",
|
|
@@ -12518,7 +12563,7 @@ var createVoiceLiveOpsRoutes = (options = {}) => {
|
|
|
12518
12563
|
const controller = createVoiceLiveOpsController(options);
|
|
12519
12564
|
const path = options.path ?? "/api/voice/live-ops/action";
|
|
12520
12565
|
const controlPath = options.controlPath ?? "/api/voice/live-ops/control/:sessionId";
|
|
12521
|
-
return new
|
|
12566
|
+
return new Elysia15({
|
|
12522
12567
|
name: options.name ?? "absolutejs-voice-live-ops"
|
|
12523
12568
|
}).post(path, async ({ request, set }) => {
|
|
12524
12569
|
try {
|
|
@@ -12540,7 +12585,7 @@ var createVoiceLiveOpsRoutes = (options = {}) => {
|
|
|
12540
12585
|
});
|
|
12541
12586
|
};
|
|
12542
12587
|
// src/deliveryRuntime.ts
|
|
12543
|
-
import { Elysia as
|
|
12588
|
+
import { Elysia as Elysia16 } from "elysia";
|
|
12544
12589
|
import { mkdir } from "fs/promises";
|
|
12545
12590
|
import { dirname, join } from "path";
|
|
12546
12591
|
var escapeHtml16 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
@@ -12794,7 +12839,7 @@ var createVoiceDeliveryRuntimeRoutes = (options) => {
|
|
|
12794
12839
|
const htmlPath = options.htmlPath === undefined ? "/delivery-runtime" : options.htmlPath;
|
|
12795
12840
|
const tickPath = options.tickPath === undefined ? "/api/voice-delivery-runtime/tick" : options.tickPath;
|
|
12796
12841
|
const requeueDeadLettersPath = options.requeueDeadLettersPath === undefined ? "/api/voice-delivery-runtime/requeue-dead-letters" : options.requeueDeadLettersPath;
|
|
12797
|
-
const routes = new
|
|
12842
|
+
const routes = new Elysia16({
|
|
12798
12843
|
name: options.name ?? "absolutejs-voice-delivery-runtime"
|
|
12799
12844
|
}).get(path, () => buildVoiceDeliveryRuntimeReport(options.runtime));
|
|
12800
12845
|
if (tickPath !== false) {
|
|
@@ -12830,7 +12875,7 @@ var createVoiceDeliveryRuntimeRoutes = (options) => {
|
|
|
12830
12875
|
return routes;
|
|
12831
12876
|
};
|
|
12832
12877
|
// src/dataControl.ts
|
|
12833
|
-
import { Elysia as
|
|
12878
|
+
import { Elysia as Elysia17 } from "elysia";
|
|
12834
12879
|
var voiceComplianceRedactionDefaults = {
|
|
12835
12880
|
keys: [
|
|
12836
12881
|
"apiKey",
|
|
@@ -13237,7 +13282,7 @@ var parseRetentionPolicyBody = (body, options, dryRun) => {
|
|
|
13237
13282
|
var createVoiceDataControlRoutes = (options) => {
|
|
13238
13283
|
const path = options.path ?? "/data-control";
|
|
13239
13284
|
const title = options.title ?? "AbsoluteJS Voice Data Control";
|
|
13240
|
-
const routes = new
|
|
13285
|
+
const routes = new Elysia17({
|
|
13241
13286
|
name: options.name ?? "absolutejs-voice-data-control"
|
|
13242
13287
|
});
|
|
13243
13288
|
routes.get(path, async ({ query }) => {
|
|
@@ -13310,15 +13355,15 @@ var createVoiceDataControlRoutes = (options) => {
|
|
|
13310
13355
|
return routes;
|
|
13311
13356
|
};
|
|
13312
13357
|
// src/evalRoutes.ts
|
|
13313
|
-
import { Elysia as
|
|
13358
|
+
import { Elysia as Elysia20 } from "elysia";
|
|
13314
13359
|
import { mkdir as mkdir2 } from "fs/promises";
|
|
13315
13360
|
import { dirname as dirname2 } from "path";
|
|
13316
13361
|
|
|
13317
13362
|
// src/qualityRoutes.ts
|
|
13318
|
-
import { Elysia as
|
|
13363
|
+
import { Elysia as Elysia19 } from "elysia";
|
|
13319
13364
|
|
|
13320
13365
|
// src/handoffHealth.ts
|
|
13321
|
-
import { Elysia as
|
|
13366
|
+
import { Elysia as Elysia18 } from "elysia";
|
|
13322
13367
|
var escapeHtml18 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
13323
13368
|
var getString7 = (value) => typeof value === "string" && value.length > 0 ? value : undefined;
|
|
13324
13369
|
var isStatus = (value) => value === "delivered" || value === "failed" || value === "skipped";
|
|
@@ -13501,7 +13546,7 @@ var createVoiceHandoffHealthHTMLHandler = (options = {}) => async ({ query }) =>
|
|
|
13501
13546
|
var createVoiceHandoffHealthRoutes = (options = {}) => {
|
|
13502
13547
|
const path = options.path ?? "/api/voice-handoffs";
|
|
13503
13548
|
const htmlPath = options.htmlPath === undefined ? `${path}/htmx` : options.htmlPath;
|
|
13504
|
-
const routes = new
|
|
13549
|
+
const routes = new Elysia18({
|
|
13505
13550
|
name: options.name ?? "absolutejs-voice-handoff-health"
|
|
13506
13551
|
}).get(path, createVoiceHandoffHealthJSONHandler(options));
|
|
13507
13552
|
if (htmlPath) {
|
|
@@ -13632,7 +13677,7 @@ var renderVoiceQualityHTML = (report, options = {}) => {
|
|
|
13632
13677
|
};
|
|
13633
13678
|
var createVoiceQualityRoutes = (options) => {
|
|
13634
13679
|
const path = options.path ?? "/quality";
|
|
13635
|
-
const routes = new
|
|
13680
|
+
const routes = new Elysia19({
|
|
13636
13681
|
name: options.name ?? "absolutejs-voice-quality"
|
|
13637
13682
|
});
|
|
13638
13683
|
const getReport = () => evaluateVoiceQuality({
|
|
@@ -14045,7 +14090,7 @@ var renderVoiceScenarioFixtureEvalHTML = (report, options = {}) => {
|
|
|
14045
14090
|
};
|
|
14046
14091
|
var createVoiceEvalRoutes = (options) => {
|
|
14047
14092
|
const path = options.path ?? "/evals";
|
|
14048
|
-
const routes = new
|
|
14093
|
+
const routes = new Elysia20({
|
|
14049
14094
|
name: options.name ?? "absolutejs-voice-evals"
|
|
14050
14095
|
});
|
|
14051
14096
|
const getReport = () => runVoiceSessionEvals({
|
|
@@ -14182,10 +14227,10 @@ var createVoiceEvalRoutes = (options) => {
|
|
|
14182
14227
|
return routes;
|
|
14183
14228
|
};
|
|
14184
14229
|
// src/simulationSuite.ts
|
|
14185
|
-
import { Elysia as
|
|
14230
|
+
import { Elysia as Elysia23 } from "elysia";
|
|
14186
14231
|
|
|
14187
14232
|
// src/outcomeContract.ts
|
|
14188
|
-
import { Elysia as
|
|
14233
|
+
import { Elysia as Elysia21 } from "elysia";
|
|
14189
14234
|
var escapeHtml21 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
14190
14235
|
var resolveSessionHref2 = (value, sessionId) => {
|
|
14191
14236
|
if (value === false) {
|
|
@@ -14351,7 +14396,7 @@ var createVoiceOutcomeContractHTMLHandler = (options) => async () => {
|
|
|
14351
14396
|
var createVoiceOutcomeContractRoutes = (options) => {
|
|
14352
14397
|
const path = options.path ?? "/api/outcome-contracts";
|
|
14353
14398
|
const htmlPath = options.htmlPath === undefined ? `${path}/htmx` : options.htmlPath;
|
|
14354
|
-
const routes = new
|
|
14399
|
+
const routes = new Elysia21({
|
|
14355
14400
|
name: options.name ?? "absolutejs-voice-outcome-contracts"
|
|
14356
14401
|
}).get(path, createVoiceOutcomeContractJSONHandler(options));
|
|
14357
14402
|
if (htmlPath) {
|
|
@@ -14361,7 +14406,7 @@ var createVoiceOutcomeContractRoutes = (options) => {
|
|
|
14361
14406
|
};
|
|
14362
14407
|
|
|
14363
14408
|
// src/toolContract.ts
|
|
14364
|
-
import { Elysia as
|
|
14409
|
+
import { Elysia as Elysia22 } from "elysia";
|
|
14365
14410
|
|
|
14366
14411
|
// src/toolRuntime.ts
|
|
14367
14412
|
var toErrorMessage4 = (error) => error instanceof Error ? error.message : String(error);
|
|
@@ -14813,7 +14858,7 @@ var createVoiceToolContractHTMLHandler = (options) => async () => {
|
|
|
14813
14858
|
var createVoiceToolContractRoutes = (options) => {
|
|
14814
14859
|
const path = options.path ?? "/api/tool-contracts";
|
|
14815
14860
|
const htmlPath = options.htmlPath === undefined ? `${path}/htmx` : options.htmlPath;
|
|
14816
|
-
const routes = new
|
|
14861
|
+
const routes = new Elysia22({
|
|
14817
14862
|
name: options.name ?? "absolutejs-voice-tool-contracts"
|
|
14818
14863
|
}).get(path, createVoiceToolContractJSONHandler(options));
|
|
14819
14864
|
if (htmlPath) {
|
|
@@ -15010,7 +15055,7 @@ app.use(
|
|
|
15010
15055
|
var createVoiceSimulationSuiteRoutes = (options) => {
|
|
15011
15056
|
const path = options.path ?? "/api/voice/simulations";
|
|
15012
15057
|
const htmlPath = options.htmlPath === undefined ? "/voice/simulations" : options.htmlPath;
|
|
15013
|
-
const app = new
|
|
15058
|
+
const app = new Elysia23({
|
|
15014
15059
|
name: options.name ?? "absolutejs-voice-simulation-suite"
|
|
15015
15060
|
}).get(path, () => runVoiceSimulationSuite(options));
|
|
15016
15061
|
if (htmlPath) {
|
|
@@ -15322,7 +15367,7 @@ var createVoiceWorkflowContractHandler = (input) => {
|
|
|
15322
15367
|
};
|
|
15323
15368
|
};
|
|
15324
15369
|
// src/sessionReplay.ts
|
|
15325
|
-
import { Elysia as
|
|
15370
|
+
import { Elysia as Elysia24 } from "elysia";
|
|
15326
15371
|
var getString10 = (value) => typeof value === "string" ? value : undefined;
|
|
15327
15372
|
var escapeHtml24 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
15328
15373
|
var increment4 = (record, key) => {
|
|
@@ -15562,7 +15607,7 @@ var createVoiceSessionsHTMLHandler = (options = {}) => async ({ query }) => {
|
|
|
15562
15607
|
var createVoiceSessionListRoutes = (options = {}) => {
|
|
15563
15608
|
const path = options.path ?? "/api/voice-sessions";
|
|
15564
15609
|
const htmlPath = options.htmlPath === undefined ? `${path}/htmx` : options.htmlPath;
|
|
15565
|
-
const routes = new
|
|
15610
|
+
const routes = new Elysia24({
|
|
15566
15611
|
name: options.name ?? "absolutejs-voice-session-list"
|
|
15567
15612
|
}).get(path, createVoiceSessionsJSONHandler(options));
|
|
15568
15613
|
if (htmlPath) {
|
|
@@ -15590,7 +15635,7 @@ var createVoiceSessionReplayHTMLHandler = (options) => async ({ params }) => {
|
|
|
15590
15635
|
var createVoiceSessionReplayRoutes = (options) => {
|
|
15591
15636
|
const path = options.path ?? "/api/voice-sessions/:sessionId/replay";
|
|
15592
15637
|
const htmlPath = options.htmlPath === undefined ? `${path}/htmx` : options.htmlPath;
|
|
15593
|
-
const routes = new
|
|
15638
|
+
const routes = new Elysia24({
|
|
15594
15639
|
name: options.name ?? "absolutejs-voice-session-replay"
|
|
15595
15640
|
}).get(path, createVoiceSessionReplayJSONHandler(options));
|
|
15596
15641
|
if (htmlPath) {
|
|
@@ -15819,7 +15864,7 @@ var assertVoiceAgentSquadContract = async (options) => {
|
|
|
15819
15864
|
return report;
|
|
15820
15865
|
};
|
|
15821
15866
|
// src/turnLatency.ts
|
|
15822
|
-
import { Elysia as
|
|
15867
|
+
import { Elysia as Elysia25 } from "elysia";
|
|
15823
15868
|
var DEFAULT_WARN_AFTER_MS = 1800;
|
|
15824
15869
|
var DEFAULT_FAIL_AFTER_MS = 3200;
|
|
15825
15870
|
var escapeHtml25 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
@@ -15975,7 +16020,7 @@ var createVoiceTurnLatencyHTMLHandler = (options) => async () => {
|
|
|
15975
16020
|
var createVoiceTurnLatencyRoutes = (options) => {
|
|
15976
16021
|
const path = options.path ?? "/api/turn-latency";
|
|
15977
16022
|
const htmlPath = options.htmlPath === undefined ? `${path}/htmx` : options.htmlPath;
|
|
15978
|
-
const routes = new
|
|
16023
|
+
const routes = new Elysia25({
|
|
15979
16024
|
name: options.name ?? "absolutejs-voice-turn-latency"
|
|
15980
16025
|
}).get(path, createVoiceTurnLatencyJSONHandler(options));
|
|
15981
16026
|
if (htmlPath) {
|
|
@@ -15984,7 +16029,7 @@ var createVoiceTurnLatencyRoutes = (options) => {
|
|
|
15984
16029
|
return routes;
|
|
15985
16030
|
};
|
|
15986
16031
|
// src/liveLatency.ts
|
|
15987
|
-
import { Elysia as
|
|
16032
|
+
import { Elysia as Elysia26 } from "elysia";
|
|
15988
16033
|
var escapeHtml26 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
15989
16034
|
var percentile = (values, percentileValue) => {
|
|
15990
16035
|
if (values.length === 0) {
|
|
@@ -16058,7 +16103,7 @@ await traceStore.append({
|
|
|
16058
16103
|
var createVoiceLiveLatencyRoutes = (options) => {
|
|
16059
16104
|
const path = options.path ?? "/api/live-latency";
|
|
16060
16105
|
const htmlPath = options.htmlPath === undefined ? "/live-latency" : options.htmlPath;
|
|
16061
|
-
const routes = new
|
|
16106
|
+
const routes = new Elysia26({
|
|
16062
16107
|
name: options.name ?? "absolutejs-voice-live-latency"
|
|
16063
16108
|
}).get(path, () => summarizeVoiceLiveLatency(options));
|
|
16064
16109
|
if (htmlPath) {
|
|
@@ -16377,7 +16422,7 @@ None.
|
|
|
16377
16422
|
`}`;
|
|
16378
16423
|
};
|
|
16379
16424
|
// src/turnQuality.ts
|
|
16380
|
-
import { Elysia as
|
|
16425
|
+
import { Elysia as Elysia27 } from "elysia";
|
|
16381
16426
|
var DEFAULT_CONFIDENCE_WARN_THRESHOLD = 0.72;
|
|
16382
16427
|
var escapeHtml27 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
16383
16428
|
var getTurnLatencyMs = (turn) => {
|
|
@@ -16484,7 +16529,7 @@ var createVoiceTurnQualityHTMLHandler = (options) => async () => {
|
|
|
16484
16529
|
var createVoiceTurnQualityRoutes = (options) => {
|
|
16485
16530
|
const path = options.path ?? "/api/turn-quality";
|
|
16486
16531
|
const htmlPath = options.htmlPath === undefined ? `${path}/htmx` : options.htmlPath;
|
|
16487
|
-
const routes = new
|
|
16532
|
+
const routes = new Elysia27({
|
|
16488
16533
|
name: options.name ?? "absolutejs-voice-turn-quality"
|
|
16489
16534
|
}).get(path, createVoiceTurnQualityJSONHandler(options));
|
|
16490
16535
|
if (htmlPath) {
|
|
@@ -16493,7 +16538,7 @@ var createVoiceTurnQualityRoutes = (options) => {
|
|
|
16493
16538
|
return routes;
|
|
16494
16539
|
};
|
|
16495
16540
|
// src/telephonyOutcome.ts
|
|
16496
|
-
import { Elysia as
|
|
16541
|
+
import { Elysia as Elysia28 } from "elysia";
|
|
16497
16542
|
var DEFAULT_COMPLETED_STATUSES = [
|
|
16498
16543
|
"answered",
|
|
16499
16544
|
"completed",
|
|
@@ -17143,7 +17188,7 @@ var createVoiceTelephonyWebhookHandler = (options = {}) => async (input) => {
|
|
|
17143
17188
|
var createVoiceTelephonyWebhookRoutes = (options = {}) => {
|
|
17144
17189
|
const path = options.path ?? "/api/voice/telephony/webhook";
|
|
17145
17190
|
const handler = createVoiceTelephonyWebhookHandler(options);
|
|
17146
|
-
return new
|
|
17191
|
+
return new Elysia28({
|
|
17147
17192
|
name: options.name ?? "absolutejs-voice-telephony-webhooks"
|
|
17148
17193
|
}).post(path, async ({ query, request }) => {
|
|
17149
17194
|
try {
|
|
@@ -17164,11 +17209,11 @@ var createVoiceTelephonyWebhookRoutes = (options = {}) => {
|
|
|
17164
17209
|
});
|
|
17165
17210
|
};
|
|
17166
17211
|
// src/phoneAgent.ts
|
|
17167
|
-
import { Elysia as
|
|
17212
|
+
import { Elysia as Elysia34 } from "elysia";
|
|
17168
17213
|
|
|
17169
17214
|
// src/telephony/plivo.ts
|
|
17170
17215
|
import { Buffer as Buffer5 } from "buffer";
|
|
17171
|
-
import { Elysia as
|
|
17216
|
+
import { Elysia as Elysia30 } from "elysia";
|
|
17172
17217
|
|
|
17173
17218
|
// src/telephony/contract.ts
|
|
17174
17219
|
var DEFAULT_REQUIREMENTS = [
|
|
@@ -17252,7 +17297,7 @@ var evaluateVoiceTelephonyContract = (input) => {
|
|
|
17252
17297
|
|
|
17253
17298
|
// src/telephony/twilio.ts
|
|
17254
17299
|
import { Buffer as Buffer4 } from "buffer";
|
|
17255
|
-
import { Elysia as
|
|
17300
|
+
import { Elysia as Elysia29 } from "elysia";
|
|
17256
17301
|
var TWILIO_MULAW_SAMPLE_RATE = 8000;
|
|
17257
17302
|
var VOICE_PCM_SAMPLE_RATE = 16000;
|
|
17258
17303
|
var escapeXml2 = (value) => value.replaceAll("&", "&").replaceAll('"', """).replaceAll("'", "'").replaceAll("<", "<").replaceAll(">", ">");
|
|
@@ -17825,7 +17870,7 @@ var createTwilioVoiceRoutes = (options) => {
|
|
|
17825
17870
|
const smokePath = options.smoke?.path === false ? false : options.smoke?.path ?? "/api/voice/twilio/smoke";
|
|
17826
17871
|
const bridges = new WeakMap;
|
|
17827
17872
|
const webhookPolicy = options.webhook?.policy ?? options.outcomePolicy ?? createVoiceTelephonyOutcomePolicy();
|
|
17828
|
-
const app = new
|
|
17873
|
+
const app = new Elysia29({
|
|
17829
17874
|
name: options.name ?? "absolutejs-voice-twilio"
|
|
17830
17875
|
}).get(twimlPath, async ({ query, request }) => {
|
|
17831
17876
|
const streamUrl = await resolveTwilioStreamUrl(options, {
|
|
@@ -18322,7 +18367,7 @@ var createPlivoVoiceRoutes = (options = {}) => {
|
|
|
18322
18367
|
request: input.request
|
|
18323
18368
|
}) : verificationUrl ?? input.request.url
|
|
18324
18369
|
}) : undefined);
|
|
18325
|
-
const app = new
|
|
18370
|
+
const app = new Elysia30({
|
|
18326
18371
|
name: options.name ?? "absolutejs-voice-plivo"
|
|
18327
18372
|
}).get(answerPath, async ({ query, request }) => {
|
|
18328
18373
|
const streamUrl = await resolvePlivoStreamUrl(options, {
|
|
@@ -18433,7 +18478,7 @@ var createPlivoVoiceRoutes = (options = {}) => {
|
|
|
18433
18478
|
|
|
18434
18479
|
// src/telephony/telnyx.ts
|
|
18435
18480
|
import { Buffer as Buffer6 } from "buffer";
|
|
18436
|
-
import { Elysia as
|
|
18481
|
+
import { Elysia as Elysia31 } from "elysia";
|
|
18437
18482
|
var escapeXml4 = (value) => value.replaceAll("&", "&").replaceAll('"', """).replaceAll("'", "'").replaceAll("<", "<").replaceAll(">", ">");
|
|
18438
18483
|
var escapeHtml30 = (value) => value.replaceAll("&", "&").replaceAll('"', """).replaceAll("'", "'").replaceAll("<", "<").replaceAll(">", ">");
|
|
18439
18484
|
var joinUrlPath4 = (origin, path) => `${origin.replace(/\/$/, "")}${path.startsWith("/") ? path : `/${path}`}`;
|
|
@@ -18744,7 +18789,7 @@ var createTelnyxVoiceRoutes = (options = {}) => {
|
|
|
18744
18789
|
publicKey: options.webhook?.publicKey,
|
|
18745
18790
|
toleranceSeconds: options.webhook?.toleranceSeconds
|
|
18746
18791
|
}) : undefined);
|
|
18747
|
-
const app = new
|
|
18792
|
+
const app = new Elysia31({
|
|
18748
18793
|
name: options.name ?? "absolutejs-voice-telnyx"
|
|
18749
18794
|
}).get(texmlPath, async ({ query, request }) => {
|
|
18750
18795
|
const streamUrl = await resolveTelnyxStreamUrl(options, {
|
|
@@ -18854,7 +18899,7 @@ var createTelnyxVoiceRoutes = (options = {}) => {
|
|
|
18854
18899
|
};
|
|
18855
18900
|
|
|
18856
18901
|
// src/telephony/matrix.ts
|
|
18857
|
-
import { Elysia as
|
|
18902
|
+
import { Elysia as Elysia32 } from "elysia";
|
|
18858
18903
|
var escapeHtml31 = (value) => value.replaceAll("&", "&").replaceAll('"', """).replaceAll("'", "'").replaceAll("<", "<").replaceAll(">", ">");
|
|
18859
18904
|
var labelForProvider = (provider) => provider.split("-").map((part) => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`).join(" ");
|
|
18860
18905
|
var resolveEntryStatus = (contract, setup, smoke) => {
|
|
@@ -18938,7 +18983,7 @@ ${entry.issues.length ? `<ul style="margin:12px 0 0; padding-left:18px;">${entry
|
|
|
18938
18983
|
</main>`;
|
|
18939
18984
|
var createVoiceTelephonyCarrierMatrixRoutes = (options) => {
|
|
18940
18985
|
const path = options.path ?? "/api/voice/telephony/carriers";
|
|
18941
|
-
return new
|
|
18986
|
+
return new Elysia32({
|
|
18942
18987
|
name: options.name ?? "absolutejs-voice-telephony-carrier-matrix"
|
|
18943
18988
|
}).get(path, async ({ query, request }) => {
|
|
18944
18989
|
const providers = await options.load({ query, request });
|
|
@@ -18960,7 +19005,7 @@ var createVoiceTelephonyCarrierMatrixRoutes = (options) => {
|
|
|
18960
19005
|
};
|
|
18961
19006
|
|
|
18962
19007
|
// src/phoneAgentProductionSmoke.ts
|
|
18963
|
-
import { Elysia as
|
|
19008
|
+
import { Elysia as Elysia33 } from "elysia";
|
|
18964
19009
|
var defaultRequirements = [
|
|
18965
19010
|
"media-started",
|
|
18966
19011
|
"transcript",
|
|
@@ -19103,7 +19148,7 @@ var createVoicePhoneAgentProductionSmokeHTMLHandler = (options) => async ({
|
|
|
19103
19148
|
var createVoicePhoneAgentProductionSmokeRoutes = (options) => {
|
|
19104
19149
|
const path = options.path ?? "/api/voice/phone/smoke-contract";
|
|
19105
19150
|
const htmlPath = options.htmlPath === undefined ? "/voice/phone/smoke-contract" : options.htmlPath;
|
|
19106
|
-
const routes = new
|
|
19151
|
+
const routes = new Elysia33({
|
|
19107
19152
|
name: options.name ?? "absolutejs-voice-phone-smoke-contract"
|
|
19108
19153
|
}).get(path, createVoicePhoneAgentProductionSmokeJSONHandler(options));
|
|
19109
19154
|
if (htmlPath) {
|
|
@@ -19291,7 +19336,7 @@ var createVoicePhoneAgent = (options) => {
|
|
|
19291
19336
|
setupPath: resolveSetupPath(carrier),
|
|
19292
19337
|
smokePath: resolveSmokePath(carrier)
|
|
19293
19338
|
}));
|
|
19294
|
-
const app = new
|
|
19339
|
+
const app = new Elysia34({
|
|
19295
19340
|
name: options.name ?? "absolutejs-voice-phone-agent"
|
|
19296
19341
|
});
|
|
19297
19342
|
for (const carrier of options.carriers) {
|
|
@@ -21350,7 +21395,7 @@ var createOpenAIVoiceTTS = (options) => {
|
|
|
21350
21395
|
};
|
|
21351
21396
|
};
|
|
21352
21397
|
// src/providerCapabilities.ts
|
|
21353
|
-
import { Elysia as
|
|
21398
|
+
import { Elysia as Elysia35 } from "elysia";
|
|
21354
21399
|
var escapeHtml34 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
21355
21400
|
var fromProviderList = (kind, providers, options) => (providers ?? []).map((provider) => ({
|
|
21356
21401
|
configured: true,
|
|
@@ -21451,7 +21496,7 @@ var createVoiceProviderCapabilityHTMLHandler = (options) => async () => {
|
|
|
21451
21496
|
var createVoiceProviderCapabilityRoutes = (options) => {
|
|
21452
21497
|
const path = options.path ?? "/api/provider-capabilities";
|
|
21453
21498
|
const htmlPath = options.htmlPath === undefined ? `${path}/htmx` : options.htmlPath;
|
|
21454
|
-
const routes = new
|
|
21499
|
+
const routes = new Elysia35({
|
|
21455
21500
|
name: options.name ?? "absolutejs-voice-provider-capabilities"
|
|
21456
21501
|
}).get(path, createVoiceProviderCapabilityJSONHandler(options));
|
|
21457
21502
|
if (htmlPath) {
|
|
@@ -21460,7 +21505,7 @@ var createVoiceProviderCapabilityRoutes = (options) => {
|
|
|
21460
21505
|
return routes;
|
|
21461
21506
|
};
|
|
21462
21507
|
// src/resilienceRoutes.ts
|
|
21463
|
-
import { Elysia as
|
|
21508
|
+
import { Elysia as Elysia36 } from "elysia";
|
|
21464
21509
|
var escapeHtml35 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
21465
21510
|
var getString13 = (value) => typeof value === "string" ? value : undefined;
|
|
21466
21511
|
var getNumber7 = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
@@ -21904,7 +21949,7 @@ var registerSimulationRoutes = (routes, simulation, defaultPathPrefix) => {
|
|
|
21904
21949
|
};
|
|
21905
21950
|
var createVoiceResilienceRoutes = (options) => {
|
|
21906
21951
|
const path = options.path ?? "/resilience";
|
|
21907
|
-
const routes = new
|
|
21952
|
+
const routes = new Elysia36({
|
|
21908
21953
|
name: options.name ?? "absolutejs-voice-resilience"
|
|
21909
21954
|
}).get(path, async () => {
|
|
21910
21955
|
const events = await options.store.list();
|
|
@@ -21982,7 +22027,7 @@ var assertVoiceProviderRoutingContract = async (options) => {
|
|
|
21982
22027
|
return report;
|
|
21983
22028
|
};
|
|
21984
22029
|
// src/providerSlo.ts
|
|
21985
|
-
import { Elysia as
|
|
22030
|
+
import { Elysia as Elysia37 } from "elysia";
|
|
21986
22031
|
var defaultThresholds = {
|
|
21987
22032
|
llm: {
|
|
21988
22033
|
maxAverageElapsedMs: 2500,
|
|
@@ -22249,7 +22294,7 @@ var createVoiceProviderSloRoutes = (options) => {
|
|
|
22249
22294
|
...options.headers ?? {}
|
|
22250
22295
|
};
|
|
22251
22296
|
const buildReport = () => buildVoiceProviderSloReport(options);
|
|
22252
|
-
const app = new
|
|
22297
|
+
const app = new Elysia37({ name: options.name ?? "absolute-voice-provider-slos" });
|
|
22253
22298
|
app.get(path, async () => Response.json(await buildReport(), { headers }));
|
|
22254
22299
|
if (markdownPath !== false) {
|
|
22255
22300
|
app.get(markdownPath, async () => {
|
|
@@ -22279,10 +22324,10 @@ var createVoiceProviderSloRoutes = (options) => {
|
|
|
22279
22324
|
return app;
|
|
22280
22325
|
};
|
|
22281
22326
|
// src/productionReadiness.ts
|
|
22282
|
-
import { Elysia as
|
|
22327
|
+
import { Elysia as Elysia42 } from "elysia";
|
|
22283
22328
|
|
|
22284
22329
|
// src/opsRecovery.ts
|
|
22285
|
-
import { Elysia as
|
|
22330
|
+
import { Elysia as Elysia38 } from "elysia";
|
|
22286
22331
|
var escapeHtml37 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
22287
22332
|
var getString14 = (value) => typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
22288
22333
|
var hrefForSession = (value, sessionId) => {
|
|
@@ -22509,7 +22554,7 @@ var createVoiceOpsRecoveryRoutes = (options = {}) => {
|
|
|
22509
22554
|
const path = options.path ?? "/api/voice/ops-recovery";
|
|
22510
22555
|
const htmlPath = options.htmlPath === undefined ? "/ops-recovery" : options.htmlPath;
|
|
22511
22556
|
const markdownPath = options.markdownPath === undefined ? `${path}.md` : options.markdownPath;
|
|
22512
|
-
const routes = new
|
|
22557
|
+
const routes = new Elysia38({
|
|
22513
22558
|
name: options.name ?? "absolutejs-voice-ops-recovery"
|
|
22514
22559
|
}).get(path, async () => buildVoiceOpsRecoveryReport(options));
|
|
22515
22560
|
if (htmlPath) {
|
|
@@ -22539,17 +22584,17 @@ var createVoiceOpsRecoveryRoutes = (options = {}) => {
|
|
|
22539
22584
|
};
|
|
22540
22585
|
|
|
22541
22586
|
// src/observabilityExport.ts
|
|
22542
|
-
import { Elysia as
|
|
22587
|
+
import { Elysia as Elysia41 } from "elysia";
|
|
22543
22588
|
import { Database } from "bun:sqlite";
|
|
22544
22589
|
import { createHash } from "crypto";
|
|
22545
22590
|
import { mkdir as mkdir4, readFile as readFile2, stat, unlink } from "fs/promises";
|
|
22546
22591
|
import { join as join3 } from "path";
|
|
22547
22592
|
|
|
22548
22593
|
// src/operationsRecord.ts
|
|
22549
|
-
import { Elysia as
|
|
22594
|
+
import { Elysia as Elysia40 } from "elysia";
|
|
22550
22595
|
|
|
22551
22596
|
// src/traceTimeline.ts
|
|
22552
|
-
import { Elysia as
|
|
22597
|
+
import { Elysia as Elysia39 } from "elysia";
|
|
22553
22598
|
var escapeHtml38 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
22554
22599
|
var getString15 = (value) => typeof value === "string" && value.trim() ? value : undefined;
|
|
22555
22600
|
var getNumber8 = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
@@ -22775,7 +22820,7 @@ var createVoiceTraceTimelineRoutes = (options) => {
|
|
|
22775
22820
|
const path = options.path ?? "/api/voice-traces";
|
|
22776
22821
|
const htmlPath = options.htmlPath ?? "/traces";
|
|
22777
22822
|
const title = options.title ?? "AbsoluteJS Voice Trace Timelines";
|
|
22778
|
-
const routes = new
|
|
22823
|
+
const routes = new Elysia39({
|
|
22779
22824
|
name: options.name ?? "absolutejs-voice-trace-timelines"
|
|
22780
22825
|
});
|
|
22781
22826
|
const buildReport = async () => summarizeVoiceTraceTimeline(await options.store.list(), {
|
|
@@ -23026,7 +23071,7 @@ var createVoiceOperationsRecordRoutes = (options) => {
|
|
|
23026
23071
|
const htmlPath = options.htmlPath === undefined ? "/voice-operations/:sessionId" : options.htmlPath;
|
|
23027
23072
|
const incidentPath = options.incidentPath === undefined ? `${path}/incident.md` : options.incidentPath;
|
|
23028
23073
|
const incidentHtmlPath = options.incidentHtmlPath === undefined && htmlPath ? `${htmlPath}/incident.md` : options.incidentHtmlPath;
|
|
23029
|
-
const routes = new
|
|
23074
|
+
const routes = new Elysia40({
|
|
23030
23075
|
name: options.name ?? "absolutejs-voice-operations-record"
|
|
23031
23076
|
});
|
|
23032
23077
|
const buildRecord = (sessionId) => buildVoiceOperationsRecord({
|
|
@@ -23621,7 +23666,7 @@ var createVoiceObservabilityExportReplayRoutes = (options) => {
|
|
|
23621
23666
|
...options.headers ?? {}
|
|
23622
23667
|
};
|
|
23623
23668
|
const buildReport = () => resolveVoiceObservabilityExportReplayReport(options.source);
|
|
23624
|
-
const app = new
|
|
23669
|
+
const app = new Elysia41({
|
|
23625
23670
|
name: options.name ?? "absolute-voice-observability-export-replay"
|
|
23626
23671
|
});
|
|
23627
23672
|
app.get(path, async () => Response.json(await buildReport(), { headers }));
|
|
@@ -24347,7 +24392,7 @@ var createVoiceObservabilityExportRoutes = (options = {}) => {
|
|
|
24347
24392
|
artifactDownload: options.links?.artifactDownload ?? (artifactDownloadPath ? (artifact) => `${artifactDownloadPath}/${encodeURIComponent(artifact.id)}` : undefined)
|
|
24348
24393
|
}
|
|
24349
24394
|
});
|
|
24350
|
-
const app = new
|
|
24395
|
+
const app = new Elysia41({
|
|
24351
24396
|
name: options.name ?? "absolute-voice-observability-export"
|
|
24352
24397
|
});
|
|
24353
24398
|
app.get(path, async () => Response.json(await buildReport(), { headers }));
|
|
@@ -25652,7 +25697,7 @@ var createVoiceProductionReadinessRoutes = (options) => {
|
|
|
25652
25697
|
const path = options.path ?? "/api/production-readiness";
|
|
25653
25698
|
const gatePath = options.gatePath === undefined ? "/api/production-readiness/gate" : options.gatePath;
|
|
25654
25699
|
const htmlPath = options.htmlPath ?? "/production-readiness";
|
|
25655
|
-
const routes = new
|
|
25700
|
+
const routes = new Elysia42({
|
|
25656
25701
|
name: options.name ?? "absolutejs-voice-production-readiness"
|
|
25657
25702
|
});
|
|
25658
25703
|
routes.get(path, async ({ query, request }) => buildVoiceProductionReadinessReport(options, { query, request }));
|
|
@@ -26037,7 +26082,7 @@ var recommendVoiceReadinessProfile = (options) => {
|
|
|
26037
26082
|
};
|
|
26038
26083
|
};
|
|
26039
26084
|
// src/providerStackRecommendations.ts
|
|
26040
|
-
import { Elysia as
|
|
26085
|
+
import { Elysia as Elysia43 } from "elysia";
|
|
26041
26086
|
var escapeHtml41 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
26042
26087
|
var profileProviderPriorities = {
|
|
26043
26088
|
"meeting-recorder": {
|
|
@@ -26327,7 +26372,7 @@ var createVoiceProviderContractMatrixHTMLHandler = (options) => async () => {
|
|
|
26327
26372
|
var createVoiceProviderContractMatrixRoutes = (options) => {
|
|
26328
26373
|
const path = options.path ?? "/api/provider-contracts";
|
|
26329
26374
|
const htmlPath = options.htmlPath ?? "/provider-contracts";
|
|
26330
|
-
const routes = new
|
|
26375
|
+
const routes = new Elysia43({
|
|
26331
26376
|
name: options.name ?? "absolutejs-voice-provider-contract-matrix"
|
|
26332
26377
|
});
|
|
26333
26378
|
const jsonHandler = createVoiceProviderContractMatrixJSONHandler(options.matrix);
|
|
@@ -26386,7 +26431,7 @@ var evaluateVoiceProviderStackGaps = (input) => {
|
|
|
26386
26431
|
};
|
|
26387
26432
|
};
|
|
26388
26433
|
// src/opsConsoleRoutes.ts
|
|
26389
|
-
import { Elysia as
|
|
26434
|
+
import { Elysia as Elysia44 } from "elysia";
|
|
26390
26435
|
var DEFAULT_LINKS = [
|
|
26391
26436
|
{
|
|
26392
26437
|
description: "Quality gates for CI, deploy checks, and production readiness.",
|
|
@@ -26503,7 +26548,7 @@ var renderVoiceOpsConsoleHTML = (report, options = {}) => {
|
|
|
26503
26548
|
};
|
|
26504
26549
|
var createVoiceOpsConsoleRoutes = (options) => {
|
|
26505
26550
|
const path = options.path ?? "/ops-console";
|
|
26506
|
-
const routes = new
|
|
26551
|
+
const routes = new Elysia44({
|
|
26507
26552
|
name: options.name ?? "absolutejs-voice-ops-console"
|
|
26508
26553
|
});
|
|
26509
26554
|
const getReport = () => buildVoiceOpsConsoleReport(options);
|
|
@@ -26520,7 +26565,7 @@ var createVoiceOpsConsoleRoutes = (options) => {
|
|
|
26520
26565
|
return routes;
|
|
26521
26566
|
};
|
|
26522
26567
|
// src/incidentBundle.ts
|
|
26523
|
-
import { Elysia as
|
|
26568
|
+
import { Elysia as Elysia45 } from "elysia";
|
|
26524
26569
|
var filterIncidentBundleArtifacts = (artifacts, filter = {}) => artifacts.filter((artifact) => {
|
|
26525
26570
|
if (filter.sessionId && artifact.sessionId !== filter.sessionId) {
|
|
26526
26571
|
return false;
|
|
@@ -26719,7 +26764,7 @@ var buildVoiceIncidentBundle = async (options) => {
|
|
|
26719
26764
|
var createVoiceIncidentBundleRoutes = (options) => {
|
|
26720
26765
|
const path = options.path ?? "/api/voice-incidents/:sessionId";
|
|
26721
26766
|
const markdownPath = options.markdownPath === undefined ? "/voice-incidents/:sessionId/markdown" : options.markdownPath;
|
|
26722
|
-
const routes = new
|
|
26767
|
+
const routes = new Elysia45({
|
|
26723
26768
|
name: options.name ?? "absolutejs-voice-incident-bundle"
|
|
26724
26769
|
});
|
|
26725
26770
|
const getSessionId = (params) => params.sessionId ?? "";
|
|
@@ -26920,7 +26965,7 @@ var summarizeVoiceOpsStatus = async (options) => {
|
|
|
26920
26965
|
};
|
|
26921
26966
|
};
|
|
26922
26967
|
// src/opsStatusRoutes.ts
|
|
26923
|
-
import { Elysia as
|
|
26968
|
+
import { Elysia as Elysia46 } from "elysia";
|
|
26924
26969
|
var escapeHtml43 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
26925
26970
|
var renderVoiceOpsStatusHTML = (report, options = {}) => {
|
|
26926
26971
|
const title = options.title ?? "AbsoluteJS Voice Ops Status";
|
|
@@ -26932,7 +26977,7 @@ var renderVoiceOpsStatusHTML = (report, options = {}) => {
|
|
|
26932
26977
|
};
|
|
26933
26978
|
var createVoiceOpsStatusRoutes = (options) => {
|
|
26934
26979
|
const path = options.path ?? "/api/voice/ops-status";
|
|
26935
|
-
const routes = new
|
|
26980
|
+
const routes = new Elysia46({
|
|
26936
26981
|
name: options.name ?? "absolutejs-voice-ops-status"
|
|
26937
26982
|
});
|
|
26938
26983
|
routes.get(path, async () => summarizeVoiceOpsStatus(options));
|
|
@@ -27365,7 +27410,7 @@ var createVoiceTTSProviderRouter = (options) => {
|
|
|
27365
27410
|
};
|
|
27366
27411
|
};
|
|
27367
27412
|
// src/traceDeliveryRoutes.ts
|
|
27368
|
-
import { Elysia as
|
|
27413
|
+
import { Elysia as Elysia47 } from "elysia";
|
|
27369
27414
|
var escapeHtml44 = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
27370
27415
|
var getString19 = (value) => typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
27371
27416
|
var getNumber11 = (value) => {
|
|
@@ -27474,7 +27519,7 @@ var createVoiceTraceDeliveryRoutes = (options) => {
|
|
|
27474
27519
|
const path = options.path ?? "/api/voice-trace-deliveries";
|
|
27475
27520
|
const htmlPath = options.htmlPath === undefined ? "/traces/deliveries" : options.htmlPath;
|
|
27476
27521
|
const workerPath = options.workerPath === undefined ? `${path}/drain` : options.workerPath;
|
|
27477
|
-
const routes = new
|
|
27522
|
+
const routes = new Elysia47({
|
|
27478
27523
|
name: options.name ?? "absolutejs-voice-trace-deliveries"
|
|
27479
27524
|
}).get(path, createVoiceTraceDeliveryJSONHandler(options));
|
|
27480
27525
|
if (htmlPath !== false) {
|
|
@@ -28098,7 +28143,7 @@ var createVoiceMemoryStore = () => {
|
|
|
28098
28143
|
return { get, getOrCreate, list, remove, set };
|
|
28099
28144
|
};
|
|
28100
28145
|
// src/opsWebhook.ts
|
|
28101
|
-
import { Elysia as
|
|
28146
|
+
import { Elysia as Elysia48 } from "elysia";
|
|
28102
28147
|
var toHex6 = (bytes) => Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
28103
28148
|
var signVoiceOpsWebhookBody = async (input) => {
|
|
28104
28149
|
const encoder = new TextEncoder;
|
|
@@ -28228,7 +28273,7 @@ var verifyVoiceOpsWebhookSignature = async (input) => {
|
|
|
28228
28273
|
};
|
|
28229
28274
|
var createVoiceOpsWebhookReceiverRoutes = (options = {}) => {
|
|
28230
28275
|
const path = options.path ?? "/api/voice-ops/webhook";
|
|
28231
|
-
return new
|
|
28276
|
+
return new Elysia48().post(path, async ({ body, request, set }) => {
|
|
28232
28277
|
const bodyText = typeof body === "string" ? body : JSON.stringify(body);
|
|
28233
28278
|
if (options.signingSecret) {
|
|
28234
28279
|
const verification = await verifyVoiceOpsWebhookSignature({
|
|
@@ -29221,9 +29266,11 @@ export {
|
|
|
29221
29266
|
recordVoiceAuditEvent,
|
|
29222
29267
|
recommendVoiceReadinessProfile,
|
|
29223
29268
|
recommendVoiceProviderStack,
|
|
29269
|
+
readVoiceProofTrendReportFile,
|
|
29224
29270
|
pruneVoiceTraceEvents,
|
|
29225
29271
|
pruneVoiceIncidentBundleArtifacts,
|
|
29226
29272
|
parseVoiceTelephonyWebhookEvent,
|
|
29273
|
+
normalizeVoiceProofTrendReport,
|
|
29227
29274
|
matchesVoiceOpsTaskAssignmentRule,
|
|
29228
29275
|
markVoiceOpsTaskSLABreached,
|
|
29229
29276
|
loadVoiceObservabilityExportReplaySource,
|
|
@@ -29352,6 +29399,7 @@ export {
|
|
|
29352
29399
|
createVoiceProviderCapabilityRoutes,
|
|
29353
29400
|
createVoiceProviderCapabilityJSONHandler,
|
|
29354
29401
|
createVoiceProviderCapabilityHTMLHandler,
|
|
29402
|
+
createVoiceProofTrendRoutes,
|
|
29355
29403
|
createVoiceProductionReadinessRoutes,
|
|
29356
29404
|
createVoicePostgresTraceSinkDeliveryStore,
|
|
29357
29405
|
createVoicePostgresTraceEventStore,
|