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