@dxos/plugin-transcription 0.8.4-main.7ace549 → 0.8.4-main.8baae0fced

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 (370) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/TranscriptionArticle-L6XANBH5.mjs +54 -0
  4. package/dist/lib/neutral/TranscriptionArticle-L6XANBH5.mjs.map +7 -0
  5. package/dist/lib/neutral/TranscriptionPlugin.mjs +34 -0
  6. package/dist/lib/neutral/TranscriptionPlugin.mjs.map +7 -0
  7. package/dist/lib/neutral/TranscriptionPlugin.node.mjs +25 -0
  8. package/dist/lib/neutral/TranscriptionPlugin.node.mjs.map +7 -0
  9. package/dist/lib/neutral/TranscriptionPlugin.workerd.mjs +21 -0
  10. package/dist/lib/neutral/TranscriptionPlugin.workerd.mjs.map +7 -0
  11. package/dist/lib/neutral/blueprint-definition-HOXDG5QP.mjs +15 -0
  12. package/dist/lib/neutral/blueprint-definition-HOXDG5QP.mjs.map +7 -0
  13. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  14. package/dist/lib/neutral/capabilities/index.mjs +17 -0
  15. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  16. package/dist/lib/neutral/chunk-2O3ONPRZ.mjs +298 -0
  17. package/dist/lib/neutral/chunk-2O3ONPRZ.mjs.map +7 -0
  18. package/dist/lib/neutral/chunk-5FXU36PN.mjs +120 -0
  19. package/dist/lib/neutral/chunk-5FXU36PN.mjs.map +7 -0
  20. package/dist/lib/{browser/chunk-7GNN7E3U.mjs → neutral/chunk-ILSA3DU7.mjs} +100 -131
  21. package/dist/lib/neutral/chunk-ILSA3DU7.mjs.map +7 -0
  22. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  23. package/dist/lib/neutral/chunk-KAEXRX3Y.mjs +35 -0
  24. package/dist/lib/neutral/chunk-KAEXRX3Y.mjs.map +7 -0
  25. package/dist/lib/neutral/chunk-MLRJWAQH.mjs +179 -0
  26. package/dist/lib/neutral/chunk-MLRJWAQH.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-Y5EQAFFR.mjs +8 -0
  28. package/dist/lib/neutral/chunk-Y5EQAFFR.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-ZR4BH4QQ.mjs +30 -0
  30. package/dist/lib/neutral/chunk-ZR4BH4QQ.mjs.map +7 -0
  31. package/dist/lib/{browser/chunk-VBUIO677.mjs → neutral/chunk-ZWOWQAFX.mjs} +3 -9
  32. package/dist/lib/neutral/chunk-ZWOWQAFX.mjs.map +7 -0
  33. package/dist/lib/neutral/components/index.mjs +272 -0
  34. package/dist/lib/neutral/components/index.mjs.map +7 -0
  35. package/dist/lib/neutral/containers/index.mjs +9 -0
  36. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  37. package/dist/lib/neutral/create-RRWRIUSR.mjs +21 -0
  38. package/dist/lib/neutral/create-RRWRIUSR.mjs.map +7 -0
  39. package/dist/lib/neutral/hooks/index.mjs +19 -0
  40. package/dist/lib/neutral/index.mjs +44 -0
  41. package/dist/lib/neutral/meta.json +1 -0
  42. package/dist/lib/neutral/meta.mjs +8 -0
  43. package/dist/lib/neutral/meta.mjs.map +7 -0
  44. package/dist/lib/neutral/open-CVMX5KXZ.mjs +27 -0
  45. package/dist/lib/neutral/open-CVMX5KXZ.mjs.map +7 -0
  46. package/dist/lib/neutral/operation-handler-NXMOAXFP.mjs +13 -0
  47. package/dist/lib/neutral/operation-handler-NXMOAXFP.mjs.map +7 -0
  48. package/dist/lib/neutral/operations/index.mjs +8 -0
  49. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  50. package/dist/lib/neutral/plugin.mjs +16 -0
  51. package/dist/lib/neutral/plugin.mjs.map +7 -0
  52. package/dist/lib/neutral/react-surface-YMZRO242.mjs +26 -0
  53. package/dist/lib/neutral/react-surface-YMZRO242.mjs.map +7 -0
  54. package/dist/lib/neutral/summarize-LA7TRW7A.mjs +78 -0
  55. package/dist/lib/neutral/summarize-LA7TRW7A.mjs.map +7 -0
  56. package/dist/lib/neutral/text-content-F4ASMITB.mjs +30 -0
  57. package/dist/lib/neutral/text-content-F4ASMITB.mjs.map +7 -0
  58. package/dist/lib/{node-esm/transcriber-CPD3FZ7M.mjs → neutral/transcriber-ABHATBVH.mjs} +20 -18
  59. package/dist/lib/neutral/transcriber-ABHATBVH.mjs.map +7 -0
  60. package/dist/lib/neutral/translations.mjs +24 -0
  61. package/dist/lib/neutral/translations.mjs.map +7 -0
  62. package/dist/lib/neutral/types/index.mjs +10 -0
  63. package/dist/lib/neutral/types/index.mjs.map +7 -0
  64. package/dist/types/src/TranscriptionPlugin.d.ts +3 -1
  65. package/dist/types/src/TranscriptionPlugin.d.ts.map +1 -1
  66. package/dist/types/src/TranscriptionPlugin.node.d.ts +4 -0
  67. package/dist/types/src/TranscriptionPlugin.node.d.ts.map +1 -0
  68. package/dist/types/src/TranscriptionPlugin.test.d.ts +2 -0
  69. package/dist/types/src/TranscriptionPlugin.test.d.ts.map +1 -0
  70. package/dist/types/src/TranscriptionPlugin.workerd.d.ts +4 -0
  71. package/dist/types/src/TranscriptionPlugin.workerd.d.ts.map +1 -0
  72. package/dist/types/src/blueprints/index.d.ts +2 -0
  73. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  74. package/dist/types/src/blueprints/transcription-blueprint.d.ts +4 -0
  75. package/dist/types/src/blueprints/transcription-blueprint.d.ts.map +1 -0
  76. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -4
  77. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/index.d.ts +10 -5
  79. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  81. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  82. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  83. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/text-content.d.ts +8 -0
  85. package/dist/types/src/capabilities/text-content.d.ts.map +1 -0
  86. package/dist/types/src/capabilities/transcriber.d.ts +4 -3
  87. package/dist/types/src/capabilities/transcriber.d.ts.map +1 -1
  88. package/dist/types/src/components/Oracle/Oracle.d.ts +24 -0
  89. package/dist/types/src/components/Oracle/Oracle.d.ts.map +1 -0
  90. package/dist/types/src/components/Oracle/Oracle.stories.d.ts +32 -0
  91. package/dist/types/src/components/Oracle/Oracle.stories.d.ts.map +1 -0
  92. package/dist/types/src/components/Oracle/index.d.ts +2 -0
  93. package/dist/types/src/components/Oracle/index.d.ts.map +1 -0
  94. package/dist/types/src/components/Transcription/Transcription.d.ts +13 -0
  95. package/dist/types/src/components/Transcription/Transcription.d.ts.map +1 -0
  96. package/dist/types/src/components/Transcription/Transcription.stories.d.ts +37 -0
  97. package/dist/types/src/components/Transcription/Transcription.stories.d.ts.map +1 -0
  98. package/dist/types/src/components/Transcription/index.d.ts +2 -0
  99. package/dist/types/src/components/Transcription/index.d.ts.map +1 -0
  100. package/dist/types/src/components/{Transcript/transcript-extension.d.ts → Transcription/transcription-extension.d.ts} +3 -3
  101. package/dist/types/src/components/Transcription/transcription-extension.d.ts.map +1 -0
  102. package/dist/types/src/components/index.d.ts +2 -3
  103. package/dist/types/src/components/index.d.ts.map +1 -1
  104. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.d.ts +6 -0
  105. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.d.ts.map +1 -0
  106. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.stories.d.ts +28 -0
  107. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.stories.d.ts.map +1 -0
  108. package/dist/types/src/containers/TranscriptionArticle/index.d.ts +2 -0
  109. package/dist/types/src/containers/TranscriptionArticle/index.d.ts.map +1 -0
  110. package/dist/types/src/containers/index.d.ts +3 -0
  111. package/dist/types/src/containers/index.d.ts.map +1 -0
  112. package/dist/types/src/enrichment/conversation.test.d.ts +2 -0
  113. package/dist/types/src/enrichment/conversation.test.d.ts.map +1 -0
  114. package/dist/types/src/enrichment/operations.d.ts +200 -0
  115. package/dist/types/src/enrichment/operations.d.ts.map +1 -0
  116. package/dist/types/src/enrichment/parser.d.ts +26 -0
  117. package/dist/types/src/enrichment/parser.d.ts.map +1 -0
  118. package/dist/types/src/enrichment/stream-simulator.d.ts +38 -0
  119. package/dist/types/src/enrichment/stream-simulator.d.ts.map +1 -0
  120. package/dist/types/src/hooks/index.d.ts +2 -1
  121. package/dist/types/src/hooks/index.d.ts.map +1 -1
  122. package/dist/types/src/hooks/useAudioFile.d.ts.map +1 -1
  123. package/dist/types/src/hooks/useAudioTrack.d.ts.map +1 -1
  124. package/dist/types/src/hooks/useFeedModelAdapter.d.ts +12 -0
  125. package/dist/types/src/hooks/useFeedModelAdapter.d.ts.map +1 -0
  126. package/dist/types/src/hooks/useTranscriber.d.ts +2 -2
  127. package/dist/types/src/hooks/useTranscriber.d.ts.map +1 -1
  128. package/dist/types/src/hooks/useTranscriptionRecording.d.ts +12 -0
  129. package/dist/types/src/hooks/useTranscriptionRecording.d.ts.map +1 -0
  130. package/dist/types/src/hooks/useVoiceInput.d.ts.map +1 -1
  131. package/dist/types/src/index.d.ts +2 -3
  132. package/dist/types/src/index.d.ts.map +1 -1
  133. package/dist/types/src/meta.d.ts +2 -2
  134. package/dist/types/src/meta.d.ts.map +1 -1
  135. package/dist/types/src/model/model.d.ts +2 -2
  136. package/dist/types/src/model/model.d.ts.map +1 -1
  137. package/dist/types/src/{segments-normalization → normalization}/index.d.ts +1 -1
  138. package/dist/types/src/normalization/index.d.ts.map +1 -0
  139. package/dist/types/src/{segments-normalization → normalization}/message-normalizer.d.ts +8 -6
  140. package/dist/types/src/normalization/message-normalizer.d.ts.map +1 -0
  141. package/dist/types/src/normalization/normalization.d.ts +549 -0
  142. package/dist/types/src/normalization/normalization.d.ts.map +1 -0
  143. package/dist/types/src/normalization/normalization.test.d.ts.map +1 -0
  144. package/dist/types/src/normalization/utils.d.ts.map +1 -0
  145. package/dist/types/src/operations/create.d.ts +5 -0
  146. package/dist/types/src/operations/create.d.ts.map +1 -0
  147. package/dist/types/src/operations/index.d.ts +3 -0
  148. package/dist/types/src/operations/index.d.ts.map +1 -0
  149. package/dist/types/src/operations/open.d.ts +5 -0
  150. package/dist/types/src/operations/open.d.ts.map +1 -0
  151. package/dist/types/src/operations/summarize.d.ts +8 -0
  152. package/dist/types/src/operations/summarize.d.ts.map +1 -0
  153. package/dist/types/src/plugin.d.ts +4 -0
  154. package/dist/types/src/plugin.d.ts.map +1 -0
  155. package/dist/types/src/stories/FileTranscription.stories.d.ts +20 -0
  156. package/dist/types/src/stories/FileTranscription.stories.d.ts.map +1 -0
  157. package/dist/types/src/{components/stories → stories}/KeyWordRecognition.stories.d.ts +2 -2
  158. package/dist/types/src/stories/KeyWordRecognition.stories.d.ts.map +1 -0
  159. package/dist/types/src/{components/stories/MicrophoneTranscription.stories.d.ts → stories/LiveTranscription.stories.d.ts} +7 -7
  160. package/dist/types/src/stories/LiveTranscription.stories.d.ts.map +1 -0
  161. package/dist/types/src/stories/TranscriptionStory.d.ts +21 -0
  162. package/dist/types/src/stories/TranscriptionStory.d.ts.map +1 -0
  163. package/dist/types/src/stories/common.d.ts +46 -0
  164. package/dist/types/src/stories/common.d.ts.map +1 -0
  165. package/dist/types/src/testing/testing.d.ts +9 -10
  166. package/dist/types/src/testing/testing.d.ts.map +1 -1
  167. package/dist/types/src/transcriber/index.d.ts +1 -1
  168. package/dist/types/src/transcriber/index.d.ts.map +1 -1
  169. package/dist/types/src/transcriber/media-stream-recorder.d.ts +2 -2
  170. package/dist/types/src/transcriber/media-stream-recorder.d.ts.map +1 -1
  171. package/dist/types/src/transcriber/transcriber.d.ts +59 -4
  172. package/dist/types/src/transcriber/transcriber.d.ts.map +1 -1
  173. package/dist/types/src/transcriber/transcriber.test.d.ts +2 -0
  174. package/dist/types/src/transcriber/transcriber.test.d.ts.map +1 -0
  175. package/dist/types/src/transcriber/transcription-manager.d.ts +12 -7
  176. package/dist/types/src/transcriber/transcription-manager.d.ts.map +1 -1
  177. package/dist/types/src/translations.d.ts +9 -8
  178. package/dist/types/src/translations.d.ts.map +1 -1
  179. package/dist/types/src/types/TranscriptOperation.d.ts +927 -0
  180. package/dist/types/src/types/TranscriptOperation.d.ts.map +1 -0
  181. package/dist/types/src/types/TranscriptionCapabilities.d.ts +17 -0
  182. package/dist/types/src/types/TranscriptionCapabilities.d.ts.map +1 -0
  183. package/dist/types/src/types/index.d.ts +2 -2
  184. package/dist/types/src/types/index.d.ts.map +1 -1
  185. package/dist/types/src/util/array.d.ts.map +1 -1
  186. package/dist/types/src/util/get-time-str.d.ts.map +1 -1
  187. package/dist/types/src/util/index.d.ts +1 -0
  188. package/dist/types/src/util/index.d.ts.map +1 -1
  189. package/dist/types/src/util/monitor-audio-level.d.ts.map +1 -1
  190. package/dist/types/src/util/render-byline.d.ts +4 -0
  191. package/dist/types/src/util/render-byline.d.ts.map +1 -0
  192. package/dist/types/tsconfig.tsbuildinfo +1 -1
  193. package/package.json +157 -84
  194. package/src/TranscriptionPlugin.node.ts +20 -0
  195. package/src/TranscriptionPlugin.test.ts +31 -0
  196. package/src/TranscriptionPlugin.tsx +20 -63
  197. package/src/TranscriptionPlugin.workerd.ts +18 -0
  198. package/src/blueprints/index.ts +5 -0
  199. package/src/blueprints/transcription-blueprint.ts +29 -0
  200. package/src/capabilities/blueprint-definition.ts +12 -24
  201. package/src/capabilities/index.ts +11 -7
  202. package/src/capabilities/operation-handler.ts +16 -0
  203. package/src/capabilities/react-surface.tsx +22 -13
  204. package/src/capabilities/text-content.ts +33 -0
  205. package/src/capabilities/transcriber.ts +53 -42
  206. package/src/components/Oracle/Oracle.stories.tsx +147 -0
  207. package/src/components/Oracle/Oracle.tsx +141 -0
  208. package/src/components/Oracle/index.ts +5 -0
  209. package/src/components/Transcription/Transcription.stories.tsx +213 -0
  210. package/src/components/Transcription/Transcription.tsx +58 -0
  211. package/src/components/{Transcript → Transcription}/index.ts +1 -1
  212. package/src/components/{Transcript/transcript-extension.ts → Transcription/transcription-extension.ts} +4 -4
  213. package/src/components/index.ts +2 -6
  214. package/src/containers/TranscriptionArticle/TranscriptionArticle.stories.tsx +61 -0
  215. package/src/containers/TranscriptionArticle/TranscriptionArticle.tsx +62 -0
  216. package/src/containers/TranscriptionArticle/index.ts +5 -0
  217. package/src/containers/index.ts +7 -0
  218. package/src/enrichment/conversation.test.ts +162 -0
  219. package/src/enrichment/conversation.txt +23 -0
  220. package/src/enrichment/operations.ts +268 -0
  221. package/src/enrichment/parser.ts +101 -0
  222. package/src/enrichment/stream-simulator.ts +125 -0
  223. package/src/hooks/index.ts +2 -1
  224. package/src/hooks/useFeedModelAdapter.ts +46 -0
  225. package/src/hooks/useTranscriber.ts +6 -3
  226. package/src/hooks/useTranscriptionRecording.ts +87 -0
  227. package/src/hooks/useVoiceInput.ts +2 -3
  228. package/src/index.ts +4 -5
  229. package/src/meta.ts +4 -3
  230. package/src/model/model.test.ts +9 -3
  231. package/src/model/model.ts +3 -3
  232. package/src/{segments-normalization → normalization}/message-normalizer.ts +34 -21
  233. package/src/{segments-normalization → normalization}/normalization.test.ts +4 -43
  234. package/src/normalization/normalization.ts +76 -0
  235. package/src/operations/create.ts +24 -0
  236. package/src/operations/index.ts +11 -0
  237. package/src/operations/open.ts +28 -0
  238. package/src/operations/summarize.ts +101 -0
  239. package/src/plugin.ts +11 -0
  240. package/src/stories/FileTranscription.stories.tsx +143 -0
  241. package/src/{components/stories → stories}/KeyWordRecognition.stories.tsx +40 -40
  242. package/src/stories/LiveTranscription.stories.tsx +153 -0
  243. package/src/stories/TranscriptionStory.tsx +101 -0
  244. package/src/stories/common.ts +233 -0
  245. package/src/testing/testing.ts +35 -47
  246. package/src/transcriber/index.ts +1 -1
  247. package/src/transcriber/media-stream-recorder.ts +3 -3
  248. package/src/transcriber/transcriber.browser.test.ts +1 -2
  249. package/src/transcriber/transcriber.test.ts +104 -0
  250. package/src/transcriber/transcriber.ts +102 -57
  251. package/src/transcriber/transcription-manager.ts +29 -18
  252. package/src/translations.ts +10 -7
  253. package/src/types/TranscriptOperation.ts +103 -0
  254. package/src/types/TranscriptionCapabilities.ts +39 -0
  255. package/src/types/index.ts +2 -2
  256. package/src/util/index.ts +1 -0
  257. package/src/util/render-byline.ts +33 -0
  258. package/dist/lib/browser/TranscriptContainer-OQFBAGSP.mjs +0 -11
  259. package/dist/lib/browser/blueprint-definition-GZ7NOODS.mjs +0 -147
  260. package/dist/lib/browser/blueprint-definition-GZ7NOODS.mjs.map +0 -7
  261. package/dist/lib/browser/chunk-3MKZ2MNQ.mjs +0 -16
  262. package/dist/lib/browser/chunk-3MKZ2MNQ.mjs.map +0 -7
  263. package/dist/lib/browser/chunk-7GNN7E3U.mjs.map +0 -7
  264. package/dist/lib/browser/chunk-C5YV3JZF.mjs +0 -738
  265. package/dist/lib/browser/chunk-C5YV3JZF.mjs.map +0 -7
  266. package/dist/lib/browser/chunk-O33THH53.mjs +0 -8
  267. package/dist/lib/browser/chunk-O33THH53.mjs.map +0 -7
  268. package/dist/lib/browser/chunk-QOSZIUE2.mjs +0 -32
  269. package/dist/lib/browser/chunk-QOSZIUE2.mjs.map +0 -7
  270. package/dist/lib/browser/chunk-VBUIO677.mjs.map +0 -7
  271. package/dist/lib/browser/index.mjs +0 -128
  272. package/dist/lib/browser/index.mjs.map +0 -7
  273. package/dist/lib/browser/intent-resolver-5CGCLOXB.mjs +0 -25
  274. package/dist/lib/browser/intent-resolver-5CGCLOXB.mjs.map +0 -7
  275. package/dist/lib/browser/meta.json +0 -1
  276. package/dist/lib/browser/react-surface-OK55WK7J.mjs +0 -32
  277. package/dist/lib/browser/react-surface-OK55WK7J.mjs.map +0 -7
  278. package/dist/lib/browser/transcriber-6YDM5ZDT.mjs +0 -56
  279. package/dist/lib/browser/transcriber-6YDM5ZDT.mjs.map +0 -7
  280. package/dist/lib/browser/types/index.mjs +0 -10
  281. package/dist/lib/node-esm/TranscriptContainer-GM47P6WH.mjs +0 -12
  282. package/dist/lib/node-esm/blueprint-definition-GAHQBYTF.mjs +0 -148
  283. package/dist/lib/node-esm/blueprint-definition-GAHQBYTF.mjs.map +0 -7
  284. package/dist/lib/node-esm/chunk-5JN2MHYA.mjs +0 -467
  285. package/dist/lib/node-esm/chunk-5JN2MHYA.mjs.map +0 -7
  286. package/dist/lib/node-esm/chunk-IKGUNN3Z.mjs +0 -739
  287. package/dist/lib/node-esm/chunk-IKGUNN3Z.mjs.map +0 -7
  288. package/dist/lib/node-esm/chunk-SSYFSLB7.mjs +0 -10
  289. package/dist/lib/node-esm/chunk-SSYFSLB7.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-SWUVPFKR.mjs +0 -17
  291. package/dist/lib/node-esm/chunk-SWUVPFKR.mjs.map +0 -7
  292. package/dist/lib/node-esm/chunk-U4YPUD2F.mjs +0 -33
  293. package/dist/lib/node-esm/chunk-U4YPUD2F.mjs.map +0 -7
  294. package/dist/lib/node-esm/chunk-YVNQN2J6.mjs +0 -30
  295. package/dist/lib/node-esm/chunk-YVNQN2J6.mjs.map +0 -7
  296. package/dist/lib/node-esm/index.mjs +0 -129
  297. package/dist/lib/node-esm/index.mjs.map +0 -7
  298. package/dist/lib/node-esm/intent-resolver-4H4CXIAL.mjs +0 -26
  299. package/dist/lib/node-esm/intent-resolver-4H4CXIAL.mjs.map +0 -7
  300. package/dist/lib/node-esm/meta.json +0 -1
  301. package/dist/lib/node-esm/react-surface-EK6K2MMD.mjs +0 -33
  302. package/dist/lib/node-esm/react-surface-EK6K2MMD.mjs.map +0 -7
  303. package/dist/lib/node-esm/transcriber-CPD3FZ7M.mjs.map +0 -7
  304. package/dist/lib/node-esm/types/index.mjs +0 -11
  305. package/dist/types/src/capabilities/capabilities.d.ts +0 -17
  306. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  307. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  308. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  309. package/dist/types/src/components/Transcript/Transcript.d.ts +0 -19
  310. package/dist/types/src/components/Transcript/Transcript.d.ts.map +0 -1
  311. package/dist/types/src/components/Transcript/Transcript.stories.d.ts +0 -39
  312. package/dist/types/src/components/Transcript/Transcript.stories.d.ts.map +0 -1
  313. package/dist/types/src/components/Transcript/deprecated/OldTranscript.d.ts +0 -28
  314. package/dist/types/src/components/Transcript/deprecated/OldTranscript.d.ts.map +0 -1
  315. package/dist/types/src/components/Transcript/index.d.ts +0 -2
  316. package/dist/types/src/components/Transcript/index.d.ts.map +0 -1
  317. package/dist/types/src/components/Transcript/transcript-extension.d.ts.map +0 -1
  318. package/dist/types/src/components/TranscriptContainer.d.ts +0 -9
  319. package/dist/types/src/components/TranscriptContainer.d.ts.map +0 -1
  320. package/dist/types/src/components/stories/FileTranscription.stories.d.ts +0 -18
  321. package/dist/types/src/components/stories/FileTranscription.stories.d.ts.map +0 -1
  322. package/dist/types/src/components/stories/KeyWordRecognition.stories.d.ts.map +0 -1
  323. package/dist/types/src/components/stories/MicrophoneTranscription.stories.d.ts.map +0 -1
  324. package/dist/types/src/components/stories/TranscriptionStory.d.ts +0 -12
  325. package/dist/types/src/components/stories/TranscriptionStory.d.ts.map +0 -1
  326. package/dist/types/src/components/stories/useIsSpeaking.d.ts +0 -3
  327. package/dist/types/src/components/stories/useIsSpeaking.d.ts.map +0 -1
  328. package/dist/types/src/functions/index.d.ts +0 -3
  329. package/dist/types/src/functions/index.d.ts.map +0 -1
  330. package/dist/types/src/functions/open.d.ts +0 -7
  331. package/dist/types/src/functions/open.d.ts.map +0 -1
  332. package/dist/types/src/functions/summarize.d.ts +0 -11
  333. package/dist/types/src/functions/summarize.d.ts.map +0 -1
  334. package/dist/types/src/hooks/useQueueModelAdapter.d.ts +0 -8
  335. package/dist/types/src/hooks/useQueueModelAdapter.d.ts.map +0 -1
  336. package/dist/types/src/segments-normalization/index.d.ts.map +0 -1
  337. package/dist/types/src/segments-normalization/message-normalizer.d.ts.map +0 -1
  338. package/dist/types/src/segments-normalization/normalization.d.ts +0 -461
  339. package/dist/types/src/segments-normalization/normalization.d.ts.map +0 -1
  340. package/dist/types/src/segments-normalization/normalization.test.d.ts.map +0 -1
  341. package/dist/types/src/segments-normalization/utils.d.ts.map +0 -1
  342. package/dist/types/src/types/TranscriptAction.d.ts +0 -23
  343. package/dist/types/src/types/TranscriptAction.d.ts.map +0 -1
  344. package/dist/types/src/types/types.d.ts +0 -5
  345. package/dist/types/src/types/types.d.ts.map +0 -1
  346. package/src/capabilities/capabilities.ts +0 -33
  347. package/src/capabilities/intent-resolver.ts +0 -19
  348. package/src/components/Transcript/Transcript.stories.tsx +0 -245
  349. package/src/components/Transcript/Transcript.tsx +0 -93
  350. package/src/components/Transcript/deprecated/OldTranscript.tsx +0 -260
  351. package/src/components/TranscriptContainer.tsx +0 -36
  352. package/src/components/stories/FileTranscription.stories.tsx +0 -257
  353. package/src/components/stories/MicrophoneTranscription.stories.tsx +0 -288
  354. package/src/components/stories/TranscriptionStory.tsx +0 -44
  355. package/src/components/stories/useIsSpeaking.tsx +0 -40
  356. package/src/functions/index.ts +0 -6
  357. package/src/functions/open.ts +0 -38
  358. package/src/functions/summarize.ts +0 -103
  359. package/src/hooks/useQueueModelAdapter.ts +0 -66
  360. package/src/segments-normalization/normalization.ts +0 -115
  361. package/src/types/TranscriptAction.ts +0 -23
  362. package/src/types/types.ts +0 -9
  363. package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  364. package/dist/lib/{browser/TranscriptContainer-OQFBAGSP.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  365. package/dist/lib/{node-esm/types → neutral/hooks}/index.mjs.map +0 -0
  366. package/dist/lib/{node-esm/TranscriptContainer-GM47P6WH.mjs.map → neutral/index.mjs.map} +0 -0
  367. package/dist/types/src/{segments-normalization → normalization}/normalization.test.d.ts +0 -0
  368. package/dist/types/src/{segments-normalization → normalization}/utils.d.ts +0 -0
  369. package/src/{segments-normalization → normalization}/index.ts +1 -1
  370. /package/src/{segments-normalization → normalization}/utils.ts +0 -0
@@ -1,10 +0,0 @@
1
- import {
2
- TRANSCRIPTION_URL,
3
- TranscriptAction_exports
4
- } from "../chunk-QOSZIUE2.mjs";
5
- import "../chunk-VBUIO677.mjs";
6
- export {
7
- TRANSCRIPTION_URL,
8
- TranscriptAction_exports as TranscriptAction
9
- };
10
- //# sourceMappingURL=index.mjs.map
@@ -1,12 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- TranscriptContainer_default,
4
- TranscriptionContainer
5
- } from "./chunk-IKGUNN3Z.mjs";
6
- import "./chunk-SWUVPFKR.mjs";
7
- import "./chunk-YVNQN2J6.mjs";
8
- export {
9
- TranscriptionContainer,
10
- TranscriptContainer_default as default
11
- };
12
- //# sourceMappingURL=TranscriptContainer-GM47P6WH.mjs.map
@@ -1,148 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import "./chunk-SSYFSLB7.mjs";
3
- import {
4
- renderByline
5
- } from "./chunk-IKGUNN3Z.mjs";
6
- import "./chunk-SWUVPFKR.mjs";
7
- import "./chunk-YVNQN2J6.mjs";
8
-
9
- // src/capabilities/blueprint-definition.ts
10
- import { Capabilities, contributes } from "@dxos/app-framework";
11
- import { Blueprint, Template } from "@dxos/blueprints";
12
- import { trim as trim2 } from "@dxos/util";
13
-
14
- // src/functions/open.ts
15
- import * as Effect from "effect/Effect";
16
- import * as Schema from "effect/Schema";
17
- import { ArtifactId } from "@dxos/assistant";
18
- import { Obj } from "@dxos/echo";
19
- import { DatabaseService, QueueService, defineFunction } from "@dxos/functions";
20
- import { Message, Transcript } from "@dxos/types";
21
- var open_default = defineFunction({
22
- key: "dxos.org/function/transcription/open",
23
- name: "Open",
24
- description: "Opens and reads the contents of a transcription object.",
25
- inputSchema: Schema.Struct({
26
- id: ArtifactId.annotations({
27
- description: "The ID of the transcription object."
28
- })
29
- }),
30
- outputSchema: Schema.Struct({
31
- content: Schema.String
32
- }),
33
- handler: Effect.fn(function* ({ data: { id } }) {
34
- const transcript = yield* DatabaseService.resolve(ArtifactId.toDXN(id), Transcript.Transcript);
35
- const { dxn } = yield* Effect.promise(() => transcript.queue.load());
36
- const queue = yield* QueueService.getQueue(dxn);
37
- yield* Effect.promise(() => queue?.queryObjects());
38
- const content = queue?.objects.filter((message) => Obj.instanceOf(Message.Message, message)).flatMap((message, index) => renderByline([])(message, index)).join("\n\n");
39
- return {
40
- content
41
- };
42
- })
43
- });
44
-
45
- // src/functions/summarize.ts
46
- import * as Array from "effect/Array";
47
- import * as Effect2 from "effect/Effect";
48
- import * as Function from "effect/Function";
49
- import * as Layer from "effect/Layer";
50
- import * as Option from "effect/Option";
51
- import * as Schema2 from "effect/Schema";
52
- import { AiService, ConsolePrinter, ToolExecutionService, ToolResolverService } from "@dxos/ai";
53
- import { AiSession, GenerationObserver } from "@dxos/assistant";
54
- import { TracingService, defineFunction as defineFunction2 } from "@dxos/functions";
55
- import { trim } from "@dxos/util";
56
- var summarize_default = defineFunction2({
57
- key: "dxos.org/function/transcription/summarize",
58
- name: "Summarize",
59
- description: "Summarize a transcript of a meeting.",
60
- inputSchema: Schema2.Struct({
61
- transcript: Schema2.String.annotations({
62
- description: "The transcript of the meeting."
63
- }),
64
- notes: Schema2.optional(Schema2.String).annotations({
65
- description: "Additional notes from the participants."
66
- })
67
- }),
68
- outputSchema: Schema2.Struct({
69
- summary: Schema2.String.annotations({
70
- description: "The summary of the transcript."
71
- })
72
- }),
73
- handler: Effect2.fnUntraced(function* ({ data: { transcript, notes } }) {
74
- const result = yield* new AiSession().run({
75
- prompt: `Transcript: ${transcript}
76
-
77
- Notes: ${notes}`,
78
- history: [],
79
- system: systemPrompt,
80
- observer: GenerationObserver.fromPrinter(new ConsolePrinter({
81
- tag: "summarize"
82
- }))
83
- });
84
- const summary = Function.pipe(result, Array.findLast((msg) => msg.sender.role === "assistant" && msg.blocks.some((block) => block._tag === "text")), Option.flatMap((msg) => Function.pipe(msg.blocks, Array.findLast((block) => block._tag === "text"), Option.map((block) => block.text))), Option.getOrThrowWith(() => new Error("No summary found")));
85
- return {
86
- summary
87
- };
88
- }, Effect2.provide(Layer.mergeAll(AiService.model("@anthropic/claude-sonnet-4-0"), ToolResolverService.layerEmpty, ToolExecutionService.layerEmpty, TracingService.layerNoop)))
89
- });
90
- var systemPrompt = trim`
91
- You are a helpful assistant that summarizes transcripts of meetings.
92
-
93
- # Goal
94
- Create a markdown summary of the meeting transcript with text notes provided.
95
- Notes are very important so make sure to include them in the summary if they contain meaningful information.
96
-
97
- # Formatting
98
- - Format the summary as a markdown document without extra comments like "Here is the summary of the transcript:".
99
- - Use markdown formatting for headings and bullet points.
100
- - Format the summary as a list of key points and takeaways.
101
- - All names of people should be in bold.
102
-
103
- # Note Taking
104
- - Correlate items in the summary with the person of origin to build a coherent narrative.
105
- - Include short quotes verbatim where appropriate. Especially when concerned with design decisions and problem descriptions.
106
-
107
- # Tasks
108
- At the end of the summary include tasks.
109
- Extract only the tasks that are:
110
- - Directly actionable.
111
- - Clearly assigned to a person or team (or can easily be inferred).
112
- - Strongly implied by the conversation and/or user note (no speculative tasks).
113
- - Specific enough that someone reading them would know exactly what to do next.
114
-
115
- Format all tasks as markdown checkboxes using the syntax:
116
- - [ ] Task description.
117
-
118
- Additional information can be included (indented).
119
-
120
- If no actionable tasks are found, omit this tasks section.
121
- `;
122
-
123
- // src/capabilities/blueprint-definition.ts
124
- var functions = [
125
- open_default,
126
- summarize_default
127
- ];
128
- var blueprint_definition_default = (() => {
129
- return [
130
- contributes(Capabilities.Functions, functions),
131
- contributes(Capabilities.BlueprintDefinition, Blueprint.make({
132
- key: "dxos.org/blueprint/transcription",
133
- name: "Transcription",
134
- tools: Blueprint.toolDefinitions({
135
- functions
136
- }),
137
- instructions: Template.make({
138
- source: trim2`
139
- You can open and summarize a meeting transcript.
140
- `
141
- })
142
- }))
143
- ];
144
- });
145
- export {
146
- blueprint_definition_default as default
147
- };
148
- //# sourceMappingURL=blueprint-definition-GAHQBYTF.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/blueprint-definition.ts", "../../../src/functions/open.ts", "../../../src/functions/summarize.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { type FunctionDefinition } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\nimport { open, summarize } from '../functions';\n\nconst functions: FunctionDefinition[] = [open, summarize];\n\nexport default () => {\n return [\n contributes(Capabilities.Functions, functions),\n contributes(\n Capabilities.BlueprintDefinition,\n Blueprint.make({\n key: 'dxos.org/blueprint/transcription',\n name: 'Transcription',\n tools: Blueprint.toolDefinitions({ functions }),\n instructions: Template.make({\n source: trim`\n You can open and summarize a meeting transcript.\n `,\n }),\n }),\n ),\n ];\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { ArtifactId } from '@dxos/assistant';\nimport { Obj } from '@dxos/echo';\nimport { DatabaseService, QueueService, defineFunction } from '@dxos/functions';\nimport { Message, Transcript } from '@dxos/types';\n\nimport { renderByline } from '../components';\n\nexport default defineFunction({\n key: 'dxos.org/function/transcription/open',\n name: 'Open',\n description: 'Opens and reads the contents of a transcription object.',\n inputSchema: Schema.Struct({\n id: ArtifactId.annotations({\n description: 'The ID of the transcription object.',\n }),\n }),\n outputSchema: Schema.Struct({\n content: Schema.String,\n }),\n handler: Effect.fn(function* ({ data: { id } }) {\n const transcript = yield* DatabaseService.resolve(ArtifactId.toDXN(id), Transcript.Transcript);\n const { dxn } = yield* Effect.promise(() => transcript.queue.load());\n const queue = yield* QueueService.getQueue(dxn);\n yield* Effect.promise(() => queue?.queryObjects());\n const content = queue?.objects\n .filter((message) => Obj.instanceOf(Message.Message, message))\n .flatMap((message, index) => renderByline([])(message, index))\n .join('\\n\\n');\n return { content };\n }),\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Array from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Layer from 'effect/Layer';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\n\nimport { AiService, ConsolePrinter, ToolExecutionService, ToolResolverService } from '@dxos/ai';\nimport { AiSession, GenerationObserver } from '@dxos/assistant';\nimport { TracingService, defineFunction } from '@dxos/functions';\nimport { trim } from '@dxos/util';\n\n/**\n * Summarize a transcript of a meeting.\n */\nexport default defineFunction({\n key: 'dxos.org/function/transcription/summarize',\n name: 'Summarize',\n description: 'Summarize a transcript of a meeting.',\n inputSchema: Schema.Struct({\n transcript: Schema.String.annotations({\n description: 'The transcript of the meeting.',\n }),\n notes: Schema.optional(Schema.String).annotations({\n description: 'Additional notes from the participants.',\n }),\n }),\n outputSchema: Schema.Struct({\n summary: Schema.String.annotations({\n description: 'The summary of the transcript.',\n }),\n }),\n handler: Effect.fnUntraced(\n function* ({ data: { transcript, notes } }) {\n const result = yield* new AiSession().run({\n prompt: `Transcript: ${transcript}\\n\\nNotes: ${notes}`,\n history: [],\n system: systemPrompt,\n observer: GenerationObserver.fromPrinter(new ConsolePrinter({ tag: 'summarize' })),\n });\n\n const summary = Function.pipe(\n result,\n Array.findLast((msg) => msg.sender.role === 'assistant' && msg.blocks.some((block) => block._tag === 'text')),\n Option.flatMap((msg) =>\n Function.pipe(\n msg.blocks,\n Array.findLast((block) => block._tag === 'text'),\n Option.map((block) => block.text),\n ),\n ),\n Option.getOrThrowWith(() => new Error('No summary found')),\n );\n\n return { summary };\n },\n Effect.provide(\n Layer.mergeAll(\n AiService.model('@anthropic/claude-sonnet-4-0'),\n ToolResolverService.layerEmpty,\n ToolExecutionService.layerEmpty,\n TracingService.layerNoop,\n ),\n ),\n ),\n});\n\nconst systemPrompt = trim`\n You are a helpful assistant that summarizes transcripts of meetings.\n\n # Goal\n Create a markdown summary of the meeting transcript with text notes provided.\n Notes are very important so make sure to include them in the summary if they contain meaningful information.\n\n # Formatting\n - Format the summary as a markdown document without extra comments like \"Here is the summary of the transcript:\".\n - Use markdown formatting for headings and bullet points.\n - Format the summary as a list of key points and takeaways.\n - All names of people should be in bold.\n\n # Note Taking\n - Correlate items in the summary with the person of origin to build a coherent narrative.\n - Include short quotes verbatim where appropriate. Especially when concerned with design decisions and problem descriptions.\n\n # Tasks\n At the end of the summary include tasks.\n Extract only the tasks that are:\n - Directly actionable.\n - Clearly assigned to a person or team (or can easily be inferred).\n - Strongly implied by the conversation and/or user note (no speculative tasks).\n - Specific enough that someone reading them would know exactly what to do next.\n\n Format all tasks as markdown checkboxes using the syntax:\n - [ ] Task description.\n\n Additional information can be included (indented).\n\n If no actionable tasks are found, omit this tasks section.\n`;\n"],
5
- "mappings": "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",
6
- "names": ["Capabilities", "contributes", "Blueprint", "Template", "trim", "Effect", "Schema", "ArtifactId", "Obj", "DatabaseService", "QueueService", "defineFunction", "Message", "Transcript", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "id", "ArtifactId", "annotations", "outputSchema", "content", "String", "handler", "fn", "data", "transcript", "DatabaseService", "resolve", "toDXN", "Transcript", "dxn", "promise", "queue", "load", "QueueService", "getQueue", "queryObjects", "objects", "filter", "message", "Obj", "instanceOf", "Message", "flatMap", "index", "renderByline", "join", "Array", "Effect", "Function", "Layer", "Option", "Schema", "AiService", "ConsolePrinter", "ToolExecutionService", "ToolResolverService", "AiSession", "GenerationObserver", "TracingService", "defineFunction", "trim", "defineFunction", "key", "name", "description", "inputSchema", "Struct", "transcript", "String", "annotations", "notes", "optional", "outputSchema", "summary", "handler", "fnUntraced", "data", "result", "AiSession", "run", "prompt", "history", "system", "systemPrompt", "observer", "GenerationObserver", "fromPrinter", "ConsolePrinter", "tag", "pipe", "findLast", "msg", "sender", "role", "blocks", "some", "block", "_tag", "flatMap", "map", "text", "getOrThrowWith", "Error", "provide", "mergeAll", "AiService", "model", "ToolResolverService", "layerEmpty", "ToolExecutionService", "TracingService", "layerNoop", "trim", "functions", "open", "summarize", "contributes", "Capabilities", "Functions", "BlueprintDefinition", "Blueprint", "make", "key", "name", "tools", "toolDefinitions", "instructions", "Template", "source", "trim"]
7
- }
@@ -1,467 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- TRANSCRIPTION_URL
4
- } from "./chunk-U4YPUD2F.mjs";
5
-
6
- // src/transcriber/media-stream-recorder.ts
7
- import { MediaRecorder, register } from "extendable-media-recorder";
8
- import { WaveFile } from "wavefile";
9
- import { synchronized } from "@dxos/async";
10
- import { invariant } from "@dxos/invariant";
11
- import { log } from "@dxos/log";
12
- import { trace } from "@dxos/tracing";
13
- function _ts_decorate(decorators, target, key, desc) {
14
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16
- 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;
17
- return c > 3 && r && Object.defineProperty(target, key, r), r;
18
- }
19
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-transcription/src/transcriber/media-stream-recorder.ts";
20
- var initializingPromise;
21
- var initializeExtendableMediaRecorder = async () => {
22
- const { connect } = await import("extendable-media-recorder-wav-encoder");
23
- await register(await connect());
24
- };
25
- var MediaStreamRecorder = class {
26
- _mediaStreamTrack;
27
- /**
28
- * Default MediaRecorder implementation do not support wav encoding.
29
- */
30
- _config;
31
- _mediaRecorder = void 0;
32
- _header = void 0;
33
- _onChunk;
34
- constructor({ mediaStreamTrack, config }) {
35
- this._mediaStreamTrack = mediaStreamTrack;
36
- this._config = config;
37
- }
38
- get wavConfig() {
39
- const settings = this._mediaStreamTrack.getSettings();
40
- return {
41
- channels: settings.channelCount ?? 1,
42
- sampleRate: settings.sampleRate ?? 16e3,
43
- bitDepthCode: settings.sampleSize ? String(settings.sampleSize) : "16"
44
- };
45
- }
46
- get mediaStreamTrack() {
47
- return this._mediaStreamTrack;
48
- }
49
- setOnChunk(onChunk) {
50
- this._onChunk = onChunk;
51
- }
52
- async start() {
53
- await (initializingPromise ??= initializeExtendableMediaRecorder()).catch((err) => log.info("initializeExtendableMediaRecorder", {
54
- err
55
- }, {
56
- F: __dxlog_file,
57
- L: 69,
58
- S: this,
59
- C: (f, a) => f(...a)
60
- }));
61
- if (!this._mediaRecorder) {
62
- const stream = new MediaStream([
63
- this._mediaStreamTrack
64
- ]);
65
- this._mediaRecorder = new MediaRecorder(stream, {
66
- mimeType: "audio/wav"
67
- });
68
- }
69
- if (this._mediaRecorder.state === "recording") {
70
- return;
71
- }
72
- invariant(this._onChunk, "MediaStreamRecorder: onChunk is not set", {
73
- F: __dxlog_file,
74
- L: 80,
75
- S: this,
76
- A: [
77
- "this._onChunk",
78
- "'MediaStreamRecorder: onChunk is not set'"
79
- ]
80
- });
81
- this._mediaRecorder.ondataavailable = (event) => this._ondataavailable(event);
82
- this._mediaRecorder.start(this._config.interval);
83
- }
84
- async stop() {
85
- if (this._mediaRecorder?.state !== "recording") {
86
- return;
87
- }
88
- this._mediaRecorder.stop();
89
- }
90
- async _ondataavailable(event) {
91
- const blob = event.data;
92
- const uint8Array = new Uint8Array(await blob.arrayBuffer());
93
- const isHeader = uint8Array[0] === 82 && // R
94
- uint8Array[1] === 73 && // I
95
- uint8Array[2] === 70 && // F
96
- uint8Array[3] === 70;
97
- let wav;
98
- if (isHeader) {
99
- wav = new WaveFile(uint8Array);
100
- this._header = uint8Array.slice(0, 44);
101
- } else if (this._header) {
102
- wav = new WaveFile(new Uint8Array([
103
- ...this._header,
104
- ...uint8Array
105
- ]));
106
- } else {
107
- log.warn("MediaStreamRecorder: no header", void 0, {
108
- F: __dxlog_file,
109
- L: 111,
110
- S: this,
111
- C: (f, a) => f(...a)
112
- });
113
- return;
114
- }
115
- this._onChunk({
116
- timestamp: Date.now(),
117
- data: wav.getSamples()
118
- });
119
- }
120
- };
121
- _ts_decorate([
122
- synchronized
123
- ], MediaStreamRecorder.prototype, "_ondataavailable", null);
124
- MediaStreamRecorder = _ts_decorate([
125
- trace.resource()
126
- ], MediaStreamRecorder);
127
-
128
- // src/transcriber/transcriber.ts
129
- import { WaveFile as WaveFile2 } from "wavefile";
130
- import { DeferredTask, Trigger } from "@dxos/async";
131
- import { LifecycleState, Resource } from "@dxos/context";
132
- import { log as log2 } from "@dxos/log";
133
- import { trace as trace2 } from "@dxos/tracing";
134
-
135
- // src/util/array.ts
136
- var mergeFloat64Arrays = (arrays) => {
137
- const newArray = new Float64Array(arrays.reduce((acc, array) => array.length + acc, 0));
138
- let offset = 0;
139
- for (const array of arrays) {
140
- newArray.set(array, offset);
141
- offset += array.length;
142
- }
143
- return newArray;
144
- };
145
-
146
- // src/transcriber/transcriber.ts
147
- function _ts_decorate2(decorators, target, key, desc) {
148
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
149
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
150
- 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;
151
- return c > 3 && r && Object.defineProperty(target, key, r), r;
152
- }
153
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-transcription/src/transcriber/transcriber.ts";
154
- var Transcriber = class extends Resource {
155
- _audioChunks = [];
156
- _lastUsedTimestamp = 0;
157
- _openTrigger = new Trigger({
158
- autoReset: true
159
- });
160
- _config;
161
- _recorder;
162
- _onSegments;
163
- _recording = false;
164
- _transcribeTask = void 0;
165
- constructor({ config, recorder, onSegments }) {
166
- super();
167
- this._config = config;
168
- this._recorder = recorder;
169
- this._onSegments = onSegments;
170
- }
171
- async _open(ctx) {
172
- log2.info("opening", void 0, {
173
- F: __dxlog_file2,
174
- L: 102,
175
- S: this,
176
- C: (f, a) => f(...a)
177
- });
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, {
185
- F: __dxlog_file2,
186
- L: 110,
187
- S: this,
188
- C: (f, a) => f(...a)
189
- });
190
- this._recording = false;
191
- this._transcribeTask = void 0;
192
- await this._recorder.stop();
193
- }
194
- startChunksRecording() {
195
- log2.info("starting", void 0, {
196
- F: __dxlog_file2,
197
- L: 117,
198
- S: this,
199
- C: (f, a) => f(...a)
200
- });
201
- if (this._lifecycleState !== LifecycleState.OPEN) {
202
- return;
203
- }
204
- this._recording = true;
205
- }
206
- stopChunksRecording() {
207
- if (this._lifecycleState !== LifecycleState.OPEN || !this._recording) {
208
- return;
209
- }
210
- this._recording = false;
211
- this._transcribeTask?.schedule();
212
- log2.info("stopped", void 0, {
213
- F: __dxlog_file2,
214
- L: 132,
215
- S: this,
216
- C: (f, a) => f(...a)
217
- });
218
- }
219
- _saveAudioChunk(chunk) {
220
- log2("saving audio chunk", {
221
- chunk
222
- }, {
223
- F: __dxlog_file2,
224
- L: 136,
225
- S: this,
226
- C: (f, a) => f(...a)
227
- });
228
- this._audioChunks.push(chunk);
229
- if (!this._recording && (!this._transcribeTask || !this._transcribeTask.scheduled) && this._audioChunks.length >= this._config.prefixBufferChunksAmount) {
230
- this._audioChunks = this._dropOldChunks();
231
- } else if (this._audioChunks.length >= this._config.transcribeAfterChunksAmount && this._recording) {
232
- this._transcribeTask?.schedule();
233
- }
234
- }
235
- async _transcribe() {
236
- log2("transcribing", {
237
- chunks: this._audioChunks.length
238
- }, {
239
- F: __dxlog_file2,
240
- L: 152,
241
- S: this,
242
- C: (f, a) => f(...a)
243
- });
244
- const chunks = this._audioChunks;
245
- this._audioChunks = this._dropOldChunks();
246
- if (chunks.length === 0) {
247
- return;
248
- }
249
- const audio = await this._mergeAudioChunks(chunks);
250
- const segments = await this._fetchTranscription(audio);
251
- if (!Array.isArray(segments) || segments.length === 0) {
252
- return;
253
- }
254
- const alignedSegments = this._alignSegments(segments, chunks);
255
- if (alignedSegments.length > 0) {
256
- await this._onSegments(alignedSegments);
257
- }
258
- }
259
- _dropOldChunks() {
260
- return this._config.prefixBufferChunksAmount > 0 ? this._audioChunks.slice(-this._config.prefixBufferChunksAmount) : [];
261
- }
262
- async _mergeAudioChunks(chunks) {
263
- const file = new WaveFile2();
264
- const wavConfig = this._recorder.wavConfig;
265
- file.fromScratch(wavConfig.channels, wavConfig.sampleRate, wavConfig.bitDepthCode, mergeFloat64Arrays(chunks.map(({ data }) => data)));
266
- return file.toBase64();
267
- }
268
- async _fetchTranscription(audio) {
269
- if (audio.length === 0) {
270
- this._audioChunks = [];
271
- throw new Error("No audio to send for transcribing");
272
- }
273
- const response = await fetch(`${TRANSCRIPTION_URL}/transcribe`, {
274
- method: "POST",
275
- body: JSON.stringify({
276
- audio
277
- }),
278
- headers: {
279
- "Content-Type": "application/json"
280
- }
281
- });
282
- if (!response.ok) {
283
- this._audioChunks = [];
284
- throw new Error(`Transcription failed: ${response.statusText}`);
285
- }
286
- const { segments } = await response.json();
287
- log2.info("transcription response", {
288
- segments: segments.length,
289
- string: segments.map((segments2) => segments2.text).join(" ")
290
- }, {
291
- F: __dxlog_file2,
292
- L: 216,
293
- S: this,
294
- C: (f, a) => f(...a)
295
- });
296
- return segments;
297
- }
298
- _alignSegments(segments, originalChunks) {
299
- const zeroTimestamp = originalChunks.at(0).timestamp;
300
- const filteredSegments = segments.filter((segment) => zeroTimestamp + segment.end * 1e3 >= this._lastUsedTimestamp).map((segment) => {
301
- const words = segment.words.filter((word) => zeroTimestamp + word.start * 1e3 >= this._lastUsedTimestamp);
302
- return {
303
- ...segment,
304
- words,
305
- text: words.map((word) => word.word).join(""),
306
- start: words.at(0)?.start ?? segment.end
307
- };
308
- }).filter((segment) => segment.words.length > 0);
309
- if (filteredSegments.length === 0) {
310
- return [];
311
- }
312
- this._lastUsedTimestamp = zeroTimestamp + filteredSegments.at(-1).end * 1e3;
313
- return filteredSegments.map((segment) => ({
314
- _tag: "transcript",
315
- started: new Date(zeroTimestamp + segment.start * 1e3).toISOString(),
316
- text: segment.text.trim()
317
- }));
318
- }
319
- };
320
- _ts_decorate2([
321
- trace2.span({
322
- showInBrowserTimeline: true
323
- })
324
- ], Transcriber.prototype, "_mergeAudioChunks", null);
325
- _ts_decorate2([
326
- trace2.span({
327
- showInBrowserTimeline: true
328
- })
329
- ], Transcriber.prototype, "_fetchTranscription", null);
330
-
331
- // src/transcriber/transcription-manager.ts
332
- import { signal } from "@preact/signals-core";
333
- import { synchronized as synchronized2 } from "@dxos/async";
334
- import { Resource as Resource2 } from "@dxos/context";
335
- import { Obj } from "@dxos/echo";
336
- import { Message } from "@dxos/types";
337
- function _ts_decorate3(decorators, target, key, desc) {
338
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
339
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
340
- 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;
341
- return c > 3 && r && Object.defineProperty(target, key, r), r;
342
- }
343
- var RECORD_INTERVAL = 200;
344
- var PREFIXED_CHUNKS_AMOUNT = 10;
345
- var TRANSCRIBE_AFTER_CHUNKS_AMOUNT = 50;
346
- var TranscriptionManager = class extends Resource2 {
347
- _edgeClient;
348
- _messageEnricher;
349
- _audioStreamTrack = void 0;
350
- _identityDid = void 0;
351
- _mediaRecorder = void 0;
352
- _transcriber = void 0;
353
- _queue = void 0;
354
- _enabled = signal(false);
355
- constructor(options) {
356
- super();
357
- this._edgeClient = options.edgeClient;
358
- this._messageEnricher = options.messageEnricher;
359
- }
360
- /** @reactive */
361
- get enabled() {
362
- return this._enabled.value;
363
- }
364
- setQueue(queue) {
365
- this._queue = queue;
366
- return this;
367
- }
368
- setIdentityDid(did) {
369
- if (this._identityDid !== did) {
370
- this._identityDid = did;
371
- }
372
- return this;
373
- }
374
- setRecording(recording) {
375
- if (!this.isOpen || !this._enabled.value) {
376
- return this;
377
- }
378
- if (recording) {
379
- this._transcriber?.startChunksRecording();
380
- } else {
381
- this._transcriber?.stopChunksRecording();
382
- }
383
- return this;
384
- }
385
- async setEnabled(enabled) {
386
- if (this._enabled.value === enabled) {
387
- return;
388
- }
389
- this._enabled.value = enabled ?? false;
390
- if (enabled) {
391
- await this._maybeRestartTranscriber();
392
- } else {
393
- await this._stopTranscriber();
394
- }
395
- }
396
- async setAudioTrack(track) {
397
- if (this._audioStreamTrack === track) {
398
- return;
399
- }
400
- this._audioStreamTrack = track;
401
- await this._maybeRestartTranscriber();
402
- }
403
- async _open() {
404
- await this._maybeRestartTranscriber();
405
- }
406
- async _close() {
407
- await this._stopTranscriber();
408
- }
409
- async _maybeRestartTranscriber() {
410
- if (!this._audioStreamTrack || !this._enabled.value || !this.isOpen) {
411
- return;
412
- }
413
- let needReinit = false;
414
- if (this._audioStreamTrack !== this._mediaRecorder?.mediaStreamTrack) {
415
- this._mediaRecorder = new MediaStreamRecorder({
416
- mediaStreamTrack: this._audioStreamTrack,
417
- config: {
418
- interval: RECORD_INTERVAL
419
- }
420
- });
421
- needReinit = true;
422
- }
423
- if (needReinit) {
424
- await this._transcriber?.close();
425
- this._transcriber = new Transcriber({
426
- config: {
427
- transcribeAfterChunksAmount: TRANSCRIBE_AFTER_CHUNKS_AMOUNT,
428
- prefixBufferChunksAmount: PREFIXED_CHUNKS_AMOUNT
429
- },
430
- recorder: this._mediaRecorder,
431
- onSegments: (segments) => this._onSegments(segments)
432
- });
433
- await this._transcriber?.open();
434
- }
435
- }
436
- async _stopTranscriber() {
437
- await this._transcriber?.close();
438
- }
439
- async _onSegments(segments) {
440
- if (!this.isOpen || !this._queue) {
441
- return;
442
- }
443
- let block = Obj.make(Message.Message, {
444
- created: (/* @__PURE__ */ new Date()).toISOString(),
445
- blocks: segments,
446
- sender: {
447
- identityDid: this._identityDid
448
- }
449
- });
450
- if (this._messageEnricher) {
451
- block = await this._messageEnricher(block);
452
- }
453
- await this._queue.append([
454
- block
455
- ]);
456
- }
457
- };
458
- _ts_decorate3([
459
- synchronized2
460
- ], TranscriptionManager.prototype, "setAudioTrack", null);
461
-
462
- export {
463
- MediaStreamRecorder,
464
- Transcriber,
465
- TranscriptionManager
466
- };
467
- //# sourceMappingURL=chunk-5JN2MHYA.mjs.map