@skillhq/concierge 1.5.0
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/README.md +91 -0
- package/dist/cli/program.d.ts +3 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +46 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/shared.d.ts +18 -0
- package/dist/cli/shared.d.ts.map +1 -0
- package/dist/cli/shared.js +2 -0
- package/dist/cli/shared.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/call.d.ts +7 -0
- package/dist/commands/call.d.ts.map +1 -0
- package/dist/commands/call.js +409 -0
- package/dist/commands/call.js.map +1 -0
- package/dist/commands/config.d.ts +4 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +120 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/find-contact.d.ts +4 -0
- package/dist/commands/find-contact.d.ts.map +1 -0
- package/dist/commands/find-contact.js +57 -0
- package/dist/commands/find-contact.js.map +1 -0
- package/dist/commands/server.d.ts +7 -0
- package/dist/commands/server.d.ts.map +1 -0
- package/dist/commands/server.js +212 -0
- package/dist/commands/server.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/call/audio/mulaw.d.ts +35 -0
- package/dist/lib/call/audio/mulaw.d.ts.map +1 -0
- package/dist/lib/call/audio/mulaw.js +109 -0
- package/dist/lib/call/audio/mulaw.js.map +1 -0
- package/dist/lib/call/audio/pcm-utils.d.ts +62 -0
- package/dist/lib/call/audio/pcm-utils.d.ts.map +1 -0
- package/dist/lib/call/audio/pcm-utils.js +149 -0
- package/dist/lib/call/audio/pcm-utils.js.map +1 -0
- package/dist/lib/call/audio/resample.d.ts +34 -0
- package/dist/lib/call/audio/resample.d.ts.map +1 -0
- package/dist/lib/call/audio/resample.js +97 -0
- package/dist/lib/call/audio/resample.js.map +1 -0
- package/dist/lib/call/audio/streaming-decoder.d.ts +45 -0
- package/dist/lib/call/audio/streaming-decoder.d.ts.map +1 -0
- package/dist/lib/call/audio/streaming-decoder.js +110 -0
- package/dist/lib/call/audio/streaming-decoder.js.map +1 -0
- package/dist/lib/call/call-server.d.ts +110 -0
- package/dist/lib/call/call-server.d.ts.map +1 -0
- package/dist/lib/call/call-server.js +681 -0
- package/dist/lib/call/call-server.js.map +1 -0
- package/dist/lib/call/call-session.d.ts +133 -0
- package/dist/lib/call/call-session.d.ts.map +1 -0
- package/dist/lib/call/call-session.js +890 -0
- package/dist/lib/call/call-session.js.map +1 -0
- package/dist/lib/call/call-types.d.ts +133 -0
- package/dist/lib/call/call-types.d.ts.map +1 -0
- package/dist/lib/call/call-types.js +16 -0
- package/dist/lib/call/call-types.js.map +1 -0
- package/dist/lib/call/conversation-ai.d.ts +56 -0
- package/dist/lib/call/conversation-ai.d.ts.map +1 -0
- package/dist/lib/call/conversation-ai.js +276 -0
- package/dist/lib/call/conversation-ai.js.map +1 -0
- package/dist/lib/call/eval/codec-test.d.ts +45 -0
- package/dist/lib/call/eval/codec-test.d.ts.map +1 -0
- package/dist/lib/call/eval/codec-test.js +169 -0
- package/dist/lib/call/eval/codec-test.js.map +1 -0
- package/dist/lib/call/eval/conversation-scripts.d.ts +55 -0
- package/dist/lib/call/eval/conversation-scripts.d.ts.map +1 -0
- package/dist/lib/call/eval/conversation-scripts.js +359 -0
- package/dist/lib/call/eval/conversation-scripts.js.map +1 -0
- package/dist/lib/call/eval/eval-runner.d.ts +64 -0
- package/dist/lib/call/eval/eval-runner.d.ts.map +1 -0
- package/dist/lib/call/eval/eval-runner.js +369 -0
- package/dist/lib/call/eval/eval-runner.js.map +1 -0
- package/dist/lib/call/eval/index.d.ts +9 -0
- package/dist/lib/call/eval/index.d.ts.map +1 -0
- package/dist/lib/call/eval/index.js +9 -0
- package/dist/lib/call/eval/index.js.map +1 -0
- package/dist/lib/call/eval/integration-test-suite.d.ts +71 -0
- package/dist/lib/call/eval/integration-test-suite.d.ts.map +1 -0
- package/dist/lib/call/eval/integration-test-suite.js +519 -0
- package/dist/lib/call/eval/integration-test-suite.js.map +1 -0
- package/dist/lib/call/eval/turn-taking-test.d.ts +84 -0
- package/dist/lib/call/eval/turn-taking-test.d.ts.map +1 -0
- package/dist/lib/call/eval/turn-taking-test.js +260 -0
- package/dist/lib/call/eval/turn-taking-test.js.map +1 -0
- package/dist/lib/call/index.d.ts +12 -0
- package/dist/lib/call/index.d.ts.map +1 -0
- package/dist/lib/call/index.js +17 -0
- package/dist/lib/call/index.js.map +1 -0
- package/dist/lib/call/providers/deepgram.d.ts +81 -0
- package/dist/lib/call/providers/deepgram.d.ts.map +1 -0
- package/dist/lib/call/providers/deepgram.js +279 -0
- package/dist/lib/call/providers/deepgram.js.map +1 -0
- package/dist/lib/call/providers/elevenlabs.d.ts +78 -0
- package/dist/lib/call/providers/elevenlabs.d.ts.map +1 -0
- package/dist/lib/call/providers/elevenlabs.js +272 -0
- package/dist/lib/call/providers/elevenlabs.js.map +1 -0
- package/dist/lib/call/providers/local-deps.d.ts +18 -0
- package/dist/lib/call/providers/local-deps.d.ts.map +1 -0
- package/dist/lib/call/providers/local-deps.js +114 -0
- package/dist/lib/call/providers/local-deps.js.map +1 -0
- package/dist/lib/call/providers/twilio.d.ts +53 -0
- package/dist/lib/call/providers/twilio.d.ts.map +1 -0
- package/dist/lib/call/providers/twilio.js +173 -0
- package/dist/lib/call/providers/twilio.js.map +1 -0
- package/dist/lib/concierge-client-types.d.ts +68 -0
- package/dist/lib/concierge-client-types.d.ts.map +1 -0
- package/dist/lib/concierge-client-types.js +2 -0
- package/dist/lib/concierge-client-types.js.map +1 -0
- package/dist/lib/concierge-client.d.ts +29 -0
- package/dist/lib/concierge-client.d.ts.map +1 -0
- package/dist/lib/concierge-client.js +534 -0
- package/dist/lib/concierge-client.js.map +1 -0
- package/dist/lib/config.d.ts +9 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +66 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/output.d.ts +7 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +114 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/utils/contact-extractor.d.ts +12 -0
- package/dist/lib/utils/contact-extractor.d.ts.map +1 -0
- package/dist/lib/utils/contact-extractor.js +159 -0
- package/dist/lib/utils/contact-extractor.js.map +1 -0
- package/dist/lib/utils/formatters.d.ts +15 -0
- package/dist/lib/utils/formatters.d.ts.map +1 -0
- package/dist/lib/utils/formatters.js +107 -0
- package/dist/lib/utils/formatters.js.map +1 -0
- package/dist/lib/utils/url-parser.d.ts +11 -0
- package/dist/lib/utils/url-parser.d.ts.map +1 -0
- package/dist/lib/utils/url-parser.js +103 -0
- package/dist/lib/utils/url-parser.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-session.js","sourceRoot":"","sources":["../../../src/lib/call/call-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for the voice call system
|
|
3
|
+
*/
|
|
4
|
+
export type CallStatus = 'initiating' | 'ringing' | 'in-progress' | 'completed' | 'failed' | 'busy' | 'no-answer' | 'canceled';
|
|
5
|
+
export interface CallConfig {
|
|
6
|
+
twilioAccountSid: string;
|
|
7
|
+
twilioAuthToken: string;
|
|
8
|
+
twilioPhoneNumber: string;
|
|
9
|
+
deepgramApiKey: string;
|
|
10
|
+
elevenLabsApiKey: string;
|
|
11
|
+
elevenLabsVoiceId: string;
|
|
12
|
+
anthropicApiKey: string;
|
|
13
|
+
serverPort: number;
|
|
14
|
+
publicUrl: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function validateCallConfig(config: Partial<CallConfig>): config is CallConfig;
|
|
17
|
+
export interface CallRequest {
|
|
18
|
+
phoneNumber: string;
|
|
19
|
+
goal: string;
|
|
20
|
+
context?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface CallState {
|
|
23
|
+
callId: string;
|
|
24
|
+
callSid?: string;
|
|
25
|
+
phoneNumber: string;
|
|
26
|
+
goal: string;
|
|
27
|
+
context?: string;
|
|
28
|
+
status: CallStatus;
|
|
29
|
+
startedAt: Date;
|
|
30
|
+
endedAt?: Date;
|
|
31
|
+
transcript: TranscriptEntry[];
|
|
32
|
+
summary?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface TranscriptEntry {
|
|
35
|
+
role: 'assistant' | 'human';
|
|
36
|
+
text: string;
|
|
37
|
+
timestamp: Date;
|
|
38
|
+
isFinal: boolean;
|
|
39
|
+
}
|
|
40
|
+
export type ServerMessage = {
|
|
41
|
+
type: 'call_started';
|
|
42
|
+
callId: string;
|
|
43
|
+
callSid?: string;
|
|
44
|
+
} | {
|
|
45
|
+
type: 'call_ringing';
|
|
46
|
+
callId: string;
|
|
47
|
+
} | {
|
|
48
|
+
type: 'call_connected';
|
|
49
|
+
callId: string;
|
|
50
|
+
} | {
|
|
51
|
+
type: 'transcript';
|
|
52
|
+
callId: string;
|
|
53
|
+
text: string;
|
|
54
|
+
role: 'assistant' | 'human';
|
|
55
|
+
isFinal: boolean;
|
|
56
|
+
} | {
|
|
57
|
+
type: 'call_ended';
|
|
58
|
+
callId: string;
|
|
59
|
+
summary: string;
|
|
60
|
+
status: CallStatus;
|
|
61
|
+
} | {
|
|
62
|
+
type: 'error';
|
|
63
|
+
callId?: string;
|
|
64
|
+
message: string;
|
|
65
|
+
};
|
|
66
|
+
export type ClientMessage = {
|
|
67
|
+
type: 'initiate_call';
|
|
68
|
+
phoneNumber: string;
|
|
69
|
+
goal: string;
|
|
70
|
+
context?: string;
|
|
71
|
+
} | {
|
|
72
|
+
type: 'speak';
|
|
73
|
+
callId: string;
|
|
74
|
+
text: string;
|
|
75
|
+
} | {
|
|
76
|
+
type: 'hangup';
|
|
77
|
+
callId: string;
|
|
78
|
+
};
|
|
79
|
+
export interface TwilioMediaMessage {
|
|
80
|
+
event: 'connected' | 'start' | 'media' | 'stop' | 'mark';
|
|
81
|
+
sequenceNumber?: string;
|
|
82
|
+
streamSid?: string;
|
|
83
|
+
start?: {
|
|
84
|
+
streamSid: string;
|
|
85
|
+
accountSid: string;
|
|
86
|
+
callSid: string;
|
|
87
|
+
tracks: string[];
|
|
88
|
+
customParameters: Record<string, string>;
|
|
89
|
+
mediaFormat: {
|
|
90
|
+
encoding: string;
|
|
91
|
+
sampleRate: number;
|
|
92
|
+
channels: number;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
media?: {
|
|
96
|
+
track: 'inbound' | 'outbound';
|
|
97
|
+
chunk: string;
|
|
98
|
+
timestamp: string;
|
|
99
|
+
payload: string;
|
|
100
|
+
};
|
|
101
|
+
mark?: {
|
|
102
|
+
name: string;
|
|
103
|
+
};
|
|
104
|
+
stop?: {
|
|
105
|
+
accountSid: string;
|
|
106
|
+
callSid: string;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export interface TwilioVoiceWebhook {
|
|
110
|
+
CallSid: string;
|
|
111
|
+
AccountSid: string;
|
|
112
|
+
From: string;
|
|
113
|
+
To: string;
|
|
114
|
+
CallStatus: 'queued' | 'ringing' | 'in-progress' | 'completed' | 'busy' | 'failed' | 'no-answer' | 'canceled';
|
|
115
|
+
ApiVersion: string;
|
|
116
|
+
Direction: 'inbound' | 'outbound-api' | 'outbound-dial';
|
|
117
|
+
ForwardedFrom?: string;
|
|
118
|
+
CallerName?: string;
|
|
119
|
+
ParentCallSid?: string;
|
|
120
|
+
Duration?: string;
|
|
121
|
+
CallDuration?: string;
|
|
122
|
+
}
|
|
123
|
+
export interface ElevenLabsVoiceSettings {
|
|
124
|
+
stability: number;
|
|
125
|
+
similarity_boost: number;
|
|
126
|
+
style?: number;
|
|
127
|
+
use_speaker_boost?: boolean;
|
|
128
|
+
}
|
|
129
|
+
export interface AudioChunk {
|
|
130
|
+
data: Buffer;
|
|
131
|
+
timestamp: number;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=call-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-types.d.ts","sourceRoot":"","sources":["../../../src/lib/call/call-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for the voice call system
|
|
3
|
+
*/
|
|
4
|
+
// Validate call config has all required fields
|
|
5
|
+
export function validateCallConfig(config) {
|
|
6
|
+
return !!(config.twilioAccountSid &&
|
|
7
|
+
config.twilioAuthToken &&
|
|
8
|
+
config.twilioPhoneNumber &&
|
|
9
|
+
config.deepgramApiKey &&
|
|
10
|
+
config.elevenLabsApiKey &&
|
|
11
|
+
config.elevenLabsVoiceId &&
|
|
12
|
+
config.anthropicApiKey &&
|
|
13
|
+
config.serverPort &&
|
|
14
|
+
config.publicUrl);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=call-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-types.js","sourceRoot":"","sources":["../../../src/lib/call/call-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0BH,+CAA+C;AAC/C,MAAM,UAAU,kBAAkB,CAAC,MAA2B;IAC5D,OAAO,CAAC,CAAC,CACP,MAAM,CAAC,gBAAgB;QACvB,MAAM,CAAC,eAAe;QACtB,MAAM,CAAC,iBAAiB;QACxB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,gBAAgB;QACvB,MAAM,CAAC,iBAAiB;QACxB,MAAM,CAAC,eAAe;QACtB,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,SAAS,CACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Conversation Manager - Uses Claude to generate responses
|
|
3
|
+
*/
|
|
4
|
+
export interface ConversationMessage {
|
|
5
|
+
role: 'user' | 'assistant';
|
|
6
|
+
content: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ConversationConfig {
|
|
9
|
+
apiKey: string;
|
|
10
|
+
goal: string;
|
|
11
|
+
context?: string;
|
|
12
|
+
model?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface TurnContext {
|
|
15
|
+
shortAcknowledgement?: boolean;
|
|
16
|
+
lastAssistantUtterance?: string;
|
|
17
|
+
lastAssistantQuestion?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function isLikelyShortAcknowledgement(text: string): boolean;
|
|
20
|
+
export declare function extractMostRecentQuestion(text: string): string | undefined;
|
|
21
|
+
export declare class ConversationAI {
|
|
22
|
+
private client;
|
|
23
|
+
private messages;
|
|
24
|
+
private readonly goal;
|
|
25
|
+
private readonly context;
|
|
26
|
+
private readonly model;
|
|
27
|
+
private isComplete;
|
|
28
|
+
constructor(config: ConversationConfig);
|
|
29
|
+
/**
|
|
30
|
+
* Generate the initial greeting
|
|
31
|
+
* NOTE: Greeting should NEVER mark conversation as complete
|
|
32
|
+
*/
|
|
33
|
+
getGreeting(): Promise<string>;
|
|
34
|
+
/**
|
|
35
|
+
* Generate a response to what the human said
|
|
36
|
+
*/
|
|
37
|
+
respond(humanSaid: string, turnContext?: TurnContext): Promise<string | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Internal method to call Claude and get a response
|
|
40
|
+
*/
|
|
41
|
+
private formatApiError;
|
|
42
|
+
private generateResponse;
|
|
43
|
+
/**
|
|
44
|
+
* Check if the conversation is complete
|
|
45
|
+
*/
|
|
46
|
+
get complete(): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Get conversation history
|
|
49
|
+
*/
|
|
50
|
+
getHistory(): ConversationMessage[];
|
|
51
|
+
/**
|
|
52
|
+
* Mark the conversation as complete (e.g., if human hangs up)
|
|
53
|
+
*/
|
|
54
|
+
markComplete(): void;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=conversation-ai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-ai.d.ts","sourceRoot":"","sources":["../../../src/lib/call/conversation-ai.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAqBD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAWlE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAU1E;AA+FD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,kBAAkB;IAQtC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAwBpC;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA6BnF;;OAEG;IACH,OAAO,CAAC,cAAc;YAiBR,gBAAgB;IA6C9B;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,UAAU,IAAI,mBAAmB,EAAE;IAInC;;OAEG;IACH,YAAY,IAAI,IAAI;CAGrB"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Conversation Manager - Uses Claude to generate responses
|
|
3
|
+
*/
|
|
4
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
5
|
+
const SHORT_ACK_VALUES = new Set([
|
|
6
|
+
'yes',
|
|
7
|
+
'yeah',
|
|
8
|
+
'yep',
|
|
9
|
+
'yup',
|
|
10
|
+
'sure',
|
|
11
|
+
'ok',
|
|
12
|
+
'okay',
|
|
13
|
+
'true',
|
|
14
|
+
'correct',
|
|
15
|
+
'right',
|
|
16
|
+
'no',
|
|
17
|
+
'nope',
|
|
18
|
+
'nah',
|
|
19
|
+
'mmhmm',
|
|
20
|
+
'mhm',
|
|
21
|
+
'uhhuh',
|
|
22
|
+
]);
|
|
23
|
+
export function isLikelyShortAcknowledgement(text) {
|
|
24
|
+
const normalized = text
|
|
25
|
+
.toLowerCase()
|
|
26
|
+
.replace(/[^a-z0-9\s]/g, ' ')
|
|
27
|
+
.replace(/\s+/g, ' ')
|
|
28
|
+
.trim();
|
|
29
|
+
if (!normalized)
|
|
30
|
+
return false;
|
|
31
|
+
const words = normalized.split(' ');
|
|
32
|
+
if (words.length > 4)
|
|
33
|
+
return false;
|
|
34
|
+
return words.every((word) => SHORT_ACK_VALUES.has(word));
|
|
35
|
+
}
|
|
36
|
+
export function extractMostRecentQuestion(text) {
|
|
37
|
+
const trimmed = text.trim();
|
|
38
|
+
if (!trimmed || !trimmed.includes('?'))
|
|
39
|
+
return undefined;
|
|
40
|
+
const segments = trimmed
|
|
41
|
+
.split(/(?<=[?!.])\s+/)
|
|
42
|
+
.map((segment) => segment.trim())
|
|
43
|
+
.filter(Boolean);
|
|
44
|
+
const question = [...segments].reverse().find((segment) => segment.includes('?'));
|
|
45
|
+
return question;
|
|
46
|
+
}
|
|
47
|
+
const SYSTEM_PROMPT = `You are an AI assistant making a phone call on behalf of a customer. YOU are the caller seeking assistance - the person who answers is the one providing service to you.
|
|
48
|
+
|
|
49
|
+
CRITICAL ROLE REMINDER - READ THIS CAREFULLY:
|
|
50
|
+
- YOU are calling THEM for help - you are the customer/caller
|
|
51
|
+
- THEY work at the hotel/restaurant - THEY make bookings, THEY have confirmation numbers
|
|
52
|
+
- NEVER switch roles mid-conversation - you are ALWAYS the customer
|
|
53
|
+
|
|
54
|
+
THINGS YOU SHOULD NEVER SAY (these are hotel employee phrases):
|
|
55
|
+
- "Does this all look correct to you?" - backwards, YOU should ask THEM to confirm
|
|
56
|
+
- "Please let me know if you need anything else from me" - backwards, THEY serve YOU
|
|
57
|
+
- "I've noted all the details" - YOU don't take notes, THEY do
|
|
58
|
+
- "How can I assist/help you?" - backwards, they help you
|
|
59
|
+
- Any phrase that sounds like YOU are the service provider
|
|
60
|
+
|
|
61
|
+
THINGS YOU SHOULD SAY INSTEAD:
|
|
62
|
+
- "Could you please confirm the booking is complete?"
|
|
63
|
+
- "What's the confirmation number?"
|
|
64
|
+
- "Could you send the confirmation to [email]?"
|
|
65
|
+
- "Is there anything else you need from me to complete the booking?"
|
|
66
|
+
- "Thank you for your help!"
|
|
67
|
+
|
|
68
|
+
AI DISCLOSURE:
|
|
69
|
+
- In your greeting, clearly state you are an AI assistant calling on behalf of a customer
|
|
70
|
+
- Example: "Hi, this is an AI assistant calling on behalf of [customer name]. I'm hoping to book a room at your hotel."
|
|
71
|
+
- Be upfront about being an AI - never try to hide it
|
|
72
|
+
- If asked about being an AI, confirm it honestly
|
|
73
|
+
|
|
74
|
+
VOICE-FRIENDLY FORMATTING:
|
|
75
|
+
- Spell out numbers for dates: "March twelfth to fourteenth" not "March 12-14"
|
|
76
|
+
- Spell out prices clearly: "three hundred ninety-three dollars" or "three fifty"
|
|
77
|
+
- Don't use abbreviations: say "okay" not "OK", "dollars" not "$"
|
|
78
|
+
- Avoid symbols that don't speak well
|
|
79
|
+
|
|
80
|
+
SPELLING OUT CONTACT INFORMATION:
|
|
81
|
+
When providing customer contact info, spell it out clearly for the listener:
|
|
82
|
+
|
|
83
|
+
For EMAIL addresses:
|
|
84
|
+
- Say it phonetically: "john dot smith at gmail dot com"
|
|
85
|
+
- Spell unusual parts: "That's J-O-H-N dot S-M-I-T-H at gmail dot com"
|
|
86
|
+
- Always clarify common confusions: "dot" not "period", "at" not "@"
|
|
87
|
+
|
|
88
|
+
For PHONE numbers:
|
|
89
|
+
- Say digits in groups: "five five five, one two three, four five six seven"
|
|
90
|
+
- Use words for clarity: "area code five five five, then one two three, four five six seven"
|
|
91
|
+
|
|
92
|
+
For NAMES:
|
|
93
|
+
- Offer to spell unusual names: "Smith, that's S-M-I-T-H"
|
|
94
|
+
- Confirm spelling if asked: "Yes, John is J-O-H-N"
|
|
95
|
+
|
|
96
|
+
CONVERSATION GUIDELINES:
|
|
97
|
+
1. Keep responses SHORT (prefer 1 sentence; 2 max) - this is voice, not text
|
|
98
|
+
2. Don't repeat information you've already stated - the human heard you
|
|
99
|
+
3. Listen and respond to what they JUST said, don't rehash the whole context
|
|
100
|
+
4. Be polite but efficient
|
|
101
|
+
5. Don't say "um", "uh", or filler words
|
|
102
|
+
6. If asked to hold, say "Sure, I'll hold"
|
|
103
|
+
7. Keep most turns under ~30 words (except when spelling an email/phone)
|
|
104
|
+
8. Ask only ONE question per turn unless absolutely necessary
|
|
105
|
+
9. If the human gives a very short acknowledgement ("yes", "sure", "true"), treat it as answering your most recent question and move to the next step
|
|
106
|
+
|
|
107
|
+
AVOID REPETITION:
|
|
108
|
+
- Once you've stated the dates, price, or room name, don't keep repeating them
|
|
109
|
+
- Trust that the human remembers the context
|
|
110
|
+
- Only restate details if they specifically ask for clarification
|
|
111
|
+
- Each response should ADD new information or move the conversation forward
|
|
112
|
+
- Avoid repetitive enthusiasm ("wonderful", "perfect", "excellent") on every turn
|
|
113
|
+
- If they say "yes/no", acknowledge briefly and ask only the next required detail
|
|
114
|
+
- After a detail is confirmed, don't ask to reconfirm the same detail again
|
|
115
|
+
|
|
116
|
+
COMPLETING A BOOKING:
|
|
117
|
+
When the hotel/restaurant agrees to the booking, YOU should:
|
|
118
|
+
1. Ask for the confirmation number (they give it to you, not the other way around)
|
|
119
|
+
2. Provide the customer's email for the confirmation to be sent
|
|
120
|
+
3. Ask if they need anything else to complete it (phone number, credit card on file, etc.)
|
|
121
|
+
4. Thank THEM for their help
|
|
122
|
+
|
|
123
|
+
Example good closing:
|
|
124
|
+
"Great! Could you please send the confirmation to derek at example dot com? And what's the confirmation number for my records?"
|
|
125
|
+
|
|
126
|
+
Example BAD closing (never do this):
|
|
127
|
+
"I've noted all the details. Does this look correct to you? Let me know if you need anything else."
|
|
128
|
+
|
|
129
|
+
EXAMPLE CONCISE STYLE:
|
|
130
|
+
- Good: "Great, thanks. Please send the payment link to alexanderderekrein at gmail dot com."
|
|
131
|
+
- Too verbose: "Wonderful, that's excellent, thank you so much. Just to confirm everything again..."
|
|
132
|
+
|
|
133
|
+
ENDING THE CALL:
|
|
134
|
+
- Only include [CALL_COMPLETE] when the goal is FULLY achieved
|
|
135
|
+
- NEVER use [CALL_COMPLETE] on your first message
|
|
136
|
+
- NEVER use [CALL_COMPLETE] until after at least 2-3 exchanges
|
|
137
|
+
- Put [CALL_COMPLETE] at the very END of your final message
|
|
138
|
+
- Before ending, make sure you GOT a confirmation number FROM them`;
|
|
139
|
+
export class ConversationAI {
|
|
140
|
+
client;
|
|
141
|
+
messages = [];
|
|
142
|
+
goal;
|
|
143
|
+
context;
|
|
144
|
+
model;
|
|
145
|
+
isComplete = false;
|
|
146
|
+
constructor(config) {
|
|
147
|
+
this.client = new Anthropic({ apiKey: config.apiKey });
|
|
148
|
+
this.goal = config.goal;
|
|
149
|
+
this.context = config.context || '';
|
|
150
|
+
// Use a fast current Haiku model for phone-call latency.
|
|
151
|
+
this.model = config.model || 'claude-haiku-4-5';
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Generate the initial greeting
|
|
155
|
+
* NOTE: Greeting should NEVER mark conversation as complete
|
|
156
|
+
*/
|
|
157
|
+
async getGreeting() {
|
|
158
|
+
const userMessage = `[CALL STARTED - YOU ARE THE CALLER]
|
|
159
|
+
Goal: ${this.goal}
|
|
160
|
+
${this.context ? `Context: ${this.context}` : ''}
|
|
161
|
+
|
|
162
|
+
Generate a brief greeting to start the call. Remember:
|
|
163
|
+
- YOU are calling THEM - you are the customer seeking their help
|
|
164
|
+
- Introduce yourself as an AI assistant calling on behalf of a customer
|
|
165
|
+
- State your general purpose (e.g., "I'm calling about booking a room")
|
|
166
|
+
- Do NOT ask "How can I assist you?" - YOU need THEIR assistance
|
|
167
|
+
- Do NOT include [CALL_COMPLETE]
|
|
168
|
+
- Keep it to 1 sentence when possible (2 max), ideally under 30 words`;
|
|
169
|
+
const response = await this.generateResponse(userMessage);
|
|
170
|
+
// Safety: Never allow greeting to mark conversation complete
|
|
171
|
+
if (this.isComplete) {
|
|
172
|
+
console.log('[ConversationAI] WARNING: Greeting tried to mark complete - resetting');
|
|
173
|
+
this.isComplete = false;
|
|
174
|
+
}
|
|
175
|
+
return response;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Generate a response to what the human said
|
|
179
|
+
*/
|
|
180
|
+
async respond(humanSaid, turnContext) {
|
|
181
|
+
if (this.isComplete) {
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
if (!turnContext?.shortAcknowledgement) {
|
|
185
|
+
return this.generateResponse(humanSaid);
|
|
186
|
+
}
|
|
187
|
+
const contextLines = [
|
|
188
|
+
'[TURN CONTEXT]',
|
|
189
|
+
'The human gave a short acknowledgement likely answering your most recent question.',
|
|
190
|
+
];
|
|
191
|
+
if (turnContext.lastAssistantQuestion) {
|
|
192
|
+
contextLines.push(`Most recent question you asked: "${turnContext.lastAssistantQuestion}"`);
|
|
193
|
+
}
|
|
194
|
+
else if (turnContext.lastAssistantUtterance) {
|
|
195
|
+
contextLines.push(`Your previous spoken turn: "${turnContext.lastAssistantUtterance}"`);
|
|
196
|
+
}
|
|
197
|
+
contextLines.push('Interpret the acknowledgement as a direct answer to your latest question, then proceed to exactly one next question without rehashing earlier context.', '', `Human said: ${humanSaid}`);
|
|
198
|
+
return this.generateResponse(contextLines.join('\n'));
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Internal method to call Claude and get a response
|
|
202
|
+
*/
|
|
203
|
+
formatApiError(error) {
|
|
204
|
+
if (error instanceof Error) {
|
|
205
|
+
const maybeApiError = error;
|
|
206
|
+
const parts = [];
|
|
207
|
+
if (maybeApiError.name)
|
|
208
|
+
parts.push(maybeApiError.name);
|
|
209
|
+
if (typeof maybeApiError.status === 'number')
|
|
210
|
+
parts.push(`HTTP ${maybeApiError.status}`);
|
|
211
|
+
if (maybeApiError.error?.type)
|
|
212
|
+
parts.push(maybeApiError.error.type);
|
|
213
|
+
parts.push(maybeApiError.error?.message ?? maybeApiError.message);
|
|
214
|
+
return parts.filter(Boolean).join(' | ');
|
|
215
|
+
}
|
|
216
|
+
return String(error);
|
|
217
|
+
}
|
|
218
|
+
async generateResponse(userInput) {
|
|
219
|
+
// Add user message to history
|
|
220
|
+
this.messages.push({ role: 'user', content: userInput });
|
|
221
|
+
const systemWithGoal = `${SYSTEM_PROMPT}
|
|
222
|
+
|
|
223
|
+
YOUR GOAL FOR THIS CALL: ${this.goal}
|
|
224
|
+
${this.context ? `ADDITIONAL CONTEXT: ${this.context}` : ''}`;
|
|
225
|
+
try {
|
|
226
|
+
const response = await this.client.messages.create({
|
|
227
|
+
model: this.model,
|
|
228
|
+
max_tokens: 150, // Keep responses short for voice
|
|
229
|
+
system: systemWithGoal,
|
|
230
|
+
messages: this.messages,
|
|
231
|
+
});
|
|
232
|
+
// Extract text response
|
|
233
|
+
let text = '';
|
|
234
|
+
for (const block of response.content) {
|
|
235
|
+
if (block.type === 'text') {
|
|
236
|
+
text += block.text;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// Check if call should end
|
|
240
|
+
if (text.includes('[CALL_COMPLETE]')) {
|
|
241
|
+
this.isComplete = true;
|
|
242
|
+
text = text.replace('[CALL_COMPLETE]', '').trim();
|
|
243
|
+
}
|
|
244
|
+
// Add assistant response to history
|
|
245
|
+
this.messages.push({ role: 'assistant', content: text });
|
|
246
|
+
return text;
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
const details = this.formatApiError(error);
|
|
250
|
+
console.error(`[ConversationAI] Error: ${details}`);
|
|
251
|
+
// Remove the user message we just added since we failed to respond.
|
|
252
|
+
// Don't add fallback text to history - it pollutes the context.
|
|
253
|
+
this.messages.pop();
|
|
254
|
+
throw new Error(`Conversation AI request failed: ${details}`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Check if the conversation is complete
|
|
259
|
+
*/
|
|
260
|
+
get complete() {
|
|
261
|
+
return this.isComplete;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Get conversation history
|
|
265
|
+
*/
|
|
266
|
+
getHistory() {
|
|
267
|
+
return [...this.messages];
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Mark the conversation as complete (e.g., if human hangs up)
|
|
271
|
+
*/
|
|
272
|
+
markComplete() {
|
|
273
|
+
this.isComplete = true;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
//# sourceMappingURL=conversation-ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-ai.js","sourceRoot":"","sources":["../../../src/lib/call/conversation-ai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codec Integration Test
|
|
3
|
+
*
|
|
4
|
+
* Verifies that the audio pipeline produces valid µ-law audio:
|
|
5
|
+
* 1. ElevenLabs TTS → MP3 (always, regardless of output_format)
|
|
6
|
+
* 2. ffmpeg streaming decoder → µ-law 8kHz
|
|
7
|
+
* 3. Validate µ-law format and duration
|
|
8
|
+
*
|
|
9
|
+
* This catches regressions like:
|
|
10
|
+
* - Wrong codec (sending MP3 as µ-law)
|
|
11
|
+
* - Sample rate mismatches
|
|
12
|
+
* - Truncated audio
|
|
13
|
+
*/
|
|
14
|
+
export interface CodecTestResult {
|
|
15
|
+
success: boolean;
|
|
16
|
+
inputFormat: string;
|
|
17
|
+
inputSize: number;
|
|
18
|
+
outputFormat: string;
|
|
19
|
+
outputSize: number;
|
|
20
|
+
expectedDurationMs: number;
|
|
21
|
+
actualDurationMs: number;
|
|
22
|
+
durationMatchesExpected: boolean;
|
|
23
|
+
isValidMulaw: boolean;
|
|
24
|
+
errors: string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Validate that data looks like valid µ-law audio
|
|
28
|
+
* µ-law has specific characteristics:
|
|
29
|
+
* - Single byte per sample
|
|
30
|
+
* - Values distributed across 0-255 range (compressed)
|
|
31
|
+
* - 8kHz sample rate
|
|
32
|
+
*/
|
|
33
|
+
export declare function validateMulawFormat(data: Buffer): {
|
|
34
|
+
valid: boolean;
|
|
35
|
+
reason?: string;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Test the streaming decoder with known MP3 input
|
|
39
|
+
*/
|
|
40
|
+
export declare function testStreamingDecoder(mp3Data: Buffer, expectedDurationMs: number, toleranceMs?: number): Promise<CodecTestResult>;
|
|
41
|
+
/**
|
|
42
|
+
* Test the full TTS pipeline
|
|
43
|
+
*/
|
|
44
|
+
export declare function testTTSPipeline(text: string, apiKey: string, voiceId: string): Promise<CodecTestResult>;
|
|
45
|
+
//# sourceMappingURL=codec-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec-test.d.ts","sourceRoot":"","sources":["../../../../src/lib/call/eval/codec-test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,OAAO,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAuCrF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,MAAM,EAC1B,WAAW,GAAE,MAAY,GACxB,OAAO,CAAC,eAAe,CAAC,CAyE1B;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAgD7G"}
|