@dxos/plugin-transcription 0.8.3 → 0.8.4-main.03d5cd7b56

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 (344) hide show
  1. package/dist/lib/neutral/TranscriptionContainer-XNGXNGPX.mjs +35 -0
  2. package/dist/lib/neutral/TranscriptionContainer-XNGXNGPX.mjs.map +7 -0
  3. package/dist/lib/neutral/TranscriptionPlugin.mjs +34 -0
  4. package/dist/lib/neutral/TranscriptionPlugin.mjs.map +7 -0
  5. package/dist/lib/neutral/TranscriptionPlugin.node.mjs +25 -0
  6. package/dist/lib/neutral/TranscriptionPlugin.node.mjs.map +7 -0
  7. package/dist/lib/neutral/blueprint-definition-HOXDG5QP.mjs +15 -0
  8. package/dist/lib/neutral/blueprint-definition-HOXDG5QP.mjs.map +7 -0
  9. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  10. package/dist/lib/neutral/capabilities/index.mjs +17 -0
  11. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  12. package/dist/lib/neutral/chunk-GL4RS533.mjs +22 -0
  13. package/dist/lib/neutral/chunk-GL4RS533.mjs.map +7 -0
  14. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  15. package/dist/lib/neutral/chunk-KAEXRX3Y.mjs +35 -0
  16. package/dist/lib/neutral/chunk-KAEXRX3Y.mjs.map +7 -0
  17. package/dist/lib/{browser/chunk-IQ5ZRMHZ.mjs → neutral/chunk-LS3R7EQI.mjs} +130 -195
  18. package/dist/lib/neutral/chunk-LS3R7EQI.mjs.map +7 -0
  19. package/dist/lib/neutral/chunk-MLRJWAQH.mjs +179 -0
  20. package/dist/lib/neutral/chunk-MLRJWAQH.mjs.map +7 -0
  21. package/dist/lib/neutral/chunk-NNR3EYR2.mjs +124 -0
  22. package/dist/lib/neutral/chunk-NNR3EYR2.mjs.map +7 -0
  23. package/dist/lib/neutral/chunk-NQQK7UZQ.mjs +244 -0
  24. package/dist/lib/neutral/chunk-NQQK7UZQ.mjs.map +7 -0
  25. package/dist/lib/neutral/chunk-WVEZMGBT.mjs +8 -0
  26. package/dist/lib/neutral/chunk-WVEZMGBT.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-ZR4BH4QQ.mjs +30 -0
  28. package/dist/lib/neutral/chunk-ZR4BH4QQ.mjs.map +7 -0
  29. package/dist/lib/neutral/components/index.mjs +207 -0
  30. package/dist/lib/neutral/components/index.mjs.map +7 -0
  31. package/dist/lib/neutral/containers/index.mjs +9 -0
  32. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  33. package/dist/lib/neutral/create-2D6S4IMQ.mjs +21 -0
  34. package/dist/lib/neutral/create-2D6S4IMQ.mjs.map +7 -0
  35. package/dist/lib/neutral/hooks/index.mjs +17 -0
  36. package/dist/lib/neutral/index.mjs +44 -0
  37. package/dist/lib/neutral/meta.json +1 -0
  38. package/dist/lib/neutral/meta.mjs +8 -0
  39. package/dist/lib/neutral/meta.mjs.map +7 -0
  40. package/dist/lib/neutral/open-2QB6IIET.mjs +27 -0
  41. package/dist/lib/neutral/open-2QB6IIET.mjs.map +7 -0
  42. package/dist/lib/neutral/operation-handler-NXMOAXFP.mjs +13 -0
  43. package/dist/lib/neutral/operation-handler-NXMOAXFP.mjs.map +7 -0
  44. package/dist/lib/neutral/operations/index.mjs +8 -0
  45. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  46. package/dist/lib/neutral/plugin.mjs +16 -0
  47. package/dist/lib/neutral/plugin.mjs.map +7 -0
  48. package/dist/lib/neutral/react-surface-QF4MUMWG.mjs +26 -0
  49. package/dist/lib/neutral/react-surface-QF4MUMWG.mjs.map +7 -0
  50. package/dist/lib/neutral/summarize-CJPVKWYZ.mjs +78 -0
  51. package/dist/lib/neutral/summarize-CJPVKWYZ.mjs.map +7 -0
  52. package/dist/lib/neutral/text-content-LHSUG2D2.mjs +30 -0
  53. package/dist/lib/neutral/text-content-LHSUG2D2.mjs.map +7 -0
  54. package/dist/lib/{browser/transcriber-OYPLZFG5.mjs → neutral/transcriber-M3R6HPTZ.mjs} +21 -18
  55. package/dist/lib/neutral/transcriber-M3R6HPTZ.mjs.map +7 -0
  56. package/dist/lib/neutral/translations.mjs +22 -0
  57. package/dist/lib/neutral/translations.mjs.map +7 -0
  58. package/dist/lib/neutral/types/index.mjs +12 -0
  59. package/dist/lib/neutral/types/index.mjs.map +7 -0
  60. package/dist/types/src/TranscriptionPlugin.d.ts +3 -1
  61. package/dist/types/src/TranscriptionPlugin.d.ts.map +1 -1
  62. package/dist/types/src/TranscriptionPlugin.node.d.ts +4 -0
  63. package/dist/types/src/TranscriptionPlugin.node.d.ts.map +1 -0
  64. package/dist/types/src/TranscriptionPlugin.test.d.ts +2 -0
  65. package/dist/types/src/TranscriptionPlugin.test.d.ts.map +1 -0
  66. package/dist/types/src/blueprints/index.d.ts +2 -0
  67. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  68. package/dist/types/src/blueprints/transcription-blueprint.d.ts +4 -0
  69. package/dist/types/src/blueprints/transcription-blueprint.d.ts.map +1 -0
  70. package/dist/types/src/capabilities/blueprint-definition.d.ts +6 -0
  71. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  72. package/dist/types/src/capabilities/index.d.ts +10 -4
  73. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  75. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  76. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  77. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/text-content.d.ts +8 -0
  79. package/dist/types/src/capabilities/text-content.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/transcriber.d.ts +4 -3
  81. package/dist/types/src/capabilities/transcriber.d.ts.map +1 -1
  82. package/dist/types/src/components/Transcription/Transcription.d.ts +18 -0
  83. package/dist/types/src/components/Transcription/Transcription.d.ts.map +1 -0
  84. package/dist/types/src/components/Transcription/Transcription.stories.d.ts +40 -0
  85. package/dist/types/src/components/Transcription/Transcription.stories.d.ts.map +1 -0
  86. package/dist/types/src/components/Transcription/index.d.ts +2 -0
  87. package/dist/types/src/components/Transcription/index.d.ts.map +1 -0
  88. package/dist/types/src/components/Transcription/transcription-extension.d.ts +15 -0
  89. package/dist/types/src/components/Transcription/transcription-extension.d.ts.map +1 -0
  90. package/dist/types/src/components/index.d.ts +1 -6
  91. package/dist/types/src/components/index.d.ts.map +1 -1
  92. package/dist/types/src/containers/TranscriptionContainer/TranscriptionContainer.d.ts +6 -0
  93. package/dist/types/src/containers/TranscriptionContainer/TranscriptionContainer.d.ts.map +1 -0
  94. package/dist/types/src/containers/TranscriptionContainer/index.d.ts +2 -0
  95. package/dist/types/src/containers/TranscriptionContainer/index.d.ts.map +1 -0
  96. package/dist/types/src/containers/index.d.ts +3 -0
  97. package/dist/types/src/containers/index.d.ts.map +1 -0
  98. package/dist/types/src/hooks/useAudioFile.d.ts.map +1 -1
  99. package/dist/types/src/hooks/useAudioTrack.d.ts.map +1 -1
  100. package/dist/types/src/hooks/useQueueModelAdapter.d.ts +1 -1
  101. package/dist/types/src/hooks/useQueueModelAdapter.d.ts.map +1 -1
  102. package/dist/types/src/hooks/useTranscriber.d.ts +2 -2
  103. package/dist/types/src/hooks/useTranscriber.d.ts.map +1 -1
  104. package/dist/types/src/hooks/useVoiceInput.d.ts.map +1 -1
  105. package/dist/types/src/index.d.ts +2 -3
  106. package/dist/types/src/index.d.ts.map +1 -1
  107. package/dist/types/src/meta.d.ts +2 -3
  108. package/dist/types/src/meta.d.ts.map +1 -1
  109. package/dist/types/src/model/model.d.ts +2 -2
  110. package/dist/types/src/model/model.d.ts.map +1 -1
  111. package/dist/types/src/{segments-normalization → normalization}/index.d.ts +1 -1
  112. package/dist/types/src/normalization/index.d.ts.map +1 -0
  113. package/dist/types/src/{segments-normalization → normalization}/message-normalizer.d.ts +5 -5
  114. package/dist/types/src/normalization/message-normalizer.d.ts.map +1 -0
  115. package/dist/types/src/normalization/normalization.d.ts +543 -0
  116. package/dist/types/src/normalization/normalization.d.ts.map +1 -0
  117. package/dist/types/src/normalization/normalization.test.d.ts.map +1 -0
  118. package/dist/types/src/normalization/utils.d.ts +3 -0
  119. package/dist/types/src/normalization/utils.d.ts.map +1 -0
  120. package/dist/types/src/operations/create.d.ts +5 -0
  121. package/dist/types/src/operations/create.d.ts.map +1 -0
  122. package/dist/types/src/operations/index.d.ts +3 -0
  123. package/dist/types/src/operations/index.d.ts.map +1 -0
  124. package/dist/types/src/operations/open.d.ts +5 -0
  125. package/dist/types/src/operations/open.d.ts.map +1 -0
  126. package/dist/types/src/operations/summarize.d.ts +8 -0
  127. package/dist/types/src/operations/summarize.d.ts.map +1 -0
  128. package/dist/types/src/plugin.d.ts +4 -0
  129. package/dist/types/src/plugin.d.ts.map +1 -0
  130. package/dist/types/src/stories/FileTranscription.stories.d.ts +18 -0
  131. package/dist/types/src/stories/FileTranscription.stories.d.ts.map +1 -0
  132. package/dist/types/src/stories/KeyWordRecognition.stories.d.ts +14 -0
  133. package/dist/types/src/stories/KeyWordRecognition.stories.d.ts.map +1 -0
  134. package/dist/types/src/stories/MicrophoneTranscription.stories.d.ts +20 -0
  135. package/dist/types/src/stories/MicrophoneTranscription.stories.d.ts.map +1 -0
  136. package/dist/types/src/stories/TranscriptionStory.d.ts +23 -0
  137. package/dist/types/src/stories/TranscriptionStory.d.ts.map +1 -0
  138. package/dist/types/src/stories/useIsSpeaking.d.ts.map +1 -0
  139. package/dist/types/src/testing/testing.d.ts +10 -10
  140. package/dist/types/src/testing/testing.d.ts.map +1 -1
  141. package/dist/types/src/transcriber/media-stream-recorder.d.ts +3 -3
  142. package/dist/types/src/transcriber/media-stream-recorder.d.ts.map +1 -1
  143. package/dist/types/src/transcriber/transcriber.d.ts +60 -5
  144. package/dist/types/src/transcriber/transcriber.d.ts.map +1 -1
  145. package/dist/types/src/transcriber/transcriber.test.d.ts +2 -0
  146. package/dist/types/src/transcriber/transcriber.test.d.ts.map +1 -0
  147. package/dist/types/src/transcriber/transcription-manager.d.ts +12 -13
  148. package/dist/types/src/transcriber/transcription-manager.d.ts.map +1 -1
  149. package/dist/types/src/translations.d.ts +10 -11
  150. package/dist/types/src/translations.d.ts.map +1 -1
  151. package/dist/types/src/types/TranscriptOperation.d.ts +917 -0
  152. package/dist/types/src/types/TranscriptOperation.d.ts.map +1 -0
  153. package/dist/types/src/types/TranscriptionCapabilities.d.ts +17 -0
  154. package/dist/types/src/types/TranscriptionCapabilities.d.ts.map +1 -0
  155. package/dist/types/src/types/defs.d.ts +5 -0
  156. package/dist/types/src/types/defs.d.ts.map +1 -0
  157. package/dist/types/src/types/index.d.ts +3 -2
  158. package/dist/types/src/types/index.d.ts.map +1 -1
  159. package/dist/types/src/util/array.d.ts.map +1 -1
  160. package/dist/types/src/util/get-time-str.d.ts.map +1 -1
  161. package/dist/types/src/util/index.d.ts +1 -0
  162. package/dist/types/src/util/index.d.ts.map +1 -1
  163. package/dist/types/src/util/monitor-audio-level.d.ts.map +1 -1
  164. package/dist/types/src/util/render-byline.d.ts +4 -0
  165. package/dist/types/src/util/render-byline.d.ts.map +1 -0
  166. package/dist/types/tsconfig.tsbuildinfo +1 -1
  167. package/package.json +152 -84
  168. package/src/TranscriptionPlugin.node.ts +20 -0
  169. package/src/TranscriptionPlugin.test.ts +31 -0
  170. package/src/TranscriptionPlugin.tsx +22 -61
  171. package/src/blueprints/index.ts +5 -0
  172. package/src/blueprints/transcription-blueprint.ts +29 -0
  173. package/src/capabilities/blueprint-definition.ts +19 -0
  174. package/src/capabilities/index.ts +11 -6
  175. package/src/capabilities/operation-handler.ts +16 -0
  176. package/src/capabilities/react-surface.tsx +23 -14
  177. package/src/capabilities/text-content.ts +33 -0
  178. package/src/capabilities/transcriber.ts +53 -41
  179. package/src/components/{Transcript/Transcript.stories.tsx → Transcription/Transcription.stories.tsx} +80 -75
  180. package/src/components/Transcription/Transcription.tsx +64 -0
  181. package/src/components/{Transcript → Transcription}/index.ts +1 -1
  182. package/src/components/{Transcript/transcript-extension.ts → Transcription/transcription-extension.ts} +15 -48
  183. package/src/components/index.ts +1 -6
  184. package/src/containers/TranscriptionContainer/TranscriptionContainer.tsx +35 -0
  185. package/src/containers/TranscriptionContainer/index.ts +5 -0
  186. package/src/containers/index.ts +7 -0
  187. package/src/hooks/useAudioFile.ts +49 -53
  188. package/src/hooks/useQueueModelAdapter.ts +1 -1
  189. package/src/hooks/useTranscriber.ts +15 -7
  190. package/src/hooks/useVoiceInput.ts +3 -3
  191. package/src/index.ts +4 -5
  192. package/src/meta.ts +9 -6
  193. package/src/model/model.test.ts +27 -21
  194. package/src/model/model.ts +3 -3
  195. package/src/{segments-normalization → normalization}/message-normalizer.ts +20 -19
  196. package/src/{segments-normalization → normalization}/normalization.test.ts +26 -33
  197. package/src/normalization/normalization.ts +76 -0
  198. package/src/{segments-normalization → normalization}/utils.ts +2 -2
  199. package/src/operations/create.ts +24 -0
  200. package/src/operations/index.ts +11 -0
  201. package/src/operations/open.ts +28 -0
  202. package/src/operations/summarize.ts +101 -0
  203. package/src/plugin.ts +11 -0
  204. package/src/stories/FileTranscription.stories.tsx +269 -0
  205. package/src/{components/stories → stories}/KeyWordRecognition.stories.tsx +46 -40
  206. package/src/stories/MicrophoneTranscription.stories.tsx +264 -0
  207. package/src/stories/TranscriptionStory.tsx +93 -0
  208. package/src/testing/testing.ts +41 -41
  209. package/src/transcriber/media-stream-recorder.ts +4 -4
  210. package/src/transcriber/transcriber.browser.test.ts +5 -5
  211. package/src/transcriber/transcriber.test.ts +104 -0
  212. package/src/transcriber/transcriber.ts +101 -62
  213. package/src/transcriber/transcription-manager.ts +37 -52
  214. package/src/translations.ts +12 -10
  215. package/src/types/TranscriptOperation.ts +103 -0
  216. package/src/types/TranscriptionCapabilities.ts +39 -0
  217. package/src/types/defs.ts +9 -0
  218. package/src/types/index.ts +4 -2
  219. package/src/util/index.ts +1 -0
  220. package/src/util/render-byline.ts +33 -0
  221. package/dist/lib/browser/TranscriptContainer-H3AZQ4CQ.mjs +0 -11
  222. package/dist/lib/browser/chunk-53AXUEIQ.mjs +0 -764
  223. package/dist/lib/browser/chunk-53AXUEIQ.mjs.map +0 -7
  224. package/dist/lib/browser/chunk-GOF7MJNV.mjs +0 -19
  225. package/dist/lib/browser/chunk-GOF7MJNV.mjs.map +0 -7
  226. package/dist/lib/browser/chunk-IQ5ZRMHZ.mjs.map +0 -7
  227. package/dist/lib/browser/chunk-OSISJM2F.mjs +0 -55
  228. package/dist/lib/browser/chunk-OSISJM2F.mjs.map +0 -7
  229. package/dist/lib/browser/chunk-UDCCT32F.mjs +0 -8
  230. package/dist/lib/browser/chunk-UDCCT32F.mjs.map +0 -7
  231. package/dist/lib/browser/chunk-W2KNYJD6.mjs +0 -16
  232. package/dist/lib/browser/chunk-W2KNYJD6.mjs.map +0 -7
  233. package/dist/lib/browser/index.mjs +0 -125
  234. package/dist/lib/browser/index.mjs.map +0 -7
  235. package/dist/lib/browser/intent-resolver-BGADCHVM.mjs +0 -30
  236. package/dist/lib/browser/intent-resolver-BGADCHVM.mjs.map +0 -7
  237. package/dist/lib/browser/meta.json +0 -1
  238. package/dist/lib/browser/react-surface-HMJS5FSS.mjs +0 -34
  239. package/dist/lib/browser/react-surface-HMJS5FSS.mjs.map +0 -7
  240. package/dist/lib/browser/transcriber-OYPLZFG5.mjs.map +0 -7
  241. package/dist/lib/browser/types/index.mjs +0 -14
  242. package/dist/lib/node/TranscriptContainer-KIG3GMAB.cjs +0 -32
  243. package/dist/lib/node/TranscriptContainer-KIG3GMAB.cjs.map +0 -7
  244. package/dist/lib/node/chunk-3PYT3BDM.cjs +0 -40
  245. package/dist/lib/node/chunk-3PYT3BDM.cjs.map +0 -7
  246. package/dist/lib/node/chunk-6LW5RA3K.cjs +0 -75
  247. package/dist/lib/node/chunk-6LW5RA3K.cjs.map +0 -7
  248. package/dist/lib/node/chunk-AFUZI63A.cjs +0 -42
  249. package/dist/lib/node/chunk-AFUZI63A.cjs.map +0 -7
  250. package/dist/lib/node/chunk-CVUN3UO7.cjs +0 -778
  251. package/dist/lib/node/chunk-CVUN3UO7.cjs.map +0 -7
  252. package/dist/lib/node/chunk-FKDJNJ57.cjs +0 -35
  253. package/dist/lib/node/chunk-FKDJNJ57.cjs.map +0 -7
  254. package/dist/lib/node/chunk-ZFAUMZXE.cjs +0 -518
  255. package/dist/lib/node/chunk-ZFAUMZXE.cjs.map +0 -7
  256. package/dist/lib/node/index.cjs +0 -133
  257. package/dist/lib/node/index.cjs.map +0 -7
  258. package/dist/lib/node/intent-resolver-LL3TTI4H.cjs +0 -45
  259. package/dist/lib/node/intent-resolver-LL3TTI4H.cjs.map +0 -7
  260. package/dist/lib/node/meta.json +0 -1
  261. package/dist/lib/node/react-surface-N25TBBG4.cjs +0 -56
  262. package/dist/lib/node/react-surface-N25TBBG4.cjs.map +0 -7
  263. package/dist/lib/node/transcriber-6J4FVFSZ.cjs +0 -68
  264. package/dist/lib/node/transcriber-6J4FVFSZ.cjs.map +0 -7
  265. package/dist/lib/node/types/index.cjs +0 -36
  266. package/dist/lib/node/types/index.cjs.map +0 -7
  267. package/dist/lib/node-esm/TranscriptContainer-G75LDEO5.mjs +0 -12
  268. package/dist/lib/node-esm/chunk-56QHOX4A.mjs +0 -765
  269. package/dist/lib/node-esm/chunk-56QHOX4A.mjs.map +0 -7
  270. package/dist/lib/node-esm/chunk-FH75X4JC.mjs +0 -56
  271. package/dist/lib/node-esm/chunk-FH75X4JC.mjs.map +0 -7
  272. package/dist/lib/node-esm/chunk-MFJO7EKD.mjs +0 -10
  273. package/dist/lib/node-esm/chunk-MFJO7EKD.mjs.map +0 -7
  274. package/dist/lib/node-esm/chunk-MFJPEIVB.mjs +0 -17
  275. package/dist/lib/node-esm/chunk-MFJPEIVB.mjs.map +0 -7
  276. package/dist/lib/node-esm/chunk-PRL64SRU.mjs +0 -496
  277. package/dist/lib/node-esm/chunk-PRL64SRU.mjs.map +0 -7
  278. package/dist/lib/node-esm/chunk-TXMDLLBR.mjs +0 -21
  279. package/dist/lib/node-esm/chunk-TXMDLLBR.mjs.map +0 -7
  280. package/dist/lib/node-esm/index.mjs +0 -126
  281. package/dist/lib/node-esm/index.mjs.map +0 -7
  282. package/dist/lib/node-esm/intent-resolver-5LVCYSJS.mjs +0 -31
  283. package/dist/lib/node-esm/intent-resolver-5LVCYSJS.mjs.map +0 -7
  284. package/dist/lib/node-esm/meta.json +0 -1
  285. package/dist/lib/node-esm/react-surface-JGQSYGRR.mjs +0 -35
  286. package/dist/lib/node-esm/react-surface-JGQSYGRR.mjs.map +0 -7
  287. package/dist/lib/node-esm/transcriber-TVG2MBBN.mjs +0 -57
  288. package/dist/lib/node-esm/transcriber-TVG2MBBN.mjs.map +0 -7
  289. package/dist/lib/node-esm/types/index.mjs +0 -15
  290. package/dist/types/src/capabilities/capabilities.d.ts +0 -17
  291. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  292. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  293. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  294. package/dist/types/src/components/Transcript/Transcript.d.ts +0 -20
  295. package/dist/types/src/components/Transcript/Transcript.d.ts.map +0 -1
  296. package/dist/types/src/components/Transcript/Transcript.stories.d.ts +0 -24
  297. package/dist/types/src/components/Transcript/Transcript.stories.d.ts.map +0 -1
  298. package/dist/types/src/components/Transcript/deprecated/OldTranscript.d.ts +0 -28
  299. package/dist/types/src/components/Transcript/deprecated/OldTranscript.d.ts.map +0 -1
  300. package/dist/types/src/components/Transcript/index.d.ts +0 -2
  301. package/dist/types/src/components/Transcript/index.d.ts.map +0 -1
  302. package/dist/types/src/components/Transcript/transcript-extension.d.ts +0 -19
  303. package/dist/types/src/components/Transcript/transcript-extension.d.ts.map +0 -1
  304. package/dist/types/src/components/TranscriptContainer.d.ts +0 -8
  305. package/dist/types/src/components/TranscriptContainer.d.ts.map +0 -1
  306. package/dist/types/src/components/stories/FileTranscription.stories.d.ts +0 -17
  307. package/dist/types/src/components/stories/FileTranscription.stories.d.ts.map +0 -1
  308. package/dist/types/src/components/stories/KeyWordRecognition.stories.d.ts +0 -10
  309. package/dist/types/src/components/stories/KeyWordRecognition.stories.d.ts.map +0 -1
  310. package/dist/types/src/components/stories/MicrophoneTranscription.stories.d.ts +0 -19
  311. package/dist/types/src/components/stories/MicrophoneTranscription.stories.d.ts.map +0 -1
  312. package/dist/types/src/components/stories/TranscriptionStory.d.ts +0 -11
  313. package/dist/types/src/components/stories/TranscriptionStory.d.ts.map +0 -1
  314. package/dist/types/src/components/stories/useIsSpeaking.d.ts.map +0 -1
  315. package/dist/types/src/segments-normalization/index.d.ts.map +0 -1
  316. package/dist/types/src/segments-normalization/message-normalizer.d.ts.map +0 -1
  317. package/dist/types/src/segments-normalization/normalization.d.ts +0 -329
  318. package/dist/types/src/segments-normalization/normalization.d.ts.map +0 -1
  319. package/dist/types/src/segments-normalization/normalization.test.d.ts.map +0 -1
  320. package/dist/types/src/segments-normalization/utils.d.ts +0 -3
  321. package/dist/types/src/segments-normalization/utils.d.ts.map +0 -1
  322. package/dist/types/src/types/schema.d.ts +0 -41
  323. package/dist/types/src/types/schema.d.ts.map +0 -1
  324. package/dist/types/src/types/types.d.ts +0 -31
  325. package/dist/types/src/types/types.d.ts.map +0 -1
  326. package/src/capabilities/capabilities.ts +0 -33
  327. package/src/capabilities/intent-resolver.ts +0 -24
  328. package/src/components/Transcript/Transcript.tsx +0 -100
  329. package/src/components/Transcript/deprecated/OldTranscript.tsx +0 -260
  330. package/src/components/TranscriptContainer.tsx +0 -30
  331. package/src/components/stories/FileTranscription.stories.tsx +0 -242
  332. package/src/components/stories/MicrophoneTranscription.stories.tsx +0 -280
  333. package/src/components/stories/TranscriptionStory.tsx +0 -41
  334. package/src/segments-normalization/normalization.ts +0 -105
  335. package/src/types/schema.ts +0 -41
  336. package/src/types/types.ts +0 -32
  337. package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  338. package/dist/lib/{browser/TranscriptContainer-H3AZQ4CQ.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  339. package/dist/lib/{node-esm/types → neutral/hooks}/index.mjs.map +0 -0
  340. package/dist/lib/{node-esm/TranscriptContainer-G75LDEO5.mjs.map → neutral/index.mjs.map} +0 -0
  341. package/dist/types/src/{segments-normalization → normalization}/normalization.test.d.ts +0 -0
  342. package/dist/types/src/{components/stories → stories}/useIsSpeaking.d.ts +0 -0
  343. package/src/{segments-normalization → normalization}/index.ts +1 -1
  344. /package/src/{components/stories → stories}/useIsSpeaking.tsx +0 -0
@@ -1,280 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { type Meta, type StoryObj } from '@storybook/react';
8
- import React, { useCallback, useEffect, useMemo, useState } from 'react';
9
-
10
- import { EdgeAiServiceClient } from '@dxos/ai';
11
- import { AI_SERVICE_ENDPOINT } from '@dxos/ai/testing';
12
- import { Events, IntentPlugin, SettingsPlugin } from '@dxos/app-framework';
13
- import { withPluginManager } from '@dxos/app-framework/testing';
14
- import {
15
- extractionAnthropicFn,
16
- type ExtractionFunction,
17
- extractionNerFn,
18
- processTranscriptMessage,
19
- getNer,
20
- } from '@dxos/assistant';
21
- import { Filter, Obj, type Type } from '@dxos/echo';
22
- import { MemoryQueue } from '@dxos/echo-db';
23
- import { createQueueDXN } from '@dxos/echo-schema';
24
- import { FunctionExecutor, ServiceContainer } from '@dxos/functions';
25
- import { invariant } from '@dxos/invariant';
26
- import { log } from '@dxos/log';
27
- import { ClientPlugin } from '@dxos/plugin-client';
28
- import { PreviewPlugin } from '@dxos/plugin-preview';
29
- import { SpacePlugin } from '@dxos/plugin-space';
30
- import { StorybookLayoutPlugin } from '@dxos/plugin-storybook-layout';
31
- import { ThemePlugin } from '@dxos/plugin-theme';
32
- import { IndexKind, useSpace } from '@dxos/react-client/echo';
33
- import { defaultTx } from '@dxos/react-ui-theme';
34
- import { DataType } from '@dxos/schema';
35
- import { seedTestData, Testing } from '@dxos/schema/testing';
36
- import { withLayout, withTheme } from '@dxos/storybook-utils';
37
-
38
- import { TranscriptionStory } from './TranscriptionStory';
39
- import { useIsSpeaking } from './useIsSpeaking';
40
- import { TranscriptionPlugin } from '../../TranscriptionPlugin';
41
- import { useAudioTrack, useQueueModelAdapter, useTranscriber } from '../../hooks';
42
- import { TestItem } from '../../testing';
43
- import { type MediaStreamRecorderParams, type TranscriberParams } from '../../transcriber';
44
- import { renderMarkdown } from '../Transcript';
45
-
46
- const TRANSCRIBER_CONFIG = {
47
- transcribeAfterChunksAmount: 50,
48
- prefixBufferChunksAmount: 10,
49
- };
50
-
51
- const RECORDER_CONFIG = {
52
- interval: 200,
53
- };
54
-
55
- type StoryProps = {
56
- detectSpeaking?: boolean;
57
- transcriberConfig: TranscriberParams['config'];
58
- recorderConfig: MediaStreamRecorderParams['config'];
59
- audioConstraints?: MediaTrackConstraints;
60
- entityExtraction: 'none' | 'ner' | 'llm';
61
- };
62
-
63
- const DefaultStory = ({
64
- detectSpeaking,
65
- entityExtraction = 'none',
66
- transcriberConfig,
67
- recorderConfig,
68
- audioConstraints,
69
- }: StoryProps) => {
70
- const [running, setRunning] = useState(false);
71
-
72
- // Audio.
73
- const track = useAudioTrack(running, audioConstraints);
74
-
75
- // Speaking.
76
- const isSpeaking = detectSpeaking ? useIsSpeaking(track) : true;
77
-
78
- // Queue.
79
- // TODO(dmaretskyi): Use space.queues.create() instead.
80
- const queueDxn = useMemo(() => createQueueDXN(), []);
81
- const queue = useMemo(() => new MemoryQueue<DataType.Message>(queueDxn), [queueDxn]);
82
- const model = useQueueModelAdapter(renderMarkdown([]), queue);
83
- const space = useSpace();
84
-
85
- useEffect(() => {
86
- if (!space) {
87
- log.warn('no space');
88
- }
89
- }, [space]);
90
-
91
- // Entity extraction.
92
- const { extractionFunction, executor, objects } = useMemo(() => {
93
- if (!space) {
94
- log.warn('no space');
95
- return {};
96
- }
97
-
98
- let executor: FunctionExecutor | undefined;
99
- let extractionFunction: ExtractionFunction | undefined;
100
- let objects: Promise<Type.Expando[]> | undefined;
101
-
102
- if (entityExtraction === 'ner') {
103
- // Init model loading. Takes time.
104
- void getNer();
105
- extractionFunction = extractionNerFn;
106
- } else if (entityExtraction === 'llm') {
107
- extractionFunction = extractionAnthropicFn;
108
- objects = space.db
109
- .query(
110
- Filter.or(
111
- Filter.type(DataType.Person),
112
- Filter.type(DataType.Organization),
113
- Filter.type(Testing.DocumentType),
114
- ),
115
- )
116
- .run()
117
- .then((result) => result.objects);
118
- }
119
- if (entityExtraction !== 'none') {
120
- const AiService = new EdgeAiServiceClient({
121
- endpoint: AI_SERVICE_ENDPOINT.REMOTE,
122
- });
123
- executor = new FunctionExecutor(
124
- new ServiceContainer().setServices({ ai: { client: AiService }, database: { db: space!.db } }),
125
- );
126
- }
127
-
128
- return { extractionFunction, executor, objects };
129
- }, [entityExtraction, space]);
130
-
131
- // Transcriber.
132
- const handleSegments = useCallback<TranscriberParams['onSegments']>(
133
- async (blocks) => {
134
- const message = Obj.make(DataType.Message, {
135
- sender: { name: 'You' },
136
- created: new Date().toISOString(),
137
- blocks,
138
- });
139
- if (!space) {
140
- void queue.append([message]);
141
- return;
142
- }
143
-
144
- if (entityExtraction !== 'none') {
145
- invariant(extractionFunction, 'extractionFunction is required');
146
- invariant(executor, 'executor is required');
147
- const result = await processTranscriptMessage({
148
- executor,
149
- function: extractionFunction,
150
- input: {
151
- message,
152
- objects: await objects,
153
- },
154
- options: {
155
- fallbackToRaw: true,
156
- timeout: 30_000,
157
- },
158
- });
159
- void queue.append([result.message]);
160
- } else {
161
- void queue.append([message]);
162
- }
163
- },
164
- [queue, space],
165
- );
166
-
167
- const transcriber = useTranscriber({
168
- audioStreamTrack: track,
169
- onSegments: handleSegments,
170
- transcriberConfig,
171
- recorderConfig,
172
- });
173
- const [isOpen, setIsOpen] = useState(false);
174
- useEffect(() => {
175
- void transcriber?.open().then(() => setIsOpen(true));
176
- return () => {
177
- void transcriber?.close().then(() => setIsOpen(false));
178
- };
179
- }, [transcriber]);
180
-
181
- // Manage transcription state.
182
- useEffect(() => {
183
- if (running && transcriber?.isOpen && isSpeaking) {
184
- transcriber?.startChunksRecording();
185
- } else if (!running || !isSpeaking) {
186
- transcriber?.stopChunksRecording();
187
- }
188
- }, [transcriber, running, isOpen, isSpeaking]);
189
-
190
- return <TranscriptionStory model={model} running={running} onRunningChange={setRunning} />;
191
- };
192
-
193
- const meta: Meta<typeof DefaultStory> = {
194
- title: 'plugins/plugin-transcription/MicrophoneTranscription',
195
- render: DefaultStory,
196
- decorators: [
197
- withPluginManager({
198
- plugins: [
199
- ThemePlugin({ tx: defaultTx }),
200
- StorybookLayoutPlugin(),
201
- ClientPlugin({
202
- types: [TestItem, DataType.Person, DataType.Organization, Testing.DocumentType],
203
- onClientInitialized: async (_, client) => {
204
- await client.halo.createIdentity();
205
- await client.spaces.waitUntilReady();
206
- await client.spaces.default.waitUntilReady();
207
- // TODO(mykola): Make API easier to use.
208
- // TODO(mykola): Delete after enabling vector indexing by default.
209
- // Enable vector indexing.
210
- await client.services.services.QueryService!.setConfig({
211
- enabled: true,
212
- indexes: [
213
- //
214
- { kind: IndexKind.Kind.SCHEMA_MATCH },
215
- { kind: IndexKind.Kind.GRAPH },
216
- { kind: IndexKind.Kind.VECTOR },
217
- ],
218
- });
219
- await client.services.services.QueryService!.reindex();
220
- await seedTestData(client.spaces.default);
221
- },
222
- }),
223
- SpacePlugin(),
224
- SettingsPlugin(),
225
- PreviewPlugin(),
226
- IntentPlugin(),
227
- TranscriptionPlugin(),
228
- ],
229
- fireEvents: [Events.SetupAppGraph],
230
- }),
231
- withTheme,
232
- withLayout({ fullscreen: true, classNames: 'justify-center' }),
233
- ],
234
- };
235
-
236
- export default meta;
237
-
238
- type Story = StoryObj<typeof DefaultStory>;
239
-
240
- export const Default: Story = {
241
- args: {
242
- detectSpeaking: false,
243
- entityExtraction: 'none',
244
- transcriberConfig: TRANSCRIBER_CONFIG,
245
- recorderConfig: RECORDER_CONFIG,
246
- audioConstraints: {
247
- echoCancellation: false,
248
- noiseSuppression: false,
249
- autoGainControl: false,
250
- },
251
- },
252
- };
253
-
254
- export const EntityExtraction: Story = {
255
- args: {
256
- detectSpeaking: true,
257
- entityExtraction: 'ner',
258
- transcriberConfig: TRANSCRIBER_CONFIG,
259
- recorderConfig: RECORDER_CONFIG,
260
- audioConstraints: {
261
- echoCancellation: true,
262
- noiseSuppression: true,
263
- autoGainControl: true,
264
- },
265
- },
266
- };
267
-
268
- export const SpeechDetection: Story = {
269
- args: {
270
- detectSpeaking: true,
271
- entityExtraction: 'none',
272
- transcriberConfig: TRANSCRIBER_CONFIG,
273
- recorderConfig: RECORDER_CONFIG,
274
- audioConstraints: {
275
- echoCancellation: true,
276
- noiseSuppression: true,
277
- autoGainControl: true,
278
- },
279
- },
280
- };
@@ -1,41 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import React, { type Dispatch, type FC, type RefObject, type SetStateAction } from 'react';
8
-
9
- import { useSpace } from '@dxos/react-client/echo';
10
- import { IconButton, Toolbar } from '@dxos/react-ui';
11
- import { ScrollContainer } from '@dxos/react-ui-components';
12
- import { type DataType } from '@dxos/schema';
13
-
14
- import { type SerializationModel } from '../../model';
15
- import { Transcript } from '../Transcript';
16
-
17
- export const TranscriptionStory: FC<{
18
- model: SerializationModel<DataType.Message>;
19
- running: boolean;
20
- onRunningChange: Dispatch<SetStateAction<boolean>>;
21
- audioRef?: RefObject<HTMLAudioElement>;
22
- }> = ({ model, running, onRunningChange, audioRef }) => {
23
- const space = useSpace();
24
-
25
- return (
26
- <div className='flex flex-col w-[30rem]'>
27
- {audioRef && <audio ref={audioRef} autoPlay />}
28
- <Toolbar.Root>
29
- <IconButton
30
- iconOnly
31
- icon={running ? 'ph--pause--regular' : 'ph--play--regular'}
32
- label={running ? 'Pause' : 'Play'}
33
- onClick={() => onRunningChange((running) => !running)}
34
- />
35
- </Toolbar.Root>
36
- <ScrollContainer>
37
- <Transcript space={space} model={model} attendableId='story' />
38
- </ScrollContainer>
39
- </div>
40
- );
41
- };
@@ -1,105 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Schema } from 'effect';
6
-
7
- import { DEFAULT_EDGE_MODEL, Message } from '@dxos/ai';
8
- import { AISession } from '@dxos/assistant';
9
- import { Obj } from '@dxos/echo';
10
- import { AiService, defineFunction } from '@dxos/functions';
11
- import { ObjectId } from '@dxos/keys';
12
- import { log } from '@dxos/log';
13
- import { DataType } from '@dxos/schema';
14
-
15
- const MessageWithRangeId = Schema.extend(
16
- DataType.Message,
17
- Schema.Struct({
18
- // TODO(mykola): Move to meta in DataType.Message. Use `DataType.Message` instead.
19
- rangeId: Schema.optional(Schema.Array(Schema.String)).annotations({
20
- description: 'The IDs of the messages that contain the sentences.',
21
- }),
22
- }),
23
- );
24
-
25
- export interface MessageWithRangeId extends Schema.Schema.Type<typeof MessageWithRangeId> {}
26
-
27
- export const NormalizationInput = Schema.Struct({
28
- // TODO(mykola): Move to meta in DataType.Message. Use `DataType.Message` instead.
29
- messages: Schema.Array(MessageWithRangeId).annotations({
30
- description: 'Messages to normalize into sentences.',
31
- }),
32
- });
33
- export interface NormalizationInput extends Schema.Schema.Type<typeof NormalizationInput> {}
34
-
35
- export const NormalizationOutput = Schema.Struct({
36
- sentences: Schema.Array(MessageWithRangeId.pipe(Schema.mutable)).pipe(Schema.mutable).annotations({
37
- description: 'The sentences of the transcript.',
38
- }),
39
- });
40
- export interface NormalizationOutput extends Schema.Schema.Type<typeof NormalizationOutput> {}
41
-
42
- const prompt = `
43
- You are observing a real-time transcript of a single person speaking.
44
- The transcription is delivered in chunks of 10 seconds or less. As a result, individual sentences may be split across multiple messages, or multiple sentences may appear within a single message. Additionally, because this is real-time transcription, punctuation and capitalization may be incorrect or missing.
45
-
46
- # Task Description:
47
- - Your task is to detect and reconstruct broken or incomplete sentences by merging segments into coherent, grammatically correct sentences where appropriate.
48
-
49
- # Input Format:
50
- - The input is an array of messages that contain transcription blocks.
51
- - Each message is a DataType.Message, as described in the output format.
52
-
53
- # Output Format:
54
- - You have been provided with the tool that defines the output format; make sure to query it.
55
- - Do not output anything other than the expected format.
56
-
57
- # Segment Handling Rules:
58
- - Sort messages by timestamp.
59
- - Leave ID of the first message in a sentence.
60
- - Each divided sentence should be added to the output as a separate message or block within existing messages, preserving the original order.
61
- - If one message contains multiple sentences, you should not split them.
62
- - The last sentence may be incomplete; it should still be output as a separate block or message.
63
- - Keep track of the original timestamps of the messages and blocks and, use the timestamp of the first message/block of a sentence as the 'started' field of the merged message.
64
- - The 'rangeId' field of the merged message should include 'messageId'-s and 'rangeId'-s of all messages that have been used to construct this message.
65
-
66
- # Punctuation and Capitalization:
67
- - Do not rely on the original punctuation and capitalization—they may be incorrect.
68
- - Use logical reasoning to apply appropriate punctuation (e.g., period, comma, question mark, exclamation mark) and capitalization.
69
-
70
- # Restrictions:
71
- - Do not alter the order of the original messages; maintain the natural flow of speech.
72
- - Do not interpret or infer meaning beyond reconstructing sentences.
73
- - Do not add or remove any words or phrases.
74
- `;
75
-
76
- export const sentenceNormalization = defineFunction<NormalizationInput, NormalizationOutput>({
77
- description: 'Post process of transcription for sentence normalization',
78
- inputSchema: NormalizationInput,
79
- outputSchema: NormalizationOutput,
80
- handler: async ({ data: { messages }, context }) => {
81
- log.info('input', { messages });
82
- const ai = context.getService(AiService);
83
- const session = new AISession({ operationModel: 'configured' });
84
-
85
- const response = await session.runStructured(NormalizationOutput, {
86
- generationOptions: { model: DEFAULT_EDGE_MODEL },
87
- client: ai.client,
88
- tools: [],
89
- artifacts: [],
90
- history: [
91
- Obj.make(Message, {
92
- role: 'user',
93
- content: messages.map((message) => ({ type: 'text', text: JSON.stringify(message) }) as const),
94
- }),
95
- ],
96
- prompt,
97
- });
98
-
99
- response.sentences.forEach((sentence) => {
100
- sentence.id = ObjectId.random();
101
- });
102
- log.info('response', { response });
103
- return response;
104
- },
105
- });
@@ -1,41 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Schema } from 'effect';
6
-
7
- import { Queue } from '@dxos/client/echo';
8
- import { Type } from '@dxos/echo';
9
- import { TypedObject } from '@dxos/echo-schema';
10
-
11
- /**
12
- * Root transcript object created when the user starts a transcription.
13
- */
14
- export const TranscriptSchema = Schema.Struct({
15
- // TODO(wittjosiah): Remove?
16
- // TODO(burdon): Use Date or string?
17
- started: Schema.optional(Schema.String),
18
- ended: Schema.optional(Schema.String),
19
-
20
- /**
21
- * Queue containing TranscriptBlock objects.
22
- */
23
- queue: Type.Ref(Queue),
24
- });
25
-
26
- export class TranscriptType extends TypedObject({
27
- typename: 'dxos.org/type/Transcript',
28
- version: '0.1.0',
29
- })(TranscriptSchema.fields) {}
30
-
31
- // TODO(burdon): Do these need to be kept in sync with EDGE?
32
-
33
- /**
34
- * First message in queue.
35
- * Contains metadata for the recording and transcript.
36
- */
37
- const TranscriptHeader = Schema.Struct({
38
- started: Schema.optional(Schema.String),
39
- });
40
-
41
- export type TranscriptHeader = Schema.Schema.Type<typeof TranscriptHeader>;
@@ -1,32 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Schema } from 'effect';
6
-
7
- import { SpaceId } from '@dxos/react-client/echo';
8
-
9
- import { TranscriptType } from './schema';
10
- import { TRANSCRIPTION_PLUGIN } from '../meta';
11
-
12
- // TODO(burdon): Move to separate proto.
13
-
14
- /**
15
- * Endpoint to the calls service.
16
- */
17
- // TODO(burdon): Reconfigure/move.
18
- export const TRANSCRIPTION_URL = 'https://calls-service.dxos.workers.dev';
19
-
20
- export namespace TranscriptionAction {
21
- const TRANSCRIPTION_ACTION = `${TRANSCRIPTION_PLUGIN}/action`;
22
-
23
- export class Create extends Schema.TaggedClass<Create>()(`${TRANSCRIPTION_ACTION}/create`, {
24
- input: Schema.Struct({
25
- name: Schema.optional(Schema.String),
26
- spaceId: SpaceId,
27
- }),
28
- output: Schema.Struct({
29
- object: TranscriptType,
30
- }),
31
- }) {}
32
- }
@@ -2,6 +2,6 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './normalization';
6
5
  export * from './message-normalizer';
6
+ export * from './normalization';
7
7
  export * from './utils';