@agimon-ai/doompi-voice 0.0.1-alpha.7 → 0.0.1-alpha.71

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 (702) hide show
  1. package/NOTICE +13 -0
  2. package/README.md +248 -19
  3. package/dist/_virtual/_rolldown/runtime.cjs +1 -1
  4. package/dist/_virtual/_rolldown/runtime.mjs +1 -0
  5. package/dist/api-contracts.cjs +1 -0
  6. package/dist/api-contracts.mjs +1 -0
  7. package/dist/apiContracts.d.cts +2 -0
  8. package/dist/apiContracts.d.mts +2 -0
  9. package/dist/clientMedia.cjs +1 -0
  10. package/dist/clientMedia.d.cts +3 -0
  11. package/dist/clientMedia.d.mts +3 -0
  12. package/dist/clientMedia.mjs +1 -0
  13. package/dist/extensions/pi.cjs +1 -1
  14. package/dist/extensions/pi.cjs.map +1 -1
  15. package/dist/extensions/pi.d.cts +6 -2
  16. package/dist/extensions/pi.d.cts.map +1 -0
  17. package/dist/extensions/pi.d.mts +6 -2
  18. package/dist/extensions/pi.d.mts.map +1 -0
  19. package/dist/extensions/pi.mjs +1 -1
  20. package/dist/extensions/pi.mjs.map +1 -1
  21. package/dist/extensions/server.cjs +2 -0
  22. package/dist/extensions/server.cjs.map +1 -0
  23. package/dist/extensions/server.d.cts +5 -0
  24. package/dist/extensions/server.d.cts.map +1 -0
  25. package/dist/extensions/server.d.mts +5 -0
  26. package/dist/extensions/server.d.mts.map +1 -0
  27. package/dist/extensions/server.mjs +2 -0
  28. package/dist/extensions/server.mjs.map +1 -0
  29. package/dist/index.cjs +1 -1
  30. package/dist/index.d.cts +23 -9
  31. package/dist/index.d.mts +23 -9
  32. package/dist/index.mjs +1 -1
  33. package/dist/src/constants/voice.cjs +2 -0
  34. package/dist/src/constants/voice.cjs.map +1 -0
  35. package/dist/src/constants/voice.mjs +2 -0
  36. package/dist/src/constants/voice.mjs.map +1 -0
  37. package/dist/src/constants/voiceRuntime.cjs +2 -0
  38. package/dist/src/constants/voiceRuntime.cjs.map +1 -0
  39. package/dist/src/constants/voiceRuntime.mjs +2 -0
  40. package/dist/src/constants/voiceRuntime.mjs.map +1 -0
  41. package/dist/src/controllers/clientMediaApi.cjs +2 -0
  42. package/dist/src/controllers/clientMediaApi.cjs.map +1 -0
  43. package/dist/src/controllers/clientMediaApi.mjs +2 -0
  44. package/dist/src/controllers/clientMediaApi.mjs.map +1 -0
  45. package/dist/src/controllers/liveVoiceController.cjs +4 -0
  46. package/dist/src/controllers/liveVoiceController.cjs.map +1 -0
  47. package/dist/src/controllers/liveVoiceController.mjs +4 -0
  48. package/dist/src/controllers/liveVoiceController.mjs.map +1 -0
  49. package/dist/src/controllers/manualTranscriptionApi.cjs +2 -0
  50. package/dist/src/controllers/manualTranscriptionApi.cjs.map +1 -0
  51. package/dist/src/controllers/manualTranscriptionApi.mjs +2 -0
  52. package/dist/src/controllers/manualTranscriptionApi.mjs.map +1 -0
  53. package/dist/src/controllers/minorModeCatalog.cjs +2 -0
  54. package/dist/src/controllers/minorModeCatalog.cjs.map +1 -0
  55. package/dist/src/controllers/minorModeCatalog.mjs +2 -0
  56. package/dist/src/controllers/minorModeCatalog.mjs.map +1 -0
  57. package/dist/src/controllers/narrationTool.cjs +2 -0
  58. package/dist/src/controllers/narrationTool.cjs.map +1 -0
  59. package/dist/src/controllers/narrationTool.d.cts +7 -0
  60. package/dist/src/controllers/narrationTool.d.mts +7 -0
  61. package/dist/src/controllers/narrationTool.mjs +2 -0
  62. package/dist/src/controllers/narrationTool.mjs.map +1 -0
  63. package/dist/src/controllers/realtimeContext.cjs +2 -0
  64. package/dist/src/controllers/realtimeContext.cjs.map +1 -0
  65. package/dist/src/controllers/realtimeContext.mjs +2 -0
  66. package/dist/src/controllers/realtimeContext.mjs.map +1 -0
  67. package/dist/src/controllers/realtimeDelivery.cjs +2 -0
  68. package/dist/src/controllers/realtimeDelivery.cjs.map +1 -0
  69. package/dist/src/controllers/realtimeDelivery.mjs +2 -0
  70. package/dist/src/controllers/realtimeDelivery.mjs.map +1 -0
  71. package/dist/src/controllers/transferVoiceTool.cjs +3 -0
  72. package/dist/src/controllers/transferVoiceTool.cjs.map +1 -0
  73. package/dist/src/controllers/transferVoiceTool.mjs +3 -0
  74. package/dist/src/controllers/transferVoiceTool.mjs.map +1 -0
  75. package/dist/src/controllers/voice.cjs +2 -0
  76. package/dist/src/controllers/voice.cjs.map +1 -0
  77. package/dist/src/controllers/voice.d.cts +109 -0
  78. package/dist/src/controllers/voice.d.cts.map +1 -0
  79. package/dist/src/controllers/voice.d.mts +109 -0
  80. package/dist/src/controllers/voice.d.mts.map +1 -0
  81. package/dist/src/controllers/voice.mjs +2 -0
  82. package/dist/src/controllers/voice.mjs.map +1 -0
  83. package/dist/src/controllers/voiceClientSettingsApi.cjs +2 -0
  84. package/dist/src/controllers/voiceClientSettingsApi.cjs.map +1 -0
  85. package/dist/src/controllers/voiceClientSettingsApi.mjs +2 -0
  86. package/dist/src/controllers/voiceClientSettingsApi.mjs.map +1 -0
  87. package/dist/src/controllers/voiceCommandContext.cjs +2 -0
  88. package/dist/src/controllers/voiceCommandContext.cjs.map +1 -0
  89. package/dist/src/controllers/voiceCommandContext.mjs +2 -0
  90. package/dist/src/controllers/voiceCommandContext.mjs.map +1 -0
  91. package/dist/src/controllers/voiceConfig.cjs +2 -0
  92. package/dist/src/controllers/voiceConfig.cjs.map +1 -0
  93. package/dist/src/controllers/voiceConfig.mjs +2 -0
  94. package/dist/src/controllers/voiceConfig.mjs.map +1 -0
  95. package/dist/src/controllers/voiceMediaHubChannel.cjs +2 -0
  96. package/dist/src/controllers/voiceMediaHubChannel.cjs.map +1 -0
  97. package/dist/src/controllers/voiceMediaHubChannel.mjs +2 -0
  98. package/dist/src/controllers/voiceMediaHubChannel.mjs.map +1 -0
  99. package/dist/src/controllers/voiceModeController.cjs +2 -0
  100. package/dist/src/controllers/voiceModeController.cjs.map +1 -0
  101. package/dist/src/controllers/voiceModeController.mjs +2 -0
  102. package/dist/src/controllers/voiceModeController.mjs.map +1 -0
  103. package/dist/src/controllers/voicePlugin.cjs +2 -0
  104. package/dist/src/controllers/voicePlugin.cjs.map +1 -0
  105. package/dist/src/controllers/voicePlugin.mjs +2 -0
  106. package/dist/src/controllers/voicePlugin.mjs.map +1 -0
  107. package/dist/src/controllers/voiceServer.cjs +2 -0
  108. package/dist/src/controllers/voiceServer.cjs.map +1 -0
  109. package/dist/src/controllers/voiceServer.mjs +2 -0
  110. package/dist/src/controllers/voiceServer.mjs.map +1 -0
  111. package/dist/src/controllers/voiceSessionApi.cjs +2 -0
  112. package/dist/src/controllers/voiceSessionApi.cjs.map +1 -0
  113. package/dist/src/controllers/voiceSessionApi.mjs +2 -0
  114. package/dist/src/controllers/voiceSessionApi.mjs.map +1 -0
  115. package/dist/src/controllers/voiceToolRender.cjs +2 -0
  116. package/dist/src/controllers/voiceToolRender.cjs.map +1 -0
  117. package/dist/src/controllers/voiceToolRender.mjs +2 -0
  118. package/dist/src/controllers/voiceToolRender.mjs.map +1 -0
  119. package/dist/src/controllers/voiceTools.cjs +2 -0
  120. package/dist/src/controllers/voiceTools.cjs.map +1 -0
  121. package/dist/src/controllers/voiceTools.d.cts +3 -0
  122. package/dist/src/controllers/voiceTools.d.mts +3 -0
  123. package/dist/src/controllers/voiceTools.mjs +2 -0
  124. package/dist/src/controllers/voiceTools.mjs.map +1 -0
  125. package/dist/src/models/autonomousVoiceMachine.cjs +2 -0
  126. package/dist/src/models/autonomousVoiceMachine.cjs.map +1 -0
  127. package/dist/src/models/autonomousVoiceMachine.d.cts +2 -0
  128. package/dist/src/models/autonomousVoiceMachine.d.mts +2 -0
  129. package/dist/src/models/autonomousVoiceMachine.mjs +2 -0
  130. package/dist/src/models/autonomousVoiceMachine.mjs.map +1 -0
  131. package/dist/src/models/autonomousVoiceUi.cjs +2 -0
  132. package/dist/src/models/autonomousVoiceUi.cjs.map +1 -0
  133. package/dist/src/models/autonomousVoiceUi.mjs +2 -0
  134. package/dist/src/models/autonomousVoiceUi.mjs.map +1 -0
  135. package/dist/src/models/narrationBargeIn.cjs +2 -0
  136. package/dist/src/models/narrationBargeIn.cjs.map +1 -0
  137. package/dist/src/models/narrationBargeIn.d.cts +15 -0
  138. package/dist/src/models/narrationBargeIn.d.cts.map +1 -0
  139. package/dist/src/models/narrationBargeIn.d.mts +15 -0
  140. package/dist/src/models/narrationBargeIn.d.mts.map +1 -0
  141. package/dist/src/models/narrationBargeIn.mjs +2 -0
  142. package/dist/src/models/narrationBargeIn.mjs.map +1 -0
  143. package/dist/src/models/voiceActivity.cjs +2 -0
  144. package/dist/src/models/voiceActivity.cjs.map +1 -0
  145. package/dist/src/models/voiceActivity.d.cts +26 -0
  146. package/dist/src/models/voiceActivity.d.cts.map +1 -0
  147. package/dist/src/models/voiceActivity.d.mts +26 -0
  148. package/dist/src/models/voiceActivity.d.mts.map +1 -0
  149. package/dist/src/models/voiceActivity.mjs +2 -0
  150. package/dist/src/models/voiceActivity.mjs.map +1 -0
  151. package/dist/src/models/voiceMode.cjs +2 -0
  152. package/dist/src/models/voiceMode.cjs.map +1 -0
  153. package/dist/src/models/voiceMode.d.cts +10 -0
  154. package/dist/src/models/voiceMode.d.cts.map +1 -0
  155. package/dist/src/models/voiceMode.d.mts +10 -0
  156. package/dist/src/models/voiceMode.d.mts.map +1 -0
  157. package/dist/src/models/voiceMode.mjs +2 -0
  158. package/dist/src/models/voiceMode.mjs.map +1 -0
  159. package/dist/src/schemas/apiContracts.cjs +2 -0
  160. package/dist/src/schemas/apiContracts.cjs.map +1 -0
  161. package/dist/src/schemas/apiContracts.d.cts +53 -0
  162. package/dist/src/schemas/apiContracts.d.cts.map +1 -0
  163. package/dist/src/schemas/apiContracts.d.mts +53 -0
  164. package/dist/src/schemas/apiContracts.d.mts.map +1 -0
  165. package/dist/src/schemas/apiContracts.mjs +2 -0
  166. package/dist/src/schemas/apiContracts.mjs.map +1 -0
  167. package/dist/src/schemas/voiceControl.cjs +2 -0
  168. package/dist/src/schemas/voiceControl.cjs.map +1 -0
  169. package/dist/src/schemas/voiceControl.mjs +2 -0
  170. package/dist/src/schemas/voiceControl.mjs.map +1 -0
  171. package/dist/src/services/autonomousEndpoint/index.cjs +2 -0
  172. package/dist/src/services/autonomousEndpoint/index.cjs.map +1 -0
  173. package/dist/src/services/autonomousEndpoint/index.mjs +2 -0
  174. package/dist/src/services/autonomousEndpoint/index.mjs.map +1 -0
  175. package/dist/src/services/autonomousTurn/index.cjs +2 -0
  176. package/dist/src/services/autonomousTurn/index.cjs.map +1 -0
  177. package/dist/src/services/autonomousTurn/index.d.cts +6 -0
  178. package/dist/src/services/autonomousTurn/index.d.cts.map +1 -0
  179. package/dist/src/services/autonomousTurn/index.d.mts +6 -0
  180. package/dist/src/services/autonomousTurn/index.d.mts.map +1 -0
  181. package/dist/src/services/autonomousTurn/index.mjs +2 -0
  182. package/dist/src/services/autonomousTurn/index.mjs.map +1 -0
  183. package/dist/src/services/autonomousVoiceSession/index.cjs +2 -0
  184. package/dist/src/services/autonomousVoiceSession/index.cjs.map +1 -0
  185. package/dist/src/services/autonomousVoiceSession/index.mjs +2 -0
  186. package/dist/src/services/autonomousVoiceSession/index.mjs.map +1 -0
  187. package/dist/src/services/autonomousVoiceTelemetry/index.cjs +2 -0
  188. package/dist/src/services/autonomousVoiceTelemetry/index.cjs.map +1 -0
  189. package/dist/src/services/autonomousVoiceTelemetry/index.d.cts +8 -0
  190. package/dist/src/services/autonomousVoiceTelemetry/index.d.cts.map +1 -0
  191. package/dist/src/services/autonomousVoiceTelemetry/index.d.mts +8 -0
  192. package/dist/src/services/autonomousVoiceTelemetry/index.d.mts.map +1 -0
  193. package/dist/src/services/autonomousVoiceTelemetry/index.mjs +2 -0
  194. package/dist/src/services/autonomousVoiceTelemetry/index.mjs.map +1 -0
  195. package/dist/src/services/captureSession/index.cjs +2 -0
  196. package/dist/src/services/captureSession/index.cjs.map +1 -0
  197. package/dist/src/services/captureSession/index.mjs +2 -0
  198. package/dist/src/services/captureSession/index.mjs.map +1 -0
  199. package/dist/{catalog.cjs → src/services/catalog/index.cjs} +1 -1
  200. package/dist/src/services/catalog/index.cjs.map +1 -0
  201. package/dist/{catalog.mjs → src/services/catalog/index.mjs} +1 -1
  202. package/dist/src/services/catalog/index.mjs.map +1 -0
  203. package/dist/src/services/clientMedia/index.cjs +2 -0
  204. package/dist/src/services/clientMedia/index.cjs.map +1 -0
  205. package/dist/src/services/clientMedia/index.d.cts +24 -0
  206. package/dist/src/services/clientMedia/index.d.cts.map +1 -0
  207. package/dist/src/services/clientMedia/index.d.mts +24 -0
  208. package/dist/src/services/clientMedia/index.d.mts.map +1 -0
  209. package/dist/src/services/clientMedia/index.mjs +2 -0
  210. package/dist/src/services/clientMedia/index.mjs.map +1 -0
  211. package/dist/src/services/codexAuth/index.cjs +2 -0
  212. package/dist/src/services/codexAuth/index.cjs.map +1 -0
  213. package/dist/src/services/codexAuth/index.mjs +2 -0
  214. package/dist/src/services/codexAuth/index.mjs.map +1 -0
  215. package/dist/src/services/codexAuthStorage/index.cjs +2 -0
  216. package/dist/src/services/codexAuthStorage/index.cjs.map +1 -0
  217. package/dist/src/services/codexAuthStorage/index.mjs +2 -0
  218. package/dist/src/services/codexAuthStorage/index.mjs.map +1 -0
  219. package/dist/src/services/codexLogin/index.cjs +2 -0
  220. package/dist/src/services/codexLogin/index.cjs.map +1 -0
  221. package/dist/src/services/codexLogin/index.mjs +2 -0
  222. package/dist/src/services/codexLogin/index.mjs.map +1 -0
  223. package/dist/src/services/codexRealtime/index.cjs +2 -0
  224. package/dist/src/services/codexRealtime/index.cjs.map +1 -0
  225. package/dist/src/services/codexRealtime/index.mjs +2 -0
  226. package/dist/src/services/codexRealtime/index.mjs.map +1 -0
  227. package/dist/src/services/commandCorrection/index.cjs +7 -0
  228. package/dist/src/services/commandCorrection/index.cjs.map +1 -0
  229. package/dist/src/services/commandCorrection/index.d.cts +23 -0
  230. package/dist/src/services/commandCorrection/index.d.cts.map +1 -0
  231. package/dist/src/services/commandCorrection/index.d.mts +23 -0
  232. package/dist/src/services/commandCorrection/index.d.mts.map +1 -0
  233. package/dist/src/services/commandCorrection/index.mjs +7 -0
  234. package/dist/src/services/commandCorrection/index.mjs.map +1 -0
  235. package/dist/src/services/commandCorrection/type.d.cts +25 -0
  236. package/dist/src/services/commandCorrection/type.d.cts.map +1 -0
  237. package/dist/src/services/commandCorrection/type.d.mts +25 -0
  238. package/dist/src/services/commandCorrection/type.d.mts.map +1 -0
  239. package/dist/src/services/controlPhraseMatcher/index.cjs +2 -0
  240. package/dist/src/services/controlPhraseMatcher/index.cjs.map +1 -0
  241. package/dist/src/services/controlPhraseMatcher/index.mjs +2 -0
  242. package/dist/src/services/controlPhraseMatcher/index.mjs.map +1 -0
  243. package/dist/src/services/download/index.cjs +2 -0
  244. package/dist/src/services/download/index.cjs.map +1 -0
  245. package/dist/{download.mjs → src/services/download/index.mjs} +1 -1
  246. package/dist/src/services/download/index.mjs.map +1 -0
  247. package/dist/src/services/encodedAudio/index.cjs +2 -0
  248. package/dist/src/services/encodedAudio/index.cjs.map +1 -0
  249. package/dist/src/services/encodedAudio/index.mjs +2 -0
  250. package/dist/src/services/encodedAudio/index.mjs.map +1 -0
  251. package/dist/src/services/fallbackNarration/index.cjs +11 -0
  252. package/dist/src/services/fallbackNarration/index.cjs.map +1 -0
  253. package/dist/src/services/fallbackNarration/index.d.cts +14 -0
  254. package/dist/src/services/fallbackNarration/index.d.cts.map +1 -0
  255. package/dist/src/services/fallbackNarration/index.d.mts +14 -0
  256. package/dist/src/services/fallbackNarration/index.d.mts.map +1 -0
  257. package/dist/src/services/fallbackNarration/index.mjs +11 -0
  258. package/dist/src/services/fallbackNarration/index.mjs.map +1 -0
  259. package/dist/src/services/fallbackNarration/type.d.cts +29 -0
  260. package/dist/src/services/fallbackNarration/type.d.cts.map +1 -0
  261. package/dist/src/services/fallbackNarration/type.d.mts +29 -0
  262. package/dist/src/services/fallbackNarration/type.d.mts.map +1 -0
  263. package/dist/src/services/fileTurnSpool/index.cjs +2 -0
  264. package/dist/src/services/fileTurnSpool/index.cjs.map +1 -0
  265. package/dist/src/services/fileTurnSpool/index.mjs +2 -0
  266. package/dist/src/services/fileTurnSpool/index.mjs.map +1 -0
  267. package/dist/src/services/infrastructure/index.cjs +3 -0
  268. package/dist/src/services/infrastructure/index.cjs.map +1 -0
  269. package/dist/{infrastructure.d.cts → src/services/infrastructure/index.d.cts} +24 -15
  270. package/dist/src/services/infrastructure/index.d.cts.map +1 -0
  271. package/dist/{infrastructure.d.mts → src/services/infrastructure/index.d.mts} +24 -15
  272. package/dist/src/services/infrastructure/index.d.mts.map +1 -0
  273. package/dist/src/services/infrastructure/index.mjs +3 -0
  274. package/dist/src/services/infrastructure/index.mjs.map +1 -0
  275. package/dist/src/services/install/index.cjs +2 -0
  276. package/dist/src/services/install/index.cjs.map +1 -0
  277. package/dist/src/services/install/index.mjs +2 -0
  278. package/dist/src/services/install/index.mjs.map +1 -0
  279. package/dist/src/services/manualTranscription/index.cjs +2 -0
  280. package/dist/src/services/manualTranscription/index.cjs.map +1 -0
  281. package/dist/src/services/manualTranscription/index.mjs +2 -0
  282. package/dist/src/services/manualTranscription/index.mjs.map +1 -0
  283. package/dist/src/services/manualTranscriptionConfig/index.cjs +2 -0
  284. package/dist/src/services/manualTranscriptionConfig/index.cjs.map +1 -0
  285. package/dist/src/services/manualTranscriptionConfig/index.mjs +2 -0
  286. package/dist/src/services/manualTranscriptionConfig/index.mjs.map +1 -0
  287. package/dist/src/services/narration/index.cjs +2 -0
  288. package/dist/src/services/narration/index.cjs.map +1 -0
  289. package/dist/src/services/narration/index.d.cts +56 -0
  290. package/dist/src/services/narration/index.d.cts.map +1 -0
  291. package/dist/src/services/narration/index.d.mts +56 -0
  292. package/dist/src/services/narration/index.d.mts.map +1 -0
  293. package/dist/src/services/narration/index.mjs +2 -0
  294. package/dist/src/services/narration/index.mjs.map +1 -0
  295. package/dist/src/services/narrationBargeIn/index.cjs +2 -0
  296. package/dist/src/services/narrationBargeIn/index.cjs.map +1 -0
  297. package/dist/src/services/narrationBargeIn/index.mjs +2 -0
  298. package/dist/src/services/narrationBargeIn/index.mjs.map +1 -0
  299. package/dist/src/services/narrationPlayback/index.cjs +2 -0
  300. package/dist/src/services/narrationPlayback/index.cjs.map +1 -0
  301. package/dist/src/services/narrationPlayback/index.d.cts +55 -0
  302. package/dist/src/services/narrationPlayback/index.d.cts.map +1 -0
  303. package/dist/src/services/narrationPlayback/index.d.mts +55 -0
  304. package/dist/src/services/narrationPlayback/index.d.mts.map +1 -0
  305. package/dist/src/services/narrationPlayback/index.mjs +2 -0
  306. package/dist/src/services/narrationPlayback/index.mjs.map +1 -0
  307. package/dist/{pcm.cjs → src/services/pcm/index.cjs} +1 -1
  308. package/dist/src/services/pcm/index.cjs.map +1 -0
  309. package/dist/src/services/pcm/index.d.cts +15 -0
  310. package/dist/src/services/pcm/index.d.cts.map +1 -0
  311. package/dist/src/services/pcm/index.d.mts +15 -0
  312. package/dist/src/services/pcm/index.d.mts.map +1 -0
  313. package/dist/{pcm.mjs → src/services/pcm/index.mjs} +1 -1
  314. package/dist/src/services/pcm/index.mjs.map +1 -0
  315. package/dist/src/services/playbackGate/index.cjs +2 -0
  316. package/dist/src/services/playbackGate/index.cjs.map +1 -0
  317. package/dist/src/services/playbackGate/index.mjs +2 -0
  318. package/dist/src/services/playbackGate/index.mjs.map +1 -0
  319. package/dist/src/services/realtimeHost/index.cjs +2 -0
  320. package/dist/src/services/realtimeHost/index.cjs.map +1 -0
  321. package/dist/src/services/realtimeHost/index.d.cts +11 -0
  322. package/dist/src/services/realtimeHost/index.d.cts.map +1 -0
  323. package/dist/src/services/realtimeHost/index.d.mts +11 -0
  324. package/dist/src/services/realtimeHost/index.d.mts.map +1 -0
  325. package/dist/src/services/realtimeHost/index.mjs +2 -0
  326. package/dist/src/services/realtimeHost/index.mjs.map +1 -0
  327. package/dist/src/services/realtimeMediaBroker/index.cjs +2 -0
  328. package/dist/src/services/realtimeMediaBroker/index.cjs.map +1 -0
  329. package/dist/src/services/realtimeMediaBroker/index.mjs +2 -0
  330. package/dist/src/services/realtimeMediaBroker/index.mjs.map +1 -0
  331. package/dist/src/services/realtimeProtocol/index.cjs +2 -0
  332. package/dist/src/services/realtimeProtocol/index.cjs.map +1 -0
  333. package/dist/src/services/realtimeProtocol/index.mjs +2 -0
  334. package/dist/src/services/realtimeProtocol/index.mjs.map +1 -0
  335. package/dist/src/services/realtimeRuntime/index.cjs +2 -0
  336. package/dist/src/services/realtimeRuntime/index.cjs.map +1 -0
  337. package/dist/src/services/realtimeRuntime/index.d.cts +8 -0
  338. package/dist/src/services/realtimeRuntime/index.d.cts.map +1 -0
  339. package/dist/src/services/realtimeRuntime/index.d.mts +8 -0
  340. package/dist/src/services/realtimeRuntime/index.d.mts.map +1 -0
  341. package/dist/src/services/realtimeRuntime/index.mjs +2 -0
  342. package/dist/src/services/realtimeRuntime/index.mjs.map +1 -0
  343. package/dist/src/services/realtimeSession/index.cjs +2 -0
  344. package/dist/src/services/realtimeSession/index.cjs.map +1 -0
  345. package/dist/src/services/realtimeSession/index.mjs +2 -0
  346. package/dist/src/services/realtimeSession/index.mjs.map +1 -0
  347. package/dist/src/services/semanticEcho/index.cjs +2 -0
  348. package/dist/src/services/semanticEcho/index.cjs.map +1 -0
  349. package/dist/src/services/semanticEcho/index.d.cts +42 -0
  350. package/dist/src/services/semanticEcho/index.d.cts.map +1 -0
  351. package/dist/src/services/semanticEcho/index.d.mts +42 -0
  352. package/dist/src/services/semanticEcho/index.d.mts.map +1 -0
  353. package/dist/src/services/semanticEcho/index.mjs +2 -0
  354. package/dist/src/services/semanticEcho/index.mjs.map +1 -0
  355. package/dist/src/services/semanticEcho/type.d.cts +52 -0
  356. package/dist/src/services/semanticEcho/type.d.cts.map +1 -0
  357. package/dist/src/services/semanticEcho/type.d.mts +52 -0
  358. package/dist/src/services/semanticEcho/type.d.mts.map +1 -0
  359. package/dist/src/services/sessionVoiceOwnership/index.cjs +2 -0
  360. package/dist/src/services/sessionVoiceOwnership/index.cjs.map +1 -0
  361. package/dist/src/services/sessionVoiceOwnership/index.d.cts +8 -0
  362. package/dist/src/services/sessionVoiceOwnership/index.d.cts.map +1 -0
  363. package/dist/src/services/sessionVoiceOwnership/index.d.mts +8 -0
  364. package/dist/src/services/sessionVoiceOwnership/index.d.mts.map +1 -0
  365. package/dist/src/services/sessionVoiceOwnership/index.mjs +2 -0
  366. package/dist/src/services/sessionVoiceOwnership/index.mjs.map +1 -0
  367. package/dist/src/services/silero/index.cjs +2 -0
  368. package/dist/src/services/silero/index.cjs.map +1 -0
  369. package/dist/src/services/silero/index.mjs +2 -0
  370. package/dist/src/services/silero/index.mjs.map +1 -0
  371. package/dist/src/services/transcriptAdmission/index.cjs +7 -0
  372. package/dist/src/services/transcriptAdmission/index.cjs.map +1 -0
  373. package/dist/src/services/transcriptAdmission/index.d.cts +3 -0
  374. package/dist/src/services/transcriptAdmission/index.d.mts +3 -0
  375. package/dist/src/services/transcriptAdmission/index.mjs +7 -0
  376. package/dist/src/services/transcriptAdmission/index.mjs.map +1 -0
  377. package/dist/src/services/transcriptAdmission/type.d.cts +44 -0
  378. package/dist/src/services/transcriptAdmission/type.d.cts.map +1 -0
  379. package/dist/src/services/transcriptAdmission/type.d.mts +44 -0
  380. package/dist/src/services/transcriptAdmission/type.d.mts.map +1 -0
  381. package/dist/src/services/transcriptPolicy/index.cjs +2 -0
  382. package/dist/src/services/transcriptPolicy/index.cjs.map +1 -0
  383. package/dist/src/services/transcriptPolicy/index.mjs +2 -0
  384. package/dist/src/services/transcriptPolicy/index.mjs.map +1 -0
  385. package/dist/src/services/transcriptionCoordinator/index.cjs +2 -0
  386. package/dist/src/services/transcriptionCoordinator/index.cjs.map +1 -0
  387. package/dist/src/services/transcriptionCoordinator/index.mjs +2 -0
  388. package/dist/src/services/transcriptionCoordinator/index.mjs.map +1 -0
  389. package/dist/src/services/turnTranscriber/index.cjs +2 -0
  390. package/dist/src/services/turnTranscriber/index.cjs.map +1 -0
  391. package/dist/src/services/turnTranscriber/index.mjs +2 -0
  392. package/dist/src/services/turnTranscriber/index.mjs.map +1 -0
  393. package/dist/src/services/utterance/index.cjs +2 -0
  394. package/dist/src/services/utterance/index.cjs.map +1 -0
  395. package/dist/src/services/utterance/index.d.cts +44 -0
  396. package/dist/src/services/utterance/index.d.cts.map +1 -0
  397. package/dist/src/services/utterance/index.d.mts +44 -0
  398. package/dist/src/services/utterance/index.d.mts.map +1 -0
  399. package/dist/src/services/utterance/index.mjs +2 -0
  400. package/dist/src/services/utterance/index.mjs.map +1 -0
  401. package/dist/src/services/vad/index.cjs +2 -0
  402. package/dist/src/services/vad/index.cjs.map +1 -0
  403. package/dist/{vad.d.cts → src/services/vad/index.d.cts} +28 -13
  404. package/dist/src/services/vad/index.d.cts.map +1 -0
  405. package/dist/{vad.d.mts → src/services/vad/index.d.mts} +28 -13
  406. package/dist/src/services/vad/index.d.mts.map +1 -0
  407. package/dist/src/services/vad/index.mjs +2 -0
  408. package/dist/src/services/vad/index.mjs.map +1 -0
  409. package/dist/src/services/voiceClientSettings/index.cjs +2 -0
  410. package/dist/src/services/voiceClientSettings/index.cjs.map +1 -0
  411. package/dist/src/services/voiceClientSettings/index.mjs +2 -0
  412. package/dist/src/services/voiceClientSettings/index.mjs.map +1 -0
  413. package/dist/src/services/voiceConfig/index.cjs +2 -0
  414. package/dist/src/services/voiceConfig/index.cjs.map +1 -0
  415. package/dist/src/services/voiceConfig/index.d.cts +7 -0
  416. package/dist/src/services/voiceConfig/index.d.cts.map +1 -0
  417. package/dist/src/services/voiceConfig/index.d.mts +7 -0
  418. package/dist/src/services/voiceConfig/index.d.mts.map +1 -0
  419. package/dist/src/services/voiceConfig/index.mjs +2 -0
  420. package/dist/src/services/voiceConfig/index.mjs.map +1 -0
  421. package/dist/src/services/voiceDelivery/index.cjs +2 -0
  422. package/dist/src/services/voiceDelivery/index.cjs.map +1 -0
  423. package/dist/src/services/voiceDelivery/index.d.cts +5 -0
  424. package/dist/src/services/voiceDelivery/index.d.cts.map +1 -0
  425. package/dist/src/services/voiceDelivery/index.d.mts +5 -0
  426. package/dist/src/services/voiceDelivery/index.d.mts.map +1 -0
  427. package/dist/src/services/voiceDelivery/index.mjs +2 -0
  428. package/dist/src/services/voiceDelivery/index.mjs.map +1 -0
  429. package/dist/src/services/voiceDependencies/index.cjs +2 -0
  430. package/dist/src/services/voiceDependencies/index.cjs.map +1 -0
  431. package/dist/src/services/voiceDependencies/index.d.cts +5 -0
  432. package/dist/src/services/voiceDependencies/index.d.cts.map +1 -0
  433. package/dist/src/services/voiceDependencies/index.d.mts +5 -0
  434. package/dist/src/services/voiceDependencies/index.d.mts.map +1 -0
  435. package/dist/src/services/voiceDependencies/index.mjs +2 -0
  436. package/dist/src/services/voiceDependencies/index.mjs.map +1 -0
  437. package/dist/src/services/voiceOwnershipCoordinator/index.cjs +2 -0
  438. package/dist/src/services/voiceOwnershipCoordinator/index.cjs.map +1 -0
  439. package/dist/src/services/voiceOwnershipCoordinator/index.mjs +2 -0
  440. package/dist/src/services/voiceOwnershipCoordinator/index.mjs.map +1 -0
  441. package/dist/src/services/voicePrompt/index.cjs +2 -0
  442. package/dist/src/services/voicePrompt/index.cjs.map +1 -0
  443. package/dist/src/services/voicePrompt/index.mjs +2 -0
  444. package/dist/src/services/voicePrompt/index.mjs.map +1 -0
  445. package/dist/src/services/voiceReadiness/index.cjs +2 -0
  446. package/dist/src/services/voiceReadiness/index.cjs.map +1 -0
  447. package/dist/src/services/voiceReadiness/index.mjs +2 -0
  448. package/dist/src/services/voiceReadiness/index.mjs.map +1 -0
  449. package/dist/src/services/voiceSessionController/index.cjs +2 -0
  450. package/dist/src/services/voiceSessionController/index.cjs.map +1 -0
  451. package/dist/src/services/voiceSessionController/index.d.cts +33 -0
  452. package/dist/src/services/voiceSessionController/index.d.cts.map +1 -0
  453. package/dist/src/services/voiceSessionController/index.d.mts +33 -0
  454. package/dist/src/services/voiceSessionController/index.d.mts.map +1 -0
  455. package/dist/src/services/voiceSessionController/index.mjs +2 -0
  456. package/dist/src/services/voiceSessionController/index.mjs.map +1 -0
  457. package/dist/src/services/voiceToolPrompt/index.cjs +5 -0
  458. package/dist/src/services/voiceToolPrompt/index.cjs.map +1 -0
  459. package/dist/src/services/voiceToolPrompt/index.mjs +5 -0
  460. package/dist/src/services/voiceToolPrompt/index.mjs.map +1 -0
  461. package/dist/src/services/voiceTools/index.cjs +2 -0
  462. package/dist/src/services/voiceTools/index.cjs.map +1 -0
  463. package/dist/src/services/voiceTools/index.d.cts +7 -0
  464. package/dist/src/services/voiceTools/index.d.cts.map +1 -0
  465. package/dist/src/services/voiceTools/index.d.mts +7 -0
  466. package/dist/src/services/voiceTools/index.d.mts.map +1 -0
  467. package/dist/src/services/voiceTools/index.mjs +2 -0
  468. package/dist/src/services/voiceTools/index.mjs.map +1 -0
  469. package/dist/src/services/voiceWorkerAutoCaptureController/index.cjs +2 -0
  470. package/dist/src/services/voiceWorkerAutoCaptureController/index.cjs.map +1 -0
  471. package/dist/src/services/voiceWorkerAutoCaptureController/index.d.cts +72 -0
  472. package/dist/src/services/voiceWorkerAutoCaptureController/index.d.cts.map +1 -0
  473. package/dist/src/services/voiceWorkerAutoCaptureController/index.d.mts +72 -0
  474. package/dist/src/services/voiceWorkerAutoCaptureController/index.d.mts.map +1 -0
  475. package/dist/src/services/voiceWorkerAutoCaptureController/index.mjs +2 -0
  476. package/dist/src/services/voiceWorkerAutoCaptureController/index.mjs.map +1 -0
  477. package/dist/src/services/voiceWorkerClient/index.cjs +2 -0
  478. package/dist/src/services/voiceWorkerClient/index.cjs.map +1 -0
  479. package/dist/src/services/voiceWorkerClient/index.d.cts +28 -0
  480. package/dist/src/services/voiceWorkerClient/index.d.cts.map +1 -0
  481. package/dist/src/services/voiceWorkerClient/index.d.mts +28 -0
  482. package/dist/src/services/voiceWorkerClient/index.d.mts.map +1 -0
  483. package/dist/src/services/voiceWorkerClient/index.mjs +2 -0
  484. package/dist/src/services/voiceWorkerClient/index.mjs.map +1 -0
  485. package/dist/src/services/voiceWorkerMedia/index.cjs +2 -0
  486. package/dist/src/services/voiceWorkerMedia/index.cjs.map +1 -0
  487. package/dist/src/services/voiceWorkerMedia/index.mjs +2 -0
  488. package/dist/src/services/voiceWorkerMedia/index.mjs.map +1 -0
  489. package/dist/src/services/voiceWorkerPipeline/index.cjs +2 -0
  490. package/dist/src/services/voiceWorkerPipeline/index.cjs.map +1 -0
  491. package/dist/src/services/voiceWorkerPipeline/index.mjs +2 -0
  492. package/dist/src/services/voiceWorkerPipeline/index.mjs.map +1 -0
  493. package/dist/src/services/voiceWorkerProtocol/index.cjs +2 -0
  494. package/dist/src/services/voiceWorkerProtocol/index.cjs.map +1 -0
  495. package/dist/src/services/voiceWorkerProtocol/index.d.cts +149 -0
  496. package/dist/src/services/voiceWorkerProtocol/index.d.cts.map +1 -0
  497. package/dist/src/services/voiceWorkerProtocol/index.d.mts +149 -0
  498. package/dist/src/services/voiceWorkerProtocol/index.d.mts.map +1 -0
  499. package/dist/src/services/voiceWorkerProtocol/index.mjs +2 -0
  500. package/dist/src/services/voiceWorkerProtocol/index.mjs.map +1 -0
  501. package/dist/src/services/voiceWorkerSessionController/index.cjs +2 -0
  502. package/dist/src/services/voiceWorkerSessionController/index.cjs.map +1 -0
  503. package/dist/src/services/voiceWorkerSessionController/index.d.cts +21 -0
  504. package/dist/src/services/voiceWorkerSessionController/index.d.cts.map +1 -0
  505. package/dist/src/services/voiceWorkerSessionController/index.d.mts +21 -0
  506. package/dist/src/services/voiceWorkerSessionController/index.d.mts.map +1 -0
  507. package/dist/src/services/voiceWorkerSessionController/index.mjs +2 -0
  508. package/dist/src/services/voiceWorkerSessionController/index.mjs.map +1 -0
  509. package/dist/src/services/voiceWorkerSupervisor/index.cjs +2 -0
  510. package/dist/src/services/voiceWorkerSupervisor/index.cjs.map +1 -0
  511. package/dist/src/services/voiceWorkerSupervisor/index.d.cts +12 -0
  512. package/dist/src/services/voiceWorkerSupervisor/index.d.cts.map +1 -0
  513. package/dist/src/services/voiceWorkerSupervisor/index.d.mts +12 -0
  514. package/dist/src/services/voiceWorkerSupervisor/index.d.mts.map +1 -0
  515. package/dist/src/services/voiceWorkerSupervisor/index.mjs +2 -0
  516. package/dist/src/services/voiceWorkerSupervisor/index.mjs.map +1 -0
  517. package/dist/src/services/whisper/index.cjs +2 -0
  518. package/dist/src/services/whisper/index.cjs.map +1 -0
  519. package/dist/src/services/whisper/index.d.cts +34 -0
  520. package/dist/src/services/whisper/index.d.cts.map +1 -0
  521. package/dist/src/services/whisper/index.d.mts +34 -0
  522. package/dist/src/services/whisper/index.d.mts.map +1 -0
  523. package/dist/src/services/whisper/index.mjs +2 -0
  524. package/dist/src/services/whisper/index.mjs.map +1 -0
  525. package/dist/src/types/clientCaptureActivity.cjs +2 -0
  526. package/dist/src/types/clientCaptureActivity.cjs.map +1 -0
  527. package/dist/src/types/clientCaptureActivity.d.cts +38 -0
  528. package/dist/src/types/clientCaptureActivity.d.cts.map +1 -0
  529. package/dist/src/types/clientCaptureActivity.d.mts +38 -0
  530. package/dist/src/types/clientCaptureActivity.d.mts.map +1 -0
  531. package/dist/src/types/clientCaptureActivity.mjs +2 -0
  532. package/dist/src/types/clientCaptureActivity.mjs.map +1 -0
  533. package/dist/src/types/clientMedia.cjs +2 -0
  534. package/dist/src/types/clientMedia.cjs.map +1 -0
  535. package/dist/src/types/clientMedia.d.cts +164 -0
  536. package/dist/src/types/clientMedia.d.cts.map +1 -0
  537. package/dist/src/types/clientMedia.d.mts +164 -0
  538. package/dist/src/types/clientMedia.d.mts.map +1 -0
  539. package/dist/src/types/clientMedia.mjs +2 -0
  540. package/dist/src/types/clientMedia.mjs.map +1 -0
  541. package/dist/src/types/index.d.cts +210 -0
  542. package/dist/src/types/index.d.cts.map +1 -0
  543. package/dist/src/types/index.d.mts +210 -0
  544. package/dist/src/types/index.d.mts.map +1 -0
  545. package/dist/src/types/manualTranscription.cjs +2 -0
  546. package/dist/src/types/manualTranscription.cjs.map +1 -0
  547. package/dist/src/types/manualTranscription.mjs +2 -0
  548. package/dist/src/types/manualTranscription.mjs.map +1 -0
  549. package/dist/src/types/realtime.cjs +2 -0
  550. package/dist/src/types/realtime.cjs.map +1 -0
  551. package/dist/src/types/realtime.d.cts +61 -0
  552. package/dist/src/types/realtime.d.cts.map +1 -0
  553. package/dist/src/types/realtime.d.mts +61 -0
  554. package/dist/src/types/realtime.d.mts.map +1 -0
  555. package/dist/src/types/realtime.mjs +2 -0
  556. package/dist/src/types/realtime.mjs.map +1 -0
  557. package/dist/src/types/voiceOwnership.cjs +2 -0
  558. package/dist/src/types/voiceOwnership.cjs.map +1 -0
  559. package/dist/src/types/voiceOwnership.d.cts +48 -0
  560. package/dist/src/types/voiceOwnership.d.cts.map +1 -0
  561. package/dist/src/types/voiceOwnership.d.mts +48 -0
  562. package/dist/src/types/voiceOwnership.d.mts.map +1 -0
  563. package/dist/src/types/voiceOwnership.mjs +2 -0
  564. package/dist/src/types/voiceOwnership.mjs.map +1 -0
  565. package/dist/voiceReloadHandoff.cjs +1 -0
  566. package/dist/voiceReloadHandoff.d.cts +1 -0
  567. package/dist/voiceReloadHandoff.d.mts +1 -0
  568. package/dist/voiceReloadHandoff.mjs +1 -0
  569. package/dist/voiceTools.cjs +1 -0
  570. package/dist/voiceTools.d.cts +3 -0
  571. package/dist/voiceTools.d.mts +3 -0
  572. package/dist/voiceTools.mjs +1 -0
  573. package/dist/voiceWorker.cjs +2 -0
  574. package/dist/voiceWorker.cjs.map +1 -0
  575. package/dist/voiceWorker.d.cts +25 -0
  576. package/dist/voiceWorker.d.cts.map +1 -0
  577. package/dist/voiceWorker.d.mts +25 -0
  578. package/dist/voiceWorker.d.mts.map +1 -0
  579. package/dist/voiceWorker.mjs +2 -0
  580. package/dist/voiceWorker.mjs.map +1 -0
  581. package/licenses/Codex-Apache-2.0.txt +201 -0
  582. package/llms.txt +9 -0
  583. package/package.json +109 -23
  584. package/src/extensions/web.ts +75 -0
  585. package/src/prompts/doompi-use-voice/SKILL.md +35 -0
  586. package/src/types/clientCaptureActivity.ts +155 -0
  587. package/src/types/clientMedia.ts +211 -0
  588. package/src/types/manualTranscription.ts +53 -0
  589. package/src/types/realtime.ts +107 -0
  590. package/src/types/voiceOwnership.ts +238 -0
  591. package/src/web/api/browserMediaDevice.ts +621 -0
  592. package/src/web/api/browserRealtimeSession.ts +442 -0
  593. package/src/web/api/manualBrowserRecorder.ts +276 -0
  594. package/src/web/api/manualComposerRecorder.ts +128 -0
  595. package/src/web/api/manualTranscriptionClient.ts +60 -0
  596. package/src/web/api/sileroVadWorker.ts +61 -0
  597. package/src/web/api/voiceMediaClient.ts +550 -0
  598. package/src/web/components/VoiceActivitySection.tsx +172 -0
  599. package/src/web/components/VoiceComposerAction.tsx +164 -0
  600. package/src/web/components/VoiceMediaRuntime.tsx +157 -0
  601. package/src/web/components/VoiceToolMessage.tsx +60 -0
  602. package/src/web/lib/browserCaptureWorklet.js +13 -0
  603. package/src/web/lib/browserMediaIdentity.ts +16 -0
  604. package/src/web/lib/browserNarrationEchoDiscriminator.ts +380 -0
  605. package/src/web/lib/browserSpeechPresenceDetector.ts +111 -0
  606. package/src/web/lib/sileroVadFrames.ts +54 -0
  607. package/src/web/lib/voiceActivityView.ts +193 -0
  608. package/src/web/lib/voiceSettings.ts +72 -0
  609. package/src/web/lib/voiceToolRender.ts +335 -0
  610. package/src/web/models/README.md +11 -0
  611. package/src/web/models/SILERO-LICENSE +21 -0
  612. package/src/web/models/silero_vad_v6.2.1.onnx +0 -0
  613. package/src/web/stores/clientMediaTransport.ts +403 -0
  614. package/src/web/stores/voiceMediaWakeStore.ts +145 -0
  615. package/src/web/stores/voiceMicrophoneStore.ts +140 -0
  616. package/src/web/tsconfig.json +23 -0
  617. package/src/web/viteAssets.d.ts +9 -0
  618. package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorate.cjs +0 -1
  619. package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorate.mjs +0 -1
  620. package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.cjs +0 -1
  621. package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.mjs +0 -1
  622. package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateParam.cjs +0 -1
  623. package/dist/_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateParam.mjs +0 -1
  624. package/dist/autoCapture.cjs +0 -8
  625. package/dist/autoCapture.cjs.map +0 -1
  626. package/dist/autoCapture.d.cts +0 -226
  627. package/dist/autoCapture.d.cts.map +0 -1
  628. package/dist/autoCapture.d.mts +0 -226
  629. package/dist/autoCapture.d.mts.map +0 -1
  630. package/dist/autoCapture.mjs +0 -8
  631. package/dist/autoCapture.mjs.map +0 -1
  632. package/dist/catalog.cjs.map +0 -1
  633. package/dist/catalog.mjs.map +0 -1
  634. package/dist/download.cjs +0 -2
  635. package/dist/download.cjs.map +0 -1
  636. package/dist/download.mjs.map +0 -1
  637. package/dist/extensions/doom.cjs +0 -2
  638. package/dist/extensions/doom.cjs.map +0 -1
  639. package/dist/extensions/doom.d.cts +0 -6
  640. package/dist/extensions/doom.d.cts.map +0 -1
  641. package/dist/extensions/doom.d.mts +0 -6
  642. package/dist/extensions/doom.d.mts.map +0 -1
  643. package/dist/extensions/doom.mjs +0 -2
  644. package/dist/extensions/doom.mjs.map +0 -1
  645. package/dist/infrastructure.cjs +0 -3
  646. package/dist/infrastructure.cjs.map +0 -1
  647. package/dist/infrastructure.d.cts.map +0 -1
  648. package/dist/infrastructure.d.mts.map +0 -1
  649. package/dist/infrastructure.mjs +0 -3
  650. package/dist/infrastructure.mjs.map +0 -1
  651. package/dist/install.cjs +0 -2
  652. package/dist/install.cjs.map +0 -1
  653. package/dist/install.mjs +0 -2
  654. package/dist/install.mjs.map +0 -1
  655. package/dist/narration.cjs +0 -9
  656. package/dist/narration.cjs.map +0 -1
  657. package/dist/narration.d.cts +0 -110
  658. package/dist/narration.d.cts.map +0 -1
  659. package/dist/narration.d.mts +0 -110
  660. package/dist/narration.d.mts.map +0 -1
  661. package/dist/narration.mjs +0 -9
  662. package/dist/narration.mjs.map +0 -1
  663. package/dist/pcm.cjs.map +0 -1
  664. package/dist/pcm.d.cts +0 -16
  665. package/dist/pcm.d.cts.map +0 -1
  666. package/dist/pcm.d.mts +0 -16
  667. package/dist/pcm.d.mts.map +0 -1
  668. package/dist/pcm.mjs.map +0 -1
  669. package/dist/semanticEcho.cjs +0 -5
  670. package/dist/semanticEcho.cjs.map +0 -1
  671. package/dist/semanticEcho.d.cts +0 -100
  672. package/dist/semanticEcho.d.cts.map +0 -1
  673. package/dist/semanticEcho.d.mts +0 -100
  674. package/dist/semanticEcho.d.mts.map +0 -1
  675. package/dist/semanticEcho.mjs +0 -5
  676. package/dist/semanticEcho.mjs.map +0 -1
  677. package/dist/types.cjs +0 -2
  678. package/dist/types.cjs.map +0 -1
  679. package/dist/types.d.cts +0 -164
  680. package/dist/types.d.cts.map +0 -1
  681. package/dist/types.d.mts +0 -164
  682. package/dist/types.d.mts.map +0 -1
  683. package/dist/types.mjs +0 -2
  684. package/dist/types.mjs.map +0 -1
  685. package/dist/vad.cjs +0 -2
  686. package/dist/vad.cjs.map +0 -1
  687. package/dist/vad.d.cts.map +0 -1
  688. package/dist/vad.d.mts.map +0 -1
  689. package/dist/vad.mjs +0 -2
  690. package/dist/vad.mjs.map +0 -1
  691. package/dist/voice.cjs +0 -2
  692. package/dist/voice.cjs.map +0 -1
  693. package/dist/voice.d.cts +0 -146
  694. package/dist/voice.d.cts.map +0 -1
  695. package/dist/voice.d.mts +0 -146
  696. package/dist/voice.d.mts.map +0 -1
  697. package/dist/voice.mjs +0 -2
  698. package/dist/voice.mjs.map +0 -1
  699. package/dist/voiceConfig.cjs +0 -2
  700. package/dist/voiceConfig.cjs.map +0 -1
  701. package/dist/voiceConfig.mjs +0 -2
  702. package/dist/voiceConfig.mjs.map +0 -1
package/NOTICE ADDED
@@ -0,0 +1,13 @@
1
+ This package includes portions adapted from OpenAI Codex.
2
+ Copyright 2025 OpenAI
3
+ https://github.com/openai/codex
4
+ Source revision: 5ecb3afd1b
5
+
6
+ Adapted files:
7
+ - src/services/codexAuth/index.ts, src/services/codexLogin/index.ts, and src/services/codexAuthStorage/index.ts: subscription login, credential storage, and refresh
8
+ - src/services/codexRealtime/index.ts: realtime call creation
9
+ - src/services/realtimeProtocol.ts: Frameless realtime events and context messages
10
+
11
+ These portions were modified for DoomPi and are licensed under Apache-2.0.
12
+ A copy is included in licenses/Codex-Apache-2.0.txt.
13
+ The package's MIT license continues to apply to its original code.
package/README.md CHANGED
@@ -1,38 +1,267 @@
1
1
  # @agimon-ai/doompi-voice
2
2
 
3
- Local speech to text extension for Pi.
3
+ ## Server and browser configuration
4
4
 
5
- Local speech to text. Audio stays on the machine.
5
+ The web Settings page includes Voice under global and workspace settings. It uses the shared
6
+ config API, including file hashes, atomic saves, numeric values, and scope validation. `voice.mode` and `voice.autoCapture`
7
+ remain global settings. Browser input selection is separate from the host ffmpeg
8
+ `voice.recorder.device` option.
6
9
 
7
- Part of [Doompi](https://www.npmjs.com/package/@agimon-ai/doompi), a coding agent that loads
8
- only the skills and tools you name. This package is composed by Doompi and is not usually
9
- installed on its own.
10
+ Choose a microphone beside the composer Voice button. The browser registers physical inputs
11
+ after microphone permission and saves the choice under the server home's
12
+ `.pi/.doom/voice/clients.json`. The preference identity survives browser reloads; each tab
13
+ keeps its own media connection lease. If no choice is saved, the default alias is resolved only
14
+ when it matches exactly one physical device. Manual dictation appends to the draft until Send.
15
+
16
+ Voice owns these authenticated server endpoints:
17
+
18
+ | Mount | Endpoint | Purpose |
19
+ | --------------------------------------- | ------------------------------- | -------------------------------------------------------- |
20
+ | `/api/global/plugin/voice` | `GET /readiness` | Check configuration and local transcription dependencies |
21
+ | same | `GET /clients/:clientId` | Read browser microphone preferences |
22
+ | same | `PUT /clients/:clientId/inputs` | Register `{inputs: [{deviceId, groupId, label}]}` |
23
+ | same | `PUT /clients/:clientId` | Save `{deviceId}`; null clears selection |
24
+ | same | `DELETE /clients/:clientId` | Clear the saved selection |
25
+ | `/api/sessions/:sessionId/plugin/voice` | `GET /status` | Read lifecycle and media readiness |
26
+ | same | `POST /control` | Send `{action, target?}` |
27
+
28
+ Control actions are `status`, `manual`, `activate`, `deactivate`, `mute`, `unmute`, `interrupt`,
29
+ and `transfer` (with a target catalog order). The typed session method `voice.control` uses the
30
+ same operations as commands and minor-mode actions. Browser recording uploads continue to use
31
+ `/api/sessions/:sessionId/plugin/voice-media/manual/transcribe`.
32
+
33
+ The native server composes Voice controllers with one session media broker. Workers receive PCM
34
+ on a dedicated media port. No terminal editor or Pi ExtensionContext is emulated. Live voice
35
+ still requires its separate subscription credentials; a successful local readiness check does
36
+ not verify a live provider connection.
37
+
38
+ Capture speech on the client, transcribe it on the host, and play responses through DoomPi Voice mode.
39
+
40
+ Part of the [DoomPi distribution](https://www.npmjs.com/package/@agimon-ai/doompi).
41
+
42
+ Voice can transcribe one recording or keep the currently active session listening. It also gives
43
+ the primary agent a bounded `narrate` tool and accepts narration requests from other extensions.
44
+
45
+ > **Alpha:** Voice state, tool, and platform support may change between releases.
46
+
47
+ ## Realtime companion
48
+
49
+ Realtime is an optional conversational interface, not a replacement for the primary Pi
50
+ agent or for half-duplex Voice. Pi keeps its selected model, reasoning, tools, approvals,
51
+ Team and Workflow. The companion handles speech and forwards fresh action requests to Pi;
52
+ it does not execute tools or launch a second coding agent.
53
+
54
+ The experimental live path connects browser WebRTC, DoomPi-owned subscription login,
55
+ the exclusive media lease, bounded session context, and main-agent requests/results.
56
+ Subscription connectivity and a synthetic echo roundtrip have been exercised. Physical
57
+ playback, echo safety, interruption recovery and microphone usability remain **unqualified**.
58
+
59
+ For a separately approved trial:
60
+
61
+ 1. Select `voice.mode: live` in global configuration. Repository configuration cannot enable it.
62
+ 2. Run `/voice-auto login` and open the displayed URL on the DoomPi host. Credentials stay
63
+ in DoomPi's private `voice/subscription-auth` directory beside its global configuration,
64
+ separate from Codex and Pi OAuth. `/voice-auto login-cancel` cancels the attempt.
65
+ 3. With separate provider and microphone consent, explicitly activate Voice with a connected
66
+ WebRTC-capable browser. Selecting live or signing in does not activate capture.
67
+ 4. Use browser controls or `/voice-auto mute`, `unmute`, `interrupt`, and `end`.
68
+
69
+ Pi's settled final text is returned as a correlated companion result, separately from the
70
+ initial submission acknowledgement. Later Pi turns, including turns responding to Team or
71
+ Workflow completion, can supply speakable session updates without another voice request.
72
+ Responses exceeding the bounded result limit stay in the Pi session; Voice reports that it
73
+ cannot summarize contents it did not transmit. Thinking and raw tool output are not forwarded.
74
+
75
+ Interruption suppresses output for the remainder of that activation; explicitly end and
76
+ reactivate Voice to hear replies again. It does not cancel main-agent work. Exact primary-agent
77
+ `narrate` and its TTS fallback are not enabled in live mode. Voice-only approval answers remain
78
+ unavailable. Reconnect and reload do not resume microphone transmission.
79
+
80
+ Omit `voice.mode` or select the compatibility value `legacy` for the existing half-duplex
81
+ Voice path. It remains a supported interaction choice. Live capture does not require local
82
+ ASR; the local transcription requirements below apply to half-duplex and manual Voice.
83
+ No API-key fallback is provided if subscription access fails.
84
+
85
+ See [ARCHITECTURE.md](docs/ARCHITECTURE.md#realtime-port-foundations) for the current boundary.
86
+ Upstream port attribution is in `NOTICE` and `licenses/Codex-Apache-2.0.txt`.
87
+
88
+ ## Requirements
89
+
90
+ - Node.js 22.19.0 or newer
91
+ - Pi 0.85.0
92
+ - A browser with microphone capture and speech synthesis when using `doompi-web`
93
+ - For standalone terminal use on macOS, FFmpeg capture and `say` playback
94
+ - One supported local transcription engine: `whisper-cli`, `whisper`, or `mlx_whisper` (Apple
95
+ silicon only)
96
+ - Microphone permission on the client device
10
97
 
11
98
  ## Install
12
99
 
100
+ The seeded `modes.yaml` selects Voice in `default.packages`. Keep it there or select it through a
101
+ layer; Voice is not fixed host infrastructure. Standalone Pi loads the same extension:
102
+
13
103
  ```bash
14
- npm install @agimon-ai/doompi-voice
104
+ pi install npm:@agimon-ai/doompi-voice
105
+ ```
106
+
107
+ | Entry | Purpose |
108
+ | --------------------------------------- | ---------------------------------------------------------------- |
109
+ | `@agimon-ai/doompi-voice/extensions/pi` | Voice mode, Leader, footer, configuration, and narration runtime |
110
+
111
+ ## Configure
112
+
113
+ A complete `~/.pi/.doom/config.yaml` example using Python Whisper is:
114
+
115
+ ```yaml
116
+ voice:
117
+ engine: openai-whisper
118
+ language: auto
119
+ recorder:
120
+ device: default
121
+ adapters:
122
+ openai-whisper:
123
+ binary: whisper
124
+ model:
125
+ id: base
126
+ autoCapture:
127
+ model: provider/model-id
128
+ startPhrases: []
129
+ stopPhrases: []
130
+ composeOpenPhrases: [hey doom]
131
+ composeSendPhrases: ["that's it"]
132
+ composeCancelPhrases: [scratch that]
133
+ utteranceIdleMs: 3000
134
+ composeUtteranceIdleMs: 1200
135
+ composeNudgeMs: 10000
136
+ transcriptionTimeoutMs: 120000
137
+ tts:
138
+ engine: macos-say
139
+ voice: Samantha
140
+ rate: 190
15
141
  ```
16
142
 
17
- ## How it loads
143
+ Replace `provider/model-id` with a model configured in Pi, or omit `autoCapture` when only manual
144
+ transcription is required. Use the `whisper-cpp` engine for `whisper-cli`, `openai-whisper` for
145
+ `whisper`, or `mlx-whisper` for `mlx_whisper`. `utteranceIdleMs` accepts 1,500 to 10,000 ms and
146
+ defaults to 3,000.
18
147
 
19
- Doompi loads this unconditionally. It is core, not a layer, so it does not appear in
20
- `.doom/modes.yaml`: making it optional would only create broken configurations.
148
+ A profile can give its persona its own voice. Front-matter in the persona's `profile.md` shadows
149
+ `autoCapture.tts` per field, so a persona setting only `rate` keeps the voice configured here:
21
150
 
22
- Extension entry: `@agimon-ai/doompi-voice/extensions/doom`
151
+ ```markdown
152
+ ---
153
+ name: Rhea
154
+ voice:
155
+ voice: Karen
156
+ rate: 175
157
+ ---
158
+ ```
159
+
160
+ The `engine` is never overridable, because it selects the synthesiser rather than the persona. The
161
+ spoken voice is read when autonomous voice activates, so a profile switch applies it through the
162
+ reload that switch already performs.
163
+
164
+ Autonomous voice can also change profile. The `profile` capability on the voice tool facade lists
165
+ the configured personas and queues a switch, which reloads the session with the new persona, its
166
+ voice, and its avatar. See
167
+ [@agimon-ai/doompi-profile](../../core/doompi-profile/README.md) for authoring personas.
168
+
169
+ When the agent is launched by `doompi-server`, capture and narration use the connected media client.
170
+ The protocol is capability-driven rather than browser-specific. A client can own microphone capture,
171
+ adaptive activity detection, endpoint decisions, autonomous capture phases, and playback while streaming
172
+ mono 16 kHz PCM16 through the authenticated session media API. The host supplies capabilities the client
173
+ does not advertise and remains responsible for durable spooling, configured transcription, and Pi or
174
+ model actions. This boundary supports terminal, web, React Native, and future watch adapters without
175
+ putting platform APIs in the shared client runtime.
176
+
177
+ A browser using the sealed remote-control channel takes the session media lease from a local client, so
178
+ narration and capture follow the user to the remote device. Local clients cannot take that lease back
179
+ while the remote client remains connected. Standalone terminal launches retain the macOS FFmpeg and
180
+ `say` adapters as a host-owned fallback. In the browser, `tts.voice` selects an exact
181
+ SpeechSynthesis voice name or URI. If it does not match, the browser uses its default voice. Portable
182
+ clients implement the declared ports through `@agimon-ai/doompi-voice/client-media`. Browser media ownership is page-global rather than tied to the focused cockpit route, so switching sessions does not disconnect an autonomous capture owned by another session.
183
+
184
+ For server-streamed narration, the browser uses the exact 16 kHz PCM as a local echo reference while uploading microphone PCM unchanged. A bounded discriminator filters only the local Silero input and reports cumulative trusted speech duration, never reference audio, residual audio, transcript, correlation, or gain. Natural address-free interruption requires 300 ms of trusted residual speech plus semantic novelty. Missing or uncertain alignment, failed local Silero, unsupported clients, and browser SpeechSynthesis all fail closed to the existing intentional-address or exact-stop behavior. The 800 ms echo tail remains active. Acoustic thresholds are provisional until physical speaker-to-microphone qualification passes.
185
+
186
+ ## Commands and tools
187
+
188
+ - `SPC v m` records and transcribes once; it does not enable autonomous Voice tools.
189
+ - `SPC v e` enters autonomous capture and exits it again.
190
+ - `/voice-auto mute` pauses microphone capture without disabling narration; `/voice-auto unmute` resumes capture.
191
+ - While autonomous capture is active, say `hey doom` at the beginning of a segment to open a long composed prompt. Later finalized segments are buffered until `that's it` submits the combined text or `scratch that` discards it in the example configuration.
192
+ - `describe_voice_tools` returns the active session's spoken capability catalog.
193
+ - `use_voice_tools` executes a bounded ordered batch against that catalog.
194
+ - `narrate` speaks one primary-agent-authored utterance and waits for physical playback.
195
+
196
+ Composition is for long spoken prompts, so a multi-part prompt is not submitted half-written. A short utterance needs no phrase and is delivered as soon as it finalizes.
197
+
198
+ Each configured phrase array replaces its defaults rather than extending them. The example above keeps only one phrase per set, so it does not recognize `doom prompt`, `doom send`, or `doom cancel` as composition commands. Omit the arrays to use all defaults:
199
+
200
+ `composeOpenPhrases` is `hey doom, doom prompt`, `composeSendPhrases` is `that's it, doom send`, and `composeCancelPhrases` is `doom cancel, scratch that`. Matching ignores case, punctuation and apostrophes, and tolerates small transcription differences, so `thats it` and `doom sent` are recognised. Send and cancel act as commands only while a draft is open, and only when the phrase is the whole segment or ends a sentence, so ordinary dictation containing those words stays content. While a draft collects, the endpoint window shortens to `composeUtteranceIdleMs` (default 1,200 ms) so a short command finalizes as its own turn. A composed prompt is queued as a Pi follow-up while Pi is busy.
201
+
202
+ Drafts are held in memory for the active autonomous session and are limited to 32,768 characters. Worker restarts and five-minute idle capture rotation preserve the draft, but deactivation, extension reload, and process restart discard it. Wait until the status returns to `composing, listening` before speaking the next segment because capture pauses during transcription.
203
+
204
+ Before a final response, narration contains the complete answer, including every user-relevant
205
+ conclusion, question, warning, result, and next action in the written response. It does not use
206
+ a shorter spoken summary that leaves essential information only in text. Each narration is
207
+ limited to 4,096 characters and returns `completed`, `interrupted`, `superseded`, or `failed`.
208
+ Once confirmed user speech begins, new narration waits in memory until that turn is synchronously delivered to Pi. Multiple waiting requests use the configured `autoCapture.model` to become one bounded spoken update, with one bounded deterministic utterance if compaction fails. Narration that was already playing is not stopped by this queue gate; the existing ranked barge-in policy remains responsible for interruption.
209
+ Narration fails closed while Voice is starting or draining, during shutdown, reload, or
210
+ deactivation, and when the request belongs to a stale session.
211
+ Only the currently active TUI session receives Voice-owned tools.
23
212
 
24
- ## Leader
213
+ If no `narrate` attempt is made before a final response, the active Voice session can produce one
214
+ bounded fallback utterance. Short final responses use deterministic text; longer ones may use
215
+ `autoCapture.model` for one bounded summary and fall back to a deterministic excerpt on failure.
216
+ These optional model calls consume provider quota.
25
217
 
26
- - `SPC v v` records or transcribes once.
27
- - `SPC v a` toggles autonomous voice capture. `VOICE` stays beside `INSERT` while enabled, and microphone activity appears transiently in the Doom modeline.
218
+ ## Data flow and recovery
28
219
 
29
- ## Entry points
220
+ The selected client captures audio. When it advertises client orchestration, its portable PCM state
221
+ machine performs activity detection and endpointing, then sends phase metadata with the streamed audio.
222
+ Clients without those capabilities use host adaptive and neural VAD as a fallback. PCM validation,
223
+ spooling, WAV creation, normalization, and configured local Whisper execution run on the host in a
224
+ private supervised worker. Private spool directories use mode `0700` and files use `0600`.
225
+ Unacknowledged turns can be rediscovered after a worker restart.
226
+
227
+ This is not a blanket “nothing leaves the machine” guarantee:
228
+
229
+ - Client PCM crosses the authenticated cockpit transport, is queued transiently in memory, and is
230
+ persisted only in the host worker's private spool.
231
+ - Transcript candidates and bounded state strings cross the worker/process boundary.
232
+ - Pi receives transcript text as user input.
233
+ - Command correction and long-final fallback text can be sent to the configured model provider.
234
+ - Telemetry may contain bounded operational metadata; review its sink configuration.
235
+
236
+ Manual recordings and autonomous spool windows are bounded to five minutes. Deactivation or
237
+ cancellation interrupts pending capture and playback. A manual reload does not silently reactivate
238
+ the microphone.
239
+
240
+ ## Architecture
241
+
242
+ See [Architecture](./docs/ARCHITECTURE.md) for the thread and process topology, the path a single spoken turn takes, the XState lifecycle and how it relates to Pi, the module and cordis service graph, and narration gating and barge-in. [SPEC.md](./docs/SPEC.md) is the normative contract.
243
+
244
+ ## Public API
245
+
246
+ The root exports audio infrastructure, PCM, VAD, and utterance services, narration and playback
247
+ contracts, command correction, fallback narration, and Voice types. Host adapters should import only declared package exports:
248
+
249
+ | Export | Purpose |
250
+ | --------------------------------------- | --------------------------------------------------------------------- |
251
+ | `@agimon-ai/doompi-voice` | Host audio adapters, narration, PCM, VAD, correction, and Voice types |
252
+ | `@agimon-ai/doompi-voice/extensions/pi` | Pi extension activation |
253
+ | `@agimon-ai/doompi-voice/client-media` | Client capture activity and media contracts |
254
+
255
+ ## Development
256
+
257
+ ```bash
258
+ pnpm build
259
+ pnpm typecheck
260
+ pnpm test
261
+ pnpm lint
262
+ ```
30
263
 
31
- | Import |
32
- | ----------------------------------------- |
33
- | `@agimon-ai/doompi-voice` |
34
- | `@agimon-ai/doompi-voice/extensions/pi` |
35
- | `@agimon-ai/doompi-voice/extensions/doom` |
264
+ Maintained by [Agimon](https://agimon.ai/about).
36
265
 
37
266
  ## License
38
267
 
@@ -1 +1 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));exports.__toESM=s;
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(e,t,n)=>(s(e,t,`default`),n&&s(n,t,`default`)),l=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));exports.__exportAll=o,exports.__reExport=c,exports.__toESM=l;
@@ -0,0 +1 @@
1
+ import"node:module";var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,i=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},a=(i,a,o,s)=>{if(a&&typeof a==`object`||typeof a==`function`)for(var c=n(a),l=0,u=c.length,d;l<u;l++)d=c[l],!r.call(i,d)&&d!==o&&e(i,d,{get:(e=>a[e]).bind(null,d),enumerable:!(s=t(a,d))||s.enumerable});return i},o=(e,t,n)=>(a(e,t,`default`),n&&a(n,t,`default`));export{i as __exportAll,o as __reExport};
@@ -0,0 +1 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./src/schemas/apiContracts.cjs");exports.apiContracts=e.apiContracts,exports.default=e.apiContracts;
@@ -0,0 +1 @@
1
+ import{apiContracts as e}from"./src/schemas/apiContracts.mjs";export{e as apiContracts,e as default};
@@ -0,0 +1,2 @@
1
+ import { apiContracts } from "./src/schemas/apiContracts.cjs";
2
+ export { apiContracts, apiContracts as default };
@@ -0,0 +1,2 @@
1
+ import { apiContracts } from "./src/schemas/apiContracts.mjs";
2
+ export { apiContracts, apiContracts as default };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src/types/clientMedia.cjs"),t=require("./src/types/clientCaptureActivity.cjs");exports.ClientCaptureActivityLifecycle=t.ClientCaptureActivityLifecycle,exports.VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER=e.VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER,exports.VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER=e.VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER,exports.VOICE_MEDIA_ACTIVITY_EPOCH_HEADER=e.VOICE_MEDIA_ACTIVITY_EPOCH_HEADER,exports.VOICE_MEDIA_ACTIVITY_LEVEL_HEADER=e.VOICE_MEDIA_ACTIVITY_LEVEL_HEADER,exports.VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER=e.VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER,exports.VOICE_MEDIA_ACTIVITY_STATE_HEADER=e.VOICE_MEDIA_ACTIVITY_STATE_HEADER,exports.VOICE_MEDIA_API_BASE_PATH=e.VOICE_MEDIA_API_BASE_PATH,exports.VOICE_MEDIA_BITS_PER_SAMPLE=e.VOICE_MEDIA_BITS_PER_SAMPLE,exports.VOICE_MEDIA_CHANNELS=e.VOICE_MEDIA_CHANNELS,exports.VOICE_MEDIA_CONTENT_TYPE=e.VOICE_MEDIA_CONTENT_TYPE,exports.VOICE_MEDIA_EVENT_WAIT_NONE=e.VOICE_MEDIA_EVENT_WAIT_NONE,exports.VOICE_MEDIA_HEARTBEAT_MS=e.VOICE_MEDIA_HEARTBEAT_MS,exports.VOICE_MEDIA_PLAYBACK_STATE_HEADER=e.VOICE_MEDIA_PLAYBACK_STATE_HEADER,exports.VOICE_MEDIA_PROTOCOL_VERSION=e.VOICE_MEDIA_PROTOCOL_VERSION,exports.VOICE_MEDIA_ROUTES=e.VOICE_MEDIA_ROUTES,exports.VOICE_MEDIA_SAMPLE_RATE=e.VOICE_MEDIA_SAMPLE_RATE,exports.VOICE_MEDIA_WAKE_TYPE=e.VOICE_MEDIA_WAKE_TYPE,exports.calculateClientPcmDbfs=t.calculateClientPcmDbfs,exports.voiceMediaClientUrl=e.voiceMediaClientUrl;
@@ -0,0 +1,3 @@
1
+ import { VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_STATE_HEADER, VOICE_MEDIA_API_BASE_PATH, VOICE_MEDIA_BITS_PER_SAMPLE, VOICE_MEDIA_CHANNELS, VOICE_MEDIA_CONTENT_TYPE, VOICE_MEDIA_EVENT_WAIT_NONE, VOICE_MEDIA_HEARTBEAT_MS, VOICE_MEDIA_PLAYBACK_STATE_HEADER, VOICE_MEDIA_PROTOCOL_VERSION, VOICE_MEDIA_ROUTES, VOICE_MEDIA_SAMPLE_RATE, VOICE_MEDIA_WAKE_TYPE, VoiceClientKind, VoiceMediaCapabilities, VoiceMediaCapture, VoiceMediaCaptureActivity, VoiceMediaCaptureActivityState, VoiceMediaCaptureConfiguration, VoiceMediaCaptureMode, VoiceMediaCaptureSpeechAnalysis, VoiceMediaClientEvent, VoiceMediaConnectRequest, VoiceMediaConnectResult, VoiceMediaControlLocation, VoiceMediaDevice, VoiceMediaHeartbeatResult, VoiceMediaPlayback, VoiceMediaPlaybackDelivery, VoiceMediaPlaybackOutcome, VoiceMediaPlaybackResult, VoiceMediaTransport, VoiceMediaWake, voiceMediaClientUrl } from "./src/types/clientMedia.cjs";
2
+ import { ClientCaptureActivityLifecycle, ClientCaptureSpeechClassification, SpeechPresenceDetector, SpeechPresenceWindow, calculateClientPcmDbfs } from "./src/types/clientCaptureActivity.cjs";
3
+ export { ClientCaptureActivityLifecycle, type ClientCaptureSpeechClassification, type SpeechPresenceDetector, type SpeechPresenceWindow, VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_STATE_HEADER, VOICE_MEDIA_API_BASE_PATH, VOICE_MEDIA_BITS_PER_SAMPLE, VOICE_MEDIA_CHANNELS, VOICE_MEDIA_CONTENT_TYPE, VOICE_MEDIA_EVENT_WAIT_NONE, VOICE_MEDIA_HEARTBEAT_MS, VOICE_MEDIA_PLAYBACK_STATE_HEADER, VOICE_MEDIA_PROTOCOL_VERSION, VOICE_MEDIA_ROUTES, VOICE_MEDIA_SAMPLE_RATE, VOICE_MEDIA_WAKE_TYPE, type VoiceClientKind, type VoiceMediaCapabilities, type VoiceMediaCapture, type VoiceMediaCaptureActivity, type VoiceMediaCaptureActivityState, type VoiceMediaCaptureConfiguration, type VoiceMediaCaptureMode, type VoiceMediaCaptureSpeechAnalysis, type VoiceMediaClientEvent, type VoiceMediaConnectRequest, type VoiceMediaConnectResult, type VoiceMediaControlLocation, type VoiceMediaDevice, type VoiceMediaHeartbeatResult, type VoiceMediaPlayback, type VoiceMediaPlaybackDelivery, type VoiceMediaPlaybackOutcome, type VoiceMediaPlaybackResult, type VoiceMediaTransport, type VoiceMediaWake, calculateClientPcmDbfs, voiceMediaClientUrl };
@@ -0,0 +1,3 @@
1
+ import { VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_STATE_HEADER, VOICE_MEDIA_API_BASE_PATH, VOICE_MEDIA_BITS_PER_SAMPLE, VOICE_MEDIA_CHANNELS, VOICE_MEDIA_CONTENT_TYPE, VOICE_MEDIA_EVENT_WAIT_NONE, VOICE_MEDIA_HEARTBEAT_MS, VOICE_MEDIA_PLAYBACK_STATE_HEADER, VOICE_MEDIA_PROTOCOL_VERSION, VOICE_MEDIA_ROUTES, VOICE_MEDIA_SAMPLE_RATE, VOICE_MEDIA_WAKE_TYPE, VoiceClientKind, VoiceMediaCapabilities, VoiceMediaCapture, VoiceMediaCaptureActivity, VoiceMediaCaptureActivityState, VoiceMediaCaptureConfiguration, VoiceMediaCaptureMode, VoiceMediaCaptureSpeechAnalysis, VoiceMediaClientEvent, VoiceMediaConnectRequest, VoiceMediaConnectResult, VoiceMediaControlLocation, VoiceMediaDevice, VoiceMediaHeartbeatResult, VoiceMediaPlayback, VoiceMediaPlaybackDelivery, VoiceMediaPlaybackOutcome, VoiceMediaPlaybackResult, VoiceMediaTransport, VoiceMediaWake, voiceMediaClientUrl } from "./src/types/clientMedia.mjs";
2
+ import { ClientCaptureActivityLifecycle, ClientCaptureSpeechClassification, SpeechPresenceDetector, SpeechPresenceWindow, calculateClientPcmDbfs } from "./src/types/clientCaptureActivity.mjs";
3
+ export { ClientCaptureActivityLifecycle, type ClientCaptureSpeechClassification, type SpeechPresenceDetector, type SpeechPresenceWindow, VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_STATE_HEADER, VOICE_MEDIA_API_BASE_PATH, VOICE_MEDIA_BITS_PER_SAMPLE, VOICE_MEDIA_CHANNELS, VOICE_MEDIA_CONTENT_TYPE, VOICE_MEDIA_EVENT_WAIT_NONE, VOICE_MEDIA_HEARTBEAT_MS, VOICE_MEDIA_PLAYBACK_STATE_HEADER, VOICE_MEDIA_PROTOCOL_VERSION, VOICE_MEDIA_ROUTES, VOICE_MEDIA_SAMPLE_RATE, VOICE_MEDIA_WAKE_TYPE, type VoiceClientKind, type VoiceMediaCapabilities, type VoiceMediaCapture, type VoiceMediaCaptureActivity, type VoiceMediaCaptureActivityState, type VoiceMediaCaptureConfiguration, type VoiceMediaCaptureMode, type VoiceMediaCaptureSpeechAnalysis, type VoiceMediaClientEvent, type VoiceMediaConnectRequest, type VoiceMediaConnectResult, type VoiceMediaControlLocation, type VoiceMediaDevice, type VoiceMediaHeartbeatResult, type VoiceMediaPlayback, type VoiceMediaPlaybackDelivery, type VoiceMediaPlaybackOutcome, type VoiceMediaPlaybackResult, type VoiceMediaTransport, type VoiceMediaWake, calculateClientPcmDbfs, voiceMediaClientUrl };
@@ -0,0 +1 @@
1
+ import{VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER as e,VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER as t,VOICE_MEDIA_ACTIVITY_EPOCH_HEADER as n,VOICE_MEDIA_ACTIVITY_LEVEL_HEADER as r,VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER as i,VOICE_MEDIA_ACTIVITY_STATE_HEADER as a,VOICE_MEDIA_API_BASE_PATH as o,VOICE_MEDIA_BITS_PER_SAMPLE as s,VOICE_MEDIA_CHANNELS as c,VOICE_MEDIA_CONTENT_TYPE as l,VOICE_MEDIA_EVENT_WAIT_NONE as u,VOICE_MEDIA_HEARTBEAT_MS as d,VOICE_MEDIA_PLAYBACK_STATE_HEADER as f,VOICE_MEDIA_PROTOCOL_VERSION as p,VOICE_MEDIA_ROUTES as m,VOICE_MEDIA_SAMPLE_RATE as h,VOICE_MEDIA_WAKE_TYPE as g,voiceMediaClientUrl as _}from"./src/types/clientMedia.mjs";import{ClientCaptureActivityLifecycle as v,calculateClientPcmDbfs as y}from"./src/types/clientCaptureActivity.mjs";export{v as ClientCaptureActivityLifecycle,e as VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER,t as VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER,n as VOICE_MEDIA_ACTIVITY_EPOCH_HEADER,r as VOICE_MEDIA_ACTIVITY_LEVEL_HEADER,i as VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER,a as VOICE_MEDIA_ACTIVITY_STATE_HEADER,o as VOICE_MEDIA_API_BASE_PATH,s as VOICE_MEDIA_BITS_PER_SAMPLE,c as VOICE_MEDIA_CHANNELS,l as VOICE_MEDIA_CONTENT_TYPE,u as VOICE_MEDIA_EVENT_WAIT_NONE,d as VOICE_MEDIA_HEARTBEAT_MS,f as VOICE_MEDIA_PLAYBACK_STATE_HEADER,p as VOICE_MEDIA_PROTOCOL_VERSION,m as VOICE_MEDIA_ROUTES,h as VOICE_MEDIA_SAMPLE_RATE,g as VOICE_MEDIA_WAKE_TYPE,y as calculateClientPcmDbfs,_ as voiceMediaClientUrl};
@@ -1,2 +1,2 @@
1
- var e=require("../voice.cjs").voiceExtension;module.exports=e;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../src/controllers/voicePlugin.cjs"),t=(0,require("@agimon-ai/doompi-core/pi-extension").definePiExtension)(`@agimon-ai/doompi-voice`,({context:t,pi:n,options:r})=>({...e.createVoicePiRuntime(t,n,r??{}),resources:[{source:`@agimon-ai/doompi-voice`,moduleUrl:require("url").pathToFileURL(__filename).href,skills:[{name:`doompi-use-voice`,description:`Use Doom Pi Voice for manual transcription, autonomous capture, narration, configuration, and recovery on macOS.`}]}]}));exports.default=t,exports.voicePiExtension=t;
2
2
  //# sourceMappingURL=pi.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.cjs","names":["voiceExtension"],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { voiceExtension } from '../voice.ts';\n\nexport default voiceExtension;\n"],"mappings":"AAEA,IAAA,wBAAeA,CAAAA,CAAAA"}
1
+ {"version":3,"file":"pi.cjs","names":["definePiExtension","createVoicePiRuntime"],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { definePiExtension } from '@agimon-ai/doompi-core/pi-extension';\n\nimport type { VoiceExtensionOptions } from '../controllers/voice';\nimport { createVoicePiRuntime } from '../controllers/voicePlugin';\nexport const voicePiExtension = definePiExtension<VoiceExtensionOptions>(\n '@agimon-ai/doompi-voice',\n ({ context, pi, options }) => ({\n ...createVoicePiRuntime(context, pi, options ?? {}),\n resources: [\n {\n source: '@agimon-ai/doompi-voice',\n moduleUrl: import.meta.url,\n skills: [\n {\n name: 'doompi-use-voice',\n description:\n 'Use Doom Pi Voice for manual transcription, autonomous capture, narration, configuration, and recovery on macOS.',\n },\n ],\n },\n ],\n }),\n);\nexport default voicePiExtension;\n"],"mappings":"qJAIa,GAAA,+CAAmBA,CAAAA,CAAAA,kBAAAA,CAC9B,2BACC,CAAE,UAAS,KAAI,cAAe,CAC7B,GAAGC,EAAAA,qBAAqB,EAAS,EAAI,GAAW,CAAC,CAAC,EAClD,UAAW,CACT,CACE,OAAQ,0BACR,UAAA,QAAA,KAAA,CAAA,CAAA,cAAA,UAAA,CAAA,CAAA,KACA,OAAQ,CACN,CACE,KAAM,mBACN,YACE,kHACJ,CACF,CACF,CACF,CACF,EACF"}
@@ -1,2 +1,6 @@
1
- import { voiceExtension } from "../voice.cjs";
2
- export = voiceExtension;
1
+ import { VoiceExtensionOptions } from "../src/controllers/voice.cjs";
2
+ //#region src/extensions/pi.d.ts
3
+ export declare const voicePiExtension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<VoiceExtensionOptions>;
4
+ //#endregion
5
+ export { voicePiExtension as default };
6
+ //# sourceMappingURL=pi.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.d.cts","names":[],"sources":["../../src/extensions/pi.ts"],"mappings":";;qBAIa,wEAAgB,mBAAA"}
@@ -1,2 +1,6 @@
1
- import { voiceExtension } from "../voice.mjs";
2
- export { voiceExtension as default };
1
+ import { VoiceExtensionOptions } from "../src/controllers/voice.mjs";
2
+ //#region src/extensions/pi.d.ts
3
+ export declare const voicePiExtension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<VoiceExtensionOptions>;
4
+ //#endregion
5
+ export { voicePiExtension as default };
6
+ //# sourceMappingURL=pi.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi.d.mts","names":[],"sources":["../../src/extensions/pi.ts"],"mappings":";;qBAIa,wEAAgB,mBAAA"}
@@ -1,2 +1,2 @@
1
- import{voiceExtension as e}from"../voice.mjs";var t=e;export{t as default};
1
+ import{createVoicePiRuntime as e}from"../src/controllers/voicePlugin.mjs";import{definePiExtension as t}from"@agimon-ai/doompi-core/pi-extension";const n=t(`@agimon-ai/doompi-voice`,({context:t,pi:n,options:r})=>({...e(t,n,r??{}),resources:[{source:`@agimon-ai/doompi-voice`,moduleUrl:import.meta.url,skills:[{name:`doompi-use-voice`,description:`Use Doom Pi Voice for manual transcription, autonomous capture, narration, configuration, and recovery on macOS.`}]}]}));export{n as default,n as voicePiExtension};
2
2
  //# sourceMappingURL=pi.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.mjs","names":[],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { voiceExtension } from '../voice.ts';\n\nexport default voiceExtension;\n"],"mappings":"8CAEA,IAAA,EAAe"}
1
+ {"version":3,"file":"pi.mjs","names":[],"sources":["../../src/extensions/pi.ts"],"sourcesContent":["import { definePiExtension } from '@agimon-ai/doompi-core/pi-extension';\n\nimport type { VoiceExtensionOptions } from '../controllers/voice';\nimport { createVoicePiRuntime } from '../controllers/voicePlugin';\nexport const voicePiExtension = definePiExtension<VoiceExtensionOptions>(\n '@agimon-ai/doompi-voice',\n ({ context, pi, options }) => ({\n ...createVoicePiRuntime(context, pi, options ?? {}),\n resources: [\n {\n source: '@agimon-ai/doompi-voice',\n moduleUrl: import.meta.url,\n skills: [\n {\n name: 'doompi-use-voice',\n description:\n 'Use Doom Pi Voice for manual transcription, autonomous capture, narration, configuration, and recovery on macOS.',\n },\n ],\n },\n ],\n }),\n);\nexport default voicePiExtension;\n"],"mappings":"kJAIA,MAAa,EAAmB,EAC9B,2BACC,CAAE,UAAS,KAAI,cAAe,CAC7B,GAAG,EAAqB,EAAS,EAAI,GAAW,CAAC,CAAC,EAClD,UAAW,CACT,CACE,OAAQ,0BACR,UAAW,YAAY,IACvB,OAAQ,CACN,CACE,KAAM,mBACN,YACE,kHACJ,CACF,CACF,CACF,CACF,EACF"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../src/services/realtimeRuntime/index.cjs"),t=require("../src/controllers/clientMediaApi.cjs"),n=require("../src/controllers/voiceClientSettingsApi.cjs"),r=require("../src/controllers/voiceMediaHubChannel.cjs"),i=require("../src/controllers/voiceServer.cjs"),a=require("../src/controllers/voiceSessionApi.cjs");let o=require("node:path");const s=(0,require("@agimon-ai/doompi-core/server-facet").defineServerPlugin)({name:`@agimon-ai/doompi-voice`,global:{api:[n.voiceClientSettingsApi],channels:[r.createVoiceMediaWakeChannel,r.createVoiceOwnershipChannel]},workspace:{channels:[r.createVoiceMediaWakeChannel,r.createVoiceOwnershipChannel]},session:({agent:n,host:r})=>{let{directEvents:s,homeDirectory:c,sessionId:l,internalToken:u,hubToken:d}=r.context;if(!n||!s||!c)throw Error(`Voice requires a native session host, media event bus, and server home.`);let f=new t.VoiceMediaBroker({directEvents:s,sessionId:l,internalToken:u,hubToken:d,realtimeProvider:e.createRealtimeRuntime({stateDirectory:(0,o.join)(c,`.pi`,`.doom`)}).provider}),p=i.createVoiceServer(n,f,c);return{...p,api:[...p.api??[],{basePath:`voice-media`,start:()=>a.createVoiceSessionApi({directEvents:s,media:f,projectRoot:n.context.repoRoot,homeDirectory:c})}]}}});exports.default=s,exports.voiceServerFacet=s;
2
+ //# sourceMappingURL=server.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.cjs","names":["defineServerPlugin","voiceClientSettingsApi","createVoiceMediaWakeChannel","createVoiceOwnershipChannel","VoiceMediaBroker","createRealtimeRuntime","join","createVoiceServer","createVoiceSessionApi"],"sources":["../../src/extensions/server.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport { defineServerPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { VoiceMediaBroker } from '../controllers/clientMediaApi';\nimport { voiceClientSettingsApi } from '../controllers/voiceClientSettingsApi';\nimport { createVoiceMediaWakeChannel, createVoiceOwnershipChannel } from '../controllers/voiceMediaHubChannel';\nimport { createVoiceServer } from '../controllers/voiceServer';\nimport { createVoiceSessionApi } from '../controllers/voiceSessionApi';\nimport { createRealtimeRuntime } from '../services/realtimeRuntime';\nexport const voiceServerFacet = defineServerPlugin({\n name: '@agimon-ai/doompi-voice',\n global: { api: [voiceClientSettingsApi], channels: [createVoiceMediaWakeChannel, createVoiceOwnershipChannel] },\n workspace: { channels: [createVoiceMediaWakeChannel, createVoiceOwnershipChannel] },\n session: ({ agent, host }) => {\n const { directEvents, homeDirectory, sessionId, internalToken, hubToken } = host.context;\n if (!agent || !directEvents || !homeDirectory)\n throw new Error('Voice requires a native session host, media event bus, and server home.');\n const broker = new VoiceMediaBroker({\n directEvents,\n sessionId,\n internalToken,\n hubToken,\n realtimeProvider: createRealtimeRuntime({ stateDirectory: join(homeDirectory, '.pi', '.doom') }).provider,\n });\n const voice = createVoiceServer(agent, broker, homeDirectory);\n return {\n ...voice,\n api: [\n ...(voice.api ?? []),\n {\n basePath: 'voice-media',\n start: () =>\n createVoiceSessionApi({ directEvents, media: broker, projectRoot: agent.context.repoRoot, homeDirectory }),\n },\n ],\n };\n },\n});\nexport default voiceServerFacet;\n"],"mappings":"kcAUA,MAAa,GAAA,+CAAmBA,CAAAA,CAAAA,mBAAAA,CAAmB,CACjD,KAAM,0BACN,OAAQ,CAAE,IAAK,CAACC,EAAAA,sBAAsB,EAAG,SAAU,CAACC,EAAAA,4BAA6BC,EAAAA,2BAA2B,CAAE,EAC9G,UAAW,CAAE,SAAU,CAACD,EAAAA,4BAA6BC,EAAAA,2BAA2B,CAAE,EAClF,SAAU,CAAE,QAAO,UAAW,CAC5B,GAAM,CAAE,eAAc,gBAAe,YAAW,gBAAe,YAAa,EAAK,QACjF,GAAI,CAAC,GAAS,CAAC,GAAgB,CAAC,EAC9B,MAAU,MAAM,yEAAyE,EAC3F,IAAM,EAAS,IAAIC,EAAAA,iBAAiB,CAClC,eACA,YACA,gBACA,WACA,iBAAkBC,EAAAA,sBAAsB,CAAE,gBAAA,EAAgBC,EAAAA,KAAAA,CAAK,EAAe,MAAO,OAAO,CAAE,CAAC,CAAC,CAAC,QACnG,CAAC,EACK,EAAQC,EAAAA,kBAAkB,EAAO,EAAQ,CAAa,EAC5D,MAAO,CACL,GAAG,EACH,IAAK,CACH,GAAI,EAAM,KAAO,CAAC,EAClB,CACE,SAAU,cACV,UACEC,EAAAA,sBAAsB,CAAE,eAAc,MAAO,EAAQ,YAAa,EAAM,QAAQ,SAAU,eAAc,CAAC,CAC7G,CACF,CACF,CACF,CACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ //#region src/extensions/server.d.ts
2
+ export declare const voiceServerFacet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
3
+ //#endregion
4
+ export { voiceServerFacet as default };
5
+ //# sourceMappingURL=server.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.cts","names":[],"sources":["../../src/extensions/server.ts"],"mappings":";qBAUa,gEAAgB"}
@@ -0,0 +1,5 @@
1
+ //#region src/extensions/server.d.ts
2
+ export declare const voiceServerFacet: import("@agimon-ai/doompi-core/server-facet").DoomServerFacet;
3
+ //#endregion
4
+ export { voiceServerFacet as default };
5
+ //# sourceMappingURL=server.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.mts","names":[],"sources":["../../src/extensions/server.ts"],"mappings":";qBAUa,gEAAgB"}
@@ -0,0 +1,2 @@
1
+ import{createRealtimeRuntime as e}from"../src/services/realtimeRuntime/index.mjs";import{VoiceMediaBroker as t}from"../src/controllers/clientMediaApi.mjs";import{voiceClientSettingsApi as n}from"../src/controllers/voiceClientSettingsApi.mjs";import{createVoiceMediaWakeChannel as r,createVoiceOwnershipChannel as i}from"../src/controllers/voiceMediaHubChannel.mjs";import{createVoiceServer as a}from"../src/controllers/voiceServer.mjs";import{createVoiceSessionApi as o}from"../src/controllers/voiceSessionApi.mjs";import{join as s}from"node:path";import{defineServerPlugin as c}from"@agimon-ai/doompi-core/server-facet";const l=c({name:`@agimon-ai/doompi-voice`,global:{api:[n],channels:[r,i]},workspace:{channels:[r,i]},session:({agent:n,host:r})=>{let{directEvents:i,homeDirectory:c,sessionId:l,internalToken:u,hubToken:d}=r.context;if(!n||!i||!c)throw Error(`Voice requires a native session host, media event bus, and server home.`);let f=new t({directEvents:i,sessionId:l,internalToken:u,hubToken:d,realtimeProvider:e({stateDirectory:s(c,`.pi`,`.doom`)}).provider}),p=a(n,f,c);return{...p,api:[...p.api??[],{basePath:`voice-media`,start:()=>o({directEvents:i,media:f,projectRoot:n.context.repoRoot,homeDirectory:c})}]}}});export{l as default,l as voiceServerFacet};
2
+ //# sourceMappingURL=server.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.mjs","names":[],"sources":["../../src/extensions/server.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport { defineServerPlugin } from '@agimon-ai/doompi-core/server-facet';\n\nimport { VoiceMediaBroker } from '../controllers/clientMediaApi';\nimport { voiceClientSettingsApi } from '../controllers/voiceClientSettingsApi';\nimport { createVoiceMediaWakeChannel, createVoiceOwnershipChannel } from '../controllers/voiceMediaHubChannel';\nimport { createVoiceServer } from '../controllers/voiceServer';\nimport { createVoiceSessionApi } from '../controllers/voiceSessionApi';\nimport { createRealtimeRuntime } from '../services/realtimeRuntime';\nexport const voiceServerFacet = defineServerPlugin({\n name: '@agimon-ai/doompi-voice',\n global: { api: [voiceClientSettingsApi], channels: [createVoiceMediaWakeChannel, createVoiceOwnershipChannel] },\n workspace: { channels: [createVoiceMediaWakeChannel, createVoiceOwnershipChannel] },\n session: ({ agent, host }) => {\n const { directEvents, homeDirectory, sessionId, internalToken, hubToken } = host.context;\n if (!agent || !directEvents || !homeDirectory)\n throw new Error('Voice requires a native session host, media event bus, and server home.');\n const broker = new VoiceMediaBroker({\n directEvents,\n sessionId,\n internalToken,\n hubToken,\n realtimeProvider: createRealtimeRuntime({ stateDirectory: join(homeDirectory, '.pi', '.doom') }).provider,\n });\n const voice = createVoiceServer(agent, broker, homeDirectory);\n return {\n ...voice,\n api: [\n ...(voice.api ?? []),\n {\n basePath: 'voice-media',\n start: () =>\n createVoiceSessionApi({ directEvents, media: broker, projectRoot: agent.context.repoRoot, homeDirectory }),\n },\n ],\n };\n },\n});\nexport default voiceServerFacet;\n"],"mappings":"6mBAUA,MAAa,EAAmB,EAAmB,CACjD,KAAM,0BACN,OAAQ,CAAE,IAAK,CAAC,CAAsB,EAAG,SAAU,CAAC,EAA6B,CAA2B,CAAE,EAC9G,UAAW,CAAE,SAAU,CAAC,EAA6B,CAA2B,CAAE,EAClF,SAAU,CAAE,QAAO,UAAW,CAC5B,GAAM,CAAE,eAAc,gBAAe,YAAW,gBAAe,YAAa,EAAK,QACjF,GAAI,CAAC,GAAS,CAAC,GAAgB,CAAC,EAC9B,MAAU,MAAM,yEAAyE,EAC3F,IAAM,EAAS,IAAI,EAAiB,CAClC,eACA,YACA,gBACA,WACA,iBAAkB,EAAsB,CAAE,eAAgB,EAAK,EAAe,MAAO,OAAO,CAAE,CAAC,CAAC,CAAC,QACnG,CAAC,EACK,EAAQ,EAAkB,EAAO,EAAQ,CAAa,EAC5D,MAAO,CACL,GAAG,EACH,IAAK,CACH,GAAI,EAAM,KAAO,CAAC,EAClB,CACE,SAAU,cACV,UACE,EAAsB,CAAE,eAAc,MAAO,EAAQ,YAAa,EAAM,QAAQ,SAAU,eAAc,CAAC,CAC7G,CACF,CACF,CACF,CACF,CAAC"}
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./narration.cjs"),t=require("./pcm.cjs"),n=require("./semanticEcho.cjs"),r=require("./vad.cjs"),i=require("./autoCapture.cjs"),a=require("./types.cjs"),o=require("./infrastructure.cjs"),s=require("./voice.cjs");exports.AdaptiveVoiceActivityDetector=r.AdaptiveVoiceActivityDetector,exports.AutoCaptureController=i.AutoCaptureController,exports.AutonomousRunOwnership=e.AutonomousRunOwnership,exports.DEFAULT_INTENT_NARRATION=e.DEFAULT_INTENT_NARRATION,exports.DEFAULT_VAD_CONFIGURATION=r.DEFAULT_VAD_CONFIGURATION,exports.DOOM_VOICE_TYPES=a.DOOM_VOICE_TYPES,exports.EchoTailTimeline=n.EchoTailTimeline,Object.defineProperty(exports,"ExecutableResolver",{enumerable:!0,get:function(){return o.ExecutableResolver}}),Object.defineProperty(exports,"FfmpegAudioRecorder",{enumerable:!0,get:function(){return o.FfmpegAudioRecorder}}),Object.defineProperty(exports,"FfmpegPcmAudioRecorder",{enumerable:!0,get:function(){return o.FfmpegPcmAudioRecorder}}),Object.defineProperty(exports,"MacOsSayTtsAdapter",{enumerable:!0,get:function(){return o.MacOsSayTtsAdapter}}),Object.defineProperty(exports,"MlxWhisperAdapter",{enumerable:!0,get:function(){return s.MlxWhisperAdapter}}),exports.NarrationEventBuffer=e.NarrationEventBuffer,exports.NarrationGenerator=e.NarrationGenerator,exports.NarrationPlaybackCoordinator=e.NarrationPlaybackCoordinator,Object.defineProperty(exports,"NodeBinaryProcessSpawner",{enumerable:!0,get:function(){return o.NodeBinaryProcessSpawner}}),Object.defineProperty(exports,"NodeProcessSpawner",{enumerable:!0,get:function(){return o.NodeProcessSpawner}}),Object.defineProperty(exports,"OpenAiWhisperAdapter",{enumerable:!0,get:function(){return s.OpenAiWhisperAdapter}}),exports.PCM_BITS_PER_SAMPLE=t.PCM_BITS_PER_SAMPLE,exports.PCM_BYTES_PER_SAMPLE=t.PCM_BYTES_PER_SAMPLE,exports.PCM_CHANNELS=t.PCM_CHANNELS,exports.PCM_FRAME_BYTES=t.PCM_FRAME_BYTES,exports.PCM_FRAME_MS=t.PCM_FRAME_MS,exports.PCM_SAMPLE_RATE=t.PCM_SAMPLE_RATE,exports.PcmFrameAssembler=t.PcmFrameAssembler,exports.PcmRingBuffer=i.PcmRingBuffer,Object.defineProperty(exports,"PcmWavAnalyzer",{enumerable:!0,get:function(){return o.PcmWavAnalyzer}}),Object.defineProperty(exports,"PiVoiceConfigService",{enumerable:!0,get:function(){return s.PiVoiceConfigService}}),exports.RollingEchoProbeCoordinator=n.RollingEchoProbeCoordinator,exports.SemanticEchoAdjudicator=n.SemanticEchoAdjudicator,Object.defineProperty(exports,"SystemClock",{enumerable:!0,get:function(){return o.SystemClock}}),Object.defineProperty(exports,"TemporaryWorkspace",{enumerable:!0,get:function(){return o.TemporaryWorkspace}}),Object.defineProperty(exports,"TranscriberRegistry",{enumerable:!0,get:function(){return s.TranscriberRegistry}}),exports.VOICE_LEADER_BINDINGS=s.VOICE_LEADER_BINDINGS,exports.VoiceAutoCaptureAdjudicator=i.VoiceAutoCaptureAdjudicator,Object.defineProperty(exports,"VoiceSessionController",{enumerable:!0,get:function(){return s.VoiceSessionController}}),Object.defineProperty(exports,"WhisperCppAdapter",{enumerable:!0,get:function(){return s.WhisperCppAdapter}}),exports.alignNarrationSpan=n.alignNarrationSpan,exports.analyzePcmWav=o.analyzePcmWav,exports.calculatePcmFrameDbfs=r.calculatePcmFrameDbfs,exports.createVoiceContainer=s.createVoiceContainer,exports.createVoiceModule=s.createVoiceModule,exports.deliverAutoCaptureInput=s.deliverAutoCaptureInput,exports.encodePcm16Wav=t.encodePcm16Wav,exports.extractAskUserQuestionSpeech=s.extractAskUserQuestionSpeech,exports.extractFinalizedIntentSource=s.extractFinalizedIntentSource,exports.extractNovelNarrationResidual=n.extractNovelNarrationResidual,exports.extractTerminalAssistantText=s.extractTerminalAssistantText,exports.formatAutoCaptureActivity=s.formatAutoCaptureActivity,exports.formatVoiceActivity=s.formatVoiceActivity,exports.isAskUserBlockedPayload=s.isAskUserBlockedPayload,exports.isSuccessfulPlanWrite=s.isSuccessfulPlanWrite,exports.matchStartPhrase=n.matchStartPhrase,exports.matchStopPhrase=n.matchStopPhrase,exports.normalizeEchoText=n.normalizeEchoText,exports.registerAutoCapturePiEventHandlers=s.registerAutoCapturePiEventHandlers,exports.resolveAutoCaptureModelContracts=s.resolveAutoCaptureModelContracts,exports.voiceExtension=s.voiceExtension,exports.writePrivatePcm16Wav=o.writePrivatePcm16Wav;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src/types/clientMedia.cjs"),t=require("./src/services/pcm/index.cjs"),n=require("./src/services/infrastructure/index.cjs"),r=require("./src/services/clientMedia/index.cjs"),i=require("./src/models/voiceActivity.cjs"),a=require("./src/models/voiceMode.cjs"),o=require("./src/services/commandCorrection/index.cjs"),s=require("./src/services/fallbackNarration/index.cjs"),c=require("./src/services/semanticEcho/index.cjs"),l=require("./src/services/voiceConfig/index.cjs"),u=require("./src/services/whisper/index.cjs"),d=require("./src/services/voiceDependencies/index.cjs"),f=require("./src/services/narration/index.cjs"),p=require("./src/services/narrationPlayback/index.cjs"),m=require("./src/controllers/voice.cjs"),h=require("./src/services/utterance/index.cjs"),g=require("./src/services/vad/index.cjs"),_=require("./src/services/voiceSessionController/index.cjs");exports.AdaptiveVoiceActivityDetector=g.AdaptiveVoiceActivityDetector,exports.BoundedTranscriptionQueue=h.BoundedTranscriptionQueue,exports.ClientPcmAudioRecorder=r.ClientPcmAudioRecorder,exports.ClientTtsAdapter=r.ClientTtsAdapter,exports.DEFAULT_UTTERANCE_LIMITS=h.DEFAULT_UTTERANCE_LIMITS,exports.DEFAULT_VAD_CONFIGURATION=g.DEFAULT_VAD_CONFIGURATION,exports.DETERMINISTIC_FALLBACK_THRESHOLD_CHARACTERS=s.DETERMINISTIC_FALLBACK_THRESHOLD_CHARACTERS,exports.EchoTailTimeline=c.EchoTailTimeline,exports.ExecutableResolver=n.ExecutableResolver,exports.FfmpegAudioRecorder=n.FfmpegAudioRecorder,exports.FfmpegPcmAudioRecorder=n.FfmpegPcmAudioRecorder,exports.MAX_VOICE_COMMAND_CONTEXT_BYTES=o.MAX_VOICE_COMMAND_CONTEXT_BYTES,exports.MacOsSayPcmSynthesizer=n.MacOsSayPcmSynthesizer,exports.MacOsSayTtsAdapter=n.MacOsSayTtsAdapter,exports.MlxWhisperAdapter=u.MlxWhisperAdapter,exports.NarrationPlaybackCoordinator=f.NarrationPlaybackCoordinator,exports.NodeBinaryProcessSpawner=n.NodeBinaryProcessSpawner,exports.NodeProcessSpawner=n.NodeProcessSpawner,exports.OpenAiWhisperAdapter=u.OpenAiWhisperAdapter,exports.PCM_BITS_PER_SAMPLE=t.PCM_BITS_PER_SAMPLE,exports.PCM_BYTES_PER_SAMPLE=t.PCM_BYTES_PER_SAMPLE,exports.PCM_CHANNELS=t.PCM_CHANNELS,exports.PCM_FRAME_BYTES=t.PCM_FRAME_BYTES,exports.PCM_FRAME_MS=t.PCM_FRAME_MS,exports.PCM_SAMPLE_RATE=t.PCM_SAMPLE_RATE,exports.PcmFrameAssembler=t.PcmFrameAssembler,exports.PcmWavAnalyzer=n.PcmWavAnalyzer,exports.PiVoiceConfigService=l.PiVoiceConfigService,exports.RollingEchoProbeCoordinator=c.RollingEchoProbeCoordinator,exports.SemanticEchoAdjudicator=c.SemanticEchoAdjudicator,exports.SystemClock=n.SystemClock,exports.TemporaryWorkspace=n.TemporaryWorkspace,exports.TranscriberRegistry=u.TranscriberRegistry,exports.UtteranceAssembler=h.UtteranceAssembler,exports.VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER=e.VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER,exports.VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER=e.VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER,exports.VOICE_MEDIA_ACTIVITY_EPOCH_HEADER=e.VOICE_MEDIA_ACTIVITY_EPOCH_HEADER,exports.VOICE_MEDIA_ACTIVITY_LEVEL_HEADER=e.VOICE_MEDIA_ACTIVITY_LEVEL_HEADER,exports.VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER=e.VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER,exports.VOICE_MEDIA_ACTIVITY_STATE_HEADER=e.VOICE_MEDIA_ACTIVITY_STATE_HEADER,exports.VOICE_MEDIA_API_BASE_PATH=e.VOICE_MEDIA_API_BASE_PATH,exports.VOICE_MEDIA_BITS_PER_SAMPLE=e.VOICE_MEDIA_BITS_PER_SAMPLE,exports.VOICE_MEDIA_CHANNELS=e.VOICE_MEDIA_CHANNELS,exports.VOICE_MEDIA_CONTENT_TYPE=e.VOICE_MEDIA_CONTENT_TYPE,exports.VOICE_MEDIA_EVENT_WAIT_NONE=e.VOICE_MEDIA_EVENT_WAIT_NONE,exports.VOICE_MEDIA_HEARTBEAT_MS=e.VOICE_MEDIA_HEARTBEAT_MS,exports.VOICE_MEDIA_PLAYBACK_STATE_HEADER=e.VOICE_MEDIA_PLAYBACK_STATE_HEADER,exports.VOICE_MEDIA_PROTOCOL_VERSION=e.VOICE_MEDIA_PROTOCOL_VERSION,exports.VOICE_MEDIA_ROUTES=e.VOICE_MEDIA_ROUTES,exports.VOICE_MEDIA_SAMPLE_RATE=e.VOICE_MEDIA_SAMPLE_RATE,exports.VOICE_MEDIA_WAKE_TYPE=e.VOICE_MEDIA_WAKE_TYPE,exports.VoiceCommandCorrector=o.VoiceCommandCorrector,exports.VoiceNarrationPlayback=p.VoiceNarrationPlayback,exports.VoiceSessionController=_.VoiceSessionController,exports.VoiceTurnFallbackNarrator=s.VoiceTurnFallbackNarrator,exports.WhisperCppAdapter=u.WhisperCppAdapter,exports.alignNarrationSpan=c.alignNarrationSpan,exports.analyzePcmWav=n.analyzePcmWav,exports.calculatePcmFrameDbfs=g.calculatePcmFrameDbfs,exports.canRunVoice=a.canRunVoice,exports.compactVoiceCommandContext=o.compactVoiceCommandContext,exports.createVoiceDependencies=d.createVoiceDependencies,exports.createVoiceNarrationService=m.createVoiceNarrationService,exports.createVoiceTurnFallback=m.createVoiceTurnFallback,exports.deliverAutoCaptureInput=m.deliverAutoCaptureInput,exports.editDistance=o.editDistance,exports.encodePcm16Wav=t.encodePcm16Wav,exports.extractNovelNarrationResidual=c.extractNovelNarrationResidual,exports.extractTerminalAssistantText=m.extractTerminalAssistantText,exports.formatAutoCaptureActivity=i.formatAutoCaptureActivity,exports.formatVoiceActivity=i.formatVoiceActivity,exports.matchPlaybackStopPhrase=c.matchPlaybackStopPhrase,exports.matchStartPhrase=c.matchStartPhrase,exports.matchStopPhrase=c.matchStopPhrase,exports.normalizeEchoText=c.normalizeEchoText,exports.phoneticKey=o.phoneticKey,exports.resolveVoiceCommandCorrector=m.resolveVoiceCommandCorrector,exports.resolveVoiceFallbackNarrator=m.resolveVoiceFallbackNarrator,exports.resolveVoiceTranscriptAdjudicator=m.resolveVoiceTranscriptAdjudicator,exports.voiceLeaderBindings=m.voiceLeaderBindings,exports.voiceMediaClientUrl=e.voiceMediaClientUrl,exports.voiceMediaHostConnection=r.voiceMediaHostConnection,exports.voiceModeState=a.voiceModeState,exports.voiceOwnershipState=a.voiceOwnershipState,exports.voiceToolRestriction=m.voiceToolRestriction,exports.writePrivatePcm16Wav=n.writePrivatePcm16Wav;
package/dist/index.d.cts CHANGED
@@ -1,9 +1,23 @@
1
- import { AudioAnalysis, AutoCaptureActivationState, AutoCaptureAudioLane, AutoCaptureConfirmationState, AutoCaptureIndicatorState, AutoCaptureUi, BinaryProcessStartOptions, BinaryRunningProcess, DOOM_VOICE_TYPES, IAudioAnalyzer, IAudioRecorder, IBinaryProcessSpawner, IClock, IExecutableResolver, IPcmAudioRecorder, IProcessSpawner, ITemporaryWorkspace, ITranscriberAdapter, ITranscriberRegistry, ITtsAdapter, IVoiceSessionController, LiveRecordingHandle, NarrationKind, ProcessResult, ProcessStartOptions, RecordingHandle, RunningProcess, SelectedTranscriber, TimerHandle, TranscriptionRequest, TtsPlayback, TtsPlaybackOutcome, TtsPlaybackReference, TtsPlaybackResult, TtsSpeakRequest, VoiceActivityUpdate, VoiceState, VoiceUi } from "./types.cjs";
2
- import { AutonomousInputObservation, AutonomousOwnershipSnapshot, AutonomousRunOwnership, AutonomousRunOwnershipOptions, DEFAULT_INTENT_NARRATION, INarrationModelClient, NarrationActivityEvent, NarrationEventBuffer, NarrationGenerationInput, NarrationGenerator, NarrationModelRequest, NarrationPlaybackCoordinator, NarrationPlaybackRequest, NarrationStopReason } from "./narration.cjs";
3
- import { AdaptiveVoiceActivityDetector, AudioActivityBucket, AudioActivityHistogram, DEFAULT_VAD_CONFIGURATION, VadConfiguration, VadFrameMetadata, VadPushResult, VadSegment, calculatePcmFrameDbfs } from "./vad.cjs";
4
- import { ControlPhraseMatch, EchoModelDecision, EchoModelRequest, EchoProbeAction, EchoProbeClassification, EchoProbeInput, EchoProbeResult, EchoReference, EchoTailTimeline, IEchoModelClient, IEchoProbeClassifier, NarrationAlignment, RollingEchoProbeCoordinator, RollingEchoProbeState, SemanticEchoAdjudicator, alignNarrationSpan, extractNovelNarrationResidual, matchStartPhrase, matchStopPhrase, normalizeEchoText } from "./semanticEcho.cjs";
5
- import { AutoCaptureController, AutoCaptureDependencies, AutoCaptureModelContracts, AutoCaptureModelRequest, AutoCaptureSnapshot, IAutoCaptureAdjudicator, IAutoCaptureModelClient, PcmRingBuffer, PcmRingFrame, PcmRingFrameMetadata, VoiceAdjudicationAction, VoiceAdjudicationInput, VoiceAdjudicationResult, VoiceAutoCaptureAdjudicator } from "./autoCapture.cjs";
6
- import { AutoCaptureActivityPresentation, AutoCaptureDeliveryIntent, AutoCapturePiEventController, MlxWhisperAdapter, OpenAiWhisperAdapter, PiVoiceConfigService, TranscriberRegistry, VOICE_LEADER_BINDINGS, VoiceActivityPresentation, VoiceExtensionOptions, VoiceFooterContributionHandle, VoiceFooterContributionValue, VoiceModeContributionHandle, VoiceModeContributionValue, VoiceSessionController, WhisperCppAdapter, createVoiceContainer, createVoiceModule, deliverAutoCaptureInput, extractAskUserQuestionSpeech, extractFinalizedIntentSource, extractTerminalAssistantText, formatAutoCaptureActivity, formatVoiceActivity, isAskUserBlockedPayload, isSuccessfulPlanWrite, registerAutoCapturePiEventHandlers, resolveAutoCaptureModelContracts, voiceExtension } from "./voice.cjs";
7
- import { ExecutableResolver, FfmpegAudioRecorder, FfmpegPcmAudioRecorder, MacOsSayTtsAdapter, NodeBinaryProcessSpawner, NodeProcessSpawner, PcmWavAnalyzer, SystemClock, TemporaryWorkspace, analyzePcmWav, writePrivatePcm16Wav } from "./infrastructure.cjs";
8
- import { PCM_BITS_PER_SAMPLE, PCM_BYTES_PER_SAMPLE, PCM_CHANNELS, PCM_FRAME_BYTES, PCM_FRAME_MS, PCM_SAMPLE_RATE, PcmFrameAssembler, encodePcm16Wav } from "./pcm.cjs";
9
- export { AdaptiveVoiceActivityDetector, AudioActivityBucket, AudioActivityHistogram, AudioAnalysis, AutoCaptureActivationState, AutoCaptureActivityPresentation, AutoCaptureAudioLane, AutoCaptureConfirmationState, AutoCaptureController, AutoCaptureDeliveryIntent, AutoCaptureDependencies, AutoCaptureIndicatorState, AutoCaptureModelContracts, AutoCaptureModelRequest, AutoCapturePiEventController, AutoCaptureSnapshot, AutoCaptureUi, AutonomousInputObservation, AutonomousOwnershipSnapshot, AutonomousRunOwnership, AutonomousRunOwnershipOptions, BinaryProcessStartOptions, BinaryRunningProcess, ControlPhraseMatch, DEFAULT_INTENT_NARRATION, DEFAULT_VAD_CONFIGURATION, DOOM_VOICE_TYPES, EchoModelDecision, EchoModelRequest, EchoProbeAction, EchoProbeClassification, EchoProbeInput, EchoProbeResult, EchoReference, EchoTailTimeline, ExecutableResolver, FfmpegAudioRecorder, FfmpegPcmAudioRecorder, IAudioAnalyzer, IAudioRecorder, IAutoCaptureAdjudicator, IAutoCaptureModelClient, IBinaryProcessSpawner, IClock, IEchoModelClient, IEchoProbeClassifier, IExecutableResolver, INarrationModelClient, IPcmAudioRecorder, IProcessSpawner, ITemporaryWorkspace, ITranscriberAdapter, ITranscriberRegistry, ITtsAdapter, IVoiceSessionController, LiveRecordingHandle, MacOsSayTtsAdapter, MlxWhisperAdapter, NarrationActivityEvent, NarrationAlignment, NarrationEventBuffer, NarrationGenerationInput, NarrationGenerator, NarrationKind, NarrationModelRequest, NarrationPlaybackCoordinator, NarrationPlaybackRequest, NarrationStopReason, NodeBinaryProcessSpawner, NodeProcessSpawner, OpenAiWhisperAdapter, PCM_BITS_PER_SAMPLE, PCM_BYTES_PER_SAMPLE, PCM_CHANNELS, PCM_FRAME_BYTES, PCM_FRAME_MS, PCM_SAMPLE_RATE, PcmFrameAssembler, PcmRingBuffer, PcmRingFrame, PcmRingFrameMetadata, PcmWavAnalyzer, PiVoiceConfigService, ProcessResult, ProcessStartOptions, RecordingHandle, RollingEchoProbeCoordinator, RollingEchoProbeState, RunningProcess, SelectedTranscriber, SemanticEchoAdjudicator, SystemClock, TemporaryWorkspace, TimerHandle, TranscriberRegistry, TranscriptionRequest, TtsPlayback, TtsPlaybackOutcome, TtsPlaybackReference, TtsPlaybackResult, TtsSpeakRequest, VOICE_LEADER_BINDINGS, VadConfiguration, VadFrameMetadata, VadPushResult, VadSegment, VoiceActivityPresentation, VoiceActivityUpdate, VoiceAdjudicationAction, VoiceAdjudicationInput, VoiceAdjudicationResult, VoiceAutoCaptureAdjudicator, VoiceExtensionOptions, VoiceFooterContributionHandle, VoiceFooterContributionValue, VoiceModeContributionHandle, VoiceModeContributionValue, VoiceSessionController, VoiceState, VoiceUi, WhisperCppAdapter, alignNarrationSpan, analyzePcmWav, calculatePcmFrameDbfs, createVoiceContainer, createVoiceModule, deliverAutoCaptureInput, encodePcm16Wav, extractAskUserQuestionSpeech, extractFinalizedIntentSource, extractNovelNarrationResidual, extractTerminalAssistantText, formatAutoCaptureActivity, formatVoiceActivity, isAskUserBlockedPayload, isSuccessfulPlanWrite, matchStartPhrase, matchStopPhrase, normalizeEchoText, registerAutoCapturePiEventHandlers, resolveAutoCaptureModelContracts, voiceExtension, writePrivatePcm16Wav };
1
+ import { VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_STATE_HEADER, VOICE_MEDIA_API_BASE_PATH, VOICE_MEDIA_BITS_PER_SAMPLE, VOICE_MEDIA_CHANNELS, VOICE_MEDIA_CONTENT_TYPE, VOICE_MEDIA_EVENT_WAIT_NONE, VOICE_MEDIA_HEARTBEAT_MS, VOICE_MEDIA_PLAYBACK_STATE_HEADER, VOICE_MEDIA_PROTOCOL_VERSION, VOICE_MEDIA_ROUTES, VOICE_MEDIA_SAMPLE_RATE, VOICE_MEDIA_WAKE_TYPE, VoiceClientKind, VoiceMediaCapabilities, VoiceMediaCapture, VoiceMediaCaptureActivity, VoiceMediaCaptureActivityState, VoiceMediaCaptureConfiguration, VoiceMediaCaptureMode, VoiceMediaCaptureSpeechAnalysis, VoiceMediaClientEvent, VoiceMediaConnectRequest, VoiceMediaConnectResult, VoiceMediaControlLocation, VoiceMediaDevice, VoiceMediaHeartbeatResult, VoiceMediaPlayback, VoiceMediaPlaybackDelivery, VoiceMediaPlaybackOutcome, VoiceMediaPlaybackResult, VoiceMediaTransport, VoiceMediaWake, voiceMediaClientUrl } from "./src/types/clientMedia.cjs";
2
+ import { AsrDecodingEvidence, AudioAnalysis, AutoCaptureActivationState, AutoCaptureIndicatorState, AutoCaptureUi, BinaryProcessStartOptions, BinaryRunningProcess, IAudioAnalyzer, IAudioRecorder, IBinaryProcessSpawner, IClock, IExecutableResolver, IPcmAudioRecorder, IProcessSpawner, ISpeechPresenceDetector, ITemporaryWorkspace, ITranscriberAdapter, ITranscriberRegistry, ITtsAdapter, IVoiceMediaHostConnection, IVoiceSessionController, LiveRecordingHandle, NarrationKind, PcmAudioRecorderStartOptions, ProcessResult, ProcessStartOptions, RecordingHandle, RunningProcess, SelectedTranscriber, TimerHandle, TranscriptionAdapterOutput, TranscriptionRequest, TranscriptionResult, TtsPlayback, TtsPlaybackOutcome, TtsPlaybackReference, TtsPlaybackResult, TtsSpeakRequest, VoiceActivityUpdate, VoiceDependencies, VoiceMediaAudioPoll, VoiceState, VoiceUi } from "./src/types/index.cjs";
3
+ import { ClientNarrationSynthesizer, ClientPcmAudioRecorder, ClientTtsAdapter, voiceMediaHostConnection } from "./src/services/clientMedia/index.cjs";
4
+ import { ExecutableResolver, FfmpegAudioRecorder, FfmpegPcmAudioRecorder, MacOsSayPcmSynthesizer, MacOsSayTtsAdapter, NodeBinaryProcessSpawner, NodeProcessSpawner, PcmWavAnalyzer, SystemClock, TemporaryWorkspace, analyzePcmWav, writePrivatePcm16Wav } from "./src/services/infrastructure/index.cjs";
5
+ import { AutoCaptureActivityPresentation, VoiceActivityPresentation, VoiceFooterContributionValue, formatAutoCaptureActivity, formatVoiceActivity } from "./src/models/voiceActivity.cjs";
6
+ import { IVoiceCommandCorrectionModelClient, IVoiceCommandCorrector, VoiceCommandContext, VoiceCommandCorrectionInput, VoiceCommandCorrectionModelRequest } from "./src/services/commandCorrection/type.cjs";
7
+ import { MAX_VOICE_COMMAND_CONTEXT_BYTES, VoiceCommandCorrector, compactVoiceCommandContext, editDistance, phoneticKey } from "./src/services/commandCorrection/index.cjs";
8
+ import { FallbackNarration, FallbackNarrationModelRequest, FallbackNarrationSource, IFallbackNarrationModelClient, IVoiceNarrationCompactor, IVoiceTurnFallbackNarrator, VoiceTurnFallbackNarratorOptions } from "./src/services/fallbackNarration/type.cjs";
9
+ import { DETERMINISTIC_FALLBACK_THRESHOLD_CHARACTERS, VoiceTurnFallbackNarrator } from "./src/services/fallbackNarration/index.cjs";
10
+ import { NarrationPlaybackCoordinator, NarrationPlaybackLifecycleErrorObserver, NarrationPlaybackLifecycleEvent, NarrationPlaybackLifecycleObserver, NarrationPlaybackOutcome, NarrationPlaybackRequest, NarrationPlaybackSettlement } from "./src/services/narration/index.cjs";
11
+ import { VoiceNarrationPlayback, VoiceNarrationPlaybackDependencies, VoiceNarrationPlaybackLogger } from "./src/services/narrationPlayback/index.cjs";
12
+ import { MlxWhisperAdapter, OpenAiWhisperAdapter, TranscriberRegistry, WhisperCppAdapter } from "./src/services/whisper/index.cjs";
13
+ import { AutoCaptureDeliveryIntent, AutoCapturePiEventController, VoiceExtensionOptions, VoiceFooterContributionHandle, VoiceLeaderContributionHandle, VoiceNarrationServiceBinding, VoiceTurnFallbackRuntime, createVoiceNarrationService, createVoiceTurnFallback, deliverAutoCaptureInput, extractTerminalAssistantText, resolveVoiceCommandCorrector, resolveVoiceFallbackNarrator, resolveVoiceTranscriptAdjudicator, voiceLeaderBindings, voiceToolRestriction } from "./src/controllers/voice.cjs";
14
+ import { PCM_BITS_PER_SAMPLE, PCM_BYTES_PER_SAMPLE, PCM_CHANNELS, PCM_FRAME_BYTES, PCM_FRAME_MS, PCM_SAMPLE_RATE, PcmFrameAssembler, encodePcm16Wav } from "./src/services/pcm/index.cjs";
15
+ import { AdaptiveVoiceActivityDetector, AudioActivityBucket, AudioActivityHistogram, DEFAULT_VAD_CONFIGURATION, VadConfiguration, VadFrameMetadata, VadNoiseProfile, VadPushResult, VadSegment, calculatePcmFrameDbfs } from "./src/services/vad/index.cjs";
16
+ import { ControlPhraseMatch, EchoProbeAction, EchoProbeClassification, EchoProbeInput, EchoProbeResult, EchoReference, IEchoProbeClassifier, NarrationAlignment, NarrationResidualAnalysis, RollingEchoProbeState } from "./src/services/semanticEcho/type.cjs";
17
+ import { EchoTailTimeline, RollingEchoProbeCoordinator, SemanticEchoAdjudicator, alignNarrationSpan, extractNovelNarrationResidual, matchPlaybackStopPhrase, matchStartPhrase, matchStopPhrase, normalizeEchoText } from "./src/services/semanticEcho/index.cjs";
18
+ import { BoundedTranscriptionQueue, DEFAULT_UTTERANCE_LIMITS, PendingUtterance, UtteranceAssembler, UtteranceFinalizationReason, UtteranceLimits } from "./src/services/utterance/index.cjs";
19
+ import { VoiceSessionController } from "./src/services/voiceSessionController/index.cjs";
20
+ import { PiVoiceConfigService } from "./src/services/voiceConfig/index.cjs";
21
+ import { createVoiceDependencies } from "./src/services/voiceDependencies/index.cjs";
22
+ import { canRunVoice, voiceModeState, voiceOwnershipState } from "./src/models/voiceMode.cjs";
23
+ export { AdaptiveVoiceActivityDetector, type AsrDecodingEvidence, type AudioActivityBucket, type AudioActivityHistogram, type AudioAnalysis, type AutoCaptureActivationState, type AutoCaptureActivityPresentation, type AutoCaptureDeliveryIntent, type AutoCaptureIndicatorState, type AutoCapturePiEventController, type AutoCaptureUi, type BinaryProcessStartOptions, type BinaryRunningProcess, BoundedTranscriptionQueue, type ClientNarrationSynthesizer, ClientPcmAudioRecorder, ClientTtsAdapter, type ControlPhraseMatch, DEFAULT_UTTERANCE_LIMITS, DEFAULT_VAD_CONFIGURATION, DETERMINISTIC_FALLBACK_THRESHOLD_CHARACTERS, type EchoProbeAction, type EchoProbeClassification, type EchoProbeInput, type EchoProbeResult, type EchoReference, EchoTailTimeline, ExecutableResolver, type FallbackNarration, type FallbackNarrationModelRequest, type FallbackNarrationSource, FfmpegAudioRecorder, FfmpegPcmAudioRecorder, type IAudioAnalyzer, type IAudioRecorder, type IBinaryProcessSpawner, type IClock, type IEchoProbeClassifier, type IExecutableResolver, type IFallbackNarrationModelClient, type IPcmAudioRecorder, type IProcessSpawner, type ISpeechPresenceDetector, type ITemporaryWorkspace, type ITranscriberAdapter, type ITranscriberRegistry, type ITtsAdapter, type IVoiceCommandCorrectionModelClient, type IVoiceCommandCorrector, type IVoiceMediaHostConnection, type IVoiceNarrationCompactor, type IVoiceSessionController, type IVoiceTurnFallbackNarrator, type LiveRecordingHandle, MAX_VOICE_COMMAND_CONTEXT_BYTES, MacOsSayPcmSynthesizer, MacOsSayTtsAdapter, MlxWhisperAdapter, type NarrationAlignment, type NarrationKind, NarrationPlaybackCoordinator, type NarrationPlaybackLifecycleErrorObserver, type NarrationPlaybackLifecycleEvent, type NarrationPlaybackLifecycleObserver, type NarrationPlaybackOutcome, type NarrationPlaybackRequest, type NarrationPlaybackSettlement, type NarrationResidualAnalysis, NodeBinaryProcessSpawner, NodeProcessSpawner, OpenAiWhisperAdapter, PCM_BITS_PER_SAMPLE, PCM_BYTES_PER_SAMPLE, PCM_CHANNELS, PCM_FRAME_BYTES, PCM_FRAME_MS, PCM_SAMPLE_RATE, type PcmAudioRecorderStartOptions, PcmFrameAssembler, PcmWavAnalyzer, type PendingUtterance, PiVoiceConfigService, type ProcessResult, type ProcessStartOptions, type RecordingHandle, RollingEchoProbeCoordinator, type RollingEchoProbeState, type RunningProcess, type SelectedTranscriber, SemanticEchoAdjudicator, SystemClock, TemporaryWorkspace, type TimerHandle, TranscriberRegistry, type TranscriptionAdapterOutput, type TranscriptionRequest, type TranscriptionResult, type TtsPlayback, type TtsPlaybackOutcome, type TtsPlaybackReference, type TtsPlaybackResult, type TtsSpeakRequest, UtteranceAssembler, type UtteranceFinalizationReason, type UtteranceLimits, VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER, VOICE_MEDIA_ACTIVITY_STATE_HEADER, VOICE_MEDIA_API_BASE_PATH, VOICE_MEDIA_BITS_PER_SAMPLE, VOICE_MEDIA_CHANNELS, VOICE_MEDIA_CONTENT_TYPE, VOICE_MEDIA_EVENT_WAIT_NONE, VOICE_MEDIA_HEARTBEAT_MS, VOICE_MEDIA_PLAYBACK_STATE_HEADER, VOICE_MEDIA_PROTOCOL_VERSION, VOICE_MEDIA_ROUTES, VOICE_MEDIA_SAMPLE_RATE, VOICE_MEDIA_WAKE_TYPE, type VadConfiguration, type VadFrameMetadata, type VadNoiseProfile, type VadPushResult, type VadSegment, type VoiceActivityPresentation, type VoiceActivityUpdate, type VoiceClientKind, type VoiceCommandContext, type VoiceCommandCorrectionInput, type VoiceCommandCorrectionModelRequest, VoiceCommandCorrector, type VoiceDependencies, type VoiceExtensionOptions, type VoiceFooterContributionHandle, type VoiceFooterContributionValue, type VoiceLeaderContributionHandle, type VoiceMediaAudioPoll, type VoiceMediaCapabilities, type VoiceMediaCapture, type VoiceMediaCaptureActivity, type VoiceMediaCaptureActivityState, type VoiceMediaCaptureConfiguration, type VoiceMediaCaptureMode, type VoiceMediaCaptureSpeechAnalysis, type VoiceMediaClientEvent, type VoiceMediaConnectRequest, type VoiceMediaConnectResult, type VoiceMediaControlLocation, type VoiceMediaDevice, type VoiceMediaHeartbeatResult, type VoiceMediaPlayback, type VoiceMediaPlaybackDelivery, type VoiceMediaPlaybackOutcome, type VoiceMediaPlaybackResult, type VoiceMediaTransport, type VoiceMediaWake, VoiceNarrationPlayback, type VoiceNarrationPlaybackDependencies, type VoiceNarrationPlaybackLogger, type VoiceNarrationServiceBinding, VoiceSessionController, type VoiceState, VoiceTurnFallbackNarrator, type VoiceTurnFallbackNarratorOptions, type VoiceTurnFallbackRuntime, type VoiceUi, WhisperCppAdapter, alignNarrationSpan, analyzePcmWav, calculatePcmFrameDbfs, canRunVoice, compactVoiceCommandContext, createVoiceDependencies, createVoiceNarrationService, createVoiceTurnFallback, deliverAutoCaptureInput, editDistance, encodePcm16Wav, extractNovelNarrationResidual, extractTerminalAssistantText, formatAutoCaptureActivity, formatVoiceActivity, matchPlaybackStopPhrase, matchStartPhrase, matchStopPhrase, normalizeEchoText, phoneticKey, resolveVoiceCommandCorrector, resolveVoiceFallbackNarrator, resolveVoiceTranscriptAdjudicator, voiceLeaderBindings, voiceMediaClientUrl, voiceMediaHostConnection, voiceModeState, voiceOwnershipState, voiceToolRestriction, writePrivatePcm16Wav };