@teamlearners/clawops 0.5.8 → 0.6.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.
@@ -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.
@@ -521,6 +562,7 @@ declare class PipelineSession implements Session {
521
562
  setToolRegistry(registry: ToolRegistry): void;
522
563
  setRecorder(recorder: AudioRecorder): void;
523
564
  setBuiltinTools(tools: Set<BuiltinTool>): void;
565
+ getTelemetry(): SessionTelemetry;
524
566
  setLogger(logger: Logger): void;
525
567
  start(callSession: CallSession, tools?: ToolRegistry): Promise<void>;
526
568
  feedAudio(audio: Buffer): void;
@@ -575,6 +617,7 @@ declare class OpenAIRealtime implements Session {
575
617
  private _builtinTools;
576
618
  setLogger(logger: Logger): void;
577
619
  setBuiltinTools(tools: Set<BuiltinTool>): void;
620
+ getTelemetry(): SessionTelemetry;
578
621
  private _ws;
579
622
  private _call;
580
623
  private _tools;
@@ -648,6 +691,7 @@ declare class GeminiRealtime implements Session {
648
691
  setRecorder(recorder: AudioRecorder): void;
649
692
  setBuiltinTools(tools: Set<BuiltinTool>): void;
650
693
  setLogger(logger: Logger): void;
694
+ getTelemetry(): SessionTelemetry;
651
695
  start(callSession: CallSession, tools?: ToolRegistry): Promise<void>;
652
696
  feedAudio(audio: Buffer): void;
653
697
  feedDtmf(digits: string): Promise<void>;
@@ -686,6 +730,8 @@ interface DeepgramSTTOptions {
686
730
  declare class DeepgramSTT implements STT {
687
731
  private _options;
688
732
  private _log;
733
+ get provider(): string;
734
+ get model(): string;
689
735
  setLogger(logger: Logger): void;
690
736
  constructor(options?: DeepgramSTTOptions);
691
737
  transcribe(audioStream: AsyncIterable<Buffer>, options?: {
@@ -717,6 +763,9 @@ interface ElevenLabsTTSOptions {
717
763
  declare class ElevenLabsTTS implements TTS {
718
764
  private _options;
719
765
  private _log;
766
+ get provider(): string;
767
+ get model(): string;
768
+ get voiceId(): string;
720
769
  setLogger(logger: Logger): void;
721
770
  constructor(options?: ElevenLabsTTSOptions);
722
771
  synthesize(text: string | AsyncIterable<string>, options?: {
@@ -743,6 +792,8 @@ interface OpenAILLMOptions {
743
792
  }
744
793
  declare class OpenAILLM implements LLM {
745
794
  private _options;
795
+ get provider(): string;
796
+ get model(): string;
746
797
  constructor(options?: OpenAILLMOptions);
747
798
  generate(messages: ConversationMessage[], options?: {
748
799
  tools?: ToolRegistry;
@@ -767,6 +818,8 @@ interface AnthropicLLMOptions {
767
818
  }
768
819
  declare class AnthropicLLM implements LLM {
769
820
  private _options;
821
+ get provider(): string;
822
+ get model(): string;
770
823
  constructor(options?: AnthropicLLMOptions);
771
824
  generate(messages: ConversationMessage[], options?: {
772
825
  tools?: ToolRegistry;
@@ -791,6 +844,8 @@ interface GeminiLLMOptions {
791
844
  }
792
845
  declare class GeminiLLM implements LLM {
793
846
  private _options;
847
+ get provider(): string;
848
+ get model(): string;
794
849
  constructor(options?: GeminiLLMOptions);
795
850
  generate(messages: ConversationMessage[], options?: {
796
851
  tools?: ToolRegistry;
@@ -819,6 +874,8 @@ interface OpenAICompatLLMOptions {
819
874
  }
820
875
  declare class OpenAICompatLLM implements LLM {
821
876
  private _options;
877
+ get provider(): string;
878
+ get model(): string;
822
879
  constructor(options: OpenAICompatLLMOptions);
823
880
  generate(messages: ConversationMessage[], options?: {
824
881
  tools?: ToolRegistry;
@@ -844,6 +901,8 @@ interface OllamaLLMOptions {
844
901
  }
845
902
  declare class OllamaLLM implements LLM {
846
903
  private _inner;
904
+ get provider(): string;
905
+ get model(): string;
847
906
  constructor(options?: OllamaLLMOptions);
848
907
  generate(messages: ConversationMessage[], options?: {
849
908
  tools?: ToolRegistry;
@@ -860,6 +919,8 @@ interface MistralLLMOptions {
860
919
  }
861
920
  declare class MistralLLM implements LLM {
862
921
  private _inner;
922
+ get provider(): string;
923
+ get model(): string;
863
924
  constructor(options?: MistralLLMOptions);
864
925
  generate(messages: ConversationMessage[], options?: {
865
926
  tools?: ToolRegistry;
@@ -876,6 +937,8 @@ interface GroqLLMOptions {
876
937
  }
877
938
  declare class GroqLLM implements LLM {
878
939
  private _inner;
940
+ get provider(): string;
941
+ get model(): string;
879
942
  constructor(options?: GroqLLMOptions);
880
943
  generate(messages: ConversationMessage[], options?: {
881
944
  tools?: ToolRegistry;
@@ -892,6 +955,8 @@ interface PerplexityLLMOptions {
892
955
  }
893
956
  declare class PerplexityLLM implements LLM {
894
957
  private _inner;
958
+ get provider(): string;
959
+ get model(): string;
895
960
  constructor(options?: PerplexityLLMOptions);
896
961
  generate(messages: ConversationMessage[], options?: {
897
962
  tools?: ToolRegistry;
@@ -908,6 +973,8 @@ interface TogetherLLMOptions {
908
973
  }
909
974
  declare class TogetherLLM implements LLM {
910
975
  private _inner;
976
+ get provider(): string;
977
+ get model(): string;
911
978
  constructor(options?: TogetherLLMOptions);
912
979
  generate(messages: ConversationMessage[], options?: {
913
980
  tools?: ToolRegistry;
@@ -924,6 +991,8 @@ interface FireworksLLMOptions {
924
991
  }
925
992
  declare class FireworksLLM implements LLM {
926
993
  private _inner;
994
+ get provider(): string;
995
+ get model(): string;
927
996
  constructor(options?: FireworksLLMOptions);
928
997
  generate(messages: ConversationMessage[], options?: {
929
998
  tools?: ToolRegistry;
@@ -940,6 +1009,8 @@ interface DeepSeekLLMOptions {
940
1009
  }
941
1010
  declare class DeepSeekLLM implements LLM {
942
1011
  private _inner;
1012
+ get provider(): string;
1013
+ get model(): string;
943
1014
  constructor(options?: DeepSeekLLMOptions);
944
1015
  generate(messages: ConversationMessage[], options?: {
945
1016
  tools?: ToolRegistry;
@@ -956,6 +1027,8 @@ interface XaiLLMOptions {
956
1027
  }
957
1028
  declare class XaiLLM implements LLM {
958
1029
  private _inner;
1030
+ get provider(): string;
1031
+ get model(): string;
959
1032
  constructor(options?: XaiLLMOptions);
960
1033
  generate(messages: ConversationMessage[], options?: {
961
1034
  tools?: ToolRegistry;
@@ -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.
@@ -521,6 +562,7 @@ declare class PipelineSession implements Session {
521
562
  setToolRegistry(registry: ToolRegistry): void;
522
563
  setRecorder(recorder: AudioRecorder): void;
523
564
  setBuiltinTools(tools: Set<BuiltinTool>): void;
565
+ getTelemetry(): SessionTelemetry;
524
566
  setLogger(logger: Logger): void;
525
567
  start(callSession: CallSession, tools?: ToolRegistry): Promise<void>;
526
568
  feedAudio(audio: Buffer): void;
@@ -575,6 +617,7 @@ declare class OpenAIRealtime implements Session {
575
617
  private _builtinTools;
576
618
  setLogger(logger: Logger): void;
577
619
  setBuiltinTools(tools: Set<BuiltinTool>): void;
620
+ getTelemetry(): SessionTelemetry;
578
621
  private _ws;
579
622
  private _call;
580
623
  private _tools;
@@ -648,6 +691,7 @@ declare class GeminiRealtime implements Session {
648
691
  setRecorder(recorder: AudioRecorder): void;
649
692
  setBuiltinTools(tools: Set<BuiltinTool>): void;
650
693
  setLogger(logger: Logger): void;
694
+ getTelemetry(): SessionTelemetry;
651
695
  start(callSession: CallSession, tools?: ToolRegistry): Promise<void>;
652
696
  feedAudio(audio: Buffer): void;
653
697
  feedDtmf(digits: string): Promise<void>;
@@ -686,6 +730,8 @@ interface DeepgramSTTOptions {
686
730
  declare class DeepgramSTT implements STT {
687
731
  private _options;
688
732
  private _log;
733
+ get provider(): string;
734
+ get model(): string;
689
735
  setLogger(logger: Logger): void;
690
736
  constructor(options?: DeepgramSTTOptions);
691
737
  transcribe(audioStream: AsyncIterable<Buffer>, options?: {
@@ -717,6 +763,9 @@ interface ElevenLabsTTSOptions {
717
763
  declare class ElevenLabsTTS implements TTS {
718
764
  private _options;
719
765
  private _log;
766
+ get provider(): string;
767
+ get model(): string;
768
+ get voiceId(): string;
720
769
  setLogger(logger: Logger): void;
721
770
  constructor(options?: ElevenLabsTTSOptions);
722
771
  synthesize(text: string | AsyncIterable<string>, options?: {
@@ -743,6 +792,8 @@ interface OpenAILLMOptions {
743
792
  }
744
793
  declare class OpenAILLM implements LLM {
745
794
  private _options;
795
+ get provider(): string;
796
+ get model(): string;
746
797
  constructor(options?: OpenAILLMOptions);
747
798
  generate(messages: ConversationMessage[], options?: {
748
799
  tools?: ToolRegistry;
@@ -767,6 +818,8 @@ interface AnthropicLLMOptions {
767
818
  }
768
819
  declare class AnthropicLLM implements LLM {
769
820
  private _options;
821
+ get provider(): string;
822
+ get model(): string;
770
823
  constructor(options?: AnthropicLLMOptions);
771
824
  generate(messages: ConversationMessage[], options?: {
772
825
  tools?: ToolRegistry;
@@ -791,6 +844,8 @@ interface GeminiLLMOptions {
791
844
  }
792
845
  declare class GeminiLLM implements LLM {
793
846
  private _options;
847
+ get provider(): string;
848
+ get model(): string;
794
849
  constructor(options?: GeminiLLMOptions);
795
850
  generate(messages: ConversationMessage[], options?: {
796
851
  tools?: ToolRegistry;
@@ -819,6 +874,8 @@ interface OpenAICompatLLMOptions {
819
874
  }
820
875
  declare class OpenAICompatLLM implements LLM {
821
876
  private _options;
877
+ get provider(): string;
878
+ get model(): string;
822
879
  constructor(options: OpenAICompatLLMOptions);
823
880
  generate(messages: ConversationMessage[], options?: {
824
881
  tools?: ToolRegistry;
@@ -844,6 +901,8 @@ interface OllamaLLMOptions {
844
901
  }
845
902
  declare class OllamaLLM implements LLM {
846
903
  private _inner;
904
+ get provider(): string;
905
+ get model(): string;
847
906
  constructor(options?: OllamaLLMOptions);
848
907
  generate(messages: ConversationMessage[], options?: {
849
908
  tools?: ToolRegistry;
@@ -860,6 +919,8 @@ interface MistralLLMOptions {
860
919
  }
861
920
  declare class MistralLLM implements LLM {
862
921
  private _inner;
922
+ get provider(): string;
923
+ get model(): string;
863
924
  constructor(options?: MistralLLMOptions);
864
925
  generate(messages: ConversationMessage[], options?: {
865
926
  tools?: ToolRegistry;
@@ -876,6 +937,8 @@ interface GroqLLMOptions {
876
937
  }
877
938
  declare class GroqLLM implements LLM {
878
939
  private _inner;
940
+ get provider(): string;
941
+ get model(): string;
879
942
  constructor(options?: GroqLLMOptions);
880
943
  generate(messages: ConversationMessage[], options?: {
881
944
  tools?: ToolRegistry;
@@ -892,6 +955,8 @@ interface PerplexityLLMOptions {
892
955
  }
893
956
  declare class PerplexityLLM implements LLM {
894
957
  private _inner;
958
+ get provider(): string;
959
+ get model(): string;
895
960
  constructor(options?: PerplexityLLMOptions);
896
961
  generate(messages: ConversationMessage[], options?: {
897
962
  tools?: ToolRegistry;
@@ -908,6 +973,8 @@ interface TogetherLLMOptions {
908
973
  }
909
974
  declare class TogetherLLM implements LLM {
910
975
  private _inner;
976
+ get provider(): string;
977
+ get model(): string;
911
978
  constructor(options?: TogetherLLMOptions);
912
979
  generate(messages: ConversationMessage[], options?: {
913
980
  tools?: ToolRegistry;
@@ -924,6 +991,8 @@ interface FireworksLLMOptions {
924
991
  }
925
992
  declare class FireworksLLM implements LLM {
926
993
  private _inner;
994
+ get provider(): string;
995
+ get model(): string;
927
996
  constructor(options?: FireworksLLMOptions);
928
997
  generate(messages: ConversationMessage[], options?: {
929
998
  tools?: ToolRegistry;
@@ -940,6 +1009,8 @@ interface DeepSeekLLMOptions {
940
1009
  }
941
1010
  declare class DeepSeekLLM implements LLM {
942
1011
  private _inner;
1012
+ get provider(): string;
1013
+ get model(): string;
943
1014
  constructor(options?: DeepSeekLLMOptions);
944
1015
  generate(messages: ConversationMessage[], options?: {
945
1016
  tools?: ToolRegistry;
@@ -956,6 +1027,8 @@ interface XaiLLMOptions {
956
1027
  }
957
1028
  declare class XaiLLM implements LLM {
958
1029
  private _inner;
1030
+ get provider(): string;
1031
+ get model(): string;
959
1032
  constructor(options?: XaiLLMOptions);
960
1033
  generate(messages: ConversationMessage[], options?: {
961
1034
  tools?: ToolRegistry;