@dxos/plugin-transcription 0.8.3 → 0.8.4-main.1c7ec43d41

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 (330) hide show
  1. package/dist/lib/browser/blueprints/index.mjs +31 -0
  2. package/dist/lib/browser/blueprints/index.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-3L623EVL.mjs +17 -0
  4. package/dist/lib/browser/chunk-3L623EVL.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  6. package/dist/lib/browser/chunk-KAEXRX3Y.mjs +35 -0
  7. package/dist/lib/browser/chunk-KAEXRX3Y.mjs.map +7 -0
  8. package/dist/lib/browser/chunk-L4HW35L6.mjs +111 -0
  9. package/dist/lib/browser/chunk-L4HW35L6.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-MLRJWAQH.mjs +179 -0
  11. package/dist/lib/browser/chunk-MLRJWAQH.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-NQQK7UZQ.mjs +244 -0
  13. package/dist/lib/browser/chunk-NQQK7UZQ.mjs.map +7 -0
  14. package/dist/lib/browser/components/index.mjs +207 -0
  15. package/dist/lib/browser/components/index.mjs.map +7 -0
  16. package/dist/lib/browser/create-ULR5DPJZ.mjs +21 -0
  17. package/dist/lib/browser/create-ULR5DPJZ.mjs.map +7 -0
  18. package/dist/lib/browser/hooks/index.mjs +17 -0
  19. package/dist/lib/browser/index.mjs +442 -94
  20. package/dist/lib/browser/index.mjs.map +4 -4
  21. package/dist/lib/browser/meta.json +1 -1
  22. package/dist/lib/browser/open-SFMPLZVW.mjs +27 -0
  23. package/dist/lib/browser/open-SFMPLZVW.mjs.map +7 -0
  24. package/dist/lib/browser/operations/index.mjs +13 -0
  25. package/dist/lib/browser/operations/index.mjs.map +7 -0
  26. package/dist/lib/browser/summarize-BDFX4APN.mjs +78 -0
  27. package/dist/lib/browser/summarize-BDFX4APN.mjs.map +7 -0
  28. package/dist/lib/browser/types/index.mjs +4 -8
  29. package/dist/lib/node-esm/blueprints/index.mjs +32 -0
  30. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  31. package/dist/lib/node-esm/chunk-7UIZWCD4.mjs +112 -0
  32. package/dist/lib/node-esm/chunk-7UIZWCD4.mjs.map +7 -0
  33. package/dist/lib/node-esm/chunk-C3AE2NYJ.mjs +181 -0
  34. package/dist/lib/node-esm/chunk-C3AE2NYJ.mjs.map +7 -0
  35. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  36. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-KO3IOD2O.mjs +19 -0
  38. package/dist/lib/node-esm/chunk-KO3IOD2O.mjs.map +7 -0
  39. package/dist/lib/node-esm/chunk-MQK4R6GT.mjs +245 -0
  40. package/dist/lib/node-esm/chunk-MQK4R6GT.mjs.map +7 -0
  41. package/dist/lib/node-esm/chunk-O533NBMK.mjs +37 -0
  42. package/dist/lib/node-esm/chunk-O533NBMK.mjs.map +7 -0
  43. package/dist/lib/node-esm/components/index.mjs +208 -0
  44. package/dist/lib/node-esm/components/index.mjs.map +7 -0
  45. package/dist/lib/node-esm/create-A5QHNWRF.mjs +22 -0
  46. package/dist/lib/node-esm/create-A5QHNWRF.mjs.map +7 -0
  47. package/dist/lib/node-esm/hooks/index.mjs +18 -0
  48. package/dist/lib/node-esm/hooks/index.mjs.map +7 -0
  49. package/dist/lib/node-esm/index.mjs +442 -94
  50. package/dist/lib/node-esm/index.mjs.map +4 -4
  51. package/dist/lib/node-esm/meta.json +1 -1
  52. package/dist/lib/node-esm/open-OI24QNTO.mjs +28 -0
  53. package/dist/lib/node-esm/open-OI24QNTO.mjs.map +7 -0
  54. package/dist/lib/node-esm/operations/index.mjs +14 -0
  55. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  56. package/dist/lib/node-esm/summarize-3UNN24I2.mjs +79 -0
  57. package/dist/lib/node-esm/summarize-3UNN24I2.mjs.map +7 -0
  58. package/dist/lib/node-esm/types/index.mjs +4 -8
  59. package/dist/types/src/TranscriptionPlugin.d.ts +3 -1
  60. package/dist/types/src/TranscriptionPlugin.d.ts.map +1 -1
  61. package/dist/types/src/TranscriptionPlugin.node.d.ts +4 -0
  62. package/dist/types/src/TranscriptionPlugin.node.d.ts.map +1 -0
  63. package/dist/types/src/TranscriptionPlugin.test.d.ts +2 -0
  64. package/dist/types/src/TranscriptionPlugin.test.d.ts.map +1 -0
  65. package/dist/types/src/blueprints/index.d.ts +2 -0
  66. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  67. package/dist/types/src/blueprints/transcription-blueprint.d.ts +4 -0
  68. package/dist/types/src/blueprints/transcription-blueprint.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  70. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/index.d.ts +10 -4
  72. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  74. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  76. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/text-content.d.ts +8 -0
  78. package/dist/types/src/capabilities/text-content.d.ts.map +1 -0
  79. package/dist/types/src/capabilities/transcriber.d.ts +4 -3
  80. package/dist/types/src/capabilities/transcriber.d.ts.map +1 -1
  81. package/dist/types/src/components/Transcription/Transcription.d.ts +18 -0
  82. package/dist/types/src/components/Transcription/Transcription.d.ts.map +1 -0
  83. package/dist/types/src/components/Transcription/Transcription.stories.d.ts +40 -0
  84. package/dist/types/src/components/Transcription/Transcription.stories.d.ts.map +1 -0
  85. package/dist/types/src/components/Transcription/index.d.ts +2 -0
  86. package/dist/types/src/components/Transcription/index.d.ts.map +1 -0
  87. package/dist/types/src/components/Transcription/transcription-extension.d.ts +15 -0
  88. package/dist/types/src/components/Transcription/transcription-extension.d.ts.map +1 -0
  89. package/dist/types/src/components/index.d.ts +1 -6
  90. package/dist/types/src/components/index.d.ts.map +1 -1
  91. package/dist/types/src/containers/TranscriptionContainer/TranscriptionContainer.d.ts +6 -0
  92. package/dist/types/src/containers/TranscriptionContainer/TranscriptionContainer.d.ts.map +1 -0
  93. package/dist/types/src/containers/TranscriptionContainer/index.d.ts +2 -0
  94. package/dist/types/src/containers/TranscriptionContainer/index.d.ts.map +1 -0
  95. package/dist/types/src/containers/index.d.ts +3 -0
  96. package/dist/types/src/containers/index.d.ts.map +1 -0
  97. package/dist/types/src/hooks/useAudioFile.d.ts.map +1 -1
  98. package/dist/types/src/hooks/useAudioTrack.d.ts.map +1 -1
  99. package/dist/types/src/hooks/useQueueModelAdapter.d.ts +1 -1
  100. package/dist/types/src/hooks/useQueueModelAdapter.d.ts.map +1 -1
  101. package/dist/types/src/hooks/useTranscriber.d.ts +2 -2
  102. package/dist/types/src/hooks/useTranscriber.d.ts.map +1 -1
  103. package/dist/types/src/hooks/useVoiceInput.d.ts.map +1 -1
  104. package/dist/types/src/index.d.ts +4 -4
  105. package/dist/types/src/index.d.ts.map +1 -1
  106. package/dist/types/src/meta.d.ts +2 -3
  107. package/dist/types/src/meta.d.ts.map +1 -1
  108. package/dist/types/src/model/model.d.ts +2 -2
  109. package/dist/types/src/model/model.d.ts.map +1 -1
  110. package/dist/types/src/{segments-normalization → normalization}/index.d.ts +1 -1
  111. package/dist/types/src/normalization/index.d.ts.map +1 -0
  112. package/dist/types/src/{segments-normalization → normalization}/message-normalizer.d.ts +5 -5
  113. package/dist/types/src/normalization/message-normalizer.d.ts.map +1 -0
  114. package/dist/types/src/normalization/normalization.d.ts +364 -0
  115. package/dist/types/src/normalization/normalization.d.ts.map +1 -0
  116. package/dist/types/src/normalization/normalization.test.d.ts.map +1 -0
  117. package/dist/types/src/normalization/utils.d.ts +3 -0
  118. package/dist/types/src/normalization/utils.d.ts.map +1 -0
  119. package/dist/types/src/operations/create.d.ts +5 -0
  120. package/dist/types/src/operations/create.d.ts.map +1 -0
  121. package/dist/types/src/operations/definitions.d.ts +917 -0
  122. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  123. package/dist/types/src/operations/index.d.ts +4 -0
  124. package/dist/types/src/operations/index.d.ts.map +1 -0
  125. package/dist/types/src/operations/open.d.ts +5 -0
  126. package/dist/types/src/operations/open.d.ts.map +1 -0
  127. package/dist/types/src/operations/summarize.d.ts +8 -0
  128. package/dist/types/src/operations/summarize.d.ts.map +1 -0
  129. package/dist/types/src/stories/FileTranscription.stories.d.ts +18 -0
  130. package/dist/types/src/stories/FileTranscription.stories.d.ts.map +1 -0
  131. package/dist/types/src/stories/KeyWordRecognition.stories.d.ts +14 -0
  132. package/dist/types/src/stories/KeyWordRecognition.stories.d.ts.map +1 -0
  133. package/dist/types/src/stories/MicrophoneTranscription.stories.d.ts +20 -0
  134. package/dist/types/src/stories/MicrophoneTranscription.stories.d.ts.map +1 -0
  135. package/dist/types/src/stories/TranscriptionStory.d.ts +23 -0
  136. package/dist/types/src/stories/TranscriptionStory.d.ts.map +1 -0
  137. package/dist/types/src/stories/useIsSpeaking.d.ts.map +1 -0
  138. package/dist/types/src/testing/testing.d.ts +10 -10
  139. package/dist/types/src/testing/testing.d.ts.map +1 -1
  140. package/dist/types/src/transcriber/media-stream-recorder.d.ts +3 -3
  141. package/dist/types/src/transcriber/media-stream-recorder.d.ts.map +1 -1
  142. package/dist/types/src/transcriber/transcriber.d.ts +60 -5
  143. package/dist/types/src/transcriber/transcriber.d.ts.map +1 -1
  144. package/dist/types/src/transcriber/transcriber.test.d.ts +2 -0
  145. package/dist/types/src/transcriber/transcriber.test.d.ts.map +1 -0
  146. package/dist/types/src/transcriber/transcription-manager.d.ts +12 -13
  147. package/dist/types/src/transcriber/transcription-manager.d.ts.map +1 -1
  148. package/dist/types/src/translations.d.ts +10 -11
  149. package/dist/types/src/translations.d.ts.map +1 -1
  150. package/dist/types/src/types/capabilities.d.ts +19 -0
  151. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  152. package/dist/types/src/types/defs.d.ts +5 -0
  153. package/dist/types/src/types/defs.d.ts.map +1 -0
  154. package/dist/types/src/types/index.d.ts +2 -2
  155. package/dist/types/src/types/index.d.ts.map +1 -1
  156. package/dist/types/src/util/array.d.ts.map +1 -1
  157. package/dist/types/src/util/get-time-str.d.ts.map +1 -1
  158. package/dist/types/src/util/index.d.ts +1 -0
  159. package/dist/types/src/util/index.d.ts.map +1 -1
  160. package/dist/types/src/util/monitor-audio-level.d.ts.map +1 -1
  161. package/dist/types/src/util/render-byline.d.ts +4 -0
  162. package/dist/types/src/util/render-byline.d.ts.map +1 -0
  163. package/dist/types/tsconfig.tsbuildinfo +1 -1
  164. package/package.json +127 -82
  165. package/src/TranscriptionPlugin.node.ts +20 -0
  166. package/src/TranscriptionPlugin.test.ts +31 -0
  167. package/src/TranscriptionPlugin.tsx +22 -61
  168. package/src/blueprints/index.ts +5 -0
  169. package/src/blueprints/transcription-blueprint.ts +29 -0
  170. package/src/capabilities/blueprint-definition.ts +19 -0
  171. package/src/capabilities/index.ts +11 -6
  172. package/src/capabilities/operation-handler.ts +16 -0
  173. package/src/capabilities/react-surface.tsx +23 -14
  174. package/src/capabilities/text-content.ts +33 -0
  175. package/src/capabilities/transcriber.ts +54 -42
  176. package/src/components/{Transcript/Transcript.stories.tsx → Transcription/Transcription.stories.tsx} +78 -73
  177. package/src/components/Transcription/Transcription.tsx +64 -0
  178. package/src/components/{Transcript → Transcription}/index.ts +1 -1
  179. package/src/components/{Transcript/transcript-extension.ts → Transcription/transcription-extension.ts} +15 -48
  180. package/src/components/index.ts +1 -6
  181. package/src/containers/TranscriptionContainer/TranscriptionContainer.tsx +35 -0
  182. package/src/containers/TranscriptionContainer/index.ts +5 -0
  183. package/src/containers/index.ts +7 -0
  184. package/src/hooks/useAudioFile.ts +49 -53
  185. package/src/hooks/useQueueModelAdapter.ts +1 -1
  186. package/src/hooks/useTranscriber.ts +15 -7
  187. package/src/hooks/useVoiceInput.ts +3 -3
  188. package/src/index.ts +10 -5
  189. package/src/meta.ts +9 -6
  190. package/src/model/model.test.ts +27 -21
  191. package/src/model/model.ts +3 -3
  192. package/src/{segments-normalization → normalization}/message-normalizer.ts +20 -19
  193. package/src/{segments-normalization → normalization}/normalization.test.ts +26 -33
  194. package/src/normalization/normalization.ts +77 -0
  195. package/src/{segments-normalization → normalization}/utils.ts +2 -2
  196. package/src/operations/create.ts +24 -0
  197. package/src/operations/definitions.ts +101 -0
  198. package/src/operations/index.ts +13 -0
  199. package/src/operations/open.ts +28 -0
  200. package/src/operations/summarize.ts +101 -0
  201. package/src/{components/stories → stories}/FileTranscription.stories.tsx +99 -72
  202. package/src/{components/stories → stories}/KeyWordRecognition.stories.tsx +46 -40
  203. package/src/{components/stories → stories}/MicrophoneTranscription.stories.tsx +85 -101
  204. package/src/stories/TranscriptionStory.tsx +93 -0
  205. package/src/testing/testing.ts +41 -41
  206. package/src/transcriber/media-stream-recorder.ts +4 -4
  207. package/src/transcriber/transcriber.browser.test.ts +5 -5
  208. package/src/transcriber/transcriber.test.ts +104 -0
  209. package/src/transcriber/transcriber.ts +101 -62
  210. package/src/transcriber/transcription-manager.ts +37 -52
  211. package/src/translations.ts +12 -10
  212. package/src/types/capabilities.ts +39 -0
  213. package/src/types/defs.ts +9 -0
  214. package/src/types/index.ts +2 -2
  215. package/src/util/index.ts +1 -0
  216. package/src/util/render-byline.ts +33 -0
  217. package/dist/lib/browser/TranscriptContainer-H3AZQ4CQ.mjs +0 -11
  218. package/dist/lib/browser/chunk-53AXUEIQ.mjs +0 -764
  219. package/dist/lib/browser/chunk-53AXUEIQ.mjs.map +0 -7
  220. package/dist/lib/browser/chunk-GOF7MJNV.mjs +0 -19
  221. package/dist/lib/browser/chunk-GOF7MJNV.mjs.map +0 -7
  222. package/dist/lib/browser/chunk-IQ5ZRMHZ.mjs +0 -495
  223. package/dist/lib/browser/chunk-IQ5ZRMHZ.mjs.map +0 -7
  224. package/dist/lib/browser/chunk-OSISJM2F.mjs +0 -55
  225. package/dist/lib/browser/chunk-OSISJM2F.mjs.map +0 -7
  226. package/dist/lib/browser/chunk-UDCCT32F.mjs +0 -8
  227. package/dist/lib/browser/chunk-UDCCT32F.mjs.map +0 -7
  228. package/dist/lib/browser/chunk-W2KNYJD6.mjs +0 -16
  229. package/dist/lib/browser/chunk-W2KNYJD6.mjs.map +0 -7
  230. package/dist/lib/browser/intent-resolver-BGADCHVM.mjs +0 -30
  231. package/dist/lib/browser/intent-resolver-BGADCHVM.mjs.map +0 -7
  232. package/dist/lib/browser/react-surface-HMJS5FSS.mjs +0 -34
  233. package/dist/lib/browser/react-surface-HMJS5FSS.mjs.map +0 -7
  234. package/dist/lib/browser/transcriber-OYPLZFG5.mjs +0 -56
  235. package/dist/lib/browser/transcriber-OYPLZFG5.mjs.map +0 -7
  236. package/dist/lib/node/TranscriptContainer-KIG3GMAB.cjs +0 -32
  237. package/dist/lib/node/TranscriptContainer-KIG3GMAB.cjs.map +0 -7
  238. package/dist/lib/node/chunk-3PYT3BDM.cjs +0 -40
  239. package/dist/lib/node/chunk-3PYT3BDM.cjs.map +0 -7
  240. package/dist/lib/node/chunk-6LW5RA3K.cjs +0 -75
  241. package/dist/lib/node/chunk-6LW5RA3K.cjs.map +0 -7
  242. package/dist/lib/node/chunk-AFUZI63A.cjs +0 -42
  243. package/dist/lib/node/chunk-AFUZI63A.cjs.map +0 -7
  244. package/dist/lib/node/chunk-CVUN3UO7.cjs +0 -778
  245. package/dist/lib/node/chunk-CVUN3UO7.cjs.map +0 -7
  246. package/dist/lib/node/chunk-FKDJNJ57.cjs +0 -35
  247. package/dist/lib/node/chunk-FKDJNJ57.cjs.map +0 -7
  248. package/dist/lib/node/chunk-ZFAUMZXE.cjs +0 -518
  249. package/dist/lib/node/chunk-ZFAUMZXE.cjs.map +0 -7
  250. package/dist/lib/node/index.cjs +0 -133
  251. package/dist/lib/node/index.cjs.map +0 -7
  252. package/dist/lib/node/intent-resolver-LL3TTI4H.cjs +0 -45
  253. package/dist/lib/node/intent-resolver-LL3TTI4H.cjs.map +0 -7
  254. package/dist/lib/node/meta.json +0 -1
  255. package/dist/lib/node/react-surface-N25TBBG4.cjs +0 -56
  256. package/dist/lib/node/react-surface-N25TBBG4.cjs.map +0 -7
  257. package/dist/lib/node/transcriber-6J4FVFSZ.cjs +0 -68
  258. package/dist/lib/node/transcriber-6J4FVFSZ.cjs.map +0 -7
  259. package/dist/lib/node/types/index.cjs +0 -36
  260. package/dist/lib/node/types/index.cjs.map +0 -7
  261. package/dist/lib/node-esm/TranscriptContainer-G75LDEO5.mjs +0 -12
  262. package/dist/lib/node-esm/chunk-56QHOX4A.mjs +0 -765
  263. package/dist/lib/node-esm/chunk-56QHOX4A.mjs.map +0 -7
  264. package/dist/lib/node-esm/chunk-FH75X4JC.mjs +0 -56
  265. package/dist/lib/node-esm/chunk-FH75X4JC.mjs.map +0 -7
  266. package/dist/lib/node-esm/chunk-MFJO7EKD.mjs +0 -10
  267. package/dist/lib/node-esm/chunk-MFJO7EKD.mjs.map +0 -7
  268. package/dist/lib/node-esm/chunk-MFJPEIVB.mjs +0 -17
  269. package/dist/lib/node-esm/chunk-MFJPEIVB.mjs.map +0 -7
  270. package/dist/lib/node-esm/chunk-PRL64SRU.mjs +0 -496
  271. package/dist/lib/node-esm/chunk-PRL64SRU.mjs.map +0 -7
  272. package/dist/lib/node-esm/chunk-TXMDLLBR.mjs +0 -21
  273. package/dist/lib/node-esm/chunk-TXMDLLBR.mjs.map +0 -7
  274. package/dist/lib/node-esm/intent-resolver-5LVCYSJS.mjs +0 -31
  275. package/dist/lib/node-esm/intent-resolver-5LVCYSJS.mjs.map +0 -7
  276. package/dist/lib/node-esm/react-surface-JGQSYGRR.mjs +0 -35
  277. package/dist/lib/node-esm/react-surface-JGQSYGRR.mjs.map +0 -7
  278. package/dist/lib/node-esm/transcriber-TVG2MBBN.mjs +0 -57
  279. package/dist/lib/node-esm/transcriber-TVG2MBBN.mjs.map +0 -7
  280. package/dist/types/src/capabilities/capabilities.d.ts +0 -17
  281. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  282. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  283. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  284. package/dist/types/src/components/Transcript/Transcript.d.ts +0 -20
  285. package/dist/types/src/components/Transcript/Transcript.d.ts.map +0 -1
  286. package/dist/types/src/components/Transcript/Transcript.stories.d.ts +0 -24
  287. package/dist/types/src/components/Transcript/Transcript.stories.d.ts.map +0 -1
  288. package/dist/types/src/components/Transcript/deprecated/OldTranscript.d.ts +0 -28
  289. package/dist/types/src/components/Transcript/deprecated/OldTranscript.d.ts.map +0 -1
  290. package/dist/types/src/components/Transcript/index.d.ts +0 -2
  291. package/dist/types/src/components/Transcript/index.d.ts.map +0 -1
  292. package/dist/types/src/components/Transcript/transcript-extension.d.ts +0 -19
  293. package/dist/types/src/components/Transcript/transcript-extension.d.ts.map +0 -1
  294. package/dist/types/src/components/TranscriptContainer.d.ts +0 -8
  295. package/dist/types/src/components/TranscriptContainer.d.ts.map +0 -1
  296. package/dist/types/src/components/stories/FileTranscription.stories.d.ts +0 -17
  297. package/dist/types/src/components/stories/FileTranscription.stories.d.ts.map +0 -1
  298. package/dist/types/src/components/stories/KeyWordRecognition.stories.d.ts +0 -10
  299. package/dist/types/src/components/stories/KeyWordRecognition.stories.d.ts.map +0 -1
  300. package/dist/types/src/components/stories/MicrophoneTranscription.stories.d.ts +0 -19
  301. package/dist/types/src/components/stories/MicrophoneTranscription.stories.d.ts.map +0 -1
  302. package/dist/types/src/components/stories/TranscriptionStory.d.ts +0 -11
  303. package/dist/types/src/components/stories/TranscriptionStory.d.ts.map +0 -1
  304. package/dist/types/src/components/stories/useIsSpeaking.d.ts.map +0 -1
  305. package/dist/types/src/segments-normalization/index.d.ts.map +0 -1
  306. package/dist/types/src/segments-normalization/message-normalizer.d.ts.map +0 -1
  307. package/dist/types/src/segments-normalization/normalization.d.ts +0 -329
  308. package/dist/types/src/segments-normalization/normalization.d.ts.map +0 -1
  309. package/dist/types/src/segments-normalization/normalization.test.d.ts.map +0 -1
  310. package/dist/types/src/segments-normalization/utils.d.ts +0 -3
  311. package/dist/types/src/segments-normalization/utils.d.ts.map +0 -1
  312. package/dist/types/src/types/schema.d.ts +0 -41
  313. package/dist/types/src/types/schema.d.ts.map +0 -1
  314. package/dist/types/src/types/types.d.ts +0 -31
  315. package/dist/types/src/types/types.d.ts.map +0 -1
  316. package/src/capabilities/capabilities.ts +0 -33
  317. package/src/capabilities/intent-resolver.ts +0 -24
  318. package/src/components/Transcript/Transcript.tsx +0 -100
  319. package/src/components/Transcript/deprecated/OldTranscript.tsx +0 -260
  320. package/src/components/TranscriptContainer.tsx +0 -30
  321. package/src/components/stories/TranscriptionStory.tsx +0 -41
  322. package/src/segments-normalization/normalization.ts +0 -105
  323. package/src/types/schema.ts +0 -41
  324. package/src/types/types.ts +0 -32
  325. package/dist/lib/browser/{TranscriptContainer-H3AZQ4CQ.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  326. package/dist/lib/{node-esm/TranscriptContainer-G75LDEO5.mjs.map → browser/hooks/index.mjs.map} +0 -0
  327. package/dist/types/src/{segments-normalization → normalization}/normalization.test.d.ts +0 -0
  328. package/dist/types/src/{components/stories → stories}/useIsSpeaking.d.ts +0 -0
  329. package/src/{segments-normalization → normalization}/index.ts +1 -1
  330. /package/src/{components/stories → stories}/useIsSpeaking.tsx +0 -0
@@ -1,122 +1,470 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- TranscriptContainer
4
- } from "./chunk-MFJO7EKD.mjs";
5
- import {
6
- IntentResolver,
7
- ReactSurface,
8
- Transcriber as Transcriber2,
9
- Transcript,
10
- TranscriptionContainer,
11
- renderMarkdown,
12
3
  useAudioFile,
13
4
  useAudioTrack,
14
5
  useQueueModelAdapter,
15
6
  useTranscriber,
16
7
  useVoiceInput
17
- } from "./chunk-56QHOX4A.mjs";
18
- import {
19
- MediaStreamRecorder,
20
- Transcriber,
21
- TranscriptionManager
22
- } from "./chunk-PRL64SRU.mjs";
23
- import {
24
- TranscriptType
25
- } from "./chunk-FH75X4JC.mjs";
8
+ } from "./chunk-MQK4R6GT.mjs";
9
+ import "./chunk-C3AE2NYJ.mjs";
26
10
  import {
27
11
  TranscriptionCapabilities
28
- } from "./chunk-MFJPEIVB.mjs";
12
+ } from "./chunk-KO3IOD2O.mjs";
29
13
  import {
30
- TRANSCRIPTION_PLUGIN,
31
- meta
32
- } from "./chunk-TXMDLLBR.mjs";
14
+ mergeFloat64Arrays
15
+ } from "./chunk-O533NBMK.mjs";
16
+ import "./chunk-HSLMI22Q.mjs";
33
17
 
34
- // packages/plugins/plugin-transcription/src/TranscriptionPlugin.tsx
35
- import { Capabilities, Events, contributes, defineModule, definePlugin } from "@dxos/app-framework";
36
- import { Obj } from "@dxos/echo";
37
- import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
38
- import { getSpace } from "@dxos/react-client/echo";
39
- import { DataType } from "@dxos/schema";
18
+ // src/index.ts
19
+ import { Plugin } from "@dxos/app-framework";
40
20
 
41
- // packages/plugins/plugin-transcription/src/translations.ts
42
- var translations_default = [
43
- {
44
- "en-US": {
45
- [TRANSCRIPTION_PLUGIN]: {
46
- "plugin name": "Transcription",
47
- "transcript companion label": "Transcript",
48
- "delete button": "Delete",
49
- "bookmark button": "Bookmark",
50
- "scroll to end label": "Scroll to latest",
51
- "settings entity extraction label": "Entity extraction"
52
- }
21
+ // src/meta.ts
22
+ import { trim } from "@dxos/util";
23
+ var meta = {
24
+ id: "org.dxos.plugin.transcription",
25
+ name: "Transcription",
26
+ description: trim`
27
+ Real-time voice-to-text transcription service for capturing spoken content.
28
+ Convert audio input into searchable text that integrates seamlessly with notes and documents.
29
+ `,
30
+ icon: "ph--microphone--regular",
31
+ iconHue: "sky",
32
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-transcription",
33
+ tags: [
34
+ "labs"
35
+ ],
36
+ screenshots: []
37
+ };
38
+
39
+ // src/transcriber/media-stream-recorder.ts
40
+ import { MediaRecorder, register } from "extendable-media-recorder";
41
+ import { WaveFile } from "wavefile";
42
+ import { synchronized } from "@dxos/async";
43
+ import { invariant } from "@dxos/invariant";
44
+ import { log } from "@dxos/log";
45
+ import { trace } from "@dxos/tracing";
46
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-transcription/src/transcriber/media-stream-recorder.ts";
47
+ function _ts_decorate(decorators, target, key, desc) {
48
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
51
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
52
+ }
53
+ var initializingPromise;
54
+ var initializeExtendableMediaRecorder = async () => {
55
+ const { connect } = await import("extendable-media-recorder-wav-encoder");
56
+ await register(await connect());
57
+ };
58
+ var MediaStreamRecorder = class {
59
+ _mediaStreamTrack;
60
+ /**
61
+ * Default MediaRecorder implementation do not support wav encoding.
62
+ */
63
+ _config;
64
+ _mediaRecorder = void 0;
65
+ _header = void 0;
66
+ _onChunk;
67
+ constructor({ mediaStreamTrack, config }) {
68
+ this._mediaStreamTrack = mediaStreamTrack;
69
+ this._config = config;
70
+ }
71
+ get wavConfig() {
72
+ const settings = this._mediaStreamTrack.getSettings();
73
+ return {
74
+ channels: settings.channelCount ?? 1,
75
+ sampleRate: settings.sampleRate ?? 16e3,
76
+ bitDepthCode: settings.sampleSize ? String(settings.sampleSize) : "16"
77
+ };
78
+ }
79
+ get mediaStreamTrack() {
80
+ return this._mediaStreamTrack;
81
+ }
82
+ setOnChunk(onChunk) {
83
+ this._onChunk = onChunk;
84
+ }
85
+ async start() {
86
+ await (initializingPromise ??= initializeExtendableMediaRecorder()).catch((err) => log.info("initializeExtendableMediaRecorder", {
87
+ err
88
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 48, S: this }));
89
+ if (!this._mediaRecorder) {
90
+ const stream = new MediaStream([
91
+ this._mediaStreamTrack
92
+ ]);
93
+ this._mediaRecorder = new MediaRecorder(stream, {
94
+ mimeType: "audio/wav"
95
+ });
96
+ }
97
+ if (this._mediaRecorder.state === "recording") {
98
+ return;
99
+ }
100
+ invariant(this._onChunk, "MediaStreamRecorder: onChunk is not set", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 62, S: this, A: ["this._onChunk", "'MediaStreamRecorder: onChunk is not set'"] });
101
+ this._mediaRecorder.ondataavailable = (event) => this._ondataavailable(event);
102
+ this._mediaRecorder.start(this._config.interval);
103
+ }
104
+ async stop() {
105
+ if (this._mediaRecorder?.state !== "recording") {
106
+ return;
107
+ }
108
+ this._mediaRecorder.stop();
109
+ }
110
+ async _ondataavailable(event) {
111
+ const blob = event.data;
112
+ const uint8Array = new Uint8Array(await blob.arrayBuffer());
113
+ const isHeader = uint8Array[0] === 82 && // R
114
+ uint8Array[1] === 73 && // I
115
+ uint8Array[2] === 70 && // F
116
+ uint8Array[3] === 70;
117
+ let wav;
118
+ if (isHeader) {
119
+ wav = new WaveFile(uint8Array);
120
+ this._header = uint8Array.slice(0, 44);
121
+ } else if (this._header) {
122
+ wav = new WaveFile(new Uint8Array([
123
+ ...this._header,
124
+ ...uint8Array
125
+ ]));
126
+ } else {
127
+ log.warn("MediaStreamRecorder: no header", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 90, S: this });
128
+ return;
53
129
  }
130
+ this._onChunk({
131
+ timestamp: Date.now(),
132
+ data: wav.getSamples()
133
+ });
54
134
  }
55
- ];
135
+ };
136
+ _ts_decorate([
137
+ synchronized
138
+ ], MediaStreamRecorder.prototype, "_ondataavailable", null);
139
+ MediaStreamRecorder = _ts_decorate([
140
+ trace.resource()
141
+ ], MediaStreamRecorder);
56
142
 
57
- // packages/plugins/plugin-transcription/src/TranscriptionPlugin.tsx
58
- var TranscriptionPlugin = () => definePlugin(meta, [
59
- defineModule({
60
- id: `${meta.id}/module/translations`,
61
- activatesOn: Events.SetupTranslations,
62
- activate: () => contributes(Capabilities.Translations, translations_default)
63
- }),
64
- defineModule({
65
- id: `${meta.id}/module/metadata`,
66
- activatesOn: Events.SetupMetadata,
67
- activate: (context) => contributes(Capabilities.Metadata, {
68
- id: TranscriptType.typename,
69
- metadata: {
70
- icon: "ph--subtitles--regular",
71
- // TODO(wittjosiah): Factor out. Artifact? Separate capability?
72
- getTextContent: async (transcript) => {
73
- const space = getSpace(transcript);
74
- const members = space?.members.get().map((member) => member.identity) ?? [];
75
- const queue = space?.queues.get(transcript.queue.dxn);
76
- await queue?.refresh();
77
- const content = queue?.objects.filter((message) => Obj.instanceOf(DataType.Message, message)).flatMap((message, index) => renderMarkdown(members)(message, index)).join("\n\n");
78
- return content;
143
+ // src/transcriber/transcriber.ts
144
+ import { WaveFile as WaveFile2 } from "wavefile";
145
+ import { DeferredTask, Trigger } from "@dxos/async";
146
+ import { LifecycleState, Resource } from "@dxos/context";
147
+ import { log as log2 } from "@dxos/log";
148
+ import { trace as trace2 } from "@dxos/tracing";
149
+ import { TRANSCRIPTION_URL } from "#types";
150
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-transcription/src/transcriber/transcriber.ts";
151
+ function _ts_decorate2(decorators, target, key, desc) {
152
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
153
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
154
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
155
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
156
+ }
157
+ var Transcriber = class extends Resource {
158
+ _audioChunks = [];
159
+ _lastUsedTimestamp = 0;
160
+ _openTrigger = new Trigger({
161
+ autoReset: true
162
+ });
163
+ _config;
164
+ _recorder;
165
+ _onSegments;
166
+ _transcribeFn;
167
+ _recording = false;
168
+ _transcribeTask = void 0;
169
+ constructor({ config, recorder, onSegments, transcribe }) {
170
+ super();
171
+ this._config = config;
172
+ this._recorder = recorder;
173
+ this._onSegments = onSegments;
174
+ this._transcribeFn = transcribe;
175
+ }
176
+ async _open(ctx) {
177
+ log2.info("opening", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 41, S: this });
178
+ this._recorder.setOnChunk((chunk) => this._saveAudioChunk(chunk));
179
+ await this._recorder.start();
180
+ this._transcribeTask = new DeferredTask(ctx, async () => this._transcribe());
181
+ this._openTrigger.wake();
182
+ }
183
+ async _close() {
184
+ log2.info("closing", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 48, S: this });
185
+ this._recording = false;
186
+ this._transcribeTask = void 0;
187
+ await this._recorder.stop();
188
+ }
189
+ startChunksRecording() {
190
+ log2.info("starting", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 54, S: this });
191
+ if (this._lifecycleState !== LifecycleState.OPEN) {
192
+ return;
193
+ }
194
+ this._recording = true;
195
+ }
196
+ stopChunksRecording() {
197
+ if (this._lifecycleState !== LifecycleState.OPEN || !this._recording) {
198
+ return;
199
+ }
200
+ this._recording = false;
201
+ this._transcribeTask?.schedule();
202
+ log2.info("stopped", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 66, S: this });
203
+ }
204
+ _saveAudioChunk(chunk) {
205
+ log2("saving audio chunk", {
206
+ chunk
207
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 69, S: this });
208
+ this._audioChunks.push(chunk);
209
+ if (!this._recording && (!this._transcribeTask || !this._transcribeTask.scheduled) && this._audioChunks.length >= this._config.prefixBufferChunksAmount) {
210
+ this._audioChunks = this._dropOldChunks();
211
+ } else if (this._audioChunks.length >= this._config.transcribeAfterChunksAmount && this._recording) {
212
+ this._transcribeTask?.schedule();
213
+ }
214
+ }
215
+ async _transcribe() {
216
+ log2("transcribing", {
217
+ chunks: this._audioChunks.length
218
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 81, S: this });
219
+ const chunks = this._audioChunks;
220
+ this._audioChunks = this._dropOldChunks();
221
+ if (chunks.length === 0) {
222
+ return;
223
+ }
224
+ const audio = await this._mergeAudioChunks(chunks);
225
+ const segments = await this._fetchTranscription(audio);
226
+ if (!Array.isArray(segments) || segments.length === 0) {
227
+ return;
228
+ }
229
+ const alignedSegments = this._alignSegments(segments, chunks);
230
+ if (alignedSegments.length > 0) {
231
+ await this._onSegments(alignedSegments);
232
+ }
233
+ }
234
+ _dropOldChunks() {
235
+ return this._config.prefixBufferChunksAmount > 0 ? this._audioChunks.slice(-this._config.prefixBufferChunksAmount) : [];
236
+ }
237
+ async _mergeAudioChunks(chunks) {
238
+ const file = new WaveFile2();
239
+ const wavConfig = this._recorder.wavConfig;
240
+ file.fromScratch(wavConfig.channels, wavConfig.sampleRate, wavConfig.bitDepthCode, mergeFloat64Arrays(chunks.map(({ data }) => data)));
241
+ return file.toBase64();
242
+ }
243
+ async _fetchTranscription(audio) {
244
+ if (audio.length === 0) {
245
+ throw new Error("No audio to send for transcribing");
246
+ }
247
+ let segments;
248
+ if (this._transcribeFn) {
249
+ segments = await this._transcribeFn(audio);
250
+ } else {
251
+ const endpoint = this._config.endpoint ?? TRANSCRIPTION_URL;
252
+ const response = await fetch(`${endpoint}/transcribe`, {
253
+ method: "POST",
254
+ body: JSON.stringify({
255
+ audio
256
+ }),
257
+ headers: {
258
+ "Content-Type": "application/json"
79
259
  }
260
+ });
261
+ if (!response.ok) {
262
+ throw new Error(`Transcription failed: ${response.statusText}`);
80
263
  }
81
- })
82
- }),
83
- defineModule({
84
- id: `${meta.id}/module/schema`,
85
- activatesOn: ClientEvents.SetupSchema,
86
- activate: () => [
87
- contributes(ClientCapabilities.Schema, [
88
- TranscriptType
89
- ])
90
- ]
91
- }),
92
- defineModule({
93
- id: `${meta.id}/module/react-surface`,
94
- activatesOn: Events.SetupReactSurface,
95
- activate: ReactSurface
96
- }),
97
- defineModule({
98
- id: `${meta.id}/module/intent-resolver`,
99
- activatesOn: Events.SetupIntentResolver,
100
- activate: IntentResolver
101
- }),
102
- defineModule({
103
- id: `${meta.id}/module/transcription`,
104
- activatesOn: Events.SetupAppGraph,
105
- activate: Transcriber2
264
+ ({ segments } = await response.json());
265
+ }
266
+ if (!Array.isArray(segments)) {
267
+ throw new Error("Transcription response payload is invalid");
268
+ }
269
+ log2.info("transcription response", {
270
+ segments: segments.length
271
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 134, S: this });
272
+ return segments;
273
+ }
274
+ _alignSegments(segments, originalChunks) {
275
+ const result = alignWhisperSegments(segments, originalChunks, this._lastUsedTimestamp);
276
+ if (result.lastUsedTimestamp !== void 0) {
277
+ this._lastUsedTimestamp = result.lastUsedTimestamp;
278
+ }
279
+ return result.transcripts;
280
+ }
281
+ };
282
+ _ts_decorate2([
283
+ trace2.span({
284
+ showInBrowserTimeline: true
285
+ })
286
+ ], Transcriber.prototype, "_mergeAudioChunks", null);
287
+ _ts_decorate2([
288
+ trace2.span({
289
+ showInBrowserTimeline: true
106
290
  })
107
- ]);
291
+ ], Transcriber.prototype, "_fetchTranscription", null);
292
+ var alignWhisperSegments = (segments, originalChunks, lastUsedTimestamp) => {
293
+ if (originalChunks.length === 0) {
294
+ return {
295
+ transcripts: []
296
+ };
297
+ }
298
+ const zeroTimestamp = originalChunks[0].timestamp;
299
+ const filteredSegments = segments.filter((segment) => zeroTimestamp + segment.end * 1e3 >= lastUsedTimestamp).map((segment) => {
300
+ const words = segment.words.filter((word) => zeroTimestamp + word.start * 1e3 >= lastUsedTimestamp);
301
+ return {
302
+ ...segment,
303
+ words,
304
+ text: words.map((word) => word.word).join(""),
305
+ start: words.at(0)?.start ?? segment.end
306
+ };
307
+ }).filter((segment) => segment.words.length > 0);
308
+ if (filteredSegments.length === 0) {
309
+ return {
310
+ transcripts: []
311
+ };
312
+ }
313
+ return {
314
+ transcripts: filteredSegments.map((segment) => ({
315
+ _tag: "transcript",
316
+ started: new Date(zeroTimestamp + segment.start * 1e3).toISOString(),
317
+ text: segment.text.trim()
318
+ })),
319
+ lastUsedTimestamp: zeroTimestamp + filteredSegments.at(-1).end * 1e3
320
+ };
321
+ };
322
+
323
+ // src/transcriber/transcription-manager.ts
324
+ import { Atom } from "@effect-atom/atom-react";
325
+ import { synchronized as synchronized2 } from "@dxos/async";
326
+ import { Resource as Resource2 } from "@dxos/context";
327
+ import { Obj } from "@dxos/echo";
328
+ import { Message } from "@dxos/types";
329
+ function _ts_decorate3(decorators, target, key, desc) {
330
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
331
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
332
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
333
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
334
+ }
335
+ var RECORD_INTERVAL = 200;
336
+ var PREFIXED_CHUNKS_AMOUNT = 10;
337
+ var TRANSCRIBE_AFTER_CHUNKS_AMOUNT = 50;
338
+ var TranscriptionManager = class extends Resource2 {
339
+ _edgeClient;
340
+ _messageEnricher;
341
+ _registry;
342
+ _audioStreamTrack = void 0;
343
+ _identityDid = void 0;
344
+ _mediaRecorder = void 0;
345
+ _transcriber = void 0;
346
+ _queue = void 0;
347
+ _enabledAtom = Atom.make(false);
348
+ constructor(options) {
349
+ super();
350
+ this._edgeClient = options.edgeClient;
351
+ this._messageEnricher = options.messageEnricher;
352
+ this._registry = options.registry;
353
+ }
354
+ get enabled() {
355
+ return this._enabledAtom;
356
+ }
357
+ getEnabled() {
358
+ return this._registry.get(this._enabledAtom);
359
+ }
360
+ setQueue(queue) {
361
+ this._queue = queue;
362
+ return this;
363
+ }
364
+ setIdentityDid(did) {
365
+ if (this._identityDid !== did) {
366
+ this._identityDid = did;
367
+ }
368
+ return this;
369
+ }
370
+ setRecording(recording) {
371
+ if (!this.isOpen || !this.getEnabled()) {
372
+ return this;
373
+ }
374
+ if (recording) {
375
+ this._transcriber?.startChunksRecording();
376
+ } else {
377
+ this._transcriber?.stopChunksRecording();
378
+ }
379
+ return this;
380
+ }
381
+ async setEnabled(enabled) {
382
+ if (this.getEnabled() === enabled) {
383
+ return;
384
+ }
385
+ this._registry.set(this._enabledAtom, enabled ?? false);
386
+ if (enabled) {
387
+ await this._maybeRestartTranscriber();
388
+ } else {
389
+ await this._stopTranscriber();
390
+ }
391
+ }
392
+ async setAudioTrack(track) {
393
+ if (this._audioStreamTrack === track) {
394
+ return;
395
+ }
396
+ this._audioStreamTrack = track;
397
+ await this._maybeRestartTranscriber();
398
+ }
399
+ async _open() {
400
+ await this._maybeRestartTranscriber();
401
+ }
402
+ async _close() {
403
+ await this._stopTranscriber();
404
+ }
405
+ async _maybeRestartTranscriber() {
406
+ if (!this._audioStreamTrack || !this.getEnabled() || !this.isOpen) {
407
+ return;
408
+ }
409
+ let needReinit = false;
410
+ if (this._audioStreamTrack !== this._mediaRecorder?.mediaStreamTrack) {
411
+ this._mediaRecorder = new MediaStreamRecorder({
412
+ mediaStreamTrack: this._audioStreamTrack,
413
+ config: {
414
+ interval: RECORD_INTERVAL
415
+ }
416
+ });
417
+ needReinit = true;
418
+ }
419
+ if (needReinit) {
420
+ await this._transcriber?.close();
421
+ this._transcriber = new Transcriber({
422
+ config: {
423
+ transcribeAfterChunksAmount: TRANSCRIBE_AFTER_CHUNKS_AMOUNT,
424
+ prefixBufferChunksAmount: PREFIXED_CHUNKS_AMOUNT
425
+ },
426
+ recorder: this._mediaRecorder,
427
+ onSegments: (segments) => this._onSegments(segments)
428
+ });
429
+ await this._transcriber?.open();
430
+ }
431
+ }
432
+ async _stopTranscriber() {
433
+ await this._transcriber?.close();
434
+ }
435
+ async _onSegments(segments) {
436
+ if (!this.isOpen || !this._queue) {
437
+ return;
438
+ }
439
+ let block = Obj.make(Message.Message, {
440
+ created: (/* @__PURE__ */ new Date()).toISOString(),
441
+ blocks: segments,
442
+ sender: {
443
+ identityDid: this._identityDid
444
+ }
445
+ });
446
+ if (this._messageEnricher) {
447
+ block = await this._messageEnricher(block);
448
+ }
449
+ await this._queue.append([
450
+ block
451
+ ]);
452
+ }
453
+ };
454
+ _ts_decorate3([
455
+ synchronized2
456
+ ], TranscriptionManager.prototype, "setAudioTrack", null);
457
+
458
+ // src/index.ts
459
+ var TranscriptionPlugin = Plugin.lazy(meta, () => import("#plugin"));
108
460
  export {
109
461
  MediaStreamRecorder,
110
- TRANSCRIPTION_PLUGIN,
111
462
  Transcriber,
112
- Transcript,
113
- TranscriptContainer,
114
463
  TranscriptionCapabilities,
115
- TranscriptionContainer,
116
464
  TranscriptionManager,
117
465
  TranscriptionPlugin,
466
+ alignWhisperSegments,
118
467
  meta,
119
- renderMarkdown,
120
468
  useAudioFile,
121
469
  useAudioTrack,
122
470
  useQueueModelAdapter,