@dxos/plugin-transcription 0.8.4-main.fcfe5033a5 → 0.8.4-staging.60fe92afc8

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 (319) hide show
  1. package/LICENSE +102 -5
  2. package/PLUGIN.mdl +401 -0
  3. package/README.md +1 -1
  4. package/dist/lib/neutral/TranscriptionArticle-L6XANBH5.mjs +54 -0
  5. package/dist/lib/neutral/TranscriptionArticle-L6XANBH5.mjs.map +7 -0
  6. package/dist/lib/neutral/TranscriptionPlugin.mjs +46 -0
  7. package/dist/lib/neutral/TranscriptionPlugin.mjs.map +7 -0
  8. package/dist/lib/neutral/TranscriptionPlugin.node.mjs +25 -0
  9. package/dist/lib/neutral/TranscriptionPlugin.node.mjs.map +7 -0
  10. package/dist/lib/neutral/TranscriptionPlugin.workerd.mjs +21 -0
  11. package/dist/lib/neutral/TranscriptionPlugin.workerd.mjs.map +7 -0
  12. package/dist/lib/neutral/blueprint-definition-DA4QFRYJ.mjs +15 -0
  13. package/dist/lib/neutral/blueprint-definition-DA4QFRYJ.mjs.map +7 -0
  14. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  15. package/dist/lib/neutral/capabilities/index.mjs +17 -0
  16. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  17. package/dist/lib/neutral/chunk-FHNI26QW.mjs +45 -0
  18. package/dist/lib/neutral/chunk-FHNI26QW.mjs.map +7 -0
  19. package/dist/lib/{browser/chunk-HOOPZ7EM.mjs → neutral/chunk-KAEXRX3Y.mjs} +1 -1
  20. package/dist/lib/{browser/chunk-KOX4WNAR.mjs → neutral/chunk-KMT3BMMQ.mjs} +35 -22
  21. package/dist/lib/neutral/chunk-KMT3BMMQ.mjs.map +7 -0
  22. package/dist/lib/neutral/chunk-KXJZEYS7.mjs +8 -0
  23. package/dist/lib/neutral/chunk-KXJZEYS7.mjs.map +7 -0
  24. package/dist/lib/neutral/chunk-MLRJWAQH.mjs +179 -0
  25. package/dist/lib/neutral/chunk-MLRJWAQH.mjs.map +7 -0
  26. package/dist/lib/neutral/chunk-TO77KAQK.mjs +298 -0
  27. package/dist/lib/neutral/chunk-TO77KAQK.mjs.map +7 -0
  28. package/dist/lib/neutral/chunk-TX3NQISZ.mjs +435 -0
  29. package/dist/lib/neutral/chunk-TX3NQISZ.mjs.map +7 -0
  30. package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-ZR4BH4QQ.mjs} +5 -6
  31. package/dist/lib/neutral/chunk-ZR4BH4QQ.mjs.map +7 -0
  32. package/dist/lib/neutral/components/index.mjs +269 -0
  33. package/dist/lib/neutral/components/index.mjs.map +7 -0
  34. package/dist/lib/neutral/containers/index.mjs +9 -0
  35. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  36. package/dist/lib/{browser/create-BTWYQ6IM.mjs → neutral/create-RVR7VC33.mjs} +5 -5
  37. package/dist/lib/neutral/create-RVR7VC33.mjs.map +7 -0
  38. package/dist/lib/neutral/hooks/index.mjs +19 -0
  39. package/dist/lib/neutral/index.mjs +44 -0
  40. package/dist/lib/neutral/meta.json +1 -0
  41. package/dist/lib/neutral/meta.mjs +8 -0
  42. package/dist/lib/neutral/meta.mjs.map +7 -0
  43. package/dist/lib/{browser/open-CYRYIEZI.mjs → neutral/open-A5KXKRH4.mjs} +7 -7
  44. package/dist/lib/neutral/open-A5KXKRH4.mjs.map +7 -0
  45. package/dist/lib/neutral/operation-handler-NXMOAXFP.mjs +13 -0
  46. package/dist/lib/neutral/operation-handler-NXMOAXFP.mjs.map +7 -0
  47. package/dist/lib/neutral/operations/index.mjs +8 -0
  48. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  49. package/dist/lib/neutral/plugin.mjs +16 -0
  50. package/dist/lib/neutral/plugin.mjs.map +7 -0
  51. package/dist/lib/neutral/react-surface-YMZRO242.mjs +26 -0
  52. package/dist/lib/neutral/react-surface-YMZRO242.mjs.map +7 -0
  53. package/dist/lib/{browser/summarize-X2ZYTN7S.mjs → neutral/summarize-5XPPMVTE.mjs} +9 -11
  54. package/dist/lib/neutral/summarize-5XPPMVTE.mjs.map +7 -0
  55. package/dist/lib/neutral/text-content-KBB37HSM.mjs +30 -0
  56. package/dist/lib/neutral/text-content-KBB37HSM.mjs.map +7 -0
  57. package/dist/lib/neutral/transcriber-OGSF3XO5.mjs +59 -0
  58. package/dist/lib/neutral/transcriber-OGSF3XO5.mjs.map +7 -0
  59. package/dist/lib/neutral/translations.mjs +24 -0
  60. package/dist/lib/neutral/translations.mjs.map +7 -0
  61. package/dist/lib/neutral/types/index.mjs +10 -0
  62. package/dist/lib/neutral/types/index.mjs.map +7 -0
  63. package/dist/types/src/TranscriptionPlugin.d.ts +1 -0
  64. package/dist/types/src/TranscriptionPlugin.d.ts.map +1 -1
  65. package/dist/types/src/TranscriptionPlugin.node.d.ts +4 -0
  66. package/dist/types/src/TranscriptionPlugin.node.d.ts.map +1 -0
  67. package/dist/types/src/TranscriptionPlugin.test.d.ts +2 -0
  68. package/dist/types/src/TranscriptionPlugin.test.d.ts.map +1 -0
  69. package/dist/types/src/TranscriptionPlugin.workerd.d.ts +4 -0
  70. package/dist/types/src/TranscriptionPlugin.workerd.d.ts.map +1 -0
  71. package/dist/types/src/blueprints/transcription-blueprint.d.ts +2 -2
  72. package/dist/types/src/blueprints/transcription-blueprint.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/blueprint-definition.d.ts +1 -1
  74. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/index.d.ts +8 -3
  76. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  78. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/text-content.d.ts +8 -0
  81. package/dist/types/src/capabilities/text-content.d.ts.map +1 -0
  82. package/dist/types/src/capabilities/transcriber.d.ts +1 -1
  83. package/dist/types/src/capabilities/transcriber.d.ts.map +1 -1
  84. package/dist/types/src/components/Oracle/Oracle.d.ts +24 -0
  85. package/dist/types/src/components/Oracle/Oracle.d.ts.map +1 -0
  86. package/dist/types/src/components/Oracle/Oracle.stories.d.ts +32 -0
  87. package/dist/types/src/components/Oracle/Oracle.stories.d.ts.map +1 -0
  88. package/dist/types/src/components/Oracle/index.d.ts +2 -0
  89. package/dist/types/src/components/Oracle/index.d.ts.map +1 -0
  90. package/dist/types/src/components/Transcription/Transcription.d.ts +1 -8
  91. package/dist/types/src/components/Transcription/Transcription.d.ts.map +1 -1
  92. package/dist/types/src/components/Transcription/Transcription.stories.d.ts +20 -23
  93. package/dist/types/src/components/Transcription/Transcription.stories.d.ts.map +1 -1
  94. package/dist/types/src/components/Transcription/transcription-extension.d.ts.map +1 -1
  95. package/dist/types/src/components/index.d.ts +1 -0
  96. package/dist/types/src/components/index.d.ts.map +1 -1
  97. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.d.ts +6 -0
  98. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.d.ts.map +1 -0
  99. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.stories.d.ts +28 -0
  100. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.stories.d.ts.map +1 -0
  101. package/dist/types/src/containers/TranscriptionArticle/index.d.ts +2 -0
  102. package/dist/types/src/containers/TranscriptionArticle/index.d.ts.map +1 -0
  103. package/dist/types/src/containers/index.d.ts +1 -1
  104. package/dist/types/src/containers/index.d.ts.map +1 -1
  105. package/dist/types/src/enrichment/conversation.test.d.ts +2 -0
  106. package/dist/types/src/enrichment/conversation.test.d.ts.map +1 -0
  107. package/dist/types/src/enrichment/operations.d.ts +200 -0
  108. package/dist/types/src/enrichment/operations.d.ts.map +1 -0
  109. package/dist/types/src/enrichment/parser.d.ts +26 -0
  110. package/dist/types/src/enrichment/parser.d.ts.map +1 -0
  111. package/dist/types/src/enrichment/stream-simulator.d.ts +38 -0
  112. package/dist/types/src/enrichment/stream-simulator.d.ts.map +1 -0
  113. package/dist/types/src/hooks/index.d.ts +2 -1
  114. package/dist/types/src/hooks/index.d.ts.map +1 -1
  115. package/dist/types/src/hooks/useAudioFile.d.ts.map +1 -1
  116. package/dist/types/src/hooks/useAudioTrack.d.ts.map +1 -1
  117. package/dist/types/src/hooks/useFeedModelAdapter.d.ts +12 -0
  118. package/dist/types/src/hooks/useFeedModelAdapter.d.ts.map +1 -0
  119. package/dist/types/src/hooks/useTranscriber.d.ts +1 -1
  120. package/dist/types/src/hooks/useTranscriber.d.ts.map +1 -1
  121. package/dist/types/src/hooks/useTranscriptionRecording.d.ts +12 -0
  122. package/dist/types/src/hooks/useTranscriptionRecording.d.ts.map +1 -0
  123. package/dist/types/src/hooks/useVoiceInput.d.ts.map +1 -1
  124. package/dist/types/src/index.d.ts +2 -3
  125. package/dist/types/src/index.d.ts.map +1 -1
  126. package/dist/types/src/meta.d.ts +1 -1
  127. package/dist/types/src/meta.d.ts.map +1 -1
  128. package/dist/types/src/model/model.d.ts +2 -2
  129. package/dist/types/src/model/model.d.ts.map +1 -1
  130. package/dist/types/src/{segments-normalization → normalization}/index.d.ts +1 -1
  131. package/dist/types/src/normalization/index.d.ts.map +1 -0
  132. package/dist/types/src/{segments-normalization → normalization}/message-normalizer.d.ts +7 -5
  133. package/dist/types/src/normalization/message-normalizer.d.ts.map +1 -0
  134. package/dist/types/src/{operations/definitions.d.ts → normalization/normalization.d.ts} +464 -547
  135. package/dist/types/src/normalization/normalization.d.ts.map +1 -0
  136. package/dist/types/src/normalization/normalization.test.d.ts.map +1 -0
  137. package/dist/types/src/normalization/utils.d.ts.map +1 -0
  138. package/dist/types/src/operations/create.d.ts +3 -3
  139. package/dist/types/src/operations/create.d.ts.map +1 -1
  140. package/dist/types/src/operations/index.d.ts +1 -2
  141. package/dist/types/src/operations/index.d.ts.map +1 -1
  142. package/dist/types/src/operations/open.d.ts +3 -3
  143. package/dist/types/src/operations/open.d.ts.map +1 -1
  144. package/dist/types/src/operations/summarize.d.ts +3 -3
  145. package/dist/types/src/operations/summarize.d.ts.map +1 -1
  146. package/dist/types/src/plugin.d.ts +4 -0
  147. package/dist/types/src/plugin.d.ts.map +1 -0
  148. package/dist/types/src/stories/FileTranscription.stories.d.ts +20 -0
  149. package/dist/types/src/stories/FileTranscription.stories.d.ts.map +1 -0
  150. package/dist/types/src/stories/KeyWordRecognition.stories.d.ts.map +1 -0
  151. package/dist/types/src/{components/stories/MicrophoneTranscription.stories.d.ts → stories/LiveTranscription.stories.d.ts} +5 -5
  152. package/dist/types/src/stories/LiveTranscription.stories.d.ts.map +1 -0
  153. package/dist/types/src/stories/TranscriptionStory.d.ts +21 -0
  154. package/dist/types/src/stories/TranscriptionStory.d.ts.map +1 -0
  155. package/dist/types/src/stories/common.d.ts +248 -0
  156. package/dist/types/src/stories/common.d.ts.map +1 -0
  157. package/dist/types/src/testing/testing.d.ts +5 -6
  158. package/dist/types/src/testing/testing.d.ts.map +1 -1
  159. package/dist/types/src/transcriber/index.d.ts +1 -1
  160. package/dist/types/src/transcriber/index.d.ts.map +1 -1
  161. package/dist/types/src/transcriber/media-stream-recorder.d.ts.map +1 -1
  162. package/dist/types/src/transcriber/transcriber.d.ts +58 -3
  163. package/dist/types/src/transcriber/transcriber.d.ts.map +1 -1
  164. package/dist/types/src/transcriber/transcriber.test.d.ts +2 -0
  165. package/dist/types/src/transcriber/transcriber.test.d.ts.map +1 -0
  166. package/dist/types/src/transcriber/transcription-manager.d.ts +6 -4
  167. package/dist/types/src/transcriber/transcription-manager.d.ts.map +1 -1
  168. package/dist/types/src/translations.d.ts +9 -8
  169. package/dist/types/src/translations.d.ts.map +1 -1
  170. package/dist/types/src/types/TranscriptOperation.d.ts +1670 -0
  171. package/dist/types/src/types/TranscriptOperation.d.ts.map +1 -0
  172. package/dist/types/src/types/TranscriptionCapabilities.d.ts +17 -0
  173. package/dist/types/src/types/TranscriptionCapabilities.d.ts.map +1 -0
  174. package/dist/types/src/types/index.d.ts +2 -2
  175. package/dist/types/src/types/index.d.ts.map +1 -1
  176. package/dist/types/src/util/array.d.ts.map +1 -1
  177. package/dist/types/src/util/get-time-str.d.ts.map +1 -1
  178. package/dist/types/src/util/monitor-audio-level.d.ts.map +1 -1
  179. package/dist/types/src/util/render-byline.d.ts.map +1 -1
  180. package/dist/types/tsconfig.tsbuildinfo +1 -1
  181. package/package.json +136 -102
  182. package/src/TranscriptionPlugin.node.ts +20 -0
  183. package/src/TranscriptionPlugin.test.ts +31 -0
  184. package/src/TranscriptionPlugin.tsx +11 -31
  185. package/src/TranscriptionPlugin.workerd.ts +18 -0
  186. package/src/blueprints/transcription-blueprint.ts +3 -4
  187. package/src/capabilities/blueprint-definition.ts +6 -4
  188. package/src/capabilities/index.ts +9 -2
  189. package/src/capabilities/operation-handler.ts +1 -1
  190. package/src/capabilities/react-surface.tsx +2 -2
  191. package/src/capabilities/text-content.ts +33 -0
  192. package/src/capabilities/transcriber.ts +9 -5
  193. package/src/components/Oracle/Oracle.stories.tsx +147 -0
  194. package/src/components/Oracle/Oracle.tsx +142 -0
  195. package/src/components/Oracle/index.ts +5 -0
  196. package/src/components/Transcription/Transcription.stories.tsx +117 -153
  197. package/src/components/Transcription/Transcription.tsx +8 -17
  198. package/src/components/index.ts +1 -0
  199. package/src/containers/TranscriptionArticle/TranscriptionArticle.stories.tsx +61 -0
  200. package/src/containers/TranscriptionArticle/TranscriptionArticle.tsx +62 -0
  201. package/src/containers/TranscriptionArticle/index.ts +5 -0
  202. package/src/containers/index.ts +1 -1
  203. package/src/enrichment/conversation.test.ts +162 -0
  204. package/src/enrichment/conversation.txt +23 -0
  205. package/src/enrichment/operations.ts +271 -0
  206. package/src/enrichment/parser.ts +101 -0
  207. package/src/enrichment/stream-simulator.ts +125 -0
  208. package/src/hooks/index.ts +2 -1
  209. package/src/hooks/useAudioTrack.ts +1 -1
  210. package/src/hooks/useFeedModelAdapter.ts +46 -0
  211. package/src/hooks/useTranscriber.ts +7 -5
  212. package/src/hooks/useTranscriptionRecording.ts +87 -0
  213. package/src/hooks/useVoiceInput.ts +1 -1
  214. package/src/index.ts +4 -5
  215. package/src/meta.ts +28 -6
  216. package/src/model/model.test.ts +5 -5
  217. package/src/model/model.ts +3 -3
  218. package/src/{segments-normalization → normalization}/message-normalizer.ts +25 -17
  219. package/src/{segments-normalization → normalization}/normalization.test.ts +4 -38
  220. package/src/{segments-normalization → normalization}/normalization.ts +8 -9
  221. package/src/operations/create.ts +3 -3
  222. package/src/operations/index.ts +1 -3
  223. package/src/operations/open.ts +3 -3
  224. package/src/operations/summarize.ts +7 -7
  225. package/src/plugin.ts +11 -0
  226. package/src/stories/FileTranscription.stories.tsx +143 -0
  227. package/src/{components/stories → stories}/KeyWordRecognition.stories.tsx +36 -36
  228. package/src/stories/LiveTranscription.stories.tsx +153 -0
  229. package/src/stories/TranscriptionStory.tsx +101 -0
  230. package/src/stories/common.ts +233 -0
  231. package/src/testing/testing.ts +22 -34
  232. package/src/transcriber/index.ts +1 -1
  233. package/src/transcriber/transcriber.test.ts +104 -0
  234. package/src/transcriber/transcriber.ts +100 -55
  235. package/src/transcriber/transcription-manager.ts +14 -9
  236. package/src/translations.ts +3 -0
  237. package/src/{operations/definitions.ts → types/TranscriptOperation.ts} +14 -9
  238. package/src/types/TranscriptionCapabilities.ts +39 -0
  239. package/src/types/index.ts +2 -2
  240. package/src/vite-env.d.ts +10 -0
  241. package/dist/lib/browser/blueprints/index.mjs.map +0 -7
  242. package/dist/lib/browser/chunk-5LWSJZTZ.mjs +0 -17
  243. package/dist/lib/browser/chunk-5LWSJZTZ.mjs.map +0 -7
  244. package/dist/lib/browser/chunk-KOX4WNAR.mjs.map +0 -7
  245. package/dist/lib/browser/create-BTWYQ6IM.mjs.map +0 -7
  246. package/dist/lib/browser/index.mjs +0 -1213
  247. package/dist/lib/browser/index.mjs.map +0 -7
  248. package/dist/lib/browser/meta.json +0 -1
  249. package/dist/lib/browser/open-CYRYIEZI.mjs.map +0 -7
  250. package/dist/lib/browser/operations/index.mjs +0 -13
  251. package/dist/lib/browser/operations/index.mjs.map +0 -7
  252. package/dist/lib/browser/summarize-X2ZYTN7S.mjs.map +0 -7
  253. package/dist/lib/browser/types/index.mjs +0 -10
  254. package/dist/lib/node-esm/blueprints/index.mjs +0 -32
  255. package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
  256. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  257. package/dist/lib/node-esm/chunk-MT5I4NH5.mjs +0 -112
  258. package/dist/lib/node-esm/chunk-MT5I4NH5.mjs.map +0 -7
  259. package/dist/lib/node-esm/chunk-NVM2QUMX.mjs +0 -37
  260. package/dist/lib/node-esm/chunk-NVM2QUMX.mjs.map +0 -7
  261. package/dist/lib/node-esm/chunk-X74WYCCE.mjs +0 -19
  262. package/dist/lib/node-esm/chunk-X74WYCCE.mjs.map +0 -7
  263. package/dist/lib/node-esm/create-MLUFPST2.mjs +0 -22
  264. package/dist/lib/node-esm/create-MLUFPST2.mjs.map +0 -7
  265. package/dist/lib/node-esm/index.mjs +0 -1214
  266. package/dist/lib/node-esm/index.mjs.map +0 -7
  267. package/dist/lib/node-esm/meta.json +0 -1
  268. package/dist/lib/node-esm/open-5IOC2U4Z.mjs +0 -28
  269. package/dist/lib/node-esm/open-5IOC2U4Z.mjs.map +0 -7
  270. package/dist/lib/node-esm/operations/index.mjs +0 -14
  271. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  272. package/dist/lib/node-esm/summarize-IORITU7T.mjs +0 -80
  273. package/dist/lib/node-esm/summarize-IORITU7T.mjs.map +0 -7
  274. package/dist/lib/node-esm/types/index.mjs +0 -11
  275. package/dist/types/src/components/stories/FileTranscription.stories.d.ts +0 -18
  276. package/dist/types/src/components/stories/FileTranscription.stories.d.ts.map +0 -1
  277. package/dist/types/src/components/stories/KeyWordRecognition.stories.d.ts.map +0 -1
  278. package/dist/types/src/components/stories/MicrophoneTranscription.stories.d.ts.map +0 -1
  279. package/dist/types/src/components/stories/TranscriptionStory.d.ts +0 -12
  280. package/dist/types/src/components/stories/TranscriptionStory.d.ts.map +0 -1
  281. package/dist/types/src/components/stories/useIsSpeaking.d.ts +0 -3
  282. package/dist/types/src/components/stories/useIsSpeaking.d.ts.map +0 -1
  283. package/dist/types/src/containers/TranscriptionContainer/TranscriptionContainer.d.ts +0 -6
  284. package/dist/types/src/containers/TranscriptionContainer/TranscriptionContainer.d.ts.map +0 -1
  285. package/dist/types/src/containers/TranscriptionContainer/index.d.ts +0 -2
  286. package/dist/types/src/containers/TranscriptionContainer/index.d.ts.map +0 -1
  287. package/dist/types/src/hooks/useQueueModelAdapter.d.ts +0 -8
  288. package/dist/types/src/hooks/useQueueModelAdapter.d.ts.map +0 -1
  289. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  290. package/dist/types/src/segments-normalization/index.d.ts.map +0 -1
  291. package/dist/types/src/segments-normalization/message-normalizer.d.ts.map +0 -1
  292. package/dist/types/src/segments-normalization/normalization.d.ts +0 -364
  293. package/dist/types/src/segments-normalization/normalization.d.ts.map +0 -1
  294. package/dist/types/src/segments-normalization/normalization.test.d.ts.map +0 -1
  295. package/dist/types/src/segments-normalization/utils.d.ts.map +0 -1
  296. package/dist/types/src/types/capabilities.d.ts +0 -18
  297. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  298. package/dist/types/src/types/types.d.ts +0 -5
  299. package/dist/types/src/types/types.d.ts.map +0 -1
  300. package/src/components/stories/FileTranscription.stories.tsx +0 -250
  301. package/src/components/stories/MicrophoneTranscription.stories.tsx +0 -264
  302. package/src/components/stories/TranscriptionStory.tsx +0 -43
  303. package/src/components/stories/useIsSpeaking.tsx +0 -40
  304. package/src/containers/TranscriptionContainer/TranscriptionContainer.tsx +0 -35
  305. package/src/containers/TranscriptionContainer/index.ts +0 -5
  306. package/src/hooks/useQueueModelAdapter.ts +0 -66
  307. package/src/types/capabilities.ts +0 -34
  308. package/src/types/types.ts +0 -9
  309. package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  310. package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  311. package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  312. package/dist/lib/{browser/chunk-HOOPZ7EM.mjs.map → neutral/chunk-KAEXRX3Y.mjs.map} +0 -0
  313. package/dist/lib/{node-esm/types → neutral/hooks}/index.mjs.map +0 -0
  314. package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/index.mjs.map} +0 -0
  315. package/dist/types/src/{segments-normalization → normalization}/normalization.test.d.ts +0 -0
  316. package/dist/types/src/{segments-normalization → normalization}/utils.d.ts +0 -0
  317. package/dist/types/src/{components/stories → stories}/KeyWordRecognition.stories.d.ts +0 -0
  318. package/src/{segments-normalization → normalization}/index.ts +1 -1
  319. /package/src/{segments-normalization → normalization}/utils.ts +0 -0
@@ -0,0 +1,298 @@
1
+ import {
2
+ SerializationModel
3
+ } from "./chunk-MLRJWAQH.mjs";
4
+
5
+ // src/hooks/useAudioFile.ts
6
+ import { useEffect, useState } from "react";
7
+ import { scheduleTask } from "@dxos/async";
8
+ import { Context } from "@dxos/context";
9
+ import { log } from "@dxos/log";
10
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-transcription/src/hooks/useAudioFile.ts";
11
+ var useAudioFile = (audioUrl, constraints) => {
12
+ const [{ audio, stream, track }, setStream] = useState({});
13
+ useEffect(() => {
14
+ const ctx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 11 });
15
+ scheduleTask(ctx, async () => {
16
+ try {
17
+ const response = await fetch(audioUrl);
18
+ const blob = await response.blob();
19
+ const objectUrl = URL.createObjectURL(blob);
20
+ ctx.onDispose(() => {
21
+ URL.revokeObjectURL(objectUrl);
22
+ });
23
+ const audio2 = new Audio();
24
+ audio2.src = objectUrl;
25
+ await new Promise((resolve, reject) => {
26
+ audio2.addEventListener("error", (err) => {
27
+ log.error("error", {
28
+ err
29
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 25, S: void 0 });
30
+ reject(err);
31
+ }, {
32
+ once: true
33
+ });
34
+ audio2.addEventListener("canplay", async () => {
35
+ resolve();
36
+ }, {
37
+ once: true
38
+ });
39
+ audio2.load();
40
+ });
41
+ const audioCtx = new AudioContext();
42
+ if (audioCtx.state === "suspended") {
43
+ await audioCtx.resume();
44
+ }
45
+ const destination = audioCtx.createMediaStreamDestination();
46
+ destination.channelCount = 1;
47
+ const source = audioCtx.createMediaElementSource(audio2);
48
+ source.connect(destination);
49
+ const track2 = destination.stream.getAudioTracks()[0];
50
+ if (constraints) {
51
+ await track2.applyConstraints(constraints).catch((err) => log.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 50, S: void 0 }));
52
+ }
53
+ setStream({
54
+ audio: audio2,
55
+ stream: destination.stream,
56
+ track: destination.stream.getAudioTracks()[0]
57
+ });
58
+ } catch (err) {
59
+ log.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 59, S: void 0 });
60
+ }
61
+ });
62
+ return () => {
63
+ void ctx.dispose();
64
+ };
65
+ }, [
66
+ audioUrl
67
+ ]);
68
+ return {
69
+ audio,
70
+ stream,
71
+ track
72
+ };
73
+ };
74
+
75
+ // src/hooks/useAudioTrack.ts
76
+ import { useEffect as useEffect2, useState as useState2 } from "react";
77
+ var useAudioTrack = (active, constraints) => {
78
+ const [track, setTrack] = useState2();
79
+ useEffect2(() => {
80
+ if (!active) {
81
+ track?.stop();
82
+ setTrack(void 0);
83
+ return;
84
+ }
85
+ const initAudio = async () => {
86
+ const audio = new Audio();
87
+ audio.srcObject = await navigator.mediaDevices.getUserMedia({
88
+ audio: constraints ?? true
89
+ });
90
+ const [track2] = audio.srcObject.getAudioTracks();
91
+ if (track2) {
92
+ setTrack(track2);
93
+ }
94
+ };
95
+ if (active) {
96
+ void initAudio();
97
+ }
98
+ }, [
99
+ active
100
+ ]);
101
+ return track;
102
+ };
103
+
104
+ // src/hooks/useFeedModelAdapter.ts
105
+ import { useEffect as useEffect3, useMemo } from "react";
106
+ var useFeedModelAdapter = (renderer, objects, initialChunks = []) => {
107
+ const model = useMemo(() => new SerializationModel(renderer, initialChunks), [
108
+ renderer
109
+ ]);
110
+ useEffect3(() => {
111
+ for (const chunk of objects) {
112
+ model.appendChunk(chunk);
113
+ }
114
+ }, [
115
+ model,
116
+ objects
117
+ ]);
118
+ useEffect3(() => {
119
+ if (model.chunks.length === objects.length) {
120
+ return;
121
+ }
122
+ const chunk = objects.at(-1);
123
+ if (chunk) {
124
+ model.appendChunk(chunk);
125
+ }
126
+ }, [
127
+ model,
128
+ objects.length
129
+ ]);
130
+ return model;
131
+ };
132
+
133
+ // src/hooks/useTranscriber.ts
134
+ import { useEffect as useEffect4, useMemo as useMemo2 } from "react";
135
+ import { useCapabilities } from "@dxos/app-framework/ui";
136
+ import { TranscriptionCapabilities } from "#types";
137
+ var useTranscriber = ({ audioStreamTrack, recorderConfig, transcriberConfig, onSegments, transcribe }) => {
138
+ const [transcriberProvider] = useCapabilities(TranscriptionCapabilities.TranscriberProvider);
139
+ const transcriber = useMemo2(() => {
140
+ if (!transcriberProvider || !audioStreamTrack || !onSegments) {
141
+ return void 0;
142
+ }
143
+ return transcriberProvider({
144
+ audioStreamTrack,
145
+ recorderConfig,
146
+ transcriberConfig,
147
+ onSegments,
148
+ transcribe
149
+ });
150
+ }, [
151
+ transcriberProvider,
152
+ audioStreamTrack,
153
+ recorderConfig,
154
+ transcriberConfig,
155
+ onSegments,
156
+ transcribe
157
+ ]);
158
+ useEffect4(() => {
159
+ return () => {
160
+ void transcriber?.close();
161
+ };
162
+ }, [
163
+ transcriber
164
+ ]);
165
+ return transcriber;
166
+ };
167
+
168
+ // src/hooks/useTranscriptionRecording.ts
169
+ import * as Effect from "effect/Effect";
170
+ import { useCallback, useEffect as useEffect5, useState as useState3 } from "react";
171
+ import { createFeedServiceLayer } from "@dxos/client/echo";
172
+ import { Feed, Obj } from "@dxos/echo";
173
+ import { EffectEx } from "@dxos/effect";
174
+ import { log as log2 } from "@dxos/log";
175
+ import { getSpace } from "@dxos/react-client/echo";
176
+ import { useIdentity } from "@dxos/react-client/halo";
177
+ import { Message } from "@dxos/types";
178
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-transcription/src/hooks/useTranscriptionRecording.ts";
179
+ var useTranscriptionRecording = (transcript) => {
180
+ const space = getSpace(transcript);
181
+ const identity = useIdentity();
182
+ const feed = transcript.feed.target;
183
+ const [recording, setRecording] = useState3(false);
184
+ const track = useAudioTrack(recording);
185
+ const handleSegments = useCallback(async (blocks) => {
186
+ if (!space || !feed || blocks.length === 0) {
187
+ return;
188
+ }
189
+ const sender = identity ? {
190
+ identityDid: identity.did,
191
+ name: identity.profile?.displayName
192
+ } : {};
193
+ const message = Obj.make(Message.Message, {
194
+ sender,
195
+ created: (/* @__PURE__ */ new Date()).toISOString(),
196
+ blocks
197
+ });
198
+ const feedServiceLayer = createFeedServiceLayer(space.queues);
199
+ await Feed.append(feed, [
200
+ message
201
+ ]).pipe(Effect.provide(feedServiceLayer), EffectEx.runAndForwardErrors);
202
+ }, [
203
+ space,
204
+ feed,
205
+ identity
206
+ ]);
207
+ const transcriber = useTranscriber({
208
+ audioStreamTrack: track,
209
+ onSegments: handleSegments
210
+ });
211
+ useEffect5(() => {
212
+ if (!transcriber) {
213
+ return;
214
+ }
215
+ let cancelled = false;
216
+ void transcriber.open().then(() => {
217
+ if (!cancelled && recording) {
218
+ transcriber.startChunksRecording();
219
+ }
220
+ }, (err) => {
221
+ if (!cancelled) {
222
+ log2.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 67, S: void 0 });
223
+ setRecording(false);
224
+ }
225
+ });
226
+ return () => {
227
+ cancelled = true;
228
+ transcriber.stopChunksRecording();
229
+ };
230
+ }, [
231
+ transcriber,
232
+ recording
233
+ ]);
234
+ const toggleRecording = useCallback(() => setRecording((value) => !value), []);
235
+ return {
236
+ recording,
237
+ toggleRecording
238
+ };
239
+ };
240
+
241
+ // src/hooks/useVoiceInput.ts
242
+ import { useCallback as useCallback2, useEffect as useEffect6, useState as useState4 } from "react";
243
+ import { scheduleMicroTask } from "@dxos/async";
244
+ import { Context as Context2 } from "@dxos/context";
245
+ import { log as log3 } from "@dxos/log";
246
+ import { useSoundEffect } from "@dxos/react-ui-audio";
247
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-transcription/src/hooks/useVoiceInput.ts";
248
+ var useVoiceInput = ({ active, onUpdate }) => {
249
+ const soundStart = useSoundEffect("StartRecording");
250
+ const soundStop = useSoundEffect("StopRecording");
251
+ const handleSegments = useCallback2(async (segments) => {
252
+ const text = segments.map((str) => str.text.trim().replace(/[^\w\s]/g, "")).join(" ");
253
+ onUpdate(text);
254
+ }, []);
255
+ const [recording, setRecording] = useState4(false);
256
+ const track = useAudioTrack(active);
257
+ const transcriber = useTranscriber({
258
+ audioStreamTrack: track,
259
+ onSegments: handleSegments
260
+ });
261
+ useEffect6(() => {
262
+ const ctx = new Context2(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 29 });
263
+ scheduleMicroTask(ctx, async () => {
264
+ if (active && transcriber) {
265
+ await transcriber.open();
266
+ log3.info("starting...", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 33, S: void 0 });
267
+ setRecording(true);
268
+ void soundStart.play();
269
+ transcriber.startChunksRecording();
270
+ } else if (!active && transcriber?.isOpen) {
271
+ transcriber?.stopChunksRecording();
272
+ await transcriber?.close();
273
+ log3.info("stopped", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 40, S: void 0 });
274
+ setRecording(false);
275
+ void soundStop.play();
276
+ }
277
+ });
278
+ return () => {
279
+ void ctx.dispose();
280
+ };
281
+ }, [
282
+ active,
283
+ transcriber
284
+ ]);
285
+ return {
286
+ recording
287
+ };
288
+ };
289
+
290
+ export {
291
+ useAudioFile,
292
+ useAudioTrack,
293
+ useFeedModelAdapter,
294
+ useTranscriber,
295
+ useTranscriptionRecording,
296
+ useVoiceInput
297
+ };
298
+ //# sourceMappingURL=chunk-TO77KAQK.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useAudioFile.ts", "../../../src/hooks/useAudioTrack.ts", "../../../src/hooks/useFeedModelAdapter.ts", "../../../src/hooks/useTranscriber.ts", "../../../src/hooks/useTranscriptionRecording.ts", "../../../src/hooks/useVoiceInput.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\nimport { scheduleTask } from '@dxos/async';\nimport { Context } from '@dxos/context';\nimport { log } from '@dxos/log';\n\nexport type UseAudioState = {\n audio?: HTMLAudioElement;\n stream?: MediaStream;\n track?: MediaStreamTrack;\n};\n\nexport const useAudioFile = (audioUrl: string, constraints?: MediaTrackConstraints): UseAudioState => {\n const [{ audio, stream, track }, setStream] = useState<UseAudioState>({});\n useEffect(() => {\n const ctx = new Context();\n\n scheduleTask(ctx, async () => {\n // TODO(wittjosiah): Fetch to external url fails in headless storybook test.\n try {\n const response = await fetch(audioUrl);\n const blob = await response.blob();\n const objectUrl = URL.createObjectURL(blob);\n ctx.onDispose(() => {\n URL.revokeObjectURL(objectUrl);\n });\n\n const audio = new Audio();\n audio.src = objectUrl;\n\n await new Promise<void>((resolve, reject) => {\n audio.addEventListener(\n 'error',\n (err) => {\n log.error('error', { err });\n reject(err);\n },\n { once: true },\n );\n audio.addEventListener(\n 'canplay',\n async () => {\n resolve();\n },\n { once: true },\n );\n audio.load();\n });\n\n const audioCtx = new AudioContext();\n\n // Resume AudioContext if it's suspended.\n if (audioCtx.state === 'suspended') {\n await audioCtx.resume();\n }\n\n const destination = audioCtx.createMediaStreamDestination();\n destination.channelCount = 1;\n\n const source = audioCtx.createMediaElementSource(audio);\n source.connect(destination);\n const track = destination.stream.getAudioTracks()[0];\n if (constraints) {\n await track.applyConstraints(constraints).catch((err) => log.catch(err));\n }\n\n // Also connect to speakers so audio is audible.\n setStream({\n audio,\n stream: destination.stream,\n track: destination.stream.getAudioTracks()[0],\n });\n } catch (err) {\n log.catch(err);\n }\n });\n\n return () => {\n void ctx.dispose();\n };\n }, [audioUrl]);\n\n return { audio, stream, track };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useState } from 'react';\n\n/**\n *\n */\n// TODO(burdon): Reconcile with react-ui-experimental and plugin-calls.\nexport const useAudioTrack = (active?: boolean, constraints?: MediaTrackConstraints): MediaStreamTrack | undefined => {\n const [track, setTrack] = useState<MediaStreamTrack>();\n useEffect(() => {\n if (!active) {\n track?.stop();\n setTrack(undefined);\n return;\n }\n\n const initAudio = async () => {\n const audio = new Audio();\n audio.srcObject = await navigator.mediaDevices.getUserMedia({ audio: constraints ?? true });\n const [track] = audio.srcObject.getAudioTracks();\n if (track) {\n setTrack(track);\n }\n };\n\n if (active) {\n void initAudio();\n }\n }, [active]);\n\n return track;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useMemo } from 'react';\n\nimport type { Obj } from '@dxos/echo';\n\nimport { type ChunkRenderer, SerializationModel } from '../model';\n\n/**\n * Feeds an array of objects (typically from `useQuery(db, Query.from(feed))`) into a\n * `SerializationModel`, appending each new tail item as the array grows.\n *\n * @param renderer - chunk renderer.\n * @param objects - current snapshot of feed items.\n * @param initialChunks - chunks to seed the model with on first render.\n */\nexport const useFeedModelAdapter = <T extends Obj.Unknown>(\n renderer: ChunkRenderer<T>,\n objects: readonly T[],\n initialChunks: T[] = [],\n): SerializationModel<T> => {\n const model = useMemo(() => new SerializationModel<T>(renderer, initialChunks), [renderer]);\n\n // Seed the model with the current snapshot on first render and whenever the\n // identity of `objects` changes (e.g. feed swapped).\n useEffect(() => {\n for (const chunk of objects) {\n model.appendChunk(chunk);\n }\n }, [model, objects]);\n\n // Append new tail items as the array grows.\n useEffect(() => {\n if (model.chunks.length === objects.length) {\n return;\n }\n const chunk = objects.at(-1);\n if (chunk) {\n model.appendChunk(chunk);\n }\n }, [model, objects.length]);\n\n return model;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect, useMemo } from 'react';\n\nimport { useCapabilities } from '@dxos/app-framework/ui';\n\nimport { TranscriptionCapabilities } from '#types';\n\nimport { type Transcriber } from '../transcriber';\n\n/**\n * Records audio while user is speaking and transcribes it after user is done speaking.\n */\nexport const useTranscriber = ({\n audioStreamTrack,\n recorderConfig,\n transcriberConfig,\n onSegments,\n transcribe,\n}: Partial<TranscriptionCapabilities.TranscriberProviderProps>) => {\n const [transcriberProvider] = useCapabilities(TranscriptionCapabilities.TranscriberProvider);\n\n // Initialize audio transcription.\n const transcriber = useMemo<Transcriber | undefined>(() => {\n if (!transcriberProvider || !audioStreamTrack || !onSegments) {\n return undefined;\n }\n\n return transcriberProvider({\n audioStreamTrack,\n recorderConfig,\n transcriberConfig,\n onSegments,\n transcribe,\n });\n }, [transcriberProvider, audioStreamTrack, recorderConfig, transcriberConfig, onSegments, transcribe]);\n\n useEffect(() => {\n return () => {\n void transcriber?.close();\n };\n }, [transcriber]);\n\n return transcriber;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { createFeedServiceLayer } from '@dxos/client/echo';\nimport { Feed, Obj } from '@dxos/echo';\nimport { EffectEx } from '@dxos/effect';\nimport { log } from '@dxos/log';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Message, type Transcript } from '@dxos/types';\n\nimport { useAudioTrack } from './useAudioTrack';\nimport { useTranscriber } from './useTranscriber';\n\nexport type TranscriptionRecording = {\n recording: boolean;\n toggleRecording: () => void;\n};\n\n/**\n * Drives the recording lifecycle for a transcript: opens an audio track, feeds it through the\n * transcriber, and appends transcribed message batches to the transcript's feed. Returns the\n * recording flag and a toggle callback for the caller to wire to UI.\n */\nexport const useTranscriptionRecording = (transcript: Transcript.Transcript): TranscriptionRecording => {\n const space = getSpace(transcript);\n const identity = useIdentity();\n const feed = transcript.feed.target;\n\n const [recording, setRecording] = useState(false);\n const track = useAudioTrack(recording);\n\n // Append a transcribed message batch to the transcript's feed.\n const handleSegments = useCallback(\n async (blocks: Message.Message['blocks']) => {\n if (!space || !feed || blocks.length === 0) {\n return;\n }\n const sender = identity ? { identityDid: identity.did, name: identity.profile?.displayName } : {};\n const message = Obj.make(Message.Message, {\n sender,\n created: new Date().toISOString(),\n blocks,\n });\n const feedServiceLayer = createFeedServiceLayer(space.queues);\n await Feed.append(feed, [message]).pipe(Effect.provide(feedServiceLayer), EffectEx.runAndForwardErrors);\n },\n [space, feed, identity],\n );\n\n // Drive the transcriber lifecycle off the recording flag + audio track.\n const transcriber = useTranscriber({ audioStreamTrack: track, onSegments: handleSegments });\n useEffect(() => {\n if (!transcriber) {\n return;\n }\n let cancelled = false;\n // If `open()` rejects (e.g. mic permission denied, device init failure) we must\n // clear `recording` — otherwise the toolbar button reports \"stop\" forever while\n // nothing is actually being captured.\n void transcriber.open().then(\n () => {\n if (!cancelled && recording) {\n transcriber.startChunksRecording();\n }\n },\n (err) => {\n if (!cancelled) {\n log.catch(err);\n setRecording(false);\n }\n },\n );\n return () => {\n cancelled = true;\n transcriber.stopChunksRecording();\n };\n }, [transcriber, recording]);\n\n const toggleRecording = useCallback(() => setRecording((value) => !value), []);\n\n return { recording, toggleRecording };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { scheduleMicroTask } from '@dxos/async';\nimport { Context } from '@dxos/context';\nimport { log } from '@dxos/log';\nimport { useSoundEffect } from '@dxos/react-ui-audio';\n\nimport { type TranscriberProps } from '../transcriber';\nimport { useAudioTrack } from './useAudioTrack';\nimport { useTranscriber } from './useTranscriber';\n\nexport type UseVoiceInputProps = {\n active?: boolean;\n onUpdate: (text: string) => void;\n};\n\n/**\n * Hook for voice input.\n */\nexport const useVoiceInput = ({ active, onUpdate }: UseVoiceInputProps) => {\n const soundStart = useSoundEffect('StartRecording');\n const soundStop = useSoundEffect('StopRecording');\n\n const handleSegments = useCallback<TranscriberProps['onSegments']>(async (segments) => {\n const text = segments.map((str) => str.text.trim().replace(/[^\\w\\s]/g, '')).join(' ');\n onUpdate(text);\n }, []);\n\n // Audio/transcription.\n const [recording, setRecording] = useState(false);\n const track = useAudioTrack(active);\n const transcriber = useTranscriber({\n audioStreamTrack: track,\n onSegments: handleSegments,\n });\n\n // Start/stop transcription.\n useEffect(() => {\n const ctx = new Context();\n scheduleMicroTask(ctx, async () => {\n if (active && transcriber) {\n await transcriber.open();\n log.info('starting...');\n setRecording(true);\n void soundStart.play();\n transcriber.startChunksRecording();\n } else if (!active && transcriber?.isOpen) {\n transcriber?.stopChunksRecording();\n await transcriber?.close();\n log.info('stopped');\n setRecording(false);\n void soundStop.play();\n }\n });\n\n return () => {\n void ctx.dispose();\n };\n }, [active, transcriber]);\n\n return { recording };\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["useEffect", "useState", "scheduleTask", "Context", "log", "useAudioFile", "objectUrl", "createObjectURL", "ctx", "onDispose", "URL", "revokeObjectURL", "audio", "Audio", "Promise", "resolve", "addEventListener", "err", "reject", "once", "audioCtx", "state", "destination", "source", "createMediaElementSource", "connect", "track", "constraints", "applyConstraints", "catch", "setStream", "stream", "audioUrl", "useEffect", "useState", "useAudioTrack", "active", "constraints", "track", "setTrack", "stop", "undefined", "initAudio", "audio", "Audio", "srcObject", "navigator", "mediaDevices", "getUserMedia", "getAudioTracks", "useEffect", "useMemo", "useFeedModelAdapter", "renderer", "objects", "initialChunks", "model", "useMemo", "SerializationModel", "useEffect", "chunk", "appendChunk", "chunks", "length", "at", "useEffect", "useMemo", "useCapabilities", "TranscriptionCapabilities", "useTranscriber", "audioStreamTrack", "recorderConfig", "transcriberConfig", "onSegments", "transcribe", "transcriberProvider", "TranscriberProvider", "transcriber", "undefined", "close", "Effect", "useCallback", "useEffect", "useState", "createFeedServiceLayer", "Feed", "Obj", "EffectEx", "log", "getSpace", "useIdentity", "Message", "__dxlog_file", "identity", "useIdentity", "feed", "transcript", "target", "recording", "setRecording", "track", "useAudioTrack", "useState", "handleSegments", "useCallback", "name", "message", "Obj", "Message", "sender", "created", "Date", "toISOString", "blocks", "pipe", "Effect", "provide", "feedServiceLayer", "space", "onSegments", "useEffect", "cancelled", "transcriber", "startChunksRecording", "err", "log", "toggleRecording", "useCallback", "useEffect", "useState", "scheduleMicroTask", "Context", "log", "useSoundEffect", "__dxlog_file", "soundStop", "useSoundEffect", "handleSegments", "useCallback", "segments", "str", "trim", "onUpdate", "text", "transcriber", "useTranscriber", "audioStreamTrack", "track", "onSegments", "useEffect", "scheduleMicroTask", "active", "log", "setRecording", "soundStart", "startChunksRecording", "stopChunksRecording", "close"]
7
+ }