@absolutejs/voice 0.0.22-beta.263 → 0.0.22-beta.264
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/index.d.ts +2 -2
- package/dist/index.js +52 -0
- package/dist/phoneAgent.d.ts +23 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -41,7 +41,7 @@ export { assertVoiceLatencySLOGate, buildVoiceLatencySLOGate, renderVoiceLatency
|
|
|
41
41
|
export { createVoiceTurnQualityHTMLHandler, createVoiceTurnQualityJSONHandler, createVoiceTurnQualityRoutes, renderVoiceTurnQualityHTML, summarizeVoiceTurnQuality } from './turnQuality';
|
|
42
42
|
export { assertVoiceOutcomeContractEvidence, createVoiceOutcomeContractHTMLHandler, createVoiceOutcomeContractJSONHandler, createVoiceOutcomeContractRoutes, evaluateVoiceOutcomeContractEvidence, renderVoiceOutcomeContractHTML, runVoiceOutcomeContractSuite } from './outcomeContract';
|
|
43
43
|
export { applyVoiceTelephonyOutcome, createMemoryVoiceTelephonyWebhookIdempotencyStore, createVoiceTelephonyOutcomePolicy, createVoiceTelephonyWebhookHandler, createVoiceTelephonyWebhookRoutes, parseVoiceTelephonyWebhookEvent, resolveVoiceTelephonyOutcome, signVoiceTwilioWebhook, verifyVoiceTwilioWebhookSignature, voiceTelephonyOutcomeToRouteResult } from './telephonyOutcome';
|
|
44
|
-
export { assertVoicePhoneAssistantEvidence, createVoicePhoneAgent, evaluateVoicePhoneAssistantEvidence } from './phoneAgent';
|
|
44
|
+
export { assertVoicePhoneCallControlEvidence, assertVoicePhoneAssistantEvidence, createVoicePhoneAgent, evaluateVoicePhoneCallControlEvidence, evaluateVoicePhoneAssistantEvidence } from './phoneAgent';
|
|
45
45
|
export { createStoredVoiceCallReviewArtifact, createStoredVoiceExternalObjectMap, createStoredVoiceIntegrationEvent, createStoredVoiceOpsTask, createVoiceFileIncidentBundleStore, createVoiceFileExternalObjectMapStore, createVoiceFileAssistantMemoryStore, createVoiceFileAuditEventStore, createVoiceFileAuditSinkDeliveryStore, createVoiceFileCampaignStore, createVoiceFileIntegrationEventStore, createVoiceFileReviewStore, createVoiceFileRuntimeStorage, createVoiceFileSessionStore, createVoiceFileTaskStore, createVoiceFileTraceSinkDeliveryStore, createVoiceFileTraceEventStore } from './fileStore';
|
|
46
46
|
export { createVoiceAssistantMemoryHandle, createVoiceAssistantMemoryRecord, createVoiceMemoryAssistantMemoryStore, resolveVoiceAssistantMemoryNamespace } from './assistantMemory';
|
|
47
47
|
export { createAnthropicVoiceAssistantModel, createGeminiVoiceAssistantModel, createJSONVoiceAssistantModel, createOpenAIVoiceAssistantModel, resolveVoiceProviderRoutingPolicyPreset, createVoiceProviderRouter } from './modelAdapters';
|
|
@@ -116,7 +116,7 @@ export type { VoiceLatencySLOBudget, VoiceLatencySLOGateError, VoiceLatencySLOGa
|
|
|
116
116
|
export type { VoiceTurnQualityHTMLHandlerOptions, VoiceTurnQualityItem, VoiceTurnQualityOptions, VoiceTurnQualityReport, VoiceTurnQualityRoutesOptions, VoiceTurnQualityStatus } from './turnQuality';
|
|
117
117
|
export type { VoiceOutcomeContractAssertionInput, VoiceOutcomeContractAssertionReport, VoiceOutcomeContractDefinition, VoiceOutcomeContractHTMLHandlerOptions, VoiceOutcomeContractIssue, VoiceOutcomeContractOptions, VoiceOutcomeContractReport, VoiceOutcomeContractRoutesOptions, VoiceOutcomeContractStatus, VoiceOutcomeContractSuiteReport } from './outcomeContract';
|
|
118
118
|
export type { VoiceTelephonyOutcomeAction, VoiceTelephonyOutcomeDecision, VoiceTelephonyOutcomePolicy, VoiceTelephonyOutcomeProviderEvent, VoiceTelephonyOutcomeRouteResult, VoiceTelephonyOutcomeStatusDecision, VoiceTelephonyWebhookDecision, VoiceTelephonyWebhookHandlerOptions, VoiceTelephonyWebhookIdempotencyStore, VoiceTelephonyWebhookParseInput, VoiceTelephonyWebhookProvider, VoiceTelephonyWebhookRoutesOptions, VoiceTelephonyWebhookVerificationResult, StoredVoiceTelephonyWebhookDecision } from './telephonyOutcome';
|
|
119
|
-
export type { VoicePhoneAgentCarrier, VoicePhoneAgentCarrierSummary, VoicePhoneAssistantEvidenceInput, VoicePhoneAssistantEvidenceReport, VoicePhoneAgentLifecycleStage, VoicePhoneAgentPlivoCarrier, VoicePhoneAgentRoutes, VoicePhoneAgentRoutesOptions, VoicePhoneAgentSetupReport, VoicePhoneAgentTelnyxCarrier, VoicePhoneAgentTwilioCarrier } from './phoneAgent';
|
|
119
|
+
export type { VoicePhoneAgentCarrier, VoicePhoneAgentCarrierSummary, VoicePhoneAssistantEvidenceInput, VoicePhoneAssistantEvidenceReport, VoicePhoneCallControlEvidenceInput, VoicePhoneCallControlEvidenceReport, VoicePhoneAgentLifecycleStage, VoicePhoneAgentPlivoCarrier, VoicePhoneAgentRoutes, VoicePhoneAgentRoutesOptions, VoicePhoneAgentSetupReport, VoicePhoneAgentTelnyxCarrier, VoicePhoneAgentTwilioCarrier } from './phoneAgent';
|
|
120
120
|
export type { VoicePhoneAgentProductionSmokeIssue, VoicePhoneAgentProductionSmokeHandlerOptions, VoicePhoneAgentProductionSmokeHTMLHandlerOptions, VoicePhoneAgentProductionSmokeOptions, VoicePhoneAgentProductionSmokeReport, VoicePhoneAgentProductionSmokeRoutesOptions, VoicePhoneAgentProductionSmokeRequirement } from './phoneAgentProductionSmoke';
|
|
121
121
|
export type { VoiceOpsConsoleLink, VoiceOpsConsoleReport, VoiceOpsConsoleRoutesOptions } from './opsConsoleRoutes';
|
|
122
122
|
export type { VoiceOpsStatus, VoiceOpsStatusLink, VoiceOpsStatusOptions, VoiceOpsStatusReport, VoiceOpsStatusRoutesOptions } from './opsStatus';
|
package/dist/index.js
CHANGED
|
@@ -20113,6 +20113,56 @@ var assertVoicePhoneAssistantEvidence = (report, input = {}) => {
|
|
|
20113
20113
|
}
|
|
20114
20114
|
return assertion;
|
|
20115
20115
|
};
|
|
20116
|
+
var evaluateVoicePhoneCallControlEvidence = (input = {}) => {
|
|
20117
|
+
const issues = [];
|
|
20118
|
+
const setup = input.setup;
|
|
20119
|
+
const productionSmokes = input.productionSmokes ?? [];
|
|
20120
|
+
const lifecycleStages = uniqueSorted3(setup?.lifecycleStages ?? []);
|
|
20121
|
+
const providers = uniqueSorted3(productionSmokes.map((report) => report.provider).filter((provider) => Boolean(provider)));
|
|
20122
|
+
const outcomes = uniqueSorted3(productionSmokes.flatMap((report) => report.observed.lifecycleOutcomes));
|
|
20123
|
+
const failedSmokeReports = productionSmokes.filter((report) => !report.pass).length;
|
|
20124
|
+
const passingSmokeReports = productionSmokes.length - failedSmokeReports;
|
|
20125
|
+
if (productionSmokes.length === 0) {
|
|
20126
|
+
issues.push("Expected phone call-control smoke report(s) to be present.");
|
|
20127
|
+
}
|
|
20128
|
+
if (input.requireSetupLifecycleStages ?? true) {
|
|
20129
|
+
if (!setup) {
|
|
20130
|
+
issues.push("Expected phone setup report to be present.");
|
|
20131
|
+
}
|
|
20132
|
+
for (const stage of findMissing3(lifecycleStages, input.requiredLifecycleStages)) {
|
|
20133
|
+
issues.push(`Missing phone call-control lifecycle stage: ${stage}.`);
|
|
20134
|
+
}
|
|
20135
|
+
}
|
|
20136
|
+
if (input.minPassingSmokeReports !== undefined && passingSmokeReports < input.minPassingSmokeReports) {
|
|
20137
|
+
issues.push(`Expected at least ${String(input.minPassingSmokeReports)} passing phone call-control smoke report(s), found ${String(passingSmokeReports)}.`);
|
|
20138
|
+
}
|
|
20139
|
+
if (input.maxFailedSmokeReports !== undefined && failedSmokeReports > input.maxFailedSmokeReports) {
|
|
20140
|
+
issues.push(`Expected at most ${String(input.maxFailedSmokeReports)} failing phone call-control smoke report(s), found ${String(failedSmokeReports)}.`);
|
|
20141
|
+
}
|
|
20142
|
+
for (const provider of findMissing3(providers, input.requiredProviders)) {
|
|
20143
|
+
issues.push(`Missing phone call-control provider: ${provider}.`);
|
|
20144
|
+
}
|
|
20145
|
+
for (const outcome of findMissing3(outcomes, input.requiredOutcomes)) {
|
|
20146
|
+
issues.push(`Missing phone call-control outcome: ${outcome}.`);
|
|
20147
|
+
}
|
|
20148
|
+
return {
|
|
20149
|
+
failedSmokeReports,
|
|
20150
|
+
issues,
|
|
20151
|
+
lifecycleStages,
|
|
20152
|
+
ok: issues.length === 0,
|
|
20153
|
+
outcomes,
|
|
20154
|
+
passingSmokeReports,
|
|
20155
|
+
providers,
|
|
20156
|
+
smokeReports: productionSmokes.length
|
|
20157
|
+
};
|
|
20158
|
+
};
|
|
20159
|
+
var assertVoicePhoneCallControlEvidence = (input = {}) => {
|
|
20160
|
+
const assertion = evaluateVoicePhoneCallControlEvidence(input);
|
|
20161
|
+
if (!assertion.ok) {
|
|
20162
|
+
throw new Error(`Voice phone call-control evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
20163
|
+
}
|
|
20164
|
+
return assertion;
|
|
20165
|
+
};
|
|
20116
20166
|
var buildVoicePhoneAgentSetupInstructions = (input) => input.carriers.map((carrier) => {
|
|
20117
20167
|
const entry = findCarrierMatrixEntry(input.matrix, carrier);
|
|
20118
20168
|
const urls = entry?.setup.urls;
|
|
@@ -31380,6 +31430,7 @@ export {
|
|
|
31380
31430
|
evaluateVoiceProofTrendEvidence,
|
|
31381
31431
|
evaluateVoiceProductionReadinessEvidence,
|
|
31382
31432
|
evaluateVoicePlatformCoverage,
|
|
31433
|
+
evaluateVoicePhoneCallControlEvidence,
|
|
31383
31434
|
evaluateVoicePhoneAssistantEvidence,
|
|
31384
31435
|
evaluateVoiceOutcomeContractEvidence,
|
|
31385
31436
|
evaluateVoiceOperationsRecordGuardrails,
|
|
@@ -31713,6 +31764,7 @@ export {
|
|
|
31713
31764
|
assertVoiceProofTrendEvidence,
|
|
31714
31765
|
assertVoiceProductionReadinessEvidence,
|
|
31715
31766
|
assertVoicePlatformCoverage,
|
|
31767
|
+
assertVoicePhoneCallControlEvidence,
|
|
31716
31768
|
assertVoicePhoneAssistantEvidence,
|
|
31717
31769
|
assertVoiceOutcomeContractEvidence,
|
|
31718
31770
|
assertVoiceOperationsRecordGuardrails,
|
package/dist/phoneAgent.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { type VoiceTelephonyCarrierMatrix, type VoiceTelephonyCarrierMatrixRoute
|
|
|
6
6
|
import { type VoicePhoneAgentProductionSmokeRoutesOptions } from './phoneAgentProductionSmoke';
|
|
7
7
|
import { type VoiceCampaignDialerProofAssertionReport, type VoiceCampaignDialerProofProvider, type VoiceCampaignDialerProofReport } from './campaignDialers';
|
|
8
8
|
import type { VoiceTelephonyProvider } from './telephony/contract';
|
|
9
|
+
import type { VoicePhoneAgentProductionSmokeReport } from './phoneAgentProductionSmoke';
|
|
9
10
|
import type { VoiceSessionRecord } from './types';
|
|
10
11
|
export type VoicePhoneAgentLifecycleStage = 'ringing' | 'answered' | 'media-started' | 'transcript' | 'assistant-response' | 'transfer' | 'voicemail' | 'no-answer' | 'completed' | 'failed';
|
|
11
12
|
type VoicePhoneAgentCarrierBase = {
|
|
@@ -110,7 +111,29 @@ export type VoicePhoneAssistantEvidenceReport = {
|
|
|
110
111
|
setupPath?: string;
|
|
111
112
|
smokePassing: number;
|
|
112
113
|
};
|
|
114
|
+
export type VoicePhoneCallControlEvidenceInput = {
|
|
115
|
+
maxFailedSmokeReports?: number;
|
|
116
|
+
minPassingSmokeReports?: number;
|
|
117
|
+
productionSmokes?: VoicePhoneAgentProductionSmokeReport[];
|
|
118
|
+
requiredLifecycleStages?: VoicePhoneAgentLifecycleStage[];
|
|
119
|
+
requiredOutcomes?: string[];
|
|
120
|
+
requiredProviders?: VoiceTelephonyProvider[];
|
|
121
|
+
requireSetupLifecycleStages?: boolean;
|
|
122
|
+
setup?: VoicePhoneAgentSetupReport;
|
|
123
|
+
};
|
|
124
|
+
export type VoicePhoneCallControlEvidenceReport = {
|
|
125
|
+
failedSmokeReports: number;
|
|
126
|
+
issues: string[];
|
|
127
|
+
lifecycleStages: VoicePhoneAgentLifecycleStage[];
|
|
128
|
+
ok: boolean;
|
|
129
|
+
outcomes: string[];
|
|
130
|
+
passingSmokeReports: number;
|
|
131
|
+
providers: VoiceTelephonyProvider[];
|
|
132
|
+
smokeReports: number;
|
|
133
|
+
};
|
|
113
134
|
export declare const evaluateVoicePhoneAssistantEvidence: (report: VoicePhoneAgentSetupReport, input?: VoicePhoneAssistantEvidenceInput) => VoicePhoneAssistantEvidenceReport;
|
|
114
135
|
export declare const assertVoicePhoneAssistantEvidence: (report: VoicePhoneAgentSetupReport, input?: VoicePhoneAssistantEvidenceInput) => VoicePhoneAssistantEvidenceReport;
|
|
136
|
+
export declare const evaluateVoicePhoneCallControlEvidence: (input?: VoicePhoneCallControlEvidenceInput) => VoicePhoneCallControlEvidenceReport;
|
|
137
|
+
export declare const assertVoicePhoneCallControlEvidence: (input?: VoicePhoneCallControlEvidenceInput) => VoicePhoneCallControlEvidenceReport;
|
|
115
138
|
export declare const createVoicePhoneAgent: <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(options: VoicePhoneAgentRoutesOptions<TContext, TSession, TResult>) => VoicePhoneAgentRoutes;
|
|
116
139
|
export {};
|