@absolutejs/voice 0.0.22-beta.511 → 0.0.22-beta.513
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/agentPerformanceReport.d.ts +40 -0
- package/dist/aiScorecard.d.ts +32 -0
- package/dist/angular/index.js +13 -0
- package/dist/bookingFlow.d.ts +43 -0
- package/dist/calendarAdapter.d.ts +47 -0
- package/dist/calendarSlots.d.ts +35 -0
- package/dist/callScorecard.d.ts +53 -0
- package/dist/client/index.js +13 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +1002 -0
- package/dist/noShowPredictor.d.ts +46 -0
- package/dist/qualityDriftDetector.d.ts +44 -0
- package/dist/react/index.js +13 -0
- package/dist/reminderScheduler.d.ts +43 -0
- package/dist/scorecardCalibration.d.ts +31 -0
- package/dist/svelte/index.js +13 -0
- package/dist/testing/index.js +13 -0
- package/dist/vue/VoiceCostDashboard.d.ts +1 -1
- package/dist/vue/index.js +13 -0
- package/package.json +1 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export type VoiceNoShowHistoricalRecord = {
|
|
2
|
+
appointmentId: string;
|
|
3
|
+
scheduledStartMs: number;
|
|
4
|
+
outcome: "kept" | "no-show" | "cancelled" | "rescheduled";
|
|
5
|
+
};
|
|
6
|
+
export type VoiceNoShowSignal = {
|
|
7
|
+
kind: "lead-time-hours";
|
|
8
|
+
value: number;
|
|
9
|
+
} | {
|
|
10
|
+
kind: "weekday";
|
|
11
|
+
value: number;
|
|
12
|
+
} | {
|
|
13
|
+
kind: "hour-of-day";
|
|
14
|
+
value: number;
|
|
15
|
+
} | {
|
|
16
|
+
kind: "prior-no-show-count";
|
|
17
|
+
value: number;
|
|
18
|
+
} | {
|
|
19
|
+
kind: "prior-kept-count";
|
|
20
|
+
value: number;
|
|
21
|
+
} | {
|
|
22
|
+
kind: "reminder-confirmed";
|
|
23
|
+
value: boolean;
|
|
24
|
+
} | {
|
|
25
|
+
kind: "callback-distance-hours";
|
|
26
|
+
value: number;
|
|
27
|
+
} | {
|
|
28
|
+
kind: "weather-disruption";
|
|
29
|
+
value: boolean;
|
|
30
|
+
};
|
|
31
|
+
export type VoiceNoShowScoreInput = {
|
|
32
|
+
appointmentStartMs: number;
|
|
33
|
+
bookedAtMs: number;
|
|
34
|
+
history?: VoiceNoShowHistoricalRecord[];
|
|
35
|
+
reminderConfirmed?: boolean;
|
|
36
|
+
weatherDisruption?: boolean;
|
|
37
|
+
callbackDistanceHours?: number;
|
|
38
|
+
now?: () => number;
|
|
39
|
+
};
|
|
40
|
+
export type VoiceNoShowVerdict = {
|
|
41
|
+
score: number;
|
|
42
|
+
band: "low" | "moderate" | "high";
|
|
43
|
+
drivers: VoiceNoShowSignal[];
|
|
44
|
+
};
|
|
45
|
+
export declare const scoreVoiceNoShowRisk: (input: VoiceNoShowScoreInput) => VoiceNoShowVerdict;
|
|
46
|
+
export declare const summarizeVoiceNoShowVerdict: (verdict: VoiceNoShowVerdict) => string;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { VoiceScorecard } from "./callScorecard";
|
|
2
|
+
export type VoiceQualityDriftSeverity = "ok" | "watch" | "regression";
|
|
3
|
+
export type VoiceQualityDriftCriterionAlert = {
|
|
4
|
+
criterionId: string;
|
|
5
|
+
baselineAverage: number;
|
|
6
|
+
currentAverage: number;
|
|
7
|
+
delta: number;
|
|
8
|
+
severity: VoiceQualityDriftSeverity;
|
|
9
|
+
};
|
|
10
|
+
export type VoiceQualityDriftReport = {
|
|
11
|
+
rubricId: string;
|
|
12
|
+
scope: {
|
|
13
|
+
from: number;
|
|
14
|
+
to: number;
|
|
15
|
+
};
|
|
16
|
+
baselineWindow: {
|
|
17
|
+
from: number;
|
|
18
|
+
to: number;
|
|
19
|
+
sampleSize: number;
|
|
20
|
+
};
|
|
21
|
+
currentWindow: {
|
|
22
|
+
from: number;
|
|
23
|
+
to: number;
|
|
24
|
+
sampleSize: number;
|
|
25
|
+
};
|
|
26
|
+
overall: {
|
|
27
|
+
baselineAverage: number;
|
|
28
|
+
currentAverage: number;
|
|
29
|
+
delta: number;
|
|
30
|
+
severity: VoiceQualityDriftSeverity;
|
|
31
|
+
};
|
|
32
|
+
criteria: VoiceQualityDriftCriterionAlert[];
|
|
33
|
+
alertCount: number;
|
|
34
|
+
};
|
|
35
|
+
export type DetectVoiceQualityDriftInput = {
|
|
36
|
+
rubricId: string;
|
|
37
|
+
scorecards: VoiceScorecard[];
|
|
38
|
+
baselineWindowMs?: number;
|
|
39
|
+
currentWindowMs?: number;
|
|
40
|
+
now?: () => number;
|
|
41
|
+
watchThreshold?: number;
|
|
42
|
+
regressionThreshold?: number;
|
|
43
|
+
};
|
|
44
|
+
export declare const detectVoiceQualityDrift: (input: DetectVoiceQualityDriftInput) => VoiceQualityDriftReport;
|
package/dist/react/index.js
CHANGED
|
@@ -10,6 +10,19 @@ var __name = (target, name) => {
|
|
|
10
10
|
});
|
|
11
11
|
return target;
|
|
12
12
|
};
|
|
13
|
+
var __returnValue = (v) => v;
|
|
14
|
+
function __exportSetter(name, newValue) {
|
|
15
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
16
|
+
}
|
|
17
|
+
var __export = (target, all) => {
|
|
18
|
+
for (var name in all)
|
|
19
|
+
__defProp(target, name, {
|
|
20
|
+
get: all[name],
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
set: __exportSetter.bind(all, name)
|
|
24
|
+
});
|
|
25
|
+
};
|
|
13
26
|
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
14
27
|
var __typeError = (msg) => {
|
|
15
28
|
throw TypeError(msg);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export type VoiceReminderChannel = "call" | "sms" | "email";
|
|
2
|
+
export type VoiceReminderTrigger = {
|
|
3
|
+
id: string;
|
|
4
|
+
channel: VoiceReminderChannel;
|
|
5
|
+
offsetMinutesBeforeStart: number;
|
|
6
|
+
templateId?: string;
|
|
7
|
+
retryOnFailure?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type VoiceReminderJob = {
|
|
10
|
+
id: string;
|
|
11
|
+
appointmentId: string;
|
|
12
|
+
triggerId: string;
|
|
13
|
+
channel: VoiceReminderChannel;
|
|
14
|
+
scheduledAtMs: number;
|
|
15
|
+
status: "pending" | "in-flight" | "sent" | "skipped" | "failed" | "cancelled";
|
|
16
|
+
attempts: number;
|
|
17
|
+
lastError?: string;
|
|
18
|
+
metadata?: Record<string, string>;
|
|
19
|
+
};
|
|
20
|
+
export type ScheduleVoiceRemindersInput = {
|
|
21
|
+
appointmentId: string;
|
|
22
|
+
appointmentStartMs: number;
|
|
23
|
+
triggers: VoiceReminderTrigger[];
|
|
24
|
+
metadata?: Record<string, string>;
|
|
25
|
+
};
|
|
26
|
+
export type CreateVoiceReminderSchedulerOptions = {
|
|
27
|
+
generateJobId?: () => string;
|
|
28
|
+
now?: () => number;
|
|
29
|
+
defaultTriggers?: VoiceReminderTrigger[];
|
|
30
|
+
maxAttempts?: number;
|
|
31
|
+
};
|
|
32
|
+
export declare const DEFAULT_VOICE_REMINDER_TRIGGERS: VoiceReminderTrigger[];
|
|
33
|
+
export declare const createVoiceReminderScheduler: (options?: CreateVoiceReminderSchedulerOptions) => {
|
|
34
|
+
cancelForAppointment: (appointmentId: string) => number;
|
|
35
|
+
due: (at?: number) => VoiceReminderJob[];
|
|
36
|
+
list: (appointmentId?: string) => VoiceReminderJob[];
|
|
37
|
+
markFailed: (jobId: string, error: string) => boolean;
|
|
38
|
+
markInFlight: (jobId: string) => boolean;
|
|
39
|
+
markSent: (jobId: string) => boolean;
|
|
40
|
+
schedule: (input: ScheduleVoiceRemindersInput) => VoiceReminderJob[];
|
|
41
|
+
subscribe(listener: (job: VoiceReminderJob) => void): () => void;
|
|
42
|
+
};
|
|
43
|
+
export type VoiceReminderScheduler = ReturnType<typeof createVoiceReminderScheduler>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { VoiceScorecard } from "./callScorecard";
|
|
2
|
+
export type VoiceScorecardCalibrationPair = {
|
|
3
|
+
sessionId: string;
|
|
4
|
+
human: VoiceScorecard;
|
|
5
|
+
llm: VoiceScorecard;
|
|
6
|
+
};
|
|
7
|
+
export type VoiceScorecardCalibrationDivergence = {
|
|
8
|
+
sessionId: string;
|
|
9
|
+
criterionId: string;
|
|
10
|
+
humanScore: number;
|
|
11
|
+
llmScore: number;
|
|
12
|
+
normalizedGap: number;
|
|
13
|
+
};
|
|
14
|
+
export type VoiceScorecardCalibrationReport = {
|
|
15
|
+
pairsCompared: number;
|
|
16
|
+
meanAbsoluteError: number;
|
|
17
|
+
rootMeanSquareError: number;
|
|
18
|
+
weightedScoreCorrelation: number;
|
|
19
|
+
gradeAgreementRate: number;
|
|
20
|
+
perCriterion: {
|
|
21
|
+
criterionId: string;
|
|
22
|
+
meanAbsoluteError: number;
|
|
23
|
+
averageHumanScore: number;
|
|
24
|
+
averageLLMScore: number;
|
|
25
|
+
bias: number;
|
|
26
|
+
}[];
|
|
27
|
+
worstDivergences: VoiceScorecardCalibrationDivergence[];
|
|
28
|
+
};
|
|
29
|
+
export declare const computeVoiceScorecardCalibration: (pairs: VoiceScorecardCalibrationPair[], options?: {
|
|
30
|
+
topDivergences?: number;
|
|
31
|
+
}) => VoiceScorecardCalibrationReport;
|
package/dist/svelte/index.js
CHANGED
|
@@ -10,6 +10,19 @@ var __name = (target, name) => {
|
|
|
10
10
|
});
|
|
11
11
|
return target;
|
|
12
12
|
};
|
|
13
|
+
var __returnValue = (v) => v;
|
|
14
|
+
function __exportSetter(name, newValue) {
|
|
15
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
16
|
+
}
|
|
17
|
+
var __export = (target, all) => {
|
|
18
|
+
for (var name in all)
|
|
19
|
+
__defProp(target, name, {
|
|
20
|
+
get: all[name],
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
set: __exportSetter.bind(all, name)
|
|
24
|
+
});
|
|
25
|
+
};
|
|
13
26
|
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
14
27
|
var __typeError = (msg) => {
|
|
15
28
|
throw TypeError(msg);
|
package/dist/testing/index.js
CHANGED
|
@@ -10,6 +10,19 @@ var __name = (target, name) => {
|
|
|
10
10
|
});
|
|
11
11
|
return target;
|
|
12
12
|
};
|
|
13
|
+
var __returnValue = (v) => v;
|
|
14
|
+
function __exportSetter(name, newValue) {
|
|
15
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
16
|
+
}
|
|
17
|
+
var __export = (target, all) => {
|
|
18
|
+
for (var name in all)
|
|
19
|
+
__defProp(target, name, {
|
|
20
|
+
get: all[name],
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
set: __exportSetter.bind(all, name)
|
|
24
|
+
});
|
|
25
|
+
};
|
|
13
26
|
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
14
27
|
var __typeError = (msg) => {
|
|
15
28
|
throw TypeError(msg);
|
|
@@ -53,5 +53,5 @@ export declare const VoiceCostDashboard: import("vue").DefineComponent<import("v
|
|
|
53
53
|
title: string;
|
|
54
54
|
currency: string;
|
|
55
55
|
emptyMessage: string;
|
|
56
|
-
bucketBy: "day" | "
|
|
56
|
+
bucketBy: "day" | "month" | "hour" | undefined;
|
|
57
57
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
package/dist/vue/index.js
CHANGED
|
@@ -10,6 +10,19 @@ var __name = (target, name) => {
|
|
|
10
10
|
});
|
|
11
11
|
return target;
|
|
12
12
|
};
|
|
13
|
+
var __returnValue = (v) => v;
|
|
14
|
+
function __exportSetter(name, newValue) {
|
|
15
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
16
|
+
}
|
|
17
|
+
var __export = (target, all) => {
|
|
18
|
+
for (var name in all)
|
|
19
|
+
__defProp(target, name, {
|
|
20
|
+
get: all[name],
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
set: __exportSetter.bind(all, name)
|
|
24
|
+
});
|
|
25
|
+
};
|
|
13
26
|
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
14
27
|
var __typeError = (msg) => {
|
|
15
28
|
throw TypeError(msg);
|