@hamsa-ai/voice-agents-sdk 0.4.1-beta.1 → 0.4.1-beta.3
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 +52 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/types/classes/livekit-manager.d.ts +1 -1
- package/types/classes/types.d.ts +5 -0
- package/types/main.d.ts +137 -2
package/README.md
CHANGED
|
@@ -254,6 +254,12 @@ agent.on("speaking", () => {
|
|
|
254
254
|
agent.on("listening", () => {
|
|
255
255
|
console.log("The agent is listening");
|
|
256
256
|
});
|
|
257
|
+
|
|
258
|
+
// Unified agent state change event
|
|
259
|
+
agent.on("agentStateChanged", (state) => {
|
|
260
|
+
console.log("Agent state:", state);
|
|
261
|
+
// state can be: 'idle', 'initializing', 'listening', 'thinking', 'speaking'
|
|
262
|
+
});
|
|
257
263
|
```
|
|
258
264
|
|
|
259
265
|
### Conversation Script Events
|
|
@@ -579,6 +585,7 @@ The SDK includes comprehensive TypeScript definitions with detailed analytics in
|
|
|
579
585
|
```typescript
|
|
580
586
|
import {
|
|
581
587
|
HamsaVoiceAgent,
|
|
588
|
+
AgentState,
|
|
582
589
|
CallAnalyticsResult,
|
|
583
590
|
ParticipantData,
|
|
584
591
|
CustomEventMetadata,
|
|
@@ -637,6 +644,16 @@ agent.on("micUnmuted", () => {
|
|
|
637
644
|
console.log("Microphone was unmuted");
|
|
638
645
|
});
|
|
639
646
|
|
|
647
|
+
// Agent state tracking with type safety
|
|
648
|
+
agent.on("agentStateChanged", (state: AgentState) => {
|
|
649
|
+
console.log("Agent state:", state); // 'idle' | 'initializing' | 'listening' | 'thinking' | 'speaking'
|
|
650
|
+
|
|
651
|
+
// TypeScript provides autocomplete and type checking
|
|
652
|
+
if (state === 'thinking') {
|
|
653
|
+
showThinkingIndicator();
|
|
654
|
+
}
|
|
655
|
+
});
|
|
656
|
+
|
|
640
657
|
// Strongly typed custom events
|
|
641
658
|
agent.on(
|
|
642
659
|
"customEvent",
|
|
@@ -655,6 +672,41 @@ agent.on("participantConnected", (participant: ParticipantData) => {
|
|
|
655
672
|
|
|
656
673
|
## Use Cases
|
|
657
674
|
|
|
675
|
+
### Agent State UI Updates
|
|
676
|
+
|
|
677
|
+
```javascript
|
|
678
|
+
agent.on("agentStateChanged", (state) => {
|
|
679
|
+
// Update UI based on agent state
|
|
680
|
+
const statusElement = document.getElementById("agent-status");
|
|
681
|
+
|
|
682
|
+
switch (state) {
|
|
683
|
+
case 'idle':
|
|
684
|
+
statusElement.textContent = "Agent is idle";
|
|
685
|
+
statusElement.className = "status-idle";
|
|
686
|
+
break;
|
|
687
|
+
case 'initializing':
|
|
688
|
+
statusElement.textContent = "Agent is starting...";
|
|
689
|
+
statusElement.className = "status-initializing";
|
|
690
|
+
break;
|
|
691
|
+
case 'listening':
|
|
692
|
+
statusElement.textContent = "Agent is listening";
|
|
693
|
+
statusElement.className = "status-listening";
|
|
694
|
+
showMicrophoneAnimation();
|
|
695
|
+
break;
|
|
696
|
+
case 'thinking':
|
|
697
|
+
statusElement.textContent = "Agent is thinking...";
|
|
698
|
+
statusElement.className = "status-thinking";
|
|
699
|
+
showThinkingAnimation();
|
|
700
|
+
break;
|
|
701
|
+
case 'speaking':
|
|
702
|
+
statusElement.textContent = "Agent is speaking";
|
|
703
|
+
statusElement.className = "status-speaking";
|
|
704
|
+
showSpeakerAnimation();
|
|
705
|
+
break;
|
|
706
|
+
}
|
|
707
|
+
});
|
|
708
|
+
```
|
|
709
|
+
|
|
658
710
|
### Real-time Call Quality Monitoring
|
|
659
711
|
|
|
660
712
|
```javascript
|