@hivegpt/hiveai-angular 0.0.585 → 0.0.586

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.
Files changed (28) hide show
  1. package/bundles/hivegpt-hiveai-angular.umd.js +653 -251
  2. package/bundles/hivegpt-hiveai-angular.umd.js.map +1 -1
  3. package/bundles/hivegpt-hiveai-angular.umd.min.js +1 -1
  4. package/bundles/hivegpt-hiveai-angular.umd.min.js.map +1 -1
  5. package/esm2015/hivegpt-hiveai-angular.js +6 -4
  6. package/esm2015/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.js +24 -17
  7. package/esm2015/lib/components/voice-agent/services/audio-analyzer.service.js +3 -3
  8. package/esm2015/lib/components/voice-agent/services/daily-voice-client.service.js +312 -0
  9. package/esm2015/lib/components/voice-agent/services/voice-agent.service.js +155 -189
  10. package/esm2015/lib/components/voice-agent/services/websocket-voice-client.service.js +95 -0
  11. package/esm2015/lib/components/voice-agent/voice-agent.module.js +7 -3
  12. package/fesm2015/hivegpt-hiveai-angular.js +578 -207
  13. package/fesm2015/hivegpt-hiveai-angular.js.map +1 -1
  14. package/hivegpt-hiveai-angular.d.ts +5 -3
  15. package/hivegpt-hiveai-angular.d.ts.map +1 -1
  16. package/hivegpt-hiveai-angular.metadata.json +1 -1
  17. package/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.d.ts +4 -7
  18. package/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.d.ts.map +1 -1
  19. package/lib/components/voice-agent/services/audio-analyzer.service.d.ts +2 -2
  20. package/lib/components/voice-agent/services/daily-voice-client.service.d.ts +65 -0
  21. package/lib/components/voice-agent/services/daily-voice-client.service.d.ts.map +1 -0
  22. package/lib/components/voice-agent/services/voice-agent.service.d.ts +17 -23
  23. package/lib/components/voice-agent/services/voice-agent.service.d.ts.map +1 -1
  24. package/lib/components/voice-agent/services/websocket-voice-client.service.d.ts +49 -0
  25. package/lib/components/voice-agent/services/websocket-voice-client.service.d.ts.map +1 -0
  26. package/lib/components/voice-agent/voice-agent.module.d.ts +2 -2
  27. package/lib/components/voice-agent/voice-agent.module.d.ts.map +1 -1
  28. package/package.json +1 -1
@@ -30,12 +30,9 @@ export declare class VoiceAgentModalComponent implements OnInit, OnDestroy {
30
30
  isMicMuted: boolean;
31
31
  isUserSpeaking: boolean;
32
32
  audioLevels: number[];
33
- /** True while the bot is speaking — drives avatar pulse animation and voice visualizer. */
34
- get isBotTalking(): boolean;
35
- /** True while the user is actively speaking — drives waveform active color. */
36
- get isUserActive(): boolean;
37
- /** True during the brief processing pause between user speech and bot response. */
38
- get isProcessing(): boolean;
33
+ isSpeaking: boolean;
34
+ /** Track whether call has transitioned out of initial connected state. */
35
+ private hasLeftConnectedOnce;
39
36
  private subscriptions;
40
37
  ngOnInit(): void;
41
38
  ngOnDestroy(): void;
@@ -49,7 +46,7 @@ export declare class VoiceAgentModalComponent implements OnInit, OnDestroy {
49
46
  * as tiny dots — matching the audio-waveform reference design.
50
47
  */
51
48
  getWaveformHeight(level: number, index: number): number;
52
- /** Status label for active call — driven by callState + service statusText. */
49
+ /** Status label for active call. */
53
50
  get statusLabel(): string;
54
51
  /** Call Again: reset to idle then start a new call. */
55
52
  callAgain(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"voice-agent-modal.component.d.ts","sourceRoot":"/Users/rohitthakur/hive-gpt/HiveAI-Packages/Angular/projects/hivegpt/eventsgpt-angular/src/","sources":["lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAU,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpG,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAG7E,qBAKa,wBAAyB,YAAW,MAAM,EAAE,SAAS;IAoBvD,iBAAiB,EAAE,iBAAiB;IACpC,aAAa,EAAE,oBAAoB;IAC1C,OAAO,CAAC,QAAQ;IArBR,KAAK,qBAA4B;IAClC,MAAM,EAAG,MAAM,CAAC;IAChB,KAAK,EAAG,MAAM,CAAC;IACf,KAAK,EAAG,MAAM,CAAC;IACf,cAAc,EAAG,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAM;IACpB,UAAU,EAAE,MAAM,CAAM;IACxB,OAAO,EAAE,MAAM,CAAM;IACrB,QAAQ,EAAE,MAAM,CAAM;IACtB,eAAe,EAAE,MAAM,CAAe;IACtC,SAAS,EAAE,MAAM,CAAkB;IACnC,SAAS,EAAE,MAAM,CAAyB;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAM;IAElC,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,eAAe,CAA6B;gBAG3C,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,oBAAoB,EAClC,QAAQ,EAAE,QAAQ;IAG5B,0CAA0C;IAC1C,QAAQ,CAAC,gBAAgB,2GAA2G;IAEpI,SAAS,EAAE,SAAS,CAAU;IAC9B,UAAU,EAAE,MAAM,CAAM;IACxB,QAAQ,EAAE,MAAM,CAAW;IAC3B,UAAU,EAAE,OAAO,CAAS;IAC5B,cAAc,EAAE,OAAO,CAAS;IAChC,WAAW,EAAE,MAAM,EAAE,CAAM;IAE3B,2FAA2F;IAC3F,IAAI,YAAY,IAAI,OAAO,CAAyC;IAEpE,+EAA+E;IAC/E,IAAI,YAAY,IAAI,OAAO,CAAsF;IAEjH,mFAAmF;IACnF,IAAI,YAAY,IAAI,OAAO,CAAkF;IAE7G,OAAO,CAAC,aAAa,CAAsB;IAE3C,QAAQ,IAAI,IAAI;IA6DhB,WAAW,IAAI,IAAI;IAKnB,YAAY,EAAE,OAAO,CAAS;IAExB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,SAAS,IAAI,IAAI;IAIjB;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAYvD,+EAA+E;IAC/E,IAAI,WAAW,IAAI,MAAM,CASxB;IAED,uDAAuD;IACvD,SAAS,IAAI,IAAI;IAKjB,gDAAgD;IAChD,UAAU,IAAI,IAAI;IAIlB,mFAAmF;IACnF,MAAM,IAAI,IAAI;IAId,OAAO,IAAI,IAAI;CAKhB"}
1
+ {"version":3,"file":"voice-agent-modal.component.d.ts","sourceRoot":"/Users/rohitthakur/hive-gpt/HiveAI-Packages/Angular/projects/hivegpt/eventsgpt-angular/src/","sources":["lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAU,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpG,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAG7E,qBAKa,wBAAyB,YAAW,MAAM,EAAE,SAAS;IAoBvD,iBAAiB,EAAE,iBAAiB;IACpC,aAAa,EAAE,oBAAoB;IAC1C,OAAO,CAAC,QAAQ;IArBR,KAAK,qBAA4B;IAClC,MAAM,EAAG,MAAM,CAAC;IAChB,KAAK,EAAG,MAAM,CAAC;IACf,KAAK,EAAG,MAAM,CAAC;IACf,cAAc,EAAG,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAM;IACpB,UAAU,EAAE,MAAM,CAAM;IACxB,OAAO,EAAE,MAAM,CAAM;IACrB,QAAQ,EAAE,MAAM,CAAM;IACtB,eAAe,EAAE,MAAM,CAAe;IACtC,SAAS,EAAE,MAAM,CAAkB;IACnC,SAAS,EAAE,MAAM,CAAyB;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAM;IAElC,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,eAAe,CAA6B;gBAG3C,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,oBAAoB,EAClC,QAAQ,EAAE,QAAQ;IAG5B,0CAA0C;IAC1C,QAAQ,CAAC,gBAAgB,2GAA2G;IAEpI,SAAS,EAAE,SAAS,CAAU;IAC9B,UAAU,EAAE,MAAM,CAAM;IACxB,QAAQ,EAAE,MAAM,CAAW;IAC3B,UAAU,EAAE,OAAO,CAAS;IAC5B,cAAc,EAAE,OAAO,CAAS;IAChC,WAAW,EAAE,MAAM,EAAE,CAAM;IAC3B,UAAU,EAAE,OAAO,CAAS;IAE5B,0EAA0E;IAC1E,OAAO,CAAC,oBAAoB,CAAkB;IAE9C,OAAO,CAAC,aAAa,CAAsB;IAE3C,QAAQ,IAAI,IAAI;IAqEhB,WAAW,IAAI,IAAI;IAKnB,YAAY,EAAE,OAAO,CAAS;IAExB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,SAAS,IAAI,IAAI;IAIjB;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAYvD,oCAAoC;IACpC,IAAI,WAAW,IAAI,MAAM,CAQxB;IAED,uDAAuD;IACvD,SAAS,IAAI,IAAI;IAKjB,gDAAgD;IAChD,UAAU,IAAI,IAAI;IAIlB,mFAAmF;IACnF,MAAM,IAAI,IAAI;IAId,OAAO,IAAI,IAAI;CAKhB"}
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  /**
3
- * Audio analyzer for waveform visualization and local (mic) speaking detection.
4
- * VoiceAgentService may combine this with WebSocket server events for call state.
3
+ * Audio analyzer for waveform visualization only.
4
+ * Do NOT use isUserSpeaking$ for call state; speaking state must come from Daily.js.
5
5
  */
6
6
  export declare class AudioAnalyzerService {
7
7
  private audioContext;
@@ -0,0 +1,65 @@
1
+ import { NgZone } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ /**
4
+ * Daily.js WebRTC client for voice agent audio.
5
+ * Responsibilities:
6
+ * - Create and manage Daily CallObject
7
+ * - Join Daily room using room_url
8
+ * - Handle mic capture + speaker playback
9
+ * - Bot speaking detection via AnalyserNode on remote track (instant)
10
+ * - User speaking detection via active-speaker-change
11
+ * - Expose speaking$ (bot speaking), userSpeaking$ (user speaking), micMuted$
12
+ * - Expose localStream$ for waveform visualization (AudioAnalyzerService)
13
+ */
14
+ export declare class DailyVoiceClientService {
15
+ private ngZone;
16
+ private callObject;
17
+ private localStream;
18
+ private localSessionId;
19
+ /** Explicit playback of remote (bot) audio; required in some browsers. */
20
+ private remoteAudioElement;
21
+ /** AnalyserNode-based remote audio monitor for instant bot speaking detection. */
22
+ private remoteAudioContext;
23
+ private remoteSpeakingRAF;
24
+ private speakingSubject;
25
+ private userSpeakingSubject;
26
+ private micMutedSubject;
27
+ private localStreamSubject;
28
+ private firstRemoteAudioFrameSubject;
29
+ /** True when bot (remote participant) is the active speaker. */
30
+ speaking$: Observable<boolean>;
31
+ /** True when user (local participant) is the active speaker. */
32
+ userSpeaking$: Observable<boolean>;
33
+ /** True when mic is muted. */
34
+ micMuted$: Observable<boolean>;
35
+ /** Emits local mic stream for waveform visualization. */
36
+ localStream$: Observable<MediaStream | null>;
37
+ /** Emits true once when first remote audio frame starts playing. */
38
+ firstRemoteAudioFrame$: Observable<boolean>;
39
+ constructor(ngZone: NgZone);
40
+ /**
41
+ * Connect to Daily room. Acquires mic first for waveform, then joins with audio.
42
+ * @param roomUrl Daily room URL (from room_created)
43
+ * @param token Optional meeting token
44
+ */
45
+ connect(roomUrl: string, token?: string): Promise<void>;
46
+ private setupEventHandlers;
47
+ /**
48
+ * Play remote (bot) audio track via a dedicated audio element.
49
+ * Required in many browsers where Daily's internal playback does not output to speakers.
50
+ */
51
+ private playRemoteTrack;
52
+ /**
53
+ * Monitor remote audio track energy via AnalyserNode.
54
+ * Polls at ~60fps and flips speakingSubject based on actual audio energy.
55
+ */
56
+ private monitorRemoteAudio;
57
+ private stopRemoteAudioMonitor;
58
+ private stopRemoteAudio;
59
+ /** Set mic muted state. */
60
+ setMuted(muted: boolean): void;
61
+ /** Disconnect and cleanup. */
62
+ disconnect(): Promise<void>;
63
+ private cleanup;
64
+ }
65
+ //# sourceMappingURL=daily-voice-client.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daily-voice-client.service.d.ts","sourceRoot":"/Users/rohitthakur/hive-gpt/HiveAI-Packages/Angular/projects/hivegpt/eventsgpt-angular/src/","sources":["lib/components/voice-agent/services/daily-voice-client.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAmB,UAAU,EAAE,MAAM,MAAM,CAAC;AAInD;;;;;;;;;;GAUG;AACH,qBAGa,uBAAuB;IAkCtB,OAAO,CAAC,MAAM;IAjC1B,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,cAAc,CAAuB;IAC7C,0EAA0E;IAC1E,OAAO,CAAC,kBAAkB,CAAiC;IAE3D,kFAAkF;IAClF,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,mBAAmB,CAAuC;IAClE,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,kBAAkB,CAAiD;IAC3E,OAAO,CAAC,4BAA4B,CAAuC;IAE3E,gEAAgE;IAChE,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAuC;IAErE,gEAAgE;IAChE,aAAa,EAAE,UAAU,CAAC,OAAO,CAAC,CAA2C;IAE7E,8BAA8B;IAC9B,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAuC;IAErE,yDAAyD;IACzD,YAAY,EAAE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CACH;IAEzC,oEAAoE;IACpE,sBAAsB,EAAE,UAAU,CAAC,OAAO,CAAC,CACQ;gBAE/B,MAAM,EAAE,MAAM;IAElC;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmD7D,OAAO,CAAC,kBAAkB;IAuD1B;;;OAGG;IACH,OAAO,CAAC,eAAe;IA0CvB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAoD1B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,eAAe;IAUvB,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAM9B,8BAA8B;IACxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC,OAAO,CAAC,OAAO;CAkBhB"}
@@ -1,27 +1,30 @@
1
- import { NgZone, OnDestroy } from '@angular/core';
1
+ import { OnDestroy } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
3
  import { PlatformTokenRefreshService } from '../../../services/platform-token-refresh.service';
4
4
  import { AudioAnalyzerService } from './audio-analyzer.service';
5
+ import { WebSocketVoiceClientService } from './websocket-voice-client.service';
6
+ import { DailyVoiceClientService } from './daily-voice-client.service';
5
7
  export declare type CallState = 'idle' | 'connecting' | 'connected' | 'listening' | 'talking' | 'ended';
6
8
  export interface TranscriptData {
7
9
  text: string;
8
10
  final: boolean;
9
11
  }
10
12
  /**
11
- * Voice agent orchestrator using the official PipecatClient SDK.
13
+ * Voice agent orchestrator. Coordinates WebSocket (signaling) and Daily.js (WebRTC audio).
12
14
  *
13
- * Audio flow (mirrors the React reference implementation):
14
- * - Local mic: acquired by PipecatClient.initDevices(); local track fed to
15
- * AudioAnalyzerService for waveform visualisation.
16
- * - Bot audio: received as a MediaStreamTrack via RTVIEvent.TrackStarted,
17
- * played through a hidden <audio> element.
18
- * - All binary protobuf framing / RTVI protocol handled by
19
- * @pipecat-ai/client-js + @pipecat-ai/websocket-transport.
15
+ * CRITICAL: This service must NEVER use Socket.IO or ngx-socket-io. Voice flow uses only:
16
+ * - Native WebSocket (WebSocketVoiceClientService) for signaling (room_created, transcripts)
17
+ * - Daily.js (DailyVoiceClientService) for WebRTC audio. Audio does NOT flow over WebSocket.
18
+ *
19
+ * - Maintains callState, statusText, duration, isMicMuted, isUserSpeaking, audioLevels
20
+ * - Uses WebSocket for room_created and transcripts only (no audio)
21
+ * - Uses Daily.js for all audio, mic, and real-time speaking detection
20
22
  */
21
23
  export declare class VoiceAgentService implements OnDestroy {
22
24
  private audioAnalyzer;
25
+ private wsClient;
26
+ private dailyClient;
23
27
  private platformTokenRefresh;
24
- private ngZone;
25
28
  /** `Object` not `object` — ngc metadata collection rejects the `object` type in DI params. */
26
29
  private platformId;
27
30
  private callStateSubject;
@@ -34,10 +37,9 @@ export declare class VoiceAgentService implements OnDestroy {
34
37
  private botTranscriptSubject;
35
38
  private callStartTime;
36
39
  private durationInterval;
37
- private pcClient;
38
- private botAudioElement;
39
40
  private subscriptions;
40
41
  private destroy$;
42
+ private hasAutoUnmutedAfterFirstAudio;
41
43
  callState$: Observable<CallState>;
42
44
  statusText$: Observable<string>;
43
45
  duration$: Observable<string>;
@@ -46,23 +48,15 @@ export declare class VoiceAgentService implements OnDestroy {
46
48
  audioLevels$: Observable<number[]>;
47
49
  userTranscript$: Observable<TranscriptData>;
48
50
  botTranscript$: Observable<string>;
49
- constructor(audioAnalyzer: AudioAnalyzerService, platformTokenRefresh: PlatformTokenRefreshService, ngZone: NgZone,
51
+ constructor(audioAnalyzer: AudioAnalyzerService, wsClient: WebSocketVoiceClientService, dailyClient: DailyVoiceClientService, platformTokenRefresh: PlatformTokenRefreshService,
50
52
  /** `Object` not `object` — ngc metadata collection rejects the `object` type in DI params. */
51
53
  platformId: Object);
52
54
  ngOnDestroy(): void;
53
- /** Reset to idle (e.g. when modal re-opens so user can click Start Call). */
55
+ /** Reset to idle state (e.g. when modal opens so user can click Start Call). */
54
56
  resetToIdle(): void;
55
57
  connect(apiUrl: string, token: string, botId: string, conversationId: string, apiKey: string, eventToken: string, eventId: string, eventUrl: string, domainAuthority: string, usersApiUrl?: string): Promise<void>;
56
- private onPipecatConnected;
57
- private onPipecatDisconnected;
58
- private onBotReady;
59
- private startLocalMicAnalyzer;
60
- private onBotStartedSpeaking;
61
- private onBotStoppedSpeaking;
62
- private setupBotAudioTrack;
63
- private stopBotAudio;
58
+ private onRoomCreated;
64
59
  disconnect(): Promise<void>;
65
- private cleanupPipecatClient;
66
60
  toggleMic(): void;
67
61
  private startDurationTimer;
68
62
  private stopDurationTimer;
@@ -1 +1 @@
1
- {"version":3,"file":"voice-agent.service.d.ts","sourceRoot":"/Users/rohitthakur/hive-gpt/HiveAI-Packages/Angular/projects/hivegpt/eventsgpt-angular/src/","sources":["lib/components/voice-agent/services/voice-agent.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,MAAM,EAAE,SAAS,EAAe,MAAM,eAAe,CAAC;AACnF,OAAO,EAAmB,UAAU,EAAyB,MAAM,MAAM,CAAC;AAI1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,oBAAY,SAAS,GACjB,MAAM,GACN,YAAY,GACZ,WAAW,GACX,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,qBAGa,iBAAkB,YAAW,SAAS;IA6B/C,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,MAAM;IACd,8FAA8F;IACzE,OAAO,CAAC,UAAU;IAhCzC,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,iBAAiB,CAAmC;IAC5D,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,qBAAqB,CAAiC;IAC9D,OAAO,CAAC,oBAAoB,CAAyB;IAErD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,gBAAgB,CAA+C;IAEvE,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,eAAe,CAAiC;IAExD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAuB;IAEvC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,CAAwC;IACzE,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAyC;IACxE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAuC;IACpE,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAyC;IACzE,eAAe,EAAE,UAAU,CAAC,OAAO,CAAC,CAA6C;IACjF,YAAY,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAA0C;IAC5E,eAAe,EAAE,UAAU,CAAC,cAAc,CAAC,CAA6C;IACxF,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,CAA4C;gBAGpE,aAAa,EAAE,oBAAoB,EACnC,oBAAoB,EAAE,2BAA2B,EACjD,MAAM,EAAE,MAAM;IACtB,8FAA8F;IACjE,UAAU,EAAE,MAAM;IASjD,WAAW,IAAI,IAAI;IAMnB,6EAA6E;IAC7E,WAAW,IAAI,IAAI;IAQb,OAAO,CACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAuHhB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,YAAY;IAed,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAUnB,oBAAoB;IAWlC,SAAS,IAAI,IAAI;IAQjB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,iBAAiB;CAM1B"}
1
+ {"version":3,"file":"voice-agent.service.d.ts","sourceRoot":"/Users/rohitthakur/hive-gpt/HiveAI-Packages/Angular/projects/hivegpt/eventsgpt-angular/src/","sources":["lib/components/voice-agent/services/voice-agent.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,SAAS,EAAe,MAAM,eAAe,CAAC;AAC3E,OAAO,EAGL,UAAU,EAGX,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,oBAAY,SAAS,GACjB,MAAM,GACN,YAAY,GACZ,WAAW,GACX,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEZ,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,qBAGa,iBAAkB,YAAW,SAAS;IA6B/C,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,oBAAoB;IAC5B,8FAA8F;IACzE,OAAO,CAAC,UAAU;IAjCzC,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,iBAAiB,CAAmC;IAC5D,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,qBAAqB,CAAiC;IAC9D,OAAO,CAAC,oBAAoB,CAAyB;IAErD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,gBAAgB,CAA+C;IAEvE,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,6BAA6B,CAAS;IAE9C,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,CAAwC;IACzE,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAyC;IACxE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAuC;IACpE,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAyC;IACzE,eAAe,EAAE,UAAU,CAAC,OAAO,CAAC,CACQ;IAC5C,YAAY,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAA0C;IAC5E,eAAe,EAAE,UAAU,CAAC,cAAc,CAAC,CACC;IAC5C,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,CAA4C;gBAGpE,aAAa,EAAE,oBAAoB,EACnC,QAAQ,EAAE,2BAA2B,EACrC,WAAW,EAAE,uBAAuB,EACpC,oBAAoB,EAAE,2BAA2B;IACzD,8FAA8F;IACjE,UAAU,EAAE,MAAM;IAUjD,WAAW,IAAI,IAAI;IAMnB,gFAAgF;IAChF,WAAW,IAAI,IAAI;IAab,OAAO,CACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;YAyGF,aAAa;IAuErB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC,SAAS,IAAI,IAAI;IAKjB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,iBAAiB;CAM1B"}
@@ -0,0 +1,49 @@
1
+ import { Observable } from 'rxjs';
2
+ /** WebSocket message types from backend signaling. */
3
+ export interface WsMessageRoomCreated {
4
+ type: 'room_created';
5
+ room_url: string;
6
+ }
7
+ export interface WsMessageUserTranscript {
8
+ type: 'user_transcript';
9
+ text: string;
10
+ final?: boolean;
11
+ }
12
+ export interface WsMessageBotTranscript {
13
+ type: 'bot_transcript';
14
+ text: string;
15
+ }
16
+ export declare type WsMessage = WsMessageRoomCreated | WsMessageUserTranscript | WsMessageBotTranscript;
17
+ export interface TranscriptData {
18
+ text: string;
19
+ final: boolean;
20
+ }
21
+ /**
22
+ * WebSocket-only client for voice agent signaling.
23
+ * CRITICAL: Uses native WebSocket only. NO Socket.IO, NO ngx-socket-io.
24
+ *
25
+ * Responsibilities:
26
+ * - Connect to ws_url (from POST /ai/ask-voice response)
27
+ * - Parse JSON messages (room_created, user_transcript, bot_transcript)
28
+ * - Emit roomCreated$, userTranscript$, botTranscript$
29
+ * - NO audio logic, NO mic logic. Audio is handled by Daily.js (WebRTC).
30
+ */
31
+ export declare class WebSocketVoiceClientService {
32
+ private ws;
33
+ private roomCreatedSubject;
34
+ private userTranscriptSubject;
35
+ private botTranscriptSubject;
36
+ /** Emits room_url when backend sends room_created. */
37
+ roomCreated$: Observable<string>;
38
+ /** Emits user transcript updates. */
39
+ userTranscript$: Observable<TranscriptData>;
40
+ /** Emits bot transcript updates. */
41
+ botTranscript$: Observable<string>;
42
+ /** Connect to signaling WebSocket. No audio over this connection. */
43
+ connect(wsUrl: string): void;
44
+ /** Disconnect and cleanup. */
45
+ disconnect(): void;
46
+ /** Whether the WebSocket is open. */
47
+ get isConnected(): boolean;
48
+ }
49
+ //# sourceMappingURL=websocket-voice-client.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-voice-client.service.d.ts","sourceRoot":"/Users/rohitthakur/hive-gpt/HiveAI-Packages/Angular/projects/hivegpt/eventsgpt-angular/src/","sources":["lib/components/voice-agent/services/websocket-voice-client.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAW,MAAM,MAAM,CAAC;AAE3C,sDAAsD;AACtD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oBAAY,SAAS,GACjB,oBAAoB,GACpB,uBAAuB,GACvB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,qBAGa,2BAA2B;IACtC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,qBAAqB,CAAiC;IAC9D,OAAO,CAAC,oBAAoB,CAAyB;IAErD,sDAAsD;IACtD,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,CAA0C;IAE1E,qCAAqC;IACrC,eAAe,EAAE,UAAU,CAAC,cAAc,CAAC,CACC;IAE5C,oCAAoC;IACpC,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,CACS;IAE3C,qEAAqE;IACrE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IA4C5B,8BAA8B;IAC9B,UAAU,IAAI,IAAI;IAOlB,qCAAqC;IACrC,IAAI,WAAW,IAAI,OAAO,CAEzB;CACF"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Voice agent module. Uses @pipecat-ai/client-js + @pipecat-ai/websocket-transport
3
- * (peer dependencies) for WebSocket transport, RTVI protocol, and audio.
2
+ * Voice agent module. Uses native WebSocket + Daily.js only.
3
+ * Does NOT use Socket.IO or ngx-socket-io.
4
4
  */
5
5
  export declare class VoiceAgentModule {
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"voice-agent.module.d.ts","sourceRoot":"/Users/rohitthakur/hive-gpt/HiveAI-Packages/Angular/projects/hivegpt/eventsgpt-angular/src/","sources":["lib/components/voice-agent/voice-agent.module.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,qBAea,gBAAgB;CAAI"}
1
+ {"version":3,"file":"voice-agent.module.d.ts","sourceRoot":"/Users/rohitthakur/hive-gpt/HiveAI-Packages/Angular/projects/hivegpt/eventsgpt-angular/src/","sources":["lib/components/voice-agent/voice-agent.module.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,qBAiBa,gBAAgB;CAAI"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hivegpt/hiveai-angular",
3
- "version": "0.0.585",
3
+ "version": "0.0.586",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^10.2.5",
6
6
  "@angular/core": "^10.2.5",