@absolutejs/voice 0.0.22-beta.496 → 0.0.22-beta.498
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/assistant.d.ts +1 -2
- package/dist/callQuota.d.ts +54 -0
- package/dist/client/costDashboard.d.ts +27 -0
- package/dist/client/liveCallViewer.d.ts +42 -0
- package/dist/client/replayTimeline.d.ts +26 -0
- package/dist/defineVoiceAssistant.d.ts +68 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +605 -37
- package/dist/recordingRedaction.d.ts +18 -0
- package/dist/retention.d.ts +37 -0
- package/dist/routeAuth.d.ts +58 -0
- package/dist/testing/index.js +1 -0
- package/dist/types.d.ts +14 -0
- package/package.json +1 -1
package/dist/assistant.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ export type VoiceAssistantExperimentOptions<TContext = unknown, TSession extends
|
|
|
59
59
|
}) => VoiceAssistantVariant<TContext, TSession, TResult> | string | void;
|
|
60
60
|
variants: Array<VoiceAssistantVariant<TContext, TSession, TResult>>;
|
|
61
61
|
};
|
|
62
|
-
type VoiceAssistantAgentSource<TContext, TSession extends VoiceSessionRecord, TResult> = {
|
|
62
|
+
export type VoiceAssistantAgentSource<TContext, TSession extends VoiceSessionRecord, TResult> = {
|
|
63
63
|
agent: VoiceAgent<TContext, TSession, TResult>;
|
|
64
64
|
agents?: never;
|
|
65
65
|
defaultAgentId?: never;
|
|
@@ -140,4 +140,3 @@ export declare const summarizeVoiceAssistantRuns: (input: StoredVoiceTraceEvent[
|
|
|
140
140
|
events?: StoredVoiceTraceEvent[];
|
|
141
141
|
store?: VoiceTraceEventStore;
|
|
142
142
|
}) => Promise<VoiceAssistantRunsSummary>;
|
|
143
|
-
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export type VoiceCallQuotaTier = {
|
|
2
|
+
burstAllowance?: number;
|
|
3
|
+
customerId: string;
|
|
4
|
+
monthlyMinutes?: number;
|
|
5
|
+
reservedConcurrent: number;
|
|
6
|
+
};
|
|
7
|
+
export type VoiceCallReservation = {
|
|
8
|
+
callId: string;
|
|
9
|
+
customerId: string;
|
|
10
|
+
release: () => Promise<void> | void;
|
|
11
|
+
reservedAt: number;
|
|
12
|
+
};
|
|
13
|
+
export type VoiceCallQuotaRejection = {
|
|
14
|
+
customerId: string;
|
|
15
|
+
reason: "concurrency-exceeded" | "customer-not-found" | "monthly-minutes-exceeded";
|
|
16
|
+
retryAfterMs?: number;
|
|
17
|
+
};
|
|
18
|
+
export type VoiceCallQuotaResult = {
|
|
19
|
+
ok: false;
|
|
20
|
+
rejection: VoiceCallQuotaRejection;
|
|
21
|
+
} | {
|
|
22
|
+
ok: true;
|
|
23
|
+
reservation: VoiceCallReservation;
|
|
24
|
+
};
|
|
25
|
+
export type VoiceCallQuota = {
|
|
26
|
+
describe: (customerId: string) => Promise<undefined | {
|
|
27
|
+
activeCalls: number;
|
|
28
|
+
burstAllowance: number;
|
|
29
|
+
monthlyMinutesUsed: number;
|
|
30
|
+
reservedConcurrent: number;
|
|
31
|
+
tier: VoiceCallQuotaTier;
|
|
32
|
+
}> | (undefined | {
|
|
33
|
+
activeCalls: number;
|
|
34
|
+
burstAllowance: number;
|
|
35
|
+
monthlyMinutesUsed: number;
|
|
36
|
+
reservedConcurrent: number;
|
|
37
|
+
tier: VoiceCallQuotaTier;
|
|
38
|
+
});
|
|
39
|
+
recordMinutes: (input: {
|
|
40
|
+
callId?: string;
|
|
41
|
+
customerId: string;
|
|
42
|
+
minutes: number;
|
|
43
|
+
}) => Promise<void> | void;
|
|
44
|
+
reserve: (input: {
|
|
45
|
+
callId: string;
|
|
46
|
+
customerId: string;
|
|
47
|
+
}) => Promise<VoiceCallQuotaResult> | VoiceCallQuotaResult;
|
|
48
|
+
};
|
|
49
|
+
export type CreateInMemoryVoiceCallQuotaOptions = {
|
|
50
|
+
/** When provided, treat any customer not in the map as denied with 'customer-not-found'. */
|
|
51
|
+
strict?: boolean;
|
|
52
|
+
tiers: VoiceCallQuotaTier[];
|
|
53
|
+
};
|
|
54
|
+
export declare const createInMemoryVoiceCallQuota: (options: CreateInMemoryVoiceCallQuotaOptions) => VoiceCallQuota;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { StoredVoiceTraceEvent } from "../trace";
|
|
2
|
+
export type VoiceCostDashboardBucket = {
|
|
3
|
+
bucketKey: string;
|
|
4
|
+
callCount: number;
|
|
5
|
+
llmUsd: number;
|
|
6
|
+
sttUsd: number;
|
|
7
|
+
telephonyMinutes: number;
|
|
8
|
+
telephonyUsd: number;
|
|
9
|
+
totalUsd: number;
|
|
10
|
+
ttsUsd: number;
|
|
11
|
+
};
|
|
12
|
+
export type VoiceCostDashboardReport = {
|
|
13
|
+
buckets: VoiceCostDashboardBucket[];
|
|
14
|
+
generatedAt: number;
|
|
15
|
+
grandTotal: VoiceCostDashboardBucket;
|
|
16
|
+
windowEndMs: number;
|
|
17
|
+
windowStartMs: number;
|
|
18
|
+
};
|
|
19
|
+
export type VoiceCostDashboardOptions = {
|
|
20
|
+
bucketBy?: "day" | "hour" | "month";
|
|
21
|
+
events: ReadonlyArray<StoredVoiceTraceEvent>;
|
|
22
|
+
/** Inclusive bucket start filter, epoch ms. */
|
|
23
|
+
fromMs?: number;
|
|
24
|
+
/** Inclusive bucket end filter, epoch ms. */
|
|
25
|
+
toMs?: number;
|
|
26
|
+
};
|
|
27
|
+
export declare const buildVoiceCostDashboardReport: (options: VoiceCostDashboardOptions) => VoiceCostDashboardReport;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { VoiceAgentUIState } from "../agentState";
|
|
2
|
+
export type LiveCallEventKind = "agent_audio" | "agent_text" | "lifecycle" | "transcript" | "tool";
|
|
3
|
+
export type LiveCallTimelineEvent = {
|
|
4
|
+
at: number;
|
|
5
|
+
detail?: string;
|
|
6
|
+
kind: LiveCallEventKind;
|
|
7
|
+
title: string;
|
|
8
|
+
};
|
|
9
|
+
export type LiveCallViewState = {
|
|
10
|
+
agentState: VoiceAgentUIState;
|
|
11
|
+
callDurationMs: number;
|
|
12
|
+
events: LiveCallTimelineEvent[];
|
|
13
|
+
isConnected: boolean;
|
|
14
|
+
isLiveListening: boolean;
|
|
15
|
+
lastAssistantAt?: number;
|
|
16
|
+
lastTranscriptAt?: number;
|
|
17
|
+
partialTranscript: string;
|
|
18
|
+
sessionId: string;
|
|
19
|
+
};
|
|
20
|
+
export type CreateLiveCallViewerOptions = {
|
|
21
|
+
bufferLimit?: number;
|
|
22
|
+
sessionId: string;
|
|
23
|
+
startedAt?: number;
|
|
24
|
+
};
|
|
25
|
+
export type LiveCallViewer = {
|
|
26
|
+
applyControl: (control: {
|
|
27
|
+
reason?: string;
|
|
28
|
+
type: string;
|
|
29
|
+
}) => void;
|
|
30
|
+
applyEvent: (event: LiveCallTimelineEvent) => void;
|
|
31
|
+
applyMonitorEvent: (event: {
|
|
32
|
+
payload: Record<string, unknown>;
|
|
33
|
+
type: string;
|
|
34
|
+
}) => void;
|
|
35
|
+
getState: () => LiveCallViewState;
|
|
36
|
+
noteAgentAudio: (at?: number) => void;
|
|
37
|
+
notePartial: (text: string, at?: number) => void;
|
|
38
|
+
noteTranscript: (text: string, at?: number) => void;
|
|
39
|
+
reset: (sessionId: string, startedAt?: number) => void;
|
|
40
|
+
subscribe: (subscriber: () => void) => () => void;
|
|
41
|
+
};
|
|
42
|
+
export declare const createLiveCallViewer: (options: CreateLiveCallViewerOptions) => LiveCallViewer;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { VoiceCallReviewArtifact } from "../testing/review";
|
|
2
|
+
export type ReplayTimelineEvent = {
|
|
3
|
+
at: number;
|
|
4
|
+
category: "agent" | "lifecycle" | "tool" | "user";
|
|
5
|
+
detail?: string;
|
|
6
|
+
durationMs?: number;
|
|
7
|
+
label: string;
|
|
8
|
+
};
|
|
9
|
+
export type ReplayTimelineReport = {
|
|
10
|
+
duration: number;
|
|
11
|
+
events: ReplayTimelineEvent[];
|
|
12
|
+
metadata: {
|
|
13
|
+
artifactId: string;
|
|
14
|
+
title: string;
|
|
15
|
+
};
|
|
16
|
+
startedAt: number;
|
|
17
|
+
summary: {
|
|
18
|
+
agentTurns: number;
|
|
19
|
+
toolCalls: number;
|
|
20
|
+
userTurns: number;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export type ReplayTimelineInput = {
|
|
24
|
+
artifact: VoiceCallReviewArtifact;
|
|
25
|
+
};
|
|
26
|
+
export declare const buildReplayTimelineReport: (input: ReplayTimelineInput) => ReplayTimelineReport;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type VoiceAssistant, type VoiceAssistantAgentSource, type VoiceAssistantGuardrails, type VoiceAssistantMemoryLifecycle } from "./assistant";
|
|
2
|
+
import type { AudioFormat, CreateVoiceSessionOptions, RealtimeAdapter, STTAdapter, TTSAdapter, VoiceLanguageStrategy, VoiceLexiconEntry, VoicePhraseHint, VoiceReconnectConfig, VoiceResolvedSTTFallbackConfig, VoiceResolvedAudioConditioningConfig, VoiceRouteConfig, VoiceSessionRecord, VoiceSessionRecordingConfig, VoiceSessionStore, VoiceSocket, VoiceSTTLifecycle, VoiceTTSProsody, VoiceTurnDetectionConfig } from "./types";
|
|
3
|
+
import type { VoiceAssistantMemoryOptions } from "./assistantMemory";
|
|
4
|
+
import type { VoiceAgentTool } from "./agent";
|
|
5
|
+
import type { VoiceAMDDetector } from "./amdDetector";
|
|
6
|
+
import type { VoiceCostAccountant } from "./costAccounting";
|
|
7
|
+
import type { VoiceTraceEventStore } from "./trace";
|
|
8
|
+
import type { VoiceTranscriptRedactor } from "./redaction";
|
|
9
|
+
import type { VoiceSemanticTurnDetector } from "./semanticTurn";
|
|
10
|
+
import type { VoiceAssistantMode } from "./assistantMode";
|
|
11
|
+
import type { VoiceRuntimeOpsConfig } from "./types";
|
|
12
|
+
export type VoiceAssistantVoiceConfig = {
|
|
13
|
+
prosody?: VoiceTTSProsody;
|
|
14
|
+
realtime?: RealtimeAdapter;
|
|
15
|
+
realtimeInputFormat?: AudioFormat;
|
|
16
|
+
stt?: STTAdapter;
|
|
17
|
+
sttFallback?: VoiceResolvedSTTFallbackConfig;
|
|
18
|
+
tts?: TTSAdapter;
|
|
19
|
+
};
|
|
20
|
+
export type VoiceAssistantObservabilityConfig = {
|
|
21
|
+
costAccountant?: VoiceCostAccountant;
|
|
22
|
+
costTelephony?: {
|
|
23
|
+
provider?: string;
|
|
24
|
+
};
|
|
25
|
+
recording?: VoiceSessionRecordingConfig;
|
|
26
|
+
trace?: VoiceTraceEventStore;
|
|
27
|
+
};
|
|
28
|
+
export type VoiceAssistantDefinition<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
|
|
29
|
+
agent: VoiceAssistantAgentSource<TContext, TSession, TResult>;
|
|
30
|
+
amd?: VoiceAMDDetector<TContext, TSession, TResult>;
|
|
31
|
+
assistantMode?: VoiceAssistantMode;
|
|
32
|
+
audioConditioning?: VoiceResolvedAudioConditioningConfig;
|
|
33
|
+
callSilenceTimeoutMs?: number;
|
|
34
|
+
guardrails?: VoiceAssistantGuardrails<TContext, TSession, TResult>;
|
|
35
|
+
id: string;
|
|
36
|
+
languageStrategy?: VoiceLanguageStrategy;
|
|
37
|
+
lexicon?: VoiceLexiconEntry[];
|
|
38
|
+
memory?: VoiceAssistantMemoryOptions<TContext, TSession>;
|
|
39
|
+
memoryLifecycle?: VoiceAssistantMemoryLifecycle<TContext, TSession, TResult>;
|
|
40
|
+
metadata?: Record<string, unknown>;
|
|
41
|
+
modalities?: ReadonlyArray<"audio" | "text">;
|
|
42
|
+
ops?: VoiceRuntimeOpsConfig<TContext, TSession, TResult>;
|
|
43
|
+
observability?: VoiceAssistantObservabilityConfig;
|
|
44
|
+
phraseHints?: VoicePhraseHint[];
|
|
45
|
+
redact?: VoiceTranscriptRedactor;
|
|
46
|
+
route?: Partial<VoiceRouteConfig<TContext, TSession, TResult>>;
|
|
47
|
+
semanticTurnDetector?: VoiceSemanticTurnDetector;
|
|
48
|
+
tools?: ReadonlyArray<VoiceAgentTool<TContext, TSession, Record<string, unknown>, unknown, TResult>>;
|
|
49
|
+
turnDetection?: VoiceTurnDetectionConfig;
|
|
50
|
+
voice: VoiceAssistantVoiceConfig;
|
|
51
|
+
};
|
|
52
|
+
export type VoiceAssistantSessionInput<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord> = {
|
|
53
|
+
context: TContext;
|
|
54
|
+
id: string;
|
|
55
|
+
reconnect?: Partial<VoiceReconnectConfig>;
|
|
56
|
+
scenarioId?: string;
|
|
57
|
+
sessionMetadata?: Record<string, unknown>;
|
|
58
|
+
socket: VoiceSocket;
|
|
59
|
+
sttLifecycle?: VoiceSTTLifecycle;
|
|
60
|
+
store: VoiceSessionStore<TSession>;
|
|
61
|
+
};
|
|
62
|
+
export type DefinedVoiceAssistant<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
|
|
63
|
+
assistant: VoiceAssistant<TContext, TSession, TResult>;
|
|
64
|
+
definition: VoiceAssistantDefinition<TContext, TSession, TResult>;
|
|
65
|
+
id: string;
|
|
66
|
+
toSessionOptions: (input: VoiceAssistantSessionInput<TContext, TSession>) => CreateVoiceSessionOptions<TContext, TSession, TResult>;
|
|
67
|
+
};
|
|
68
|
+
export declare const defineVoiceAssistant: <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(definition: VoiceAssistantDefinition<TContext, TSession, TResult>) => DefinedVoiceAssistant<TContext, TSession, TResult>;
|
package/dist/index.d.ts
CHANGED
|
@@ -75,6 +75,8 @@ export { createVoiceAIJudgeCompletion, createVoiceLLMJudge, } from "./llmJudge";
|
|
|
75
75
|
export type { CreateVoiceAIJudgeCompletionOptions, CreateVoiceLLMJudgeOptions, VoiceLLMJudge, VoiceLLMJudgeCompletion, VoiceLLMJudgeCriterionVerdict, VoiceLLMJudgeInput, VoiceLLMJudgeRubric, VoiceLLMJudgeRubricCriterion, VoiceLLMJudgeVerdict, } from "./llmJudge";
|
|
76
76
|
export { DEFAULT_VOICE_REDACTION_PATTERNS, createVoiceTranscriptRedactor, redactVoiceTranscript, } from "./redaction";
|
|
77
77
|
export type { CreateVoiceTranscriptRedactorOptions, VoiceRedactionPattern, VoiceTranscriptRedactor, } from "./redaction";
|
|
78
|
+
export { deriveVoiceRecordingRedactionRanges } from "./recordingRedaction";
|
|
79
|
+
export type { DeriveVoiceRecordingRedactionRangesInput, VoiceRecordingRedactionRange, } from "./recordingRedaction";
|
|
78
80
|
export { DEFAULT_VOICE_PRICE_BOOK, createVoiceCostAccountant, } from "./costAccounting";
|
|
79
81
|
export type { CreateVoiceCostAccountantOptions, VoiceCostAccountant, VoiceCostBreakdown, VoiceCostLLMRecord, VoiceCostSTTRecord, VoiceCostTTSRecord, VoiceCostTelephonyRecord, VoicePriceBook, VoiceProviderRates, } from "./costAccounting";
|
|
80
82
|
export { describeVoiceAssistantMode, resolveVoiceAssistantMode, } from "./assistantMode";
|
|
@@ -102,6 +104,20 @@ export type { MonologueAMDDetectorOptions, VoiceAMDDetector, VoiceAMDDetectorInp
|
|
|
102
104
|
export { createVoiceRAGTool, extractVoiceRAGCitations } from "./ragTool";
|
|
103
105
|
export type { VoiceRAGCitationSummary, VoiceRAGCollectionLike, VoiceRAGQueryResult, VoiceRAGSearchInput, VoiceRAGToolArgs, VoiceRAGToolOptions, VoiceRAGToolResult, } from "./ragTool";
|
|
104
106
|
export { createVoiceApiRequestTool, createVoiceDTMFTool, createVoiceEndCallTool, createVoiceTransferCallTool, createVoiceVoicemailDetectionTool, } from "./agentTools";
|
|
107
|
+
export { defineVoiceAssistant } from "./defineVoiceAssistant";
|
|
108
|
+
export type { DefinedVoiceAssistant, VoiceAssistantDefinition, VoiceAssistantObservabilityConfig, VoiceAssistantSessionInput, VoiceAssistantVoiceConfig, } from "./defineVoiceAssistant";
|
|
109
|
+
export { createInMemoryVoiceCallQuota } from "./callQuota";
|
|
110
|
+
export type { CreateInMemoryVoiceCallQuotaOptions, VoiceCallQuota, VoiceCallQuotaRejection, VoiceCallQuotaResult, VoiceCallQuotaTier, VoiceCallReservation, } from "./callQuota";
|
|
111
|
+
export { createVoiceBearerAuthVerifier, createVoiceHMACAuthVerifier, createVoiceRouteAuth, } from "./routeAuth";
|
|
112
|
+
export type { VoiceRouteAuthDecision, VoiceRouteAuthInput, VoiceRouteAuthOptions, VoiceRouteAuthVerifier, } from "./routeAuth";
|
|
113
|
+
export { buildVoiceCostDashboardReport } from "./client/costDashboard";
|
|
114
|
+
export type { VoiceCostDashboardBucket, VoiceCostDashboardOptions, VoiceCostDashboardReport, } from "./client/costDashboard";
|
|
115
|
+
export { createLiveCallViewer } from "./client/liveCallViewer";
|
|
116
|
+
export type { CreateLiveCallViewerOptions, LiveCallEventKind, LiveCallTimelineEvent, LiveCallViewState, LiveCallViewer, } from "./client/liveCallViewer";
|
|
117
|
+
export { buildReplayTimelineReport } from "./client/replayTimeline";
|
|
118
|
+
export type { ReplayTimelineEvent, ReplayTimelineInput, ReplayTimelineReport, } from "./client/replayTimeline";
|
|
119
|
+
export { createVoiceRetentionScheduler, purgeVoiceRetentionStore, } from "./retention";
|
|
120
|
+
export type { CreateVoiceRetentionSchedulerOptions, VoicePurgeReport, VoiceRetentionPolicyOptions, VoiceRetentionScheduler, VoiceRetentionStore, } from "./retention";
|
|
105
121
|
export { fromVapiAssistantConfig } from "./vapiAdapter";
|
|
106
122
|
export type { VapiAssistantConfig, VapiAssistantConfigModel, VapiAssistantConfigTool, VapiAssistantConfigTranscriber, VapiAssistantConfigTransferDestination, VapiAssistantConfigVoice, VapiAssistantMessage, VoiceFromVapiAssistantOptions, VoiceFromVapiAssistantResult, VoiceFromVapiCustomToolFactory, VoiceFromVapiCustomToolInput, VoiceFromVapiDTMFFactory, VoiceFromVapiKnowledgeBase, VoiceFromVapiModelFactory, VoiceFromVapiModelFactoryInput, VoiceFromVapiRouteHints, VoiceFromVapiUnsupportedReason, } from "./vapiAdapter";
|
|
107
123
|
export type { VoiceApiRequestToolArgs, VoiceApiRequestToolFetch, VoiceApiRequestToolHttpMethod, VoiceApiRequestToolOptions, VoiceApiRequestToolResult, VoiceDTMFToolArgs, VoiceDTMFToolOptions, VoiceDTMFToolResult, VoiceEndCallToolArgs, VoiceEndCallToolOptions, VoiceEndCallToolResult, VoiceTransferCallToolArgs, VoiceTransferCallToolDestination, VoiceTransferCallToolOptions, VoiceTransferCallToolResult, VoiceVoicemailDetectionToolArgs, VoiceVoicemailDetectionToolOptions, VoiceVoicemailDetectionToolResult, } from "./agentTools";
|