realtime-voice-agents 2.0.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.
Files changed (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +298 -0
  3. package/assets/elevator-jazz.ulaw +1 -0
  4. package/assets/keyboard-typing.ulaw +1 -0
  5. package/assets/lofi.ulaw +1 -0
  6. package/assets/ringing.ulaw +1 -0
  7. package/assets/thinking-hum.ulaw +1 -0
  8. package/dist/BackgroundAudioPlayer-iMcivjis.mjs +282 -0
  9. package/dist/BackgroundAudioPlayer-jfRULWKC.cjs +313 -0
  10. package/dist/BaseRealtimeProvider-BQigr5mB.mjs +62 -0
  11. package/dist/BaseRealtimeProvider-BehPNT1r.d.cts +239 -0
  12. package/dist/BaseRealtimeProvider-ClP8Wx1X.d.mts +239 -0
  13. package/dist/BaseRealtimeProvider-DI4pKtOb.cjs +91 -0
  14. package/dist/GeminiLiveProvider-DvkTgzjG.d.cts +101 -0
  15. package/dist/GeminiLiveProvider-x2nyx5aO.d.mts +101 -0
  16. package/dist/InMemorySessionStore-B0_i-DOU.cjs +34 -0
  17. package/dist/InMemorySessionStore-B5_rq61L.d.cts +83 -0
  18. package/dist/InMemorySessionStore-B5_rq61L.d.mts +83 -0
  19. package/dist/InMemorySessionStore-DYParOJO.mjs +29 -0
  20. package/dist/OpenAICompatibleProvider-Bdtl-UXH.mjs +402 -0
  21. package/dist/OpenAICompatibleProvider-NS4cKVQj.cjs +409 -0
  22. package/dist/audio.cjs +21 -0
  23. package/dist/audio.d.cts +165 -0
  24. package/dist/audio.d.mts +165 -0
  25. package/dist/audio.mjs +4 -0
  26. package/dist/env-DSnGaERV.cjs +19 -0
  27. package/dist/env-DUwUWTsg.mjs +14 -0
  28. package/dist/events-BUMYdETO.d.cts +24 -0
  29. package/dist/events-BUMYdETO.d.mts +24 -0
  30. package/dist/events-BxDTIKKq.cjs +48 -0
  31. package/dist/events-BylBSBW-.mjs +43 -0
  32. package/dist/gemini.cjs +401 -0
  33. package/dist/gemini.d.cts +41 -0
  34. package/dist/gemini.d.mts +41 -0
  35. package/dist/gemini.mjs +395 -0
  36. package/dist/index.cjs +2142 -0
  37. package/dist/index.d.cts +920 -0
  38. package/dist/index.d.mts +920 -0
  39. package/dist/index.mjs +2113 -0
  40. package/dist/mulaw--cwU2c9L.mjs +64 -0
  41. package/dist/mulaw-DLUObjdP.cjs +117 -0
  42. package/dist/openai.cjs +61 -0
  43. package/dist/openai.d.cts +121 -0
  44. package/dist/openai.d.mts +121 -0
  45. package/dist/openai.mjs +53 -0
  46. package/dist/presets-Bf75YXs5.d.cts +24 -0
  47. package/dist/presets-Bf75YXs5.d.mts +24 -0
  48. package/dist/rest-BYqiVOhe.mjs +265 -0
  49. package/dist/rest-BvUKut_k.cjs +300 -0
  50. package/dist/rolldown-runtime-VH7oDXx4.cjs +28 -0
  51. package/dist/session-config-BVLl7-ha.mjs +74 -0
  52. package/dist/session-config-c8sOw1XL.cjs +85 -0
  53. package/dist/store.cjs +3 -0
  54. package/dist/store.d.cts +2 -0
  55. package/dist/store.d.mts +2 -0
  56. package/dist/store.mjs +2 -0
  57. package/dist/testing.cjs +544 -0
  58. package/dist/testing.d.cts +191 -0
  59. package/dist/testing.d.mts +191 -0
  60. package/dist/testing.mjs +538 -0
  61. package/dist/transcode-C9aJG7_W.cjs +215 -0
  62. package/dist/transcode-CsAp97G9.mjs +198 -0
  63. package/dist/transport-B_PJFIVd.d.cts +155 -0
  64. package/dist/transport-CEaLFV4E.d.mts +155 -0
  65. package/dist/twilio.cjs +8 -0
  66. package/dist/twilio.d.cts +3 -0
  67. package/dist/twilio.d.mts +3 -0
  68. package/dist/twilio.mjs +2 -0
  69. package/dist/twiml-z9LjoF4_.d.cts +67 -0
  70. package/dist/twiml-z9LjoF4_.d.mts +67 -0
  71. package/dist/xai.cjs +92 -0
  72. package/dist/xai.d.cts +35 -0
  73. package/dist/xai.d.mts +35 -0
  74. package/dist/xai.mjs +86 -0
  75. package/package.json +183 -0
package/package.json ADDED
@@ -0,0 +1,183 @@
1
+ {
2
+ "name": "realtime-voice-agents",
3
+ "version": "2.0.0",
4
+ "description": "Provider-agnostic bridge between Twilio Media Streams and realtime speech-to-speech AI APIs (OpenAI Realtime, xAI Grok Voice, Gemini Live). Multi-agent handoffs, Zod tools with execution strategies, mark-based playback tracking, interruption guards, and hold audio — for Node.js voice agents over the phone.",
5
+ "keywords": [
6
+ "twilio",
7
+ "twilio-media-streams",
8
+ "media-streams",
9
+ "realtime",
10
+ "voice",
11
+ "voice-agent",
12
+ "voice-agents",
13
+ "speech-to-speech",
14
+ "openai",
15
+ "openai-realtime",
16
+ "gemini",
17
+ "gemini-live",
18
+ "xai",
19
+ "grok",
20
+ "phone",
21
+ "telephony",
22
+ "ai",
23
+ "agents"
24
+ ],
25
+ "license": "MIT",
26
+ "author": "Yakov Sinwani <yakovsinwani@gmail.com>",
27
+ "type": "module",
28
+ "engines": {
29
+ "node": ">=20"
30
+ },
31
+ "sideEffects": false,
32
+ "files": [
33
+ "dist",
34
+ "assets"
35
+ ],
36
+ "main": "./dist/index.cjs",
37
+ "module": "./dist/index.mjs",
38
+ "types": "./dist/index.d.cts",
39
+ "exports": {
40
+ ".": {
41
+ "import": {
42
+ "types": "./dist/index.d.mts",
43
+ "default": "./dist/index.mjs"
44
+ },
45
+ "require": {
46
+ "types": "./dist/index.d.cts",
47
+ "default": "./dist/index.cjs"
48
+ }
49
+ },
50
+ "./openai": {
51
+ "import": {
52
+ "types": "./dist/openai.d.mts",
53
+ "default": "./dist/openai.mjs"
54
+ },
55
+ "require": {
56
+ "types": "./dist/openai.d.cts",
57
+ "default": "./dist/openai.cjs"
58
+ }
59
+ },
60
+ "./xai": {
61
+ "import": {
62
+ "types": "./dist/xai.d.mts",
63
+ "default": "./dist/xai.mjs"
64
+ },
65
+ "require": {
66
+ "types": "./dist/xai.d.cts",
67
+ "default": "./dist/xai.cjs"
68
+ }
69
+ },
70
+ "./gemini": {
71
+ "import": {
72
+ "types": "./dist/gemini.d.mts",
73
+ "default": "./dist/gemini.mjs"
74
+ },
75
+ "require": {
76
+ "types": "./dist/gemini.d.cts",
77
+ "default": "./dist/gemini.cjs"
78
+ }
79
+ },
80
+ "./twilio": {
81
+ "import": {
82
+ "types": "./dist/twilio.d.mts",
83
+ "default": "./dist/twilio.mjs"
84
+ },
85
+ "require": {
86
+ "types": "./dist/twilio.d.cts",
87
+ "default": "./dist/twilio.cjs"
88
+ }
89
+ },
90
+ "./audio": {
91
+ "import": {
92
+ "types": "./dist/audio.d.mts",
93
+ "default": "./dist/audio.mjs"
94
+ },
95
+ "require": {
96
+ "types": "./dist/audio.d.cts",
97
+ "default": "./dist/audio.cjs"
98
+ }
99
+ },
100
+ "./store": {
101
+ "import": {
102
+ "types": "./dist/store.d.mts",
103
+ "default": "./dist/store.mjs"
104
+ },
105
+ "require": {
106
+ "types": "./dist/store.d.cts",
107
+ "default": "./dist/store.cjs"
108
+ }
109
+ },
110
+ "./testing": {
111
+ "import": {
112
+ "types": "./dist/testing.d.mts",
113
+ "default": "./dist/testing.mjs"
114
+ },
115
+ "require": {
116
+ "types": "./dist/testing.d.cts",
117
+ "default": "./dist/testing.cjs"
118
+ }
119
+ },
120
+ "./package.json": "./package.json"
121
+ },
122
+ "scripts": {
123
+ "build": "tsdown",
124
+ "typecheck": "tsc --noEmit",
125
+ "test": "vitest run",
126
+ "test:watch": "vitest",
127
+ "test:coverage": "vitest run --coverage",
128
+ "lint": "eslint .",
129
+ "format": "prettier --write .",
130
+ "check": "npm run typecheck && npm run lint && npm run build && publint && attw --pack . --profile node16",
131
+ "assets:generate": "tsx scripts/generate-tones.ts",
132
+ "changeset": "changeset",
133
+ "release": "npm run build && changeset publish",
134
+ "prepublishOnly": "npm run build"
135
+ },
136
+ "dependencies": {
137
+ "ws": "^8.21.2"
138
+ },
139
+ "peerDependencies": {
140
+ "@google/genai": "^1.0.0 || ^2.0.0",
141
+ "twilio": "^5.0.0 || ^6.0.0",
142
+ "zod": "^3.25.0 || ^4.0.0"
143
+ },
144
+ "peerDependenciesMeta": {
145
+ "@google/genai": {
146
+ "optional": true
147
+ },
148
+ "twilio": {
149
+ "optional": true
150
+ }
151
+ },
152
+ "repository": {
153
+ "type": "git",
154
+ "url": "git+https://github.com/yakovsinwani/twilio-realtime-agents.git"
155
+ },
156
+ "bugs": {
157
+ "url": "https://github.com/yakovsinwani/twilio-realtime-agents/issues"
158
+ },
159
+ "publishConfig": {
160
+ "access": "public",
161
+ "provenance": true
162
+ },
163
+ "devDependencies": {
164
+ "@arethetypeswrong/cli": "^0.18.5",
165
+ "@changesets/cli": "^2.31.1",
166
+ "@eslint/js": "^10.0.1",
167
+ "@google/genai": "^2.15.0",
168
+ "@types/node": "^26.1.2",
169
+ "@types/ws": "^8.18.1",
170
+ "@vitest/coverage-v8": "^4.1.10",
171
+ "eslint": "^10.8.0",
172
+ "prettier": "^3.9.6",
173
+ "publint": "^0.3.23",
174
+ "tsdown": "^0.22.14",
175
+ "tsx": "^4.23.5",
176
+ "twilio": "^6.0.2",
177
+ "typescript": "^6.0.3",
178
+ "typescript-eslint": "^8.66.0",
179
+ "unrun": "^0.3.1",
180
+ "vitest": "^4.1.10",
181
+ "zod": "^4.4.3"
182
+ }
183
+ }