@teamlearners/clawops 0.5.8 → 0.8.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 +13 -0
- package/dist/agent/index.cjs +238 -7
- package/dist/agent/index.cjs.map +1 -1
- package/dist/agent/index.d.cts +137 -1
- package/dist/agent/index.d.ts +137 -1
- package/dist/agent/index.js +231 -2
- package/dist/agent/index.js.map +1 -1
- package/dist/{chunk-7S2OEBS6.js → chunk-2B74QZZJ.js} +6 -3
- package/dist/chunk-2B74QZZJ.js.map +1 -0
- package/dist/{chunk-6IQN5RQD.cjs → chunk-R742GPVL.cjs} +6 -2
- package/dist/chunk-R742GPVL.cjs.map +1 -0
- package/dist/index.cjs +51 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +63 -1
- package/dist/index.d.ts +63 -1
- package/dist/index.js +16 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-6IQN5RQD.cjs.map +0 -1
- package/dist/chunk-7S2OEBS6.js.map +0 -1
package/dist/agent/index.d.cts
CHANGED
|
@@ -128,6 +128,36 @@ declare function mcpServerHTTP(options: {
|
|
|
128
128
|
headers?: Record<string, string>;
|
|
129
129
|
}): MCPServerHTTP;
|
|
130
130
|
|
|
131
|
+
interface ProviderInfo {
|
|
132
|
+
provider: string;
|
|
133
|
+
model: string;
|
|
134
|
+
}
|
|
135
|
+
interface SessionTelemetry {
|
|
136
|
+
sessionType: string;
|
|
137
|
+
llm: ProviderInfo | null;
|
|
138
|
+
stt: ProviderInfo | null;
|
|
139
|
+
tts: ProviderInfo | null;
|
|
140
|
+
voice: string | null;
|
|
141
|
+
language: string;
|
|
142
|
+
greetingEnabled: boolean;
|
|
143
|
+
recordingEnabled: boolean;
|
|
144
|
+
toolCount: number;
|
|
145
|
+
mcpServerCount: number;
|
|
146
|
+
builtinTools: string[];
|
|
147
|
+
}
|
|
148
|
+
interface CallMetrics {
|
|
149
|
+
firstResponseMs: number | null;
|
|
150
|
+
turnCount: number;
|
|
151
|
+
toolCallCount: number;
|
|
152
|
+
toolErrorCount: number;
|
|
153
|
+
bargeInCount: number;
|
|
154
|
+
endReason: string | null;
|
|
155
|
+
errors: Array<{
|
|
156
|
+
type: string;
|
|
157
|
+
message: string;
|
|
158
|
+
}>;
|
|
159
|
+
}
|
|
160
|
+
|
|
131
161
|
/**
|
|
132
162
|
* CallSession represents an active phone call and provides methods to
|
|
133
163
|
* send audio, hang up, and listen for lifecycle events.
|
|
@@ -173,6 +203,8 @@ declare class CallSession {
|
|
|
173
203
|
private _handlers;
|
|
174
204
|
private _endedPromise;
|
|
175
205
|
private _resolveEnded;
|
|
206
|
+
private _metrics;
|
|
207
|
+
private _firstResponseSent;
|
|
176
208
|
constructor(options: {
|
|
177
209
|
callId: string;
|
|
178
210
|
fromNumber: string;
|
|
@@ -184,6 +216,13 @@ declare class CallSession {
|
|
|
184
216
|
setLogger(logger: Logger): void;
|
|
185
217
|
get status(): CallStatus;
|
|
186
218
|
get duration(): number;
|
|
219
|
+
get metrics(): Readonly<CallMetrics>;
|
|
220
|
+
recordFirstResponse(): void;
|
|
221
|
+
recordTurn(): void;
|
|
222
|
+
recordToolCall(): void;
|
|
223
|
+
recordToolError(err: Error): void;
|
|
224
|
+
recordBargeIn(): void;
|
|
225
|
+
recordEndReason(reason: string): void;
|
|
187
226
|
/** Bind transport functions (called internally by the agent). */
|
|
188
227
|
_bindTransport(send: SendAudioFn, clear: ClearAudioFn, hangup: HangupFn, sendDtmf?: SendDtmfFn, isConnected?: () => boolean): void;
|
|
189
228
|
/** Send PCM16 or ulaw audio to the caller. */
|
|
@@ -272,6 +311,8 @@ interface Session {
|
|
|
272
311
|
stop(): Promise<void>;
|
|
273
312
|
/** Set the logger instance for this session. */
|
|
274
313
|
setLogger?(logger: Logger): void;
|
|
314
|
+
/** Return session telemetry for reporting. */
|
|
315
|
+
getTelemetry?(): SessionTelemetry | null;
|
|
275
316
|
}
|
|
276
317
|
/**
|
|
277
318
|
* Speech-to-Text provider interface.
|
|
@@ -431,6 +472,69 @@ declare class ClawOpsAgent {
|
|
|
431
472
|
private _startCallSession;
|
|
432
473
|
}
|
|
433
474
|
|
|
475
|
+
/**
|
|
476
|
+
* Media WebSocket for streaming audio to/from the telephony platform.
|
|
477
|
+
*
|
|
478
|
+
* ClawOps VoiceML Stream protocol:
|
|
479
|
+
* connected -> start -> media (G.711 ulaw 8kHz base64) -> mark -> stop
|
|
480
|
+
*/
|
|
481
|
+
|
|
482
|
+
interface MediaStartEvent {
|
|
483
|
+
streamId: string;
|
|
484
|
+
callId: string;
|
|
485
|
+
accountId: string;
|
|
486
|
+
sampleRate: number;
|
|
487
|
+
}
|
|
488
|
+
interface MediaEvent {
|
|
489
|
+
audio: Buffer;
|
|
490
|
+
timestamp: number;
|
|
491
|
+
}
|
|
492
|
+
interface DtmfEvent {
|
|
493
|
+
digit: string;
|
|
494
|
+
track: string;
|
|
495
|
+
}
|
|
496
|
+
declare class MediaWebSocket {
|
|
497
|
+
private _ws;
|
|
498
|
+
private _audioQueue;
|
|
499
|
+
private _sendLoopRunning;
|
|
500
|
+
private _closed;
|
|
501
|
+
private _onAudio;
|
|
502
|
+
private _onStart;
|
|
503
|
+
private _onClose;
|
|
504
|
+
private _onDtmf;
|
|
505
|
+
private _markWaiters;
|
|
506
|
+
private _log;
|
|
507
|
+
setLogger(logger: Logger): void;
|
|
508
|
+
/** Set the handler for inbound audio data. */
|
|
509
|
+
onAudio(handler: (audio: Buffer, timestamp: number) => void): void;
|
|
510
|
+
/** Set the handler for the start event. */
|
|
511
|
+
onStart(handler: (event: MediaStartEvent) => void): void;
|
|
512
|
+
/** Set the handler for connection close. */
|
|
513
|
+
onClose(handler: () => void): void;
|
|
514
|
+
/** Set the handler for inbound DTMF events. */
|
|
515
|
+
onDtmf(handler: (digit: string) => void): void;
|
|
516
|
+
/** Send a single DTMF digit to the platform. */
|
|
517
|
+
sendDtmf(digit: string): void;
|
|
518
|
+
/** Whether the WebSocket is connected. */
|
|
519
|
+
get isConnected(): boolean;
|
|
520
|
+
/** Connect to a media WebSocket URL with Bearer authentication. */
|
|
521
|
+
connect(url: string, apiKey: string): Promise<void>;
|
|
522
|
+
/** Queue base64-encoded audio for sending. */
|
|
523
|
+
sendAudio(audioBase64: string): void;
|
|
524
|
+
/** Clear all queued outbound audio. */
|
|
525
|
+
sendClear(): void;
|
|
526
|
+
/** Send a mark event. */
|
|
527
|
+
sendMark(name: string): void;
|
|
528
|
+
/** Wait for all queued audio to be sent. */
|
|
529
|
+
flush(): Promise<void>;
|
|
530
|
+
/** Wait for a named mark to be echoed back by the server. */
|
|
531
|
+
waitForMark(name: string, timeoutMs?: number): Promise<void>;
|
|
532
|
+
/** Close the media WebSocket. */
|
|
533
|
+
close(): void;
|
|
534
|
+
private _handleMessage;
|
|
535
|
+
private _startSendLoop;
|
|
536
|
+
}
|
|
537
|
+
|
|
434
538
|
/**
|
|
435
539
|
* Audio codec utilities: PCM16 <-> ulaw conversion and resampling.
|
|
436
540
|
*/
|
|
@@ -521,6 +625,7 @@ declare class PipelineSession implements Session {
|
|
|
521
625
|
setToolRegistry(registry: ToolRegistry): void;
|
|
522
626
|
setRecorder(recorder: AudioRecorder): void;
|
|
523
627
|
setBuiltinTools(tools: Set<BuiltinTool>): void;
|
|
628
|
+
getTelemetry(): SessionTelemetry;
|
|
524
629
|
setLogger(logger: Logger): void;
|
|
525
630
|
start(callSession: CallSession, tools?: ToolRegistry): Promise<void>;
|
|
526
631
|
feedAudio(audio: Buffer): void;
|
|
@@ -575,6 +680,7 @@ declare class OpenAIRealtime implements Session {
|
|
|
575
680
|
private _builtinTools;
|
|
576
681
|
setLogger(logger: Logger): void;
|
|
577
682
|
setBuiltinTools(tools: Set<BuiltinTool>): void;
|
|
683
|
+
getTelemetry(): SessionTelemetry;
|
|
578
684
|
private _ws;
|
|
579
685
|
private _call;
|
|
580
686
|
private _tools;
|
|
@@ -648,6 +754,7 @@ declare class GeminiRealtime implements Session {
|
|
|
648
754
|
setRecorder(recorder: AudioRecorder): void;
|
|
649
755
|
setBuiltinTools(tools: Set<BuiltinTool>): void;
|
|
650
756
|
setLogger(logger: Logger): void;
|
|
757
|
+
getTelemetry(): SessionTelemetry;
|
|
651
758
|
start(callSession: CallSession, tools?: ToolRegistry): Promise<void>;
|
|
652
759
|
feedAudio(audio: Buffer): void;
|
|
653
760
|
feedDtmf(digits: string): Promise<void>;
|
|
@@ -686,6 +793,8 @@ interface DeepgramSTTOptions {
|
|
|
686
793
|
declare class DeepgramSTT implements STT {
|
|
687
794
|
private _options;
|
|
688
795
|
private _log;
|
|
796
|
+
get provider(): string;
|
|
797
|
+
get model(): string;
|
|
689
798
|
setLogger(logger: Logger): void;
|
|
690
799
|
constructor(options?: DeepgramSTTOptions);
|
|
691
800
|
transcribe(audioStream: AsyncIterable<Buffer>, options?: {
|
|
@@ -717,6 +826,9 @@ interface ElevenLabsTTSOptions {
|
|
|
717
826
|
declare class ElevenLabsTTS implements TTS {
|
|
718
827
|
private _options;
|
|
719
828
|
private _log;
|
|
829
|
+
get provider(): string;
|
|
830
|
+
get model(): string;
|
|
831
|
+
get voiceId(): string;
|
|
720
832
|
setLogger(logger: Logger): void;
|
|
721
833
|
constructor(options?: ElevenLabsTTSOptions);
|
|
722
834
|
synthesize(text: string | AsyncIterable<string>, options?: {
|
|
@@ -743,6 +855,8 @@ interface OpenAILLMOptions {
|
|
|
743
855
|
}
|
|
744
856
|
declare class OpenAILLM implements LLM {
|
|
745
857
|
private _options;
|
|
858
|
+
get provider(): string;
|
|
859
|
+
get model(): string;
|
|
746
860
|
constructor(options?: OpenAILLMOptions);
|
|
747
861
|
generate(messages: ConversationMessage[], options?: {
|
|
748
862
|
tools?: ToolRegistry;
|
|
@@ -767,6 +881,8 @@ interface AnthropicLLMOptions {
|
|
|
767
881
|
}
|
|
768
882
|
declare class AnthropicLLM implements LLM {
|
|
769
883
|
private _options;
|
|
884
|
+
get provider(): string;
|
|
885
|
+
get model(): string;
|
|
770
886
|
constructor(options?: AnthropicLLMOptions);
|
|
771
887
|
generate(messages: ConversationMessage[], options?: {
|
|
772
888
|
tools?: ToolRegistry;
|
|
@@ -791,6 +907,8 @@ interface GeminiLLMOptions {
|
|
|
791
907
|
}
|
|
792
908
|
declare class GeminiLLM implements LLM {
|
|
793
909
|
private _options;
|
|
910
|
+
get provider(): string;
|
|
911
|
+
get model(): string;
|
|
794
912
|
constructor(options?: GeminiLLMOptions);
|
|
795
913
|
generate(messages: ConversationMessage[], options?: {
|
|
796
914
|
tools?: ToolRegistry;
|
|
@@ -819,6 +937,8 @@ interface OpenAICompatLLMOptions {
|
|
|
819
937
|
}
|
|
820
938
|
declare class OpenAICompatLLM implements LLM {
|
|
821
939
|
private _options;
|
|
940
|
+
get provider(): string;
|
|
941
|
+
get model(): string;
|
|
822
942
|
constructor(options: OpenAICompatLLMOptions);
|
|
823
943
|
generate(messages: ConversationMessage[], options?: {
|
|
824
944
|
tools?: ToolRegistry;
|
|
@@ -844,6 +964,8 @@ interface OllamaLLMOptions {
|
|
|
844
964
|
}
|
|
845
965
|
declare class OllamaLLM implements LLM {
|
|
846
966
|
private _inner;
|
|
967
|
+
get provider(): string;
|
|
968
|
+
get model(): string;
|
|
847
969
|
constructor(options?: OllamaLLMOptions);
|
|
848
970
|
generate(messages: ConversationMessage[], options?: {
|
|
849
971
|
tools?: ToolRegistry;
|
|
@@ -860,6 +982,8 @@ interface MistralLLMOptions {
|
|
|
860
982
|
}
|
|
861
983
|
declare class MistralLLM implements LLM {
|
|
862
984
|
private _inner;
|
|
985
|
+
get provider(): string;
|
|
986
|
+
get model(): string;
|
|
863
987
|
constructor(options?: MistralLLMOptions);
|
|
864
988
|
generate(messages: ConversationMessage[], options?: {
|
|
865
989
|
tools?: ToolRegistry;
|
|
@@ -876,6 +1000,8 @@ interface GroqLLMOptions {
|
|
|
876
1000
|
}
|
|
877
1001
|
declare class GroqLLM implements LLM {
|
|
878
1002
|
private _inner;
|
|
1003
|
+
get provider(): string;
|
|
1004
|
+
get model(): string;
|
|
879
1005
|
constructor(options?: GroqLLMOptions);
|
|
880
1006
|
generate(messages: ConversationMessage[], options?: {
|
|
881
1007
|
tools?: ToolRegistry;
|
|
@@ -892,6 +1018,8 @@ interface PerplexityLLMOptions {
|
|
|
892
1018
|
}
|
|
893
1019
|
declare class PerplexityLLM implements LLM {
|
|
894
1020
|
private _inner;
|
|
1021
|
+
get provider(): string;
|
|
1022
|
+
get model(): string;
|
|
895
1023
|
constructor(options?: PerplexityLLMOptions);
|
|
896
1024
|
generate(messages: ConversationMessage[], options?: {
|
|
897
1025
|
tools?: ToolRegistry;
|
|
@@ -908,6 +1036,8 @@ interface TogetherLLMOptions {
|
|
|
908
1036
|
}
|
|
909
1037
|
declare class TogetherLLM implements LLM {
|
|
910
1038
|
private _inner;
|
|
1039
|
+
get provider(): string;
|
|
1040
|
+
get model(): string;
|
|
911
1041
|
constructor(options?: TogetherLLMOptions);
|
|
912
1042
|
generate(messages: ConversationMessage[], options?: {
|
|
913
1043
|
tools?: ToolRegistry;
|
|
@@ -924,6 +1054,8 @@ interface FireworksLLMOptions {
|
|
|
924
1054
|
}
|
|
925
1055
|
declare class FireworksLLM implements LLM {
|
|
926
1056
|
private _inner;
|
|
1057
|
+
get provider(): string;
|
|
1058
|
+
get model(): string;
|
|
927
1059
|
constructor(options?: FireworksLLMOptions);
|
|
928
1060
|
generate(messages: ConversationMessage[], options?: {
|
|
929
1061
|
tools?: ToolRegistry;
|
|
@@ -940,6 +1072,8 @@ interface DeepSeekLLMOptions {
|
|
|
940
1072
|
}
|
|
941
1073
|
declare class DeepSeekLLM implements LLM {
|
|
942
1074
|
private _inner;
|
|
1075
|
+
get provider(): string;
|
|
1076
|
+
get model(): string;
|
|
943
1077
|
constructor(options?: DeepSeekLLMOptions);
|
|
944
1078
|
generate(messages: ConversationMessage[], options?: {
|
|
945
1079
|
tools?: ToolRegistry;
|
|
@@ -956,6 +1090,8 @@ interface XaiLLMOptions {
|
|
|
956
1090
|
}
|
|
957
1091
|
declare class XaiLLM implements LLM {
|
|
958
1092
|
private _inner;
|
|
1093
|
+
get provider(): string;
|
|
1094
|
+
get model(): string;
|
|
959
1095
|
constructor(options?: XaiLLMOptions);
|
|
960
1096
|
generate(messages: ConversationMessage[], options?: {
|
|
961
1097
|
tools?: ToolRegistry;
|
|
@@ -1004,4 +1140,4 @@ declare function createAgentLogger(userLogger?: Logger): Logger;
|
|
|
1004
1140
|
*/
|
|
1005
1141
|
declare function createPipelineLogger(parent: Logger): Logger;
|
|
1006
1142
|
|
|
1007
|
-
export { type AgentEventType, AnthropicLLM, type AnthropicLLMOptions, AudioRecorder, BUILTIN_TOOL_NAMES, BuiltinTool, type CallDirection, CallSession, type CallStatus, ClawOpsAgent, type ClawOpsAgentOptions, type ConversationMessage, DECODE_TABLE, DeepSeekLLM, type DeepSeekLLMOptions, DeepgramSTT, type DeepgramSTTOptions, ElevenLabsTTS, type ElevenLabsTTSOptions, FireworksLLM, type FireworksLLMOptions, type FunctionTool, GeminiLLM, type GeminiLLMOptions, GeminiRealtime, type GeminiRealtimeOptions, GroqLLM, type GroqLLMOptions, type LLM, type LLMChunk, MCPClient, type MCPServerConfig, type MCPServerHTTP, type MCPServerStdio, MistralLLM, type MistralLLMOptions, OllamaLLM, type OllamaLLMOptions, OpenAICompatLLM, type OpenAICompatLLMOptions, OpenAILLM, type OpenAILLMOptions, OpenAIRealtime, type OpenAIRealtimeOptions, type OpenAIToolDefinition, PerplexityLLM, type PerplexityLLMOptions, PipelineSession, type PipelineSessionOptions, type STT, type Session, type SpeechEvent, type TTS, TogetherLLM, type TogetherLLMOptions, type ToolCallRequest, ToolRegistry, type TracingConfig, XaiLLM, type XaiLLMOptions, createAgentLogger, createPipelineLogger, executeBuiltinTool, functionTool, getBuiltinToolSchemas, getTracingConfig, isBuiltinTool, mcpServerHTTP, mcpServerStdio, pcm16ToUlaw, resamplePcm16, resetTracingConfig, setTracingConfig, ulawToPcm16, zodToToolParams };
|
|
1143
|
+
export { type AgentEventType, AnthropicLLM, type AnthropicLLMOptions, AudioRecorder, BUILTIN_TOOL_NAMES, BuiltinTool, type CallDirection, CallSession, type CallStatus, ClawOpsAgent, type ClawOpsAgentOptions, type ConversationMessage, DECODE_TABLE, DeepSeekLLM, type DeepSeekLLMOptions, DeepgramSTT, type DeepgramSTTOptions, type DtmfEvent, ElevenLabsTTS, type ElevenLabsTTSOptions, FireworksLLM, type FireworksLLMOptions, type FunctionTool, GeminiLLM, type GeminiLLMOptions, GeminiRealtime, type GeminiRealtimeOptions, GroqLLM, type GroqLLMOptions, type LLM, type LLMChunk, MCPClient, type MCPServerConfig, type MCPServerHTTP, type MCPServerStdio, type MediaEvent, type MediaStartEvent, MediaWebSocket, MistralLLM, type MistralLLMOptions, OllamaLLM, type OllamaLLMOptions, OpenAICompatLLM, type OpenAICompatLLMOptions, OpenAILLM, type OpenAILLMOptions, OpenAIRealtime, type OpenAIRealtimeOptions, type OpenAIToolDefinition, PerplexityLLM, type PerplexityLLMOptions, PipelineSession, type PipelineSessionOptions, type STT, type Session, type SpeechEvent, type TTS, TogetherLLM, type TogetherLLMOptions, type ToolCallRequest, ToolRegistry, type TracingConfig, XaiLLM, type XaiLLMOptions, createAgentLogger, createPipelineLogger, executeBuiltinTool, functionTool, getBuiltinToolSchemas, getTracingConfig, isBuiltinTool, mcpServerHTTP, mcpServerStdio, pcm16ToUlaw, resamplePcm16, resetTracingConfig, setTracingConfig, ulawToPcm16, zodToToolParams };
|
package/dist/agent/index.d.ts
CHANGED
|
@@ -128,6 +128,36 @@ declare function mcpServerHTTP(options: {
|
|
|
128
128
|
headers?: Record<string, string>;
|
|
129
129
|
}): MCPServerHTTP;
|
|
130
130
|
|
|
131
|
+
interface ProviderInfo {
|
|
132
|
+
provider: string;
|
|
133
|
+
model: string;
|
|
134
|
+
}
|
|
135
|
+
interface SessionTelemetry {
|
|
136
|
+
sessionType: string;
|
|
137
|
+
llm: ProviderInfo | null;
|
|
138
|
+
stt: ProviderInfo | null;
|
|
139
|
+
tts: ProviderInfo | null;
|
|
140
|
+
voice: string | null;
|
|
141
|
+
language: string;
|
|
142
|
+
greetingEnabled: boolean;
|
|
143
|
+
recordingEnabled: boolean;
|
|
144
|
+
toolCount: number;
|
|
145
|
+
mcpServerCount: number;
|
|
146
|
+
builtinTools: string[];
|
|
147
|
+
}
|
|
148
|
+
interface CallMetrics {
|
|
149
|
+
firstResponseMs: number | null;
|
|
150
|
+
turnCount: number;
|
|
151
|
+
toolCallCount: number;
|
|
152
|
+
toolErrorCount: number;
|
|
153
|
+
bargeInCount: number;
|
|
154
|
+
endReason: string | null;
|
|
155
|
+
errors: Array<{
|
|
156
|
+
type: string;
|
|
157
|
+
message: string;
|
|
158
|
+
}>;
|
|
159
|
+
}
|
|
160
|
+
|
|
131
161
|
/**
|
|
132
162
|
* CallSession represents an active phone call and provides methods to
|
|
133
163
|
* send audio, hang up, and listen for lifecycle events.
|
|
@@ -173,6 +203,8 @@ declare class CallSession {
|
|
|
173
203
|
private _handlers;
|
|
174
204
|
private _endedPromise;
|
|
175
205
|
private _resolveEnded;
|
|
206
|
+
private _metrics;
|
|
207
|
+
private _firstResponseSent;
|
|
176
208
|
constructor(options: {
|
|
177
209
|
callId: string;
|
|
178
210
|
fromNumber: string;
|
|
@@ -184,6 +216,13 @@ declare class CallSession {
|
|
|
184
216
|
setLogger(logger: Logger): void;
|
|
185
217
|
get status(): CallStatus;
|
|
186
218
|
get duration(): number;
|
|
219
|
+
get metrics(): Readonly<CallMetrics>;
|
|
220
|
+
recordFirstResponse(): void;
|
|
221
|
+
recordTurn(): void;
|
|
222
|
+
recordToolCall(): void;
|
|
223
|
+
recordToolError(err: Error): void;
|
|
224
|
+
recordBargeIn(): void;
|
|
225
|
+
recordEndReason(reason: string): void;
|
|
187
226
|
/** Bind transport functions (called internally by the agent). */
|
|
188
227
|
_bindTransport(send: SendAudioFn, clear: ClearAudioFn, hangup: HangupFn, sendDtmf?: SendDtmfFn, isConnected?: () => boolean): void;
|
|
189
228
|
/** Send PCM16 or ulaw audio to the caller. */
|
|
@@ -272,6 +311,8 @@ interface Session {
|
|
|
272
311
|
stop(): Promise<void>;
|
|
273
312
|
/** Set the logger instance for this session. */
|
|
274
313
|
setLogger?(logger: Logger): void;
|
|
314
|
+
/** Return session telemetry for reporting. */
|
|
315
|
+
getTelemetry?(): SessionTelemetry | null;
|
|
275
316
|
}
|
|
276
317
|
/**
|
|
277
318
|
* Speech-to-Text provider interface.
|
|
@@ -431,6 +472,69 @@ declare class ClawOpsAgent {
|
|
|
431
472
|
private _startCallSession;
|
|
432
473
|
}
|
|
433
474
|
|
|
475
|
+
/**
|
|
476
|
+
* Media WebSocket for streaming audio to/from the telephony platform.
|
|
477
|
+
*
|
|
478
|
+
* ClawOps VoiceML Stream protocol:
|
|
479
|
+
* connected -> start -> media (G.711 ulaw 8kHz base64) -> mark -> stop
|
|
480
|
+
*/
|
|
481
|
+
|
|
482
|
+
interface MediaStartEvent {
|
|
483
|
+
streamId: string;
|
|
484
|
+
callId: string;
|
|
485
|
+
accountId: string;
|
|
486
|
+
sampleRate: number;
|
|
487
|
+
}
|
|
488
|
+
interface MediaEvent {
|
|
489
|
+
audio: Buffer;
|
|
490
|
+
timestamp: number;
|
|
491
|
+
}
|
|
492
|
+
interface DtmfEvent {
|
|
493
|
+
digit: string;
|
|
494
|
+
track: string;
|
|
495
|
+
}
|
|
496
|
+
declare class MediaWebSocket {
|
|
497
|
+
private _ws;
|
|
498
|
+
private _audioQueue;
|
|
499
|
+
private _sendLoopRunning;
|
|
500
|
+
private _closed;
|
|
501
|
+
private _onAudio;
|
|
502
|
+
private _onStart;
|
|
503
|
+
private _onClose;
|
|
504
|
+
private _onDtmf;
|
|
505
|
+
private _markWaiters;
|
|
506
|
+
private _log;
|
|
507
|
+
setLogger(logger: Logger): void;
|
|
508
|
+
/** Set the handler for inbound audio data. */
|
|
509
|
+
onAudio(handler: (audio: Buffer, timestamp: number) => void): void;
|
|
510
|
+
/** Set the handler for the start event. */
|
|
511
|
+
onStart(handler: (event: MediaStartEvent) => void): void;
|
|
512
|
+
/** Set the handler for connection close. */
|
|
513
|
+
onClose(handler: () => void): void;
|
|
514
|
+
/** Set the handler for inbound DTMF events. */
|
|
515
|
+
onDtmf(handler: (digit: string) => void): void;
|
|
516
|
+
/** Send a single DTMF digit to the platform. */
|
|
517
|
+
sendDtmf(digit: string): void;
|
|
518
|
+
/** Whether the WebSocket is connected. */
|
|
519
|
+
get isConnected(): boolean;
|
|
520
|
+
/** Connect to a media WebSocket URL with Bearer authentication. */
|
|
521
|
+
connect(url: string, apiKey: string): Promise<void>;
|
|
522
|
+
/** Queue base64-encoded audio for sending. */
|
|
523
|
+
sendAudio(audioBase64: string): void;
|
|
524
|
+
/** Clear all queued outbound audio. */
|
|
525
|
+
sendClear(): void;
|
|
526
|
+
/** Send a mark event. */
|
|
527
|
+
sendMark(name: string): void;
|
|
528
|
+
/** Wait for all queued audio to be sent. */
|
|
529
|
+
flush(): Promise<void>;
|
|
530
|
+
/** Wait for a named mark to be echoed back by the server. */
|
|
531
|
+
waitForMark(name: string, timeoutMs?: number): Promise<void>;
|
|
532
|
+
/** Close the media WebSocket. */
|
|
533
|
+
close(): void;
|
|
534
|
+
private _handleMessage;
|
|
535
|
+
private _startSendLoop;
|
|
536
|
+
}
|
|
537
|
+
|
|
434
538
|
/**
|
|
435
539
|
* Audio codec utilities: PCM16 <-> ulaw conversion and resampling.
|
|
436
540
|
*/
|
|
@@ -521,6 +625,7 @@ declare class PipelineSession implements Session {
|
|
|
521
625
|
setToolRegistry(registry: ToolRegistry): void;
|
|
522
626
|
setRecorder(recorder: AudioRecorder): void;
|
|
523
627
|
setBuiltinTools(tools: Set<BuiltinTool>): void;
|
|
628
|
+
getTelemetry(): SessionTelemetry;
|
|
524
629
|
setLogger(logger: Logger): void;
|
|
525
630
|
start(callSession: CallSession, tools?: ToolRegistry): Promise<void>;
|
|
526
631
|
feedAudio(audio: Buffer): void;
|
|
@@ -575,6 +680,7 @@ declare class OpenAIRealtime implements Session {
|
|
|
575
680
|
private _builtinTools;
|
|
576
681
|
setLogger(logger: Logger): void;
|
|
577
682
|
setBuiltinTools(tools: Set<BuiltinTool>): void;
|
|
683
|
+
getTelemetry(): SessionTelemetry;
|
|
578
684
|
private _ws;
|
|
579
685
|
private _call;
|
|
580
686
|
private _tools;
|
|
@@ -648,6 +754,7 @@ declare class GeminiRealtime implements Session {
|
|
|
648
754
|
setRecorder(recorder: AudioRecorder): void;
|
|
649
755
|
setBuiltinTools(tools: Set<BuiltinTool>): void;
|
|
650
756
|
setLogger(logger: Logger): void;
|
|
757
|
+
getTelemetry(): SessionTelemetry;
|
|
651
758
|
start(callSession: CallSession, tools?: ToolRegistry): Promise<void>;
|
|
652
759
|
feedAudio(audio: Buffer): void;
|
|
653
760
|
feedDtmf(digits: string): Promise<void>;
|
|
@@ -686,6 +793,8 @@ interface DeepgramSTTOptions {
|
|
|
686
793
|
declare class DeepgramSTT implements STT {
|
|
687
794
|
private _options;
|
|
688
795
|
private _log;
|
|
796
|
+
get provider(): string;
|
|
797
|
+
get model(): string;
|
|
689
798
|
setLogger(logger: Logger): void;
|
|
690
799
|
constructor(options?: DeepgramSTTOptions);
|
|
691
800
|
transcribe(audioStream: AsyncIterable<Buffer>, options?: {
|
|
@@ -717,6 +826,9 @@ interface ElevenLabsTTSOptions {
|
|
|
717
826
|
declare class ElevenLabsTTS implements TTS {
|
|
718
827
|
private _options;
|
|
719
828
|
private _log;
|
|
829
|
+
get provider(): string;
|
|
830
|
+
get model(): string;
|
|
831
|
+
get voiceId(): string;
|
|
720
832
|
setLogger(logger: Logger): void;
|
|
721
833
|
constructor(options?: ElevenLabsTTSOptions);
|
|
722
834
|
synthesize(text: string | AsyncIterable<string>, options?: {
|
|
@@ -743,6 +855,8 @@ interface OpenAILLMOptions {
|
|
|
743
855
|
}
|
|
744
856
|
declare class OpenAILLM implements LLM {
|
|
745
857
|
private _options;
|
|
858
|
+
get provider(): string;
|
|
859
|
+
get model(): string;
|
|
746
860
|
constructor(options?: OpenAILLMOptions);
|
|
747
861
|
generate(messages: ConversationMessage[], options?: {
|
|
748
862
|
tools?: ToolRegistry;
|
|
@@ -767,6 +881,8 @@ interface AnthropicLLMOptions {
|
|
|
767
881
|
}
|
|
768
882
|
declare class AnthropicLLM implements LLM {
|
|
769
883
|
private _options;
|
|
884
|
+
get provider(): string;
|
|
885
|
+
get model(): string;
|
|
770
886
|
constructor(options?: AnthropicLLMOptions);
|
|
771
887
|
generate(messages: ConversationMessage[], options?: {
|
|
772
888
|
tools?: ToolRegistry;
|
|
@@ -791,6 +907,8 @@ interface GeminiLLMOptions {
|
|
|
791
907
|
}
|
|
792
908
|
declare class GeminiLLM implements LLM {
|
|
793
909
|
private _options;
|
|
910
|
+
get provider(): string;
|
|
911
|
+
get model(): string;
|
|
794
912
|
constructor(options?: GeminiLLMOptions);
|
|
795
913
|
generate(messages: ConversationMessage[], options?: {
|
|
796
914
|
tools?: ToolRegistry;
|
|
@@ -819,6 +937,8 @@ interface OpenAICompatLLMOptions {
|
|
|
819
937
|
}
|
|
820
938
|
declare class OpenAICompatLLM implements LLM {
|
|
821
939
|
private _options;
|
|
940
|
+
get provider(): string;
|
|
941
|
+
get model(): string;
|
|
822
942
|
constructor(options: OpenAICompatLLMOptions);
|
|
823
943
|
generate(messages: ConversationMessage[], options?: {
|
|
824
944
|
tools?: ToolRegistry;
|
|
@@ -844,6 +964,8 @@ interface OllamaLLMOptions {
|
|
|
844
964
|
}
|
|
845
965
|
declare class OllamaLLM implements LLM {
|
|
846
966
|
private _inner;
|
|
967
|
+
get provider(): string;
|
|
968
|
+
get model(): string;
|
|
847
969
|
constructor(options?: OllamaLLMOptions);
|
|
848
970
|
generate(messages: ConversationMessage[], options?: {
|
|
849
971
|
tools?: ToolRegistry;
|
|
@@ -860,6 +982,8 @@ interface MistralLLMOptions {
|
|
|
860
982
|
}
|
|
861
983
|
declare class MistralLLM implements LLM {
|
|
862
984
|
private _inner;
|
|
985
|
+
get provider(): string;
|
|
986
|
+
get model(): string;
|
|
863
987
|
constructor(options?: MistralLLMOptions);
|
|
864
988
|
generate(messages: ConversationMessage[], options?: {
|
|
865
989
|
tools?: ToolRegistry;
|
|
@@ -876,6 +1000,8 @@ interface GroqLLMOptions {
|
|
|
876
1000
|
}
|
|
877
1001
|
declare class GroqLLM implements LLM {
|
|
878
1002
|
private _inner;
|
|
1003
|
+
get provider(): string;
|
|
1004
|
+
get model(): string;
|
|
879
1005
|
constructor(options?: GroqLLMOptions);
|
|
880
1006
|
generate(messages: ConversationMessage[], options?: {
|
|
881
1007
|
tools?: ToolRegistry;
|
|
@@ -892,6 +1018,8 @@ interface PerplexityLLMOptions {
|
|
|
892
1018
|
}
|
|
893
1019
|
declare class PerplexityLLM implements LLM {
|
|
894
1020
|
private _inner;
|
|
1021
|
+
get provider(): string;
|
|
1022
|
+
get model(): string;
|
|
895
1023
|
constructor(options?: PerplexityLLMOptions);
|
|
896
1024
|
generate(messages: ConversationMessage[], options?: {
|
|
897
1025
|
tools?: ToolRegistry;
|
|
@@ -908,6 +1036,8 @@ interface TogetherLLMOptions {
|
|
|
908
1036
|
}
|
|
909
1037
|
declare class TogetherLLM implements LLM {
|
|
910
1038
|
private _inner;
|
|
1039
|
+
get provider(): string;
|
|
1040
|
+
get model(): string;
|
|
911
1041
|
constructor(options?: TogetherLLMOptions);
|
|
912
1042
|
generate(messages: ConversationMessage[], options?: {
|
|
913
1043
|
tools?: ToolRegistry;
|
|
@@ -924,6 +1054,8 @@ interface FireworksLLMOptions {
|
|
|
924
1054
|
}
|
|
925
1055
|
declare class FireworksLLM implements LLM {
|
|
926
1056
|
private _inner;
|
|
1057
|
+
get provider(): string;
|
|
1058
|
+
get model(): string;
|
|
927
1059
|
constructor(options?: FireworksLLMOptions);
|
|
928
1060
|
generate(messages: ConversationMessage[], options?: {
|
|
929
1061
|
tools?: ToolRegistry;
|
|
@@ -940,6 +1072,8 @@ interface DeepSeekLLMOptions {
|
|
|
940
1072
|
}
|
|
941
1073
|
declare class DeepSeekLLM implements LLM {
|
|
942
1074
|
private _inner;
|
|
1075
|
+
get provider(): string;
|
|
1076
|
+
get model(): string;
|
|
943
1077
|
constructor(options?: DeepSeekLLMOptions);
|
|
944
1078
|
generate(messages: ConversationMessage[], options?: {
|
|
945
1079
|
tools?: ToolRegistry;
|
|
@@ -956,6 +1090,8 @@ interface XaiLLMOptions {
|
|
|
956
1090
|
}
|
|
957
1091
|
declare class XaiLLM implements LLM {
|
|
958
1092
|
private _inner;
|
|
1093
|
+
get provider(): string;
|
|
1094
|
+
get model(): string;
|
|
959
1095
|
constructor(options?: XaiLLMOptions);
|
|
960
1096
|
generate(messages: ConversationMessage[], options?: {
|
|
961
1097
|
tools?: ToolRegistry;
|
|
@@ -1004,4 +1140,4 @@ declare function createAgentLogger(userLogger?: Logger): Logger;
|
|
|
1004
1140
|
*/
|
|
1005
1141
|
declare function createPipelineLogger(parent: Logger): Logger;
|
|
1006
1142
|
|
|
1007
|
-
export { type AgentEventType, AnthropicLLM, type AnthropicLLMOptions, AudioRecorder, BUILTIN_TOOL_NAMES, BuiltinTool, type CallDirection, CallSession, type CallStatus, ClawOpsAgent, type ClawOpsAgentOptions, type ConversationMessage, DECODE_TABLE, DeepSeekLLM, type DeepSeekLLMOptions, DeepgramSTT, type DeepgramSTTOptions, ElevenLabsTTS, type ElevenLabsTTSOptions, FireworksLLM, type FireworksLLMOptions, type FunctionTool, GeminiLLM, type GeminiLLMOptions, GeminiRealtime, type GeminiRealtimeOptions, GroqLLM, type GroqLLMOptions, type LLM, type LLMChunk, MCPClient, type MCPServerConfig, type MCPServerHTTP, type MCPServerStdio, MistralLLM, type MistralLLMOptions, OllamaLLM, type OllamaLLMOptions, OpenAICompatLLM, type OpenAICompatLLMOptions, OpenAILLM, type OpenAILLMOptions, OpenAIRealtime, type OpenAIRealtimeOptions, type OpenAIToolDefinition, PerplexityLLM, type PerplexityLLMOptions, PipelineSession, type PipelineSessionOptions, type STT, type Session, type SpeechEvent, type TTS, TogetherLLM, type TogetherLLMOptions, type ToolCallRequest, ToolRegistry, type TracingConfig, XaiLLM, type XaiLLMOptions, createAgentLogger, createPipelineLogger, executeBuiltinTool, functionTool, getBuiltinToolSchemas, getTracingConfig, isBuiltinTool, mcpServerHTTP, mcpServerStdio, pcm16ToUlaw, resamplePcm16, resetTracingConfig, setTracingConfig, ulawToPcm16, zodToToolParams };
|
|
1143
|
+
export { type AgentEventType, AnthropicLLM, type AnthropicLLMOptions, AudioRecorder, BUILTIN_TOOL_NAMES, BuiltinTool, type CallDirection, CallSession, type CallStatus, ClawOpsAgent, type ClawOpsAgentOptions, type ConversationMessage, DECODE_TABLE, DeepSeekLLM, type DeepSeekLLMOptions, DeepgramSTT, type DeepgramSTTOptions, type DtmfEvent, ElevenLabsTTS, type ElevenLabsTTSOptions, FireworksLLM, type FireworksLLMOptions, type FunctionTool, GeminiLLM, type GeminiLLMOptions, GeminiRealtime, type GeminiRealtimeOptions, GroqLLM, type GroqLLMOptions, type LLM, type LLMChunk, MCPClient, type MCPServerConfig, type MCPServerHTTP, type MCPServerStdio, type MediaEvent, type MediaStartEvent, MediaWebSocket, MistralLLM, type MistralLLMOptions, OllamaLLM, type OllamaLLMOptions, OpenAICompatLLM, type OpenAICompatLLMOptions, OpenAILLM, type OpenAILLMOptions, OpenAIRealtime, type OpenAIRealtimeOptions, type OpenAIToolDefinition, PerplexityLLM, type PerplexityLLMOptions, PipelineSession, type PipelineSessionOptions, type STT, type Session, type SpeechEvent, type TTS, TogetherLLM, type TogetherLLMOptions, type ToolCallRequest, ToolRegistry, type TracingConfig, XaiLLM, type XaiLLMOptions, createAgentLogger, createPipelineLogger, executeBuiltinTool, functionTool, getBuiltinToolSchemas, getTracingConfig, isBuiltinTool, mcpServerHTTP, mcpServerStdio, pcm16ToUlaw, resamplePcm16, resetTracingConfig, setTracingConfig, ulawToPcm16, zodToToolParams };
|