@dxos/plugin-transcription 0.9.1-main.c7dcc2e112 → 0.10.0

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 (309) hide show
  1. package/PLUGIN.mdl +5 -5
  2. package/dist/lib/neutral/{TranscriptionArticle-S56VVOSF.mjs → TranscriptionArticle-FEWCWG4A.mjs} +3 -6
  3. package/dist/lib/neutral/TranscriptionArticle-FEWCWG4A.mjs.map +7 -0
  4. package/dist/lib/neutral/TranscriptionPlugin.mjs +25 -4
  5. package/dist/lib/neutral/TranscriptionPlugin.mjs.map +3 -3
  6. package/dist/lib/neutral/TranscriptionPlugin.node.mjs +3 -3
  7. package/dist/lib/neutral/TranscriptionPlugin.node.mjs.map +3 -3
  8. package/dist/lib/neutral/app-graph-builder-GQRMI22E.mjs +48 -0
  9. package/dist/lib/neutral/app-graph-builder-GQRMI22E.mjs.map +7 -0
  10. package/dist/lib/neutral/capabilities/index.mjs +17 -5
  11. package/dist/lib/neutral/capabilities/index.mjs.map +3 -3
  12. package/dist/lib/neutral/{chunk-XZVDAYM6.mjs → chunk-5BVHY75B.mjs} +2 -2
  13. package/dist/lib/neutral/{chunk-XZVDAYM6.mjs.map → chunk-5BVHY75B.mjs.map} +1 -1
  14. package/dist/lib/neutral/chunk-HNXSU7HJ.mjs +8 -0
  15. package/dist/lib/neutral/chunk-KOXLGGSL.mjs +30 -0
  16. package/dist/lib/neutral/chunk-KOXLGGSL.mjs.map +7 -0
  17. package/dist/lib/neutral/{chunk-2URVUJT4.mjs → chunk-MDV7NBFJ.mjs} +31 -8
  18. package/dist/lib/neutral/chunk-MDV7NBFJ.mjs.map +7 -0
  19. package/dist/lib/neutral/components/index.mjs +114 -258
  20. package/dist/lib/neutral/components/index.mjs.map +4 -4
  21. package/dist/lib/neutral/containers/index.mjs +1 -1
  22. package/dist/lib/neutral/{create-7NGOP7JP.mjs → create-HNHGCKZ4.mjs} +2 -2
  23. package/dist/lib/neutral/{enrich-message-F2AOM53F.mjs → enrich-message-DSJU4TXC.mjs} +2 -2
  24. package/dist/lib/neutral/entity-lookup-PCDW7NC4.mjs +25 -0
  25. package/dist/lib/neutral/entity-lookup-PCDW7NC4.mjs.map +7 -0
  26. package/dist/lib/neutral/hooks/index.mjs +93 -15
  27. package/dist/lib/neutral/hooks/index.mjs.map +4 -4
  28. package/dist/lib/neutral/index.mjs +6 -32
  29. package/dist/lib/neutral/markdown-extension-CCDXXY7E.mjs +16 -0
  30. package/dist/lib/neutral/markdown-extension-CCDXXY7E.mjs.map +7 -0
  31. package/dist/lib/neutral/meta.json +1 -1
  32. package/dist/lib/neutral/meta.mjs +1 -1
  33. package/dist/lib/neutral/{open-42H72C4G.mjs → open-SNMZXXYO.mjs} +4 -6
  34. package/dist/lib/neutral/open-SNMZXXYO.mjs.map +7 -0
  35. package/dist/lib/neutral/operations/index.mjs +1 -1
  36. package/dist/lib/neutral/pipeline-status-XMWMAUJY.mjs +17 -0
  37. package/dist/lib/neutral/pipeline-status-XMWMAUJY.mjs.map +7 -0
  38. package/dist/lib/neutral/plugin.mjs +2 -2
  39. package/dist/lib/neutral/recording-session-IADO7ATU.mjs +15 -0
  40. package/dist/lib/neutral/recording-session-IADO7ATU.mjs.map +7 -0
  41. package/dist/lib/neutral/{settings-DUS32HOM.mjs → settings-7KE4MABW.mjs} +3 -2
  42. package/dist/lib/neutral/{settings-DUS32HOM.mjs.map → settings-7KE4MABW.mjs.map} +3 -3
  43. package/dist/lib/neutral/skill-definition-DXNK324V.mjs +15 -0
  44. package/dist/lib/neutral/skill-definition-DXNK324V.mjs.map +7 -0
  45. package/dist/lib/neutral/skills/index.mjs +8 -0
  46. package/dist/lib/neutral/{summarize-45WVUPED.mjs → summarize-LBUZTOTH.mjs} +4 -4
  47. package/dist/lib/neutral/summarize-LBUZTOTH.mjs.map +7 -0
  48. package/dist/lib/neutral/{text-content-XZ3HK4OT.mjs → text-content-NOWR642C.mjs} +2 -4
  49. package/dist/lib/neutral/text-content-NOWR642C.mjs.map +7 -0
  50. package/dist/lib/neutral/transcriber-6XZHUUHK.mjs +174 -0
  51. package/dist/lib/neutral/transcriber-6XZHUUHK.mjs.map +7 -0
  52. package/dist/lib/neutral/transcription-driver-DN6ELQXZ.mjs +207 -0
  53. package/dist/lib/neutral/transcription-driver-DN6ELQXZ.mjs.map +7 -0
  54. package/dist/lib/neutral/translations.mjs +7 -0
  55. package/dist/lib/neutral/translations.mjs.map +2 -2
  56. package/dist/lib/neutral/types/index.mjs +1 -1
  57. package/dist/types/src/TranscriptionPlugin.d.ts.map +1 -1
  58. package/dist/types/src/capabilities/app-graph-builder.d.ts +5 -0
  59. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  60. package/dist/types/src/capabilities/entity-lookup.d.ts +10 -0
  61. package/dist/types/src/capabilities/entity-lookup.d.ts.map +1 -0
  62. package/dist/types/src/capabilities/index.d.ts +7 -1
  63. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/markdown-extension.d.ts +5 -0
  65. package/dist/types/src/capabilities/markdown-extension.d.ts.map +1 -0
  66. package/dist/types/src/capabilities/pipeline-status.d.ts +9 -0
  67. package/dist/types/src/capabilities/pipeline-status.d.ts.map +1 -0
  68. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  69. package/dist/types/src/capabilities/recording-session.d.ts +5 -0
  70. package/dist/types/src/capabilities/recording-session.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/settings.d.ts +1 -3
  72. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/skill-definition.d.ts +5 -0
  74. package/dist/types/src/capabilities/skill-definition.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/text-content.d.ts +1 -4
  76. package/dist/types/src/capabilities/transcriber.d.ts +4 -3
  77. package/dist/types/src/capabilities/transcriber.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/transcription-driver.d.ts +5 -0
  79. package/dist/types/src/capabilities/transcription-driver.d.ts.map +1 -0
  80. package/dist/types/src/components/Mic/Mic.d.ts +12 -0
  81. package/dist/types/src/components/Mic/Mic.d.ts.map +1 -0
  82. package/dist/types/src/components/{Oracle/Oracle.stories.d.ts → Mic/Mic.stories.d.ts} +9 -7
  83. package/dist/types/src/components/Mic/Mic.stories.d.ts.map +1 -0
  84. package/dist/types/src/components/Mic/index.d.ts +2 -0
  85. package/dist/types/src/components/Mic/index.d.ts.map +1 -0
  86. package/dist/types/src/components/index.d.ts +1 -2
  87. package/dist/types/src/components/index.d.ts.map +1 -1
  88. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.d.ts.map +1 -1
  89. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.stories.d.ts +7 -0
  90. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.stories.d.ts.map +1 -1
  91. package/dist/types/src/hooks/index.d.ts +0 -5
  92. package/dist/types/src/hooks/index.d.ts.map +1 -1
  93. package/dist/types/src/hooks/useTranscriptionRecording.d.ts.map +1 -1
  94. package/dist/types/src/index.d.ts +1 -3
  95. package/dist/types/src/index.d.ts.map +1 -1
  96. package/dist/types/src/meta.d.ts +4 -0
  97. package/dist/types/src/meta.d.ts.map +1 -1
  98. package/dist/types/src/normalization/message-normalizer.d.ts +2 -2
  99. package/dist/types/src/normalization/message-normalizer.d.ts.map +1 -1
  100. package/dist/types/src/normalization/normalization.d.ts +98 -733
  101. package/dist/types/src/normalization/normalization.d.ts.map +1 -1
  102. package/dist/types/src/operations/open.d.ts.map +1 -1
  103. package/dist/types/src/operations/summarize.d.ts.map +1 -1
  104. package/dist/types/src/skills/index.d.ts +2 -0
  105. package/dist/types/src/skills/index.d.ts.map +1 -0
  106. package/dist/types/src/skills/transcription-skill.d.ts +4 -0
  107. package/dist/types/src/skills/transcription-skill.d.ts.map +1 -0
  108. package/dist/types/src/stories/Keyword.stories.d.ts +51 -0
  109. package/dist/types/src/stories/Keyword.stories.d.ts.map +1 -0
  110. package/dist/types/src/stories/Pipeline.stories.d.ts +60 -0
  111. package/dist/types/src/stories/Pipeline.stories.d.ts.map +1 -0
  112. package/dist/types/src/stories/Transcription.stories.d.ts +23 -0
  113. package/dist/types/src/stories/Transcription.stories.d.ts.map +1 -0
  114. package/dist/types/src/testing/decorators.d.ts +21 -0
  115. package/dist/types/src/testing/decorators.d.ts.map +1 -0
  116. package/dist/types/src/testing/index.d.ts +1 -0
  117. package/dist/types/src/testing/index.d.ts.map +1 -1
  118. package/dist/types/src/testing/testing.d.ts +3 -9
  119. package/dist/types/src/testing/testing.d.ts.map +1 -1
  120. package/dist/types/src/{transcriber/transcription-manager.d.ts → transcription-manager.d.ts} +6 -5
  121. package/dist/types/src/transcription-manager.d.ts.map +1 -0
  122. package/dist/types/src/translations.d.ts +7 -0
  123. package/dist/types/src/translations.d.ts.map +1 -1
  124. package/dist/types/src/types/Settings.d.ts +6 -0
  125. package/dist/types/src/types/Settings.d.ts.map +1 -1
  126. package/dist/types/src/types/TranscriptOperation.d.ts +114 -1971
  127. package/dist/types/src/types/TranscriptOperation.d.ts.map +1 -1
  128. package/dist/types/src/types/TranscriptionCapabilities.d.ts +51 -13
  129. package/dist/types/src/types/TranscriptionCapabilities.d.ts.map +1 -1
  130. package/dist/types/src/util/index.d.ts +0 -2
  131. package/dist/types/src/util/index.d.ts.map +1 -1
  132. package/dist/types/tsconfig.tsbuildinfo +1 -1
  133. package/dx.config.ts +1 -1
  134. package/package.json +68 -69
  135. package/src/TranscriptionPlugin.node.ts +2 -2
  136. package/src/TranscriptionPlugin.test.ts +1 -1
  137. package/src/TranscriptionPlugin.tsx +31 -2
  138. package/src/capabilities/app-graph-builder.tsx +49 -0
  139. package/src/capabilities/entity-lookup.ts +32 -0
  140. package/src/capabilities/index.ts +7 -1
  141. package/src/capabilities/markdown-extension.ts +17 -0
  142. package/src/capabilities/pipeline-status.ts +23 -0
  143. package/src/capabilities/recording-session.ts +17 -0
  144. package/src/capabilities/settings.ts +1 -0
  145. package/src/capabilities/skill-definition.ts +15 -0
  146. package/src/capabilities/text-content.ts +1 -2
  147. package/src/capabilities/transcriber.ts +5 -48
  148. package/src/capabilities/transcription-driver.tsx +263 -0
  149. package/src/components/Mic/Mic.stories.tsx +66 -0
  150. package/src/components/Mic/Mic.tsx +136 -0
  151. package/src/components/Mic/index.ts +5 -0
  152. package/src/components/index.ts +1 -2
  153. package/src/containers/TranscriptionArticle/TranscriptionArticle.stories.tsx +4 -0
  154. package/src/containers/TranscriptionArticle/TranscriptionArticle.tsx +4 -5
  155. package/src/hooks/index.ts +0 -5
  156. package/src/hooks/useTranscriptionRecording.ts +4 -8
  157. package/src/index.ts +1 -5
  158. package/src/normalization/message-normalizer.ts +3 -3
  159. package/src/normalization/normalization.ts +3 -0
  160. package/src/operations/open.ts +2 -2
  161. package/src/operations/summarize.ts +2 -2
  162. package/src/skills/index.ts +5 -0
  163. package/src/skills/transcription-skill.ts +29 -0
  164. package/src/stories/Keyword.stories.tsx +98 -0
  165. package/src/stories/Pipeline.stories.tsx +361 -0
  166. package/src/stories/Transcription.stories.tsx +178 -0
  167. package/src/testing/decorators.ts +78 -0
  168. package/src/testing/index.ts +1 -0
  169. package/src/testing/testing.ts +13 -48
  170. package/src/{transcriber/transcription-manager.ts → transcription-manager.ts} +13 -12
  171. package/src/translations.ts +8 -0
  172. package/src/types/Settings.ts +38 -0
  173. package/src/types/TranscriptOperation.ts +6 -4
  174. package/src/types/TranscriptionCapabilities.ts +57 -21
  175. package/src/util/index.ts +0 -2
  176. package/dist/lib/neutral/TranscriptionArticle-S56VVOSF.mjs.map +0 -7
  177. package/dist/lib/neutral/blueprint-definition-DA4QFRYJ.mjs +0 -15
  178. package/dist/lib/neutral/blueprint-definition-DA4QFRYJ.mjs.map +0 -7
  179. package/dist/lib/neutral/blueprints/index.mjs +0 -8
  180. package/dist/lib/neutral/chunk-2URVUJT4.mjs.map +0 -7
  181. package/dist/lib/neutral/chunk-J4ONEYPJ.mjs +0 -8
  182. package/dist/lib/neutral/chunk-MLRJWAQH.mjs +0 -179
  183. package/dist/lib/neutral/chunk-MLRJWAQH.mjs.map +0 -7
  184. package/dist/lib/neutral/chunk-XMHH34NI.mjs +0 -318
  185. package/dist/lib/neutral/chunk-XMHH34NI.mjs.map +0 -7
  186. package/dist/lib/neutral/chunk-XOXHWMXR.mjs +0 -35
  187. package/dist/lib/neutral/chunk-XOXHWMXR.mjs.map +0 -7
  188. package/dist/lib/neutral/chunk-XWC5BBOY.mjs +0 -435
  189. package/dist/lib/neutral/chunk-XWC5BBOY.mjs.map +0 -7
  190. package/dist/lib/neutral/chunk-ZR4BH4QQ.mjs +0 -30
  191. package/dist/lib/neutral/chunk-ZR4BH4QQ.mjs.map +0 -7
  192. package/dist/lib/neutral/open-42H72C4G.mjs.map +0 -7
  193. package/dist/lib/neutral/summarize-45WVUPED.mjs.map +0 -7
  194. package/dist/lib/neutral/text-content-XZ3HK4OT.mjs.map +0 -7
  195. package/dist/lib/neutral/transcriber-KYV6NWI5.mjs +0 -59
  196. package/dist/lib/neutral/transcriber-KYV6NWI5.mjs.map +0 -7
  197. package/dist/types/src/blueprints/index.d.ts +0 -2
  198. package/dist/types/src/blueprints/index.d.ts.map +0 -1
  199. package/dist/types/src/blueprints/transcription-blueprint.d.ts +0 -4
  200. package/dist/types/src/blueprints/transcription-blueprint.d.ts.map +0 -1
  201. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -6
  202. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  203. package/dist/types/src/components/Oracle/Oracle.d.ts +0 -24
  204. package/dist/types/src/components/Oracle/Oracle.d.ts.map +0 -1
  205. package/dist/types/src/components/Oracle/Oracle.stories.d.ts.map +0 -1
  206. package/dist/types/src/components/Oracle/index.d.ts +0 -2
  207. package/dist/types/src/components/Oracle/index.d.ts.map +0 -1
  208. package/dist/types/src/components/Transcription/Transcription.d.ts +0 -11
  209. package/dist/types/src/components/Transcription/Transcription.d.ts.map +0 -1
  210. package/dist/types/src/components/Transcription/Transcription.stories.d.ts +0 -37
  211. package/dist/types/src/components/Transcription/Transcription.stories.d.ts.map +0 -1
  212. package/dist/types/src/components/Transcription/index.d.ts +0 -2
  213. package/dist/types/src/components/Transcription/index.d.ts.map +0 -1
  214. package/dist/types/src/components/Transcription/transcription-extension.d.ts +0 -15
  215. package/dist/types/src/components/Transcription/transcription-extension.d.ts.map +0 -1
  216. package/dist/types/src/enrichment/conversation.test.d.ts +0 -2
  217. package/dist/types/src/enrichment/conversation.test.d.ts.map +0 -1
  218. package/dist/types/src/enrichment/operations.d.ts +0 -200
  219. package/dist/types/src/enrichment/operations.d.ts.map +0 -1
  220. package/dist/types/src/enrichment/parser.d.ts +0 -26
  221. package/dist/types/src/enrichment/parser.d.ts.map +0 -1
  222. package/dist/types/src/enrichment/stream-simulator.d.ts +0 -38
  223. package/dist/types/src/enrichment/stream-simulator.d.ts.map +0 -1
  224. package/dist/types/src/hooks/useAudioFile.d.ts +0 -7
  225. package/dist/types/src/hooks/useAudioFile.d.ts.map +0 -1
  226. package/dist/types/src/hooks/useAudioTrack.d.ts +0 -5
  227. package/dist/types/src/hooks/useAudioTrack.d.ts.map +0 -1
  228. package/dist/types/src/hooks/useFeedModelAdapter.d.ts +0 -12
  229. package/dist/types/src/hooks/useFeedModelAdapter.d.ts.map +0 -1
  230. package/dist/types/src/hooks/useTranscriber.d.ts +0 -7
  231. package/dist/types/src/hooks/useTranscriber.d.ts.map +0 -1
  232. package/dist/types/src/hooks/useVoiceInput.d.ts +0 -11
  233. package/dist/types/src/hooks/useVoiceInput.d.ts.map +0 -1
  234. package/dist/types/src/model/index.d.ts +0 -2
  235. package/dist/types/src/model/index.d.ts.map +0 -1
  236. package/dist/types/src/model/model.d.ts +0 -68
  237. package/dist/types/src/model/model.d.ts.map +0 -1
  238. package/dist/types/src/model/model.test.d.ts +0 -2
  239. package/dist/types/src/model/model.test.d.ts.map +0 -1
  240. package/dist/types/src/stories/FileTranscription.stories.d.ts +0 -20
  241. package/dist/types/src/stories/FileTranscription.stories.d.ts.map +0 -1
  242. package/dist/types/src/stories/KeyWordRecognition.stories.d.ts +0 -14
  243. package/dist/types/src/stories/KeyWordRecognition.stories.d.ts.map +0 -1
  244. package/dist/types/src/stories/LiveTranscription.stories.d.ts +0 -19
  245. package/dist/types/src/stories/LiveTranscription.stories.d.ts.map +0 -1
  246. package/dist/types/src/stories/ProperNounExtraction.stories.d.ts +0 -13
  247. package/dist/types/src/stories/ProperNounExtraction.stories.d.ts.map +0 -1
  248. package/dist/types/src/stories/TranscriptionStory.d.ts +0 -21
  249. package/dist/types/src/stories/TranscriptionStory.d.ts.map +0 -1
  250. package/dist/types/src/stories/common.d.ts +0 -248
  251. package/dist/types/src/stories/common.d.ts.map +0 -1
  252. package/dist/types/src/transcriber/audio-recorder.d.ts +0 -47
  253. package/dist/types/src/transcriber/audio-recorder.d.ts.map +0 -1
  254. package/dist/types/src/transcriber/index.d.ts +0 -5
  255. package/dist/types/src/transcriber/index.d.ts.map +0 -1
  256. package/dist/types/src/transcriber/media-stream-recorder.d.ts +0 -30
  257. package/dist/types/src/transcriber/media-stream-recorder.d.ts.map +0 -1
  258. package/dist/types/src/transcriber/transcriber.browser.test.d.ts +0 -2
  259. package/dist/types/src/transcriber/transcriber.browser.test.d.ts.map +0 -1
  260. package/dist/types/src/transcriber/transcriber.d.ts +0 -105
  261. package/dist/types/src/transcriber/transcriber.d.ts.map +0 -1
  262. package/dist/types/src/transcriber/transcriber.test.d.ts +0 -2
  263. package/dist/types/src/transcriber/transcriber.test.d.ts.map +0 -1
  264. package/dist/types/src/transcriber/transcription-manager.d.ts.map +0 -1
  265. package/dist/types/src/util/array.d.ts +0 -2
  266. package/dist/types/src/util/array.d.ts.map +0 -1
  267. package/dist/types/src/util/render-byline.d.ts +0 -4
  268. package/dist/types/src/util/render-byline.d.ts.map +0 -1
  269. package/src/blueprints/index.ts +0 -5
  270. package/src/blueprints/transcription-blueprint.ts +0 -29
  271. package/src/capabilities/blueprint-definition.ts +0 -19
  272. package/src/components/Oracle/Oracle.stories.tsx +0 -147
  273. package/src/components/Oracle/Oracle.tsx +0 -142
  274. package/src/components/Oracle/index.ts +0 -5
  275. package/src/components/Transcription/Transcription.stories.tsx +0 -213
  276. package/src/components/Transcription/Transcription.tsx +0 -55
  277. package/src/components/Transcription/index.ts +0 -5
  278. package/src/components/Transcription/transcription-extension.ts +0 -203
  279. package/src/enrichment/conversation.test.ts +0 -162
  280. package/src/enrichment/conversation.txt +0 -23
  281. package/src/enrichment/operations.ts +0 -271
  282. package/src/enrichment/parser.ts +0 -101
  283. package/src/enrichment/stream-simulator.ts +0 -125
  284. package/src/hooks/useAudioFile.ts +0 -88
  285. package/src/hooks/useAudioTrack.ts +0 -35
  286. package/src/hooks/useFeedModelAdapter.ts +0 -46
  287. package/src/hooks/useTranscriber.ts +0 -47
  288. package/src/hooks/useVoiceInput.ts +0 -66
  289. package/src/model/index.ts +0 -5
  290. package/src/model/model.test.ts +0 -175
  291. package/src/model/model.ts +0 -229
  292. package/src/stories/FileTranscription.stories.tsx +0 -143
  293. package/src/stories/KeyWordRecognition.stories.tsx +0 -132
  294. package/src/stories/LiveTranscription.stories.tsx +0 -99
  295. package/src/stories/ProperNounExtraction.stories.tsx +0 -99
  296. package/src/stories/TranscriptionStory.tsx +0 -101
  297. package/src/stories/common.ts +0 -234
  298. package/src/transcriber/audio-recorder.ts +0 -56
  299. package/src/transcriber/index.ts +0 -8
  300. package/src/transcriber/media-stream-recorder.ts +0 -120
  301. package/src/transcriber/transcriber.browser.test.ts +0 -230
  302. package/src/transcriber/transcriber.test.ts +0 -104
  303. package/src/transcriber/transcriber.ts +0 -303
  304. package/src/util/array.ts +0 -14
  305. package/src/util/render-byline.ts +0 -33
  306. /package/dist/lib/neutral/{chunk-J4ONEYPJ.mjs.map → chunk-HNXSU7HJ.mjs.map} +0 -0
  307. /package/dist/lib/neutral/{create-7NGOP7JP.mjs.map → create-HNHGCKZ4.mjs.map} +0 -0
  308. /package/dist/lib/neutral/{enrich-message-F2AOM53F.mjs.map → enrich-message-DSJU4TXC.mjs.map} +0 -0
  309. /package/dist/lib/neutral/{blueprints → skills}/index.mjs.map +0 -0
@@ -0,0 +1,78 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { type Decorator } from '@storybook/react-vite';
6
+ import * as Effect from 'effect/Effect';
7
+
8
+ import { withPluginManager } from '@dxos/app-framework/testing';
9
+ import { AppActivationEvents } from '@dxos/app-toolkit';
10
+ import { ClientPlugin, initializeIdentity } from '@dxos/plugin-client/testing';
11
+ import { PreviewPlugin } from '@dxos/plugin-preview/testing';
12
+ import { StorybookPlugin, corePlugins } from '@dxos/plugin-testing';
13
+ import { IndexKind } from '@dxos/react-client/echo';
14
+ import { withLayout } from '@dxos/react-ui/testing';
15
+ import { Organization, Person } from '@dxos/types';
16
+ import { seedTestData } from '@dxos/types/testing';
17
+
18
+ import { TranscriptionPlugin } from '../TranscriptionPlugin';
19
+ import { TestItem } from './testing';
20
+
21
+ // TODO(mykola): Make API easier to use.
22
+ // TODO(mykola): Delete after enabling vector indexing by default.
23
+ export const enableQueryIndexes = (services: { QueryService?: any }) =>
24
+ Effect.gen(function* () {
25
+ yield* Effect.promise(() =>
26
+ services.QueryService!.setConfig({
27
+ enabled: true,
28
+ indexes: [
29
+ { kind: IndexKind.Kind.SCHEMA_MATCH },
30
+ { kind: IndexKind.Kind.GRAPH },
31
+ { kind: IndexKind.Kind.VECTOR },
32
+ { kind: IndexKind.Kind.FULL_TEXT },
33
+ ],
34
+ }),
35
+ );
36
+ yield* Effect.promise(() => services.QueryService!.reindex());
37
+ });
38
+
39
+ type StoryDecoratorsOptions = {
40
+ /**
41
+ * Enable schema/graph/vector indexes after the client boots; needed for entity-extraction
42
+ * queries over seeded `Person` / `Organization` objects.
43
+ * @default false
44
+ */
45
+ enableVectorIndex?: boolean;
46
+ };
47
+
48
+ /**
49
+ * Standard plugin-manager decorator for transcription stories: core plugins, `ClientPlugin` with
50
+ * `Person`/`Organization`/`TestItem` schemas + seeded test data, plus `PreviewPlugin` and
51
+ * `TranscriptionPlugin`. Toggle `enableVectorIndex` for entity-extraction.
52
+ */
53
+ export const createStoryDecorators = ({ enableVectorIndex = false }: StoryDecoratorsOptions = {}): Decorator[] => [
54
+ withLayout({ layout: 'column' }),
55
+ withPluginManager({
56
+ plugins: [
57
+ ...corePlugins(),
58
+ StorybookPlugin({}),
59
+ ClientPlugin({
60
+ types: [TestItem, Person.Person, Organization.Organization],
61
+ onClientInitialized: ({ client }) =>
62
+ Effect.gen(function* () {
63
+ const { personalSpace } = yield* initializeIdentity(client);
64
+ if (enableVectorIndex) {
65
+ yield* enableQueryIndexes(client.services.services);
66
+ }
67
+ yield* Effect.promise(() => seedTestData(personalSpace));
68
+ }),
69
+ }),
70
+ PreviewPlugin(),
71
+ TranscriptionPlugin(),
72
+ ],
73
+ // setupEvents (not fireEvents) so capabilities activate during app setup, before the always-mounted
74
+ // driver renders: SetupSettings registers the session/settings/status capabilities it reads,
75
+ // SetupAppGraph the graph + transcriber contributions.
76
+ setupEvents: [AppActivationEvents.SetupSettings, AppActivationEvents.SetupAppGraph],
77
+ }),
78
+ ];
@@ -2,4 +2,5 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ export * from './decorators';
5
6
  export * from './testing';
@@ -2,28 +2,27 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import * as Effect from 'effect/Effect';
6
5
  import * as Schema from 'effect/Schema';
7
- import { useEffect, useMemo } from 'react';
8
6
 
9
- import { createFeedServiceLayer, type Space } from '@dxos/client/echo';
10
- import { DXN, Feed, Obj, Ref, Type } from '@dxos/echo';
11
- import { EffectEx } from '@dxos/effect';
7
+ import { type Space } from '@dxos/client/echo';
8
+ import { DXN, Obj, Ref, Type } from '@dxos/echo';
12
9
  import { IdentityDid } from '@dxos/keys';
13
10
  import { random } from '@dxos/random';
14
11
  import { type ContentBlock, Message } from '@dxos/types';
15
12
 
16
13
  // TODO(burdon): Reconcile with plugin-markdown. Move to @dxos/schema/testing.
17
- export const TestItem = Schema.Struct({
18
- title: Schema.String.annotations({
19
- title: 'Title',
20
- description: 'Product title',
14
+ export const TestItem = Type.makeObject(DXN.make('org.dxos.type.test', '0.1.0'))(
15
+ Schema.Struct({
16
+ title: Schema.String.annotations({
17
+ title: 'Title',
18
+ description: 'Product title',
19
+ }),
20
+ description: Schema.String.annotations({
21
+ title: 'Description',
22
+ description: 'Product description',
23
+ }),
21
24
  }),
22
- description: Schema.String.annotations({
23
- title: 'Description',
24
- description: 'Product description',
25
- }),
26
- }).pipe(Type.makeObject(DXN.make('org.dxos.type.test', '0.1.0')));
25
+ );
27
26
 
28
27
  // TODO(wittjosiah): Make builder generic and reuse for all message types.
29
28
  abstract class AbstractMessageBuilder {
@@ -84,37 +83,3 @@ export class MessageBuilder extends AbstractMessageBuilder {
84
83
  return this.start;
85
84
  }
86
85
  }
87
-
88
- type UseTestTranscriptionQueue = (
89
- space: Space | undefined,
90
- running?: boolean,
91
- interval?: number,
92
- ) => Feed.Feed | undefined;
93
-
94
- /**
95
- * Test transcription feed.
96
- */
97
- export const useTestTranscriptionQueue: UseTestTranscriptionQueue = (
98
- space: Space | undefined,
99
- running = true,
100
- interval = 1_000,
101
- ) => {
102
- const feed = useMemo(() => (space ? space.db.add(Feed.make({ name: 'transcription' })) : undefined), [space]);
103
- const builder = useMemo(() => new MessageBuilder(space), [space]);
104
-
105
- useEffect(() => {
106
- if (!space || !feed || !running) {
107
- return;
108
- }
109
- const feedServiceLayer = createFeedServiceLayer(space.db);
110
-
111
- const i = setInterval(() => {
112
- void builder.createMessage(Math.ceil(Math.random() * 3)).then(async (message) => {
113
- await Feed.append(feed, [message]).pipe(Effect.provide(feedServiceLayer), EffectEx.runAndForwardErrors);
114
- });
115
- }, interval);
116
- return () => clearInterval(i);
117
- }, [space, feed, running, interval]);
118
-
119
- return feed;
120
- };
@@ -7,15 +7,16 @@ import * as Effect from 'effect/Effect';
7
7
  import * as Layer from 'effect/Layer';
8
8
 
9
9
  import { synchronized } from '@dxos/async';
10
- import { createFeedServiceLayer, type Space } from '@dxos/client/echo';
10
+ import { type Space } from '@dxos/client/echo';
11
11
  import { Resource } from '@dxos/context';
12
- import { Feed, Obj } from '@dxos/echo';
12
+ import { Database, Feed, Obj } from '@dxos/echo';
13
13
  import { EffectEx } from '@dxos/effect';
14
14
  import { type EdgeHttpClient } from '@dxos/react-edge-client';
15
+ import { MediaStreamRecorder } from '@dxos/react-ui-transcription';
16
+ import { Transcriber } from '@dxos/transcription-pipeline';
15
17
  import { type ContentBlock, Message } from '@dxos/types';
16
18
 
17
- import { MediaStreamRecorder } from './media-stream-recorder';
18
- import { Transcriber } from './transcriber';
19
+ import { type TranscriptionCapabilities } from '#types';
19
20
 
20
21
  /**
21
22
  * Length of the chunk in ms.
@@ -33,8 +34,6 @@ const PREFIXED_CHUNKS_AMOUNT = 10;
33
34
  */
34
35
  const TRANSCRIBE_AFTER_CHUNKS_AMOUNT = 50;
35
36
 
36
- export type TranscriptMessageEnricher = (message: Message.Message) => Promise<Message.Message>;
37
-
38
37
  export type TranscriptionManagerOptions = {
39
38
  edgeClient: EdgeHttpClient;
40
39
  registry: Registry.Registry;
@@ -42,22 +41,24 @@ export type TranscriptionManagerOptions = {
42
41
  /**
43
42
  * Enrich the message before it is written to the transcription feed.
44
43
  */
45
- messageEnricher?: TranscriptMessageEnricher;
44
+ messageEnricher?: TranscriptionCapabilities.TranscriptMessageEnricher;
46
45
  };
47
46
 
48
47
  /**
49
- * Manages transcription state for a meeting.
48
+ * Manages transcription state for a meeting. Concrete implementation of the
49
+ * {@link TranscriptionCapabilities.TranscriptionManager} service contract; consumers depend on the
50
+ * interface (via the `TranscriptionManagerProvider` capability), not this class.
50
51
  */
51
- export class TranscriptionManager extends Resource {
52
+ export class TranscriptionManagerImpl extends Resource implements TranscriptionCapabilities.TranscriptionManager {
52
53
  private readonly _edgeClient: EdgeHttpClient;
53
- private readonly _messageEnricher?: TranscriptMessageEnricher;
54
+ private readonly _messageEnricher?: TranscriptionCapabilities.TranscriptMessageEnricher;
54
55
  private readonly _registry: Registry.Registry;
55
56
  private _audioStreamTrack?: MediaStreamTrack = undefined;
56
57
  private _identityDid?: string = undefined;
57
58
  private _mediaRecorder?: MediaStreamRecorder = undefined;
58
59
  private _transcriber?: Transcriber = undefined;
59
60
  private _feed?: Feed.Feed = undefined;
60
- private _feedServiceLayer?: Layer.Layer<Feed.FeedService> = undefined;
61
+ private _feedServiceLayer?: Layer.Layer<Database.Service> = undefined;
61
62
  private _enabledAtom = Atom.make(false);
62
63
 
63
64
  constructor(options: TranscriptionManagerOptions) {
@@ -77,7 +78,7 @@ export class TranscriptionManager extends Resource {
77
78
 
78
79
  setFeed(space: Space, feed: Feed.Feed): this {
79
80
  this._feed = feed;
80
- this._feedServiceLayer = createFeedServiceLayer(space.db);
81
+ this._feedServiceLayer = Database.layer(space.db);
81
82
  return this;
82
83
  }
83
84
 
@@ -19,6 +19,14 @@ export const translations = [
19
19
 
20
20
  'start-recording.label': 'Start recording',
21
21
  'stop-recording.label': 'Stop recording',
22
+ 'hold-to-record.label': 'Hold to record',
23
+
24
+ 'recording-options.label': 'Recording options',
25
+ 'record-mode.label': 'Record mode',
26
+ 'record-mode.toggle.label': 'Toggle',
27
+ 'record-mode.hold.label': 'Hold to record (push to talk)',
28
+ 'audio-device.label': 'Microphone',
29
+ 'audio-device.default.label': 'System default',
22
30
 
23
31
  'settings.entity-extraction.label': 'Entity extraction',
24
32
  },
@@ -6,6 +6,8 @@
6
6
 
7
7
  import * as Schema from 'effect/Schema';
8
8
 
9
+ export type RecordMode = 'toggle' | 'hold';
10
+
9
11
  export const Settings = Schema.mutable(
10
12
  Schema.Struct({
11
13
  entityExtraction: Schema.optional(
@@ -15,6 +17,42 @@ export const Settings = Schema.mutable(
15
17
  'While transcribing, use the Assistant to detect and annotate mentions of known objects such as people or organizations.',
16
18
  }),
17
19
  ).pipe(Schema.withConstructorDefault(() => true)),
20
+
21
+ recordMode: Schema.optional(
22
+ Schema.Literal('toggle', 'hold').annotations({
23
+ title: 'Record mode',
24
+ description:
25
+ 'Whether the mic toggles recording on each click, or records only while the control is held (push-to-talk).',
26
+ }),
27
+ ).pipe(Schema.withConstructorDefault(() => 'toggle' as const)),
28
+
29
+ audioDeviceId: Schema.optional(
30
+ Schema.String.annotations({
31
+ title: 'Audio input device',
32
+ description: 'Identifier of the microphone to capture from; empty uses the system default.',
33
+ }),
34
+ ),
35
+
36
+ transcribeAfterMs: Schema.optional(
37
+ Schema.Number.annotations({
38
+ title: 'Initial buffering (ms)',
39
+ description: 'How long to accumulate audio before producing the first transcription.',
40
+ }),
41
+ ).pipe(Schema.withConstructorDefault(() => 4000)),
42
+
43
+ streamMode: Schema.optional(
44
+ Schema.Literal('batch', 'word').annotations({
45
+ title: 'Reveal mode',
46
+ description: 'Whether transcribed text appears in batches or streams word-by-word.',
47
+ }),
48
+ ).pipe(Schema.withConstructorDefault(() => 'word' as const)),
49
+
50
+ wordIntervalMs: Schema.optional(
51
+ Schema.Number.annotations({
52
+ title: 'Word interval (ms)',
53
+ description: 'Pacing between words when streaming word-by-word.',
54
+ }),
55
+ ).pipe(Schema.withConstructorDefault(() => 80)),
18
56
  }),
19
57
  );
20
58
 
@@ -9,8 +9,10 @@ import * as Schema from 'effect/Schema';
9
9
  import { AiService } from '@dxos/ai';
10
10
  import { SpaceSchema } from '@dxos/client/echo';
11
11
  import { Operation } from '@dxos/compute';
12
- import { Database, Feed, Ref, Type, DXN } from '@dxos/echo';
13
- import { Message, Transcript } from '@dxos/types';
12
+ import { Database, DXN, Ref, Type } from '@dxos/echo';
13
+ // Message and Person are used via Type.getSchema(Message.Message); they also appear in emitted .d.ts.
14
+ // eslint-disable-next-line unused-imports/no-unused-imports
15
+ import { Message, type Person, Transcript } from '@dxos/types';
14
16
 
15
17
  import { meta } from '#meta';
16
18
 
@@ -53,7 +55,7 @@ export const Open = Operation.make({
53
55
  output: Schema.Struct({
54
56
  content: Schema.String,
55
57
  }),
56
- services: [Database.Service, Feed.FeedService],
58
+ services: [Database.Service],
57
59
  });
58
60
 
59
61
  export const Summarize = Operation.make({
@@ -77,7 +79,7 @@ export const Summarize = Operation.make({
77
79
  }),
78
80
  }),
79
81
  services: [AiService.AiService],
80
- });
82
+ }).pipe(Operation.visible);
81
83
 
82
84
  export const EnrichMessage = Operation.make({
83
85
  meta: {
@@ -7,38 +7,74 @@
7
7
  import { type Atom } from '@effect-atom/atom-react';
8
8
 
9
9
  import { Capability } from '@dxos/app-framework';
10
+ import { type Space } from '@dxos/client/echo';
11
+ import { type Feed } from '@dxos/echo';
12
+ import { type EntityLookup as EntityLookupFn } from '@dxos/transcription-pipeline';
13
+ import { type Message } from '@dxos/types';
10
14
 
11
15
  import { meta } from '#meta';
12
16
 
13
- import {
14
- type MediaStreamRecorderProps,
15
- type Transcriber as TranscriberType,
16
- type TranscriberProps,
17
- type TranscriptMessageEnricher,
18
- type TranscriptionManager as TranscriptionManagerType,
19
- } from '../transcriber';
20
- import * as Settings$ from './Settings'; // eslint-disable-line
21
-
22
- export type TranscriberProviderProps = {
23
- audioStreamTrack: MediaStreamTrack;
24
- recorderConfig?: Partial<MediaStreamRecorderProps['config']>;
25
- transcriberConfig?: Partial<TranscriberProps['config']>;
26
- onSegments: TranscriberProps['onSegments'];
27
- transcribe?: TranscriberProps['transcribe'];
28
- };
17
+ import * as SettingsModule from './Settings';
18
+
19
+ /**
20
+ * Enriches a transcript message before it is written to the feed (e.g. entity linking).
21
+ */
22
+ export type TranscriptMessageEnricher = (message: Message.Message) => Promise<Message.Message>;
29
23
 
30
- export type TranscriberProvider = (props: TranscriberProviderProps) => TranscriberType;
24
+ /**
25
+ * Service contract for the meeting transcription manager. Consumers (e.g. plugin-meeting) depend on
26
+ * this interface via the {@link TranscriptionManagerProvider} capability, not on the concrete
27
+ * implementation, keeping the manager's browser/SDK dependencies out of consumer packages.
28
+ */
29
+ export interface TranscriptionManager {
30
+ readonly enabled: Atom.Atom<boolean>;
31
+ setFeed(space: Space, feed: Feed.Feed): void;
32
+ setAudioTrack(track?: MediaStreamTrack): Promise<void>;
33
+ setRecording(recording?: boolean): void;
34
+ setEnabled(enabled: boolean): Promise<void>;
35
+ open(): Promise<this>;
36
+ close(): Promise<this>;
37
+ }
31
38
 
32
39
  export type TranscriptionManagerProviderProps = {
33
40
  messageEnricher?: TranscriptMessageEnricher;
34
41
  };
35
42
 
36
- export type TranscriptionManagerProvider = (props: TranscriptionManagerProviderProps) => TranscriptionManagerType;
37
-
38
- export const TranscriberProvider = Capability.make<TranscriberProvider>(`${meta.profile.key}.capability.transcriber`);
43
+ export type TranscriptionManagerProvider = (props: TranscriptionManagerProviderProps) => TranscriptionManager;
39
44
 
40
45
  export const TranscriptionManagerProvider = Capability.make<TranscriptionManagerProvider>(
41
46
  `${meta.profile.key}.capability.transcription-manager`,
42
47
  );
43
48
 
44
- export const Settings = Capability.make<Atom.Writable<Settings$.Settings>>(`${meta.profile.key}.capability.settings`);
49
+ export const Settings = Capability.make<Atom.Writable<SettingsModule.Settings>>(
50
+ `${meta.profile.key}.capability.settings`,
51
+ );
52
+
53
+ /**
54
+ * The single active editor transcription session. `id` is the editor's attendable id (the key it
55
+ * registered under in `MarkdownCapabilities.EditorViews`); `recording` gates audio capture. `null`
56
+ * when no session is active.
57
+ */
58
+ export type RecordingSession = { id: string; recording: boolean };
59
+
60
+ export const RecordingSession = Capability.make<Atom.Writable<RecordingSession | null>>(
61
+ `${meta.profile.key}.capability.recording-session`,
62
+ );
63
+
64
+ /**
65
+ * Resolves entity references for live-transcription enrichment. Backend-agnostic (full-text, vector,
66
+ * a remote service, …) so the headless driver depends on the function, not the database.
67
+ */
68
+ export type EntityLookup = EntityLookupFn;
69
+
70
+ export const EntityLookup = Capability.make<EntityLookupFn>(`${meta.profile.key}.capability.entity-lookup`);
71
+
72
+ /**
73
+ * Live transcription lifecycle, published by the driver for observers (toolbar spinner, testbench):
74
+ * `recording` (mic capturing) → `draining` (mic off, finishing the pipeline) → `idle`.
75
+ */
76
+ export type PipelinePhase = 'idle' | 'recording' | 'draining';
77
+
78
+ export const PipelineStatus = Capability.make<Atom.Writable<{ phase: PipelinePhase }>>(
79
+ `${meta.profile.key}.capability.pipeline-status`,
80
+ );
package/src/util/index.ts CHANGED
@@ -2,6 +2,4 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './array';
6
5
  export * from './get-time-str';
7
- export * from './render-byline';
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/TranscriptionArticle/TranscriptionArticle.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { Filter, Obj, Query } from '@dxos/echo';\nimport { useMembers, useQuery } from '@dxos/react-client/echo';\nimport { Panel } from '@dxos/react-ui';\nimport { Menu, MenuBuilder, useMenuBuilder } from '@dxos/react-ui-menu';\nimport { Message, type Transcript } from '@dxos/types';\n\nimport { Transcription } from '#components';\nimport { useFeedModelAdapter, useTranscriptionRecording } from '#hooks';\nimport { meta } from '#meta';\n\nimport { renderByline } from '../../util';\n\nexport type TranscriptionArticleProps = AppSurface.ObjectArticleProps<Transcript.Transcript>;\n\nexport const TranscriptionArticle = ({ role, subject: transcript, attendableId }: TranscriptionArticleProps) => {\n const db = Obj.getDatabase(transcript);\n const members = useMembers(db?.spaceId).map((member) => member.identity);\n const feed = transcript.feed.target;\n const messages = useQuery(\n db,\n feed ? Query.select(Filter.type(Message.Message)).from(feed) : Query.select(Filter.nothing()),\n );\n const model = useFeedModelAdapter(renderByline(members), messages);\n const { recording, toggleRecording } = useTranscriptionRecording(transcript);\n\n const menuActions = useMenuBuilder(\n () =>\n MenuBuilder.make()\n .action(\n 'toggle-recording',\n {\n label: [recording ? 'stop-recording.label' : 'start-recording.label', { ns: meta.profile.key }],\n icon: recording ? 'ph--stop-circle--regular' : 'ph--microphone--regular',\n disposition: 'toolbar',\n testId: 'transcription.toggle-recording',\n },\n toggleRecording,\n )\n .build(),\n [recording, toggleRecording],\n );\n\n return (\n <Panel.Root role={role}>\n <Menu.Root {...menuActions} attendableId={attendableId}>\n <Panel.Toolbar asChild>\n <Menu.Toolbar />\n </Panel.Toolbar>\n </Menu.Root>\n <Panel.Content asChild>\n <Transcription model={model} transcript={transcript} />\n </Panel.Content>\n </Panel.Root>\n );\n};\n"],
5
- "mappings": ";;;;;;AAIA,OAAOA,WAAW;AAGlB,SAASC,QAAQC,KAAKC,aAAa;AACnC,SAASC,YAAYC,gBAAgB;AACrC,SAASC,aAAa;AACtB,SAASC,MAAMC,aAAaC,sBAAsB;AAClD,SAASC,eAAgC;AAEzC,SAASC,qBAAqB;AAC9B,SAASC,qBAAqBC,iCAAiC;AAC/D,SAASC,YAAY;AAMd,IAAMC,uBAAuB,CAAC,EAAEC,MAAMC,SAASC,YAAYC,aAAY,MAA6B;AACzG,QAAMC,KAAKC,IAAIC,YAAYJ,UAAAA;AAC3B,QAAMK,UAAUC,WAAWJ,IAAIK,OAAAA,EAASC,IAAI,CAACC,WAAWA,OAAOC,QAAQ;AACvE,QAAMC,OAAOX,WAAWW,KAAKC;AAC7B,QAAMC,WAAWC,SACfZ,IACAS,OAAOI,MAAMC,OAAOC,OAAOC,KAAKC,QAAQA,OAAO,CAAA,EAAGC,KAAKT,IAAAA,IAAQI,MAAMC,OAAOC,OAAOI,QAAO,CAAA,CAAA;AAE5F,QAAMC,QAAQC,oBAAoBC,aAAanB,OAAAA,GAAUQ,QAAAA;AACzD,QAAM,EAAEY,WAAWC,gBAAe,IAAKC,0BAA0B3B,UAAAA;AAEjE,QAAM4B,cAAcC,eAClB,MACEC,YAAYC,KAAI,EACbC,OACC,oBACA;IACEC,OAAO;MAACR,YAAY,yBAAyB;MAAyB;QAAES,IAAIC,KAAKC,QAAQC;MAAI;;IAC7FC,MAAMb,YAAY,6BAA6B;IAC/Cc,aAAa;IACbC,QAAQ;EACV,GACAd,eAAAA,EAEDe,MAAK,GACV;IAAChB;IAAWC;GAAgB;AAG9B,SACE,sBAAA,cAACgB,MAAMC,MAAI;IAAC7C;KACV,sBAAA,cAAC8C,KAAKD,MAAI;IAAE,GAAGf;IAAa3B;KAC1B,sBAAA,cAACyC,MAAMG,SAAO;IAACC,SAAAA;KACb,sBAAA,cAACF,KAAKC,SAAO,IAAA,CAAA,CAAA,GAGjB,sBAAA,cAACH,MAAMK,SAAO;IAACD,SAAAA;KACb,sBAAA,cAACE,eAAAA;IAAc1B;IAActB;;AAIrC;",
6
- "names": ["React", "Filter", "Obj", "Query", "useMembers", "useQuery", "Panel", "Menu", "MenuBuilder", "useMenuBuilder", "Message", "Transcription", "useFeedModelAdapter", "useTranscriptionRecording", "meta", "TranscriptionArticle", "role", "subject", "transcript", "attendableId", "db", "Obj", "getDatabase", "members", "useMembers", "spaceId", "map", "member", "identity", "feed", "target", "messages", "useQuery", "Query", "select", "Filter", "type", "Message", "from", "nothing", "model", "useFeedModelAdapter", "renderByline", "recording", "toggleRecording", "useTranscriptionRecording", "menuActions", "useMenuBuilder", "MenuBuilder", "make", "action", "label", "ns", "meta", "profile", "key", "icon", "disposition", "testId", "build", "Panel", "Root", "Menu", "Toolbar", "asChild", "Content", "Transcription"]
7
- }
@@ -1,15 +0,0 @@
1
- import "./chunk-J5LGTIGS.mjs";
2
-
3
- // src/capabilities/blueprint-definition.ts
4
- import * as Effect from "effect/Effect";
5
- import { Capability } from "@dxos/app-framework";
6
- import { AppCapabilities } from "@dxos/app-toolkit";
7
- import { TranscriptionBlueprint } from "#blueprints";
8
- var blueprintDefinition = () => Effect.succeed([
9
- Capability.contributes(AppCapabilities.BlueprintDefinition, TranscriptionBlueprint)
10
- ]);
11
- var blueprint_definition_default = blueprintDefinition;
12
- export {
13
- blueprint_definition_default as default
14
- };
15
- //# sourceMappingURL=blueprint-definition-DA4QFRYJ.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/blueprint-definition.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n\nimport { TranscriptionBlueprint } from '#blueprints';\n\n// NOTE: Explicit annotation required: d.ts emit cannot portably name the inferred @dxos/compute types (TS2883).\nconst blueprintDefinition: () => Effect.Effect<\n Capability.Capability<typeof AppCapabilities.BlueprintDefinition>[],\n never,\n Capability.Service\n> = () => Effect.succeed([Capability.contributes(AppCapabilities.BlueprintDefinition, TranscriptionBlueprint)]);\n\nexport default blueprintDefinition;\n"],
5
- "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAEhC,SAASC,8BAA8B;AAGvC,IAAMC,sBAIF,MAAaC,eAAQ;EAACJ,WAAWK,YAAYJ,gBAAgBK,qBAAqBJ,sBAAAA;CAAwB;AAE9G,IAAA,+BAAeC;",
6
- "names": ["Effect", "Capability", "AppCapabilities", "TranscriptionBlueprint", "blueprintDefinition", "succeed", "contributes", "BlueprintDefinition"]
7
- }
@@ -1,8 +0,0 @@
1
- import {
2
- transcription_blueprint_default
3
- } from "../chunk-ZR4BH4QQ.mjs";
4
- import "../chunk-J5LGTIGS.mjs";
5
- export {
6
- transcription_blueprint_default as TranscriptionBlueprint
7
- };
8
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/Settings.ts", "../../../src/types/TranscriptionCapabilities.ts", "../../../src/types/TranscriptOperation.ts"],
4
- "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nexport const Settings = Schema.mutable(\n Schema.Struct({\n entityExtraction: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Entity extraction',\n description:\n 'While transcribing, use the Assistant to detect and annotate mentions of known objects such as people or organizations.',\n }),\n ).pipe(Schema.withConstructorDefault(() => true)),\n }),\n);\n\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { type Atom } from '@effect-atom/atom-react';\n\nimport { Capability } from '@dxos/app-framework';\n\nimport { meta } from '#meta';\n\nimport {\n type MediaStreamRecorderProps,\n type Transcriber as TranscriberType,\n type TranscriberProps,\n type TranscriptMessageEnricher,\n type TranscriptionManager as TranscriptionManagerType,\n} from '../transcriber';\nimport * as Settings$ from './Settings'; // eslint-disable-line\n\nexport type TranscriberProviderProps = {\n audioStreamTrack: MediaStreamTrack;\n recorderConfig?: Partial<MediaStreamRecorderProps['config']>;\n transcriberConfig?: Partial<TranscriberProps['config']>;\n onSegments: TranscriberProps['onSegments'];\n transcribe?: TranscriberProps['transcribe'];\n};\n\nexport type TranscriberProvider = (props: TranscriberProviderProps) => TranscriberType;\n\nexport type TranscriptionManagerProviderProps = {\n messageEnricher?: TranscriptMessageEnricher;\n};\n\nexport type TranscriptionManagerProvider = (props: TranscriptionManagerProviderProps) => TranscriptionManagerType;\n\nexport const TranscriberProvider = Capability.make<TranscriberProvider>(`${meta.profile.key}.capability.transcriber`);\n\nexport const TranscriptionManagerProvider = Capability.make<TranscriptionManagerProvider>(\n `${meta.profile.key}.capability.transcription-manager`,\n);\n\nexport const Settings = Capability.make<Atom.Writable<Settings$.Settings>>(`${meta.profile.key}.capability.settings`);\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { AiService } from '@dxos/ai';\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { Operation } from '@dxos/compute';\nimport { Database, Feed, Ref, Type, DXN } from '@dxos/echo';\nimport { Message, Transcript } from '@dxos/types';\n\nimport { meta } from '#meta';\n\nconst makeKey = (name: string) => DXN.make(`${meta.profile.key}.operation.${name}`);\n\nexport const Create = Operation.make({\n meta: { key: makeKey('create'), name: 'Create Transcript', icon: 'ph--microphone--regular' },\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n space: SpaceSchema,\n }),\n output: Schema.Struct({\n object: Type.getSchema(Transcript.Transcript),\n }),\n});\n\nexport const MessageWithRangeId = Schema.extend(\n Type.getSchema(Message.Message),\n Schema.Struct({\n rangeId: Schema.optional(Schema.Array(Schema.String)).annotations({\n description: 'The IDs of the messages that contain the sentences.',\n }),\n }),\n);\n\nexport type MessageWithRangeIdType = Schema.Schema.Type<typeof MessageWithRangeId>;\n\nexport const Open = Operation.make({\n meta: {\n key: DXN.make('org.dxos.function.transcription.open'),\n name: 'Open',\n description: 'Opens and reads the contents of a transcription object.',\n icon: 'ph--folder-open--regular',\n },\n input: Schema.Struct({\n transcript: Ref.Ref(Transcript.Transcript).annotations({\n description: 'The ID of the transcription object.',\n }),\n }),\n output: Schema.Struct({\n content: Schema.String,\n }),\n services: [Database.Service, Feed.FeedService],\n});\n\nexport const Summarize = Operation.make({\n meta: {\n key: DXN.make('org.dxos.function.transcription.summarize'),\n name: 'Summarize',\n description: 'Summarize a transcript of a meeting.',\n icon: 'ph--text-align-left--regular',\n },\n input: 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 output: Schema.Struct({\n summary: Schema.String.annotations({\n description: 'The summary of the transcript.',\n }),\n }),\n services: [AiService.AiService],\n});\n\nexport const EnrichMessage = Operation.make({\n meta: {\n key: DXN.make('org.dxos.function.transcription.enrichMessage'),\n name: 'Enrich Transcript Message',\n description: 'Extract proper nouns from a transcript message and link them to objects in the space.',\n icon: 'ph--text-t--regular',\n },\n input: Schema.Struct({\n message: Type.getSchema(Message.Message),\n }),\n output: Schema.Struct({\n message: Type.getSchema(Message.Message),\n }),\n services: [AiService.AiService, Database.Service],\n});\n\nexport const SentenceNormalizationInput = Schema.Struct({\n messages: Schema.Array(MessageWithRangeId).annotations({\n description: 'Messages to normalize into sentences.',\n }),\n});\n\nexport type SentenceNormalizationInputType = Schema.Schema.Type<typeof SentenceNormalizationInput>;\n\nexport const SentenceNormalizationOutput = Schema.Struct({\n sentences: Schema.Array(MessageWithRangeId.pipe(Schema.mutable)).pipe(Schema.mutable).annotations({\n description: 'The sentences of the transcript.',\n }),\n});\n\nexport const SentenceNormalization = Operation.make({\n meta: {\n key: DXN.make('org.dxos.function.transcription.sentenceNormalization'),\n name: 'Sentence Normalization',\n description: 'Post process of transcription for sentence normalization',\n icon: 'ph--text-t--regular',\n },\n input: SentenceNormalizationInput,\n output: SentenceNormalizationOutput,\n services: [],\n});\n"],
5
- "mappings": "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",
6
- "names": ["Schema", "Settings", "mutable", "Struct", "entityExtraction", "optional", "Boolean", "annotations", "title", "description", "pipe", "withConstructorDefault", "Settings", "Capability", "meta", "TranscriberProvider", "make", "profile", "key", "TranscriptionManagerProvider", "Schema", "AiService", "SpaceSchema", "Operation", "Database", "Feed", "Ref", "Type", "DXN", "Message", "Transcript", "meta", "makeKey", "name", "make", "profile", "key", "Create", "icon", "input", "Struct", "optional", "String", "space", "output", "object", "getSchema", "MessageWithRangeId", "extend", "rangeId", "Array", "annotations", "description", "Open", "transcript", "content", "services", "Service", "FeedService", "Summarize", "notes", "summary", "EnrichMessage", "message", "SentenceNormalizationInput", "messages", "SentenceNormalizationOutput", "sentences", "pipe", "mutable", "SentenceNormalization"]
7
- }
@@ -1,8 +0,0 @@
1
- // src/operations/index.ts
2
- import { OperationHandlerSet } from "@dxos/compute";
3
- var TranscriptionOperationHandlerSet = OperationHandlerSet.lazy(() => import("./create-7NGOP7JP.mjs"), () => import("./open-42H72C4G.mjs"), () => import("./summarize-45WVUPED.mjs"), () => import("./enrich-message-F2AOM53F.mjs"));
4
-
5
- export {
6
- TranscriptionOperationHandlerSet
7
- };
8
- //# sourceMappingURL=chunk-J4ONEYPJ.mjs.map