@dxos/plugin-transcription 0.8.4-main.c1de068 → 0.8.4-main.c85a9c8dae

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 (269) hide show
  1. package/dist/lib/browser/TranscriptionContainer-RBFHP2AV.mjs +41 -0
  2. package/dist/lib/browser/TranscriptionContainer-RBFHP2AV.mjs.map +7 -0
  3. package/dist/lib/browser/blueprint-definition-C6XA2SVZ.mjs +18 -0
  4. package/dist/lib/browser/blueprint-definition-C6XA2SVZ.mjs.map +7 -0
  5. package/dist/lib/browser/blueprints/index.mjs +9 -0
  6. package/dist/lib/browser/chunk-2B74LZZD.mjs +22 -0
  7. package/dist/lib/browser/chunk-2B74LZZD.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-FFEPEPCU.mjs → chunk-EV5ZYKET.mjs} +64 -99
  9. package/dist/lib/browser/chunk-EV5ZYKET.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-GH4IIQ6C.mjs +54 -0
  11. package/dist/lib/browser/chunk-GH4IIQ6C.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-HOOPZ7EM.mjs +35 -0
  13. package/dist/lib/browser/chunk-HOOPZ7EM.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  15. package/dist/lib/browser/chunk-O7ILGNBZ.mjs +148 -0
  16. package/dist/lib/browser/chunk-O7ILGNBZ.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-5KPYIC3N.mjs → chunk-XLMRCOQN.mjs} +126 -221
  18. package/dist/lib/browser/chunk-XLMRCOQN.mjs.map +7 -0
  19. package/dist/lib/browser/index.mjs +62 -73
  20. package/dist/lib/browser/index.mjs.map +4 -4
  21. package/dist/lib/browser/meta.json +1 -1
  22. package/dist/lib/browser/operation-resolver-5BLRH4XE.mjs +23 -0
  23. package/dist/lib/browser/operation-resolver-5BLRH4XE.mjs.map +7 -0
  24. package/dist/lib/browser/react-surface-U2SI74JK.mjs +36 -0
  25. package/dist/lib/browser/react-surface-U2SI74JK.mjs.map +7 -0
  26. package/dist/lib/browser/{transcriber-PXT4QBFY.mjs → transcriber-WCPHHJYY.mjs} +19 -14
  27. package/dist/lib/browser/transcriber-WCPHHJYY.mjs.map +7 -0
  28. package/dist/lib/browser/types/index.mjs +9 -8
  29. package/dist/lib/node-esm/TranscriptionContainer-3OOID5KH.mjs +42 -0
  30. package/dist/lib/node-esm/TranscriptionContainer-3OOID5KH.mjs.map +7 -0
  31. package/dist/lib/node-esm/blueprint-definition-TLXDUXIQ.mjs +19 -0
  32. package/dist/lib/node-esm/blueprint-definition-TLXDUXIQ.mjs.map +7 -0
  33. package/dist/lib/node-esm/blueprints/index.mjs +10 -0
  34. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  35. package/dist/lib/node-esm/chunk-6GW5NZYG.mjs +55 -0
  36. package/dist/lib/node-esm/chunk-6GW5NZYG.mjs.map +7 -0
  37. package/dist/lib/node-esm/{chunk-HT3W7LDP.mjs → chunk-7UE7G6DE.mjs} +64 -99
  38. package/dist/lib/node-esm/chunk-7UE7G6DE.mjs.map +7 -0
  39. package/dist/lib/node-esm/{chunk-TJKAO7VR.mjs → chunk-DYUGYQCB.mjs} +126 -221
  40. package/dist/lib/node-esm/chunk-DYUGYQCB.mjs.map +7 -0
  41. package/dist/lib/node-esm/chunk-F47HK7GT.mjs +24 -0
  42. package/dist/lib/node-esm/chunk-F47HK7GT.mjs.map +7 -0
  43. package/dist/lib/node-esm/chunk-H3MXHMQL.mjs +149 -0
  44. package/dist/lib/node-esm/chunk-H3MXHMQL.mjs.map +7 -0
  45. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  46. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  47. package/dist/lib/node-esm/chunk-NVM2QUMX.mjs +37 -0
  48. package/dist/lib/node-esm/chunk-NVM2QUMX.mjs.map +7 -0
  49. package/dist/lib/node-esm/index.mjs +62 -73
  50. package/dist/lib/node-esm/index.mjs.map +4 -4
  51. package/dist/lib/node-esm/meta.json +1 -1
  52. package/dist/lib/node-esm/operation-resolver-CVZB7BF4.mjs +24 -0
  53. package/dist/lib/node-esm/operation-resolver-CVZB7BF4.mjs.map +7 -0
  54. package/dist/lib/node-esm/react-surface-2ICJPBPX.mjs +37 -0
  55. package/dist/lib/node-esm/react-surface-2ICJPBPX.mjs.map +7 -0
  56. package/dist/lib/node-esm/{transcriber-YUTEVANE.mjs → transcriber-2RIHUEX4.mjs} +19 -14
  57. package/dist/lib/node-esm/transcriber-2RIHUEX4.mjs.map +7 -0
  58. package/dist/lib/node-esm/types/index.mjs +9 -8
  59. package/dist/types/src/TranscriptionPlugin.d.ts +2 -1
  60. package/dist/types/src/TranscriptionPlugin.d.ts.map +1 -1
  61. package/dist/types/src/blueprints/index.d.ts +2 -0
  62. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  63. package/dist/types/src/blueprints/transcription-blueprint.d.ts +4 -0
  64. package/dist/types/src/blueprints/transcription-blueprint.d.ts.map +1 -0
  65. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +6 -0
  66. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  67. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  68. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/index.d.ts +4 -4
  70. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/operation-handler/index.d.ts +3 -0
  72. package/dist/types/src/capabilities/operation-handler/index.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts +5 -0
  74. package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  76. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  78. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  79. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  80. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  82. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  83. package/dist/types/src/capabilities/transcriber/index.d.ts +3 -0
  84. package/dist/types/src/capabilities/transcriber/index.d.ts.map +1 -0
  85. package/dist/types/src/capabilities/transcriber/transcriber.d.ts +9 -0
  86. package/dist/types/src/capabilities/transcriber/transcriber.d.ts.map +1 -0
  87. package/dist/types/src/components/Transcription/Transcription.d.ts +17 -0
  88. package/dist/types/src/components/Transcription/Transcription.d.ts.map +1 -0
  89. package/dist/types/src/components/Transcription/Transcription.stories.d.ts +40 -0
  90. package/dist/types/src/components/Transcription/Transcription.stories.d.ts.map +1 -0
  91. package/dist/types/src/components/Transcription/index.d.ts +2 -0
  92. package/dist/types/src/components/Transcription/index.d.ts.map +1 -0
  93. package/dist/types/src/components/Transcription/transcription-extension.d.ts +15 -0
  94. package/dist/types/src/components/Transcription/transcription-extension.d.ts.map +1 -0
  95. package/dist/types/src/components/index.d.ts +1 -3
  96. package/dist/types/src/components/index.d.ts.map +1 -1
  97. package/dist/types/src/components/stories/FileTranscription.stories.d.ts +8 -7
  98. package/dist/types/src/components/stories/FileTranscription.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/stories/KeyWordRecognition.stories.d.ts +10 -6
  100. package/dist/types/src/components/stories/KeyWordRecognition.stories.d.ts.map +1 -1
  101. package/dist/types/src/components/stories/MicrophoneTranscription.stories.d.ts +10 -9
  102. package/dist/types/src/components/stories/MicrophoneTranscription.stories.d.ts.map +1 -1
  103. package/dist/types/src/components/stories/TranscriptionStory.d.ts +4 -3
  104. package/dist/types/src/components/stories/TranscriptionStory.d.ts.map +1 -1
  105. package/dist/types/src/containers/TranscriptionContainer/TranscriptionContainer.d.ts +6 -0
  106. package/dist/types/src/containers/TranscriptionContainer/TranscriptionContainer.d.ts.map +1 -0
  107. package/dist/types/src/containers/TranscriptionContainer/index.d.ts +3 -0
  108. package/dist/types/src/containers/TranscriptionContainer/index.d.ts.map +1 -0
  109. package/dist/types/src/containers/index.d.ts +3 -0
  110. package/dist/types/src/containers/index.d.ts.map +1 -0
  111. package/dist/types/src/functions/index.d.ts +18 -0
  112. package/dist/types/src/functions/index.d.ts.map +1 -0
  113. package/dist/types/src/functions/open.d.ts +11 -0
  114. package/dist/types/src/functions/open.d.ts.map +1 -0
  115. package/dist/types/src/functions/summarize.d.ts +11 -0
  116. package/dist/types/src/functions/summarize.d.ts.map +1 -0
  117. package/dist/types/src/hooks/useAudioFile.d.ts.map +1 -1
  118. package/dist/types/src/hooks/useQueueModelAdapter.d.ts +1 -1
  119. package/dist/types/src/hooks/useQueueModelAdapter.d.ts.map +1 -1
  120. package/dist/types/src/hooks/useTranscriber.d.ts +1 -1
  121. package/dist/types/src/hooks/useTranscriber.d.ts.map +1 -1
  122. package/dist/types/src/hooks/useVoiceInput.d.ts.map +1 -1
  123. package/dist/types/src/index.d.ts +1 -1
  124. package/dist/types/src/index.d.ts.map +1 -1
  125. package/dist/types/src/meta.d.ts +2 -3
  126. package/dist/types/src/meta.d.ts.map +1 -1
  127. package/dist/types/src/segments-normalization/message-normalizer.d.ts +5 -5
  128. package/dist/types/src/segments-normalization/message-normalizer.d.ts.map +1 -1
  129. package/dist/types/src/segments-normalization/normalization.d.ts +516 -398
  130. package/dist/types/src/segments-normalization/normalization.d.ts.map +1 -1
  131. package/dist/types/src/segments-normalization/utils.d.ts +2 -2
  132. package/dist/types/src/segments-normalization/utils.d.ts.map +1 -1
  133. package/dist/types/src/testing/testing.d.ts +11 -11
  134. package/dist/types/src/testing/testing.d.ts.map +1 -1
  135. package/dist/types/src/transcriber/media-stream-recorder.d.ts +3 -3
  136. package/dist/types/src/transcriber/media-stream-recorder.d.ts.map +1 -1
  137. package/dist/types/src/transcriber/transcriber.d.ts +4 -4
  138. package/dist/types/src/transcriber/transcriber.d.ts.map +1 -1
  139. package/dist/types/src/transcriber/transcription-manager.d.ts +12 -13
  140. package/dist/types/src/transcriber/transcription-manager.d.ts.map +1 -1
  141. package/dist/types/src/types/TranscriptAction.d.ts +25 -0
  142. package/dist/types/src/types/TranscriptAction.d.ts.map +1 -0
  143. package/dist/types/src/types/capabilities.d.ts +18 -0
  144. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  145. package/dist/types/src/types/index.d.ts +3 -1
  146. package/dist/types/src/types/index.d.ts.map +1 -1
  147. package/dist/types/src/types/types.d.ts +0 -26
  148. package/dist/types/src/types/types.d.ts.map +1 -1
  149. package/dist/types/src/util/index.d.ts +1 -0
  150. package/dist/types/src/util/index.d.ts.map +1 -1
  151. package/dist/types/src/util/render-byline.d.ts +4 -0
  152. package/dist/types/src/util/render-byline.d.ts.map +1 -0
  153. package/dist/types/tsconfig.tsbuildinfo +1 -1
  154. package/package.json +88 -72
  155. package/src/TranscriptionPlugin.tsx +39 -57
  156. package/src/blueprints/index.ts +5 -0
  157. package/src/blueprints/transcription-blueprint.ts +33 -0
  158. package/src/capabilities/blueprint-definition/blueprint-definition.ts +17 -0
  159. package/src/capabilities/blueprint-definition/index.ts +7 -0
  160. package/src/capabilities/index.ts +4 -7
  161. package/src/capabilities/operation-handler/index.ts +7 -0
  162. package/src/capabilities/operation-handler/operation-handler.ts +25 -0
  163. package/src/capabilities/operation-resolver/index.ts +7 -0
  164. package/src/capabilities/operation-resolver/operation-resolver.ts +25 -0
  165. package/src/capabilities/react-surface/index.ts +7 -0
  166. package/src/capabilities/react-surface/react-surface.tsx +28 -0
  167. package/src/capabilities/transcriber/index.ts +7 -0
  168. package/src/capabilities/transcriber/transcriber.ts +85 -0
  169. package/src/components/{Transcript/Transcript.stories.tsx → Transcription/Transcription.stories.tsx} +60 -56
  170. package/src/components/Transcription/Transcription.tsx +63 -0
  171. package/src/components/{Transcript → Transcription}/index.ts +1 -1
  172. package/src/components/{Transcript/transcript-extension.ts → Transcription/transcription-extension.ts} +13 -46
  173. package/src/components/index.ts +1 -6
  174. package/src/components/stories/FileTranscription.stories.tsx +66 -59
  175. package/src/components/stories/KeyWordRecognition.stories.tsx +17 -13
  176. package/src/components/stories/MicrophoneTranscription.stories.tsx +80 -80
  177. package/src/components/stories/TranscriptionStory.tsx +13 -13
  178. package/src/containers/TranscriptionContainer/TranscriptionContainer.tsx +33 -0
  179. package/src/containers/TranscriptionContainer/index.ts +7 -0
  180. package/src/containers/index.ts +7 -0
  181. package/src/functions/index.ts +11 -0
  182. package/src/functions/open.ts +37 -0
  183. package/src/functions/summarize.ts +103 -0
  184. package/src/hooks/useAudioFile.ts +49 -53
  185. package/src/hooks/useQueueModelAdapter.ts +1 -1
  186. package/src/hooks/useTranscriber.ts +8 -3
  187. package/src/hooks/useVoiceInput.ts +4 -3
  188. package/src/index.ts +1 -1
  189. package/src/meta.ts +9 -6
  190. package/src/model/model.test.ts +21 -15
  191. package/src/segments-normalization/message-normalizer.ts +19 -14
  192. package/src/segments-normalization/normalization.test.ts +11 -16
  193. package/src/segments-normalization/normalization.ts +43 -42
  194. package/src/segments-normalization/utils.ts +2 -2
  195. package/src/testing/testing.ts +35 -25
  196. package/src/transcriber/media-stream-recorder.ts +4 -4
  197. package/src/transcriber/transcriber.browser.test.ts +6 -5
  198. package/src/transcriber/transcriber.ts +8 -7
  199. package/src/transcriber/transcription-manager.ts +37 -52
  200. package/src/types/TranscriptAction.ts +32 -0
  201. package/src/types/capabilities.ts +33 -0
  202. package/src/types/index.ts +3 -1
  203. package/src/types/types.ts +0 -23
  204. package/src/util/index.ts +1 -0
  205. package/src/util/render-byline.ts +33 -0
  206. package/dist/lib/browser/TranscriptContainer-6WCKCXQ6.mjs +0 -11
  207. package/dist/lib/browser/chunk-4FJIYH7T.mjs +0 -8
  208. package/dist/lib/browser/chunk-4FJIYH7T.mjs.map +0 -7
  209. package/dist/lib/browser/chunk-5KPYIC3N.mjs.map +0 -7
  210. package/dist/lib/browser/chunk-5WH45KBY.mjs +0 -19
  211. package/dist/lib/browser/chunk-5WH45KBY.mjs.map +0 -7
  212. package/dist/lib/browser/chunk-FFEPEPCU.mjs.map +0 -7
  213. package/dist/lib/browser/chunk-R7INNNUQ.mjs +0 -55
  214. package/dist/lib/browser/chunk-R7INNNUQ.mjs.map +0 -7
  215. package/dist/lib/browser/chunk-U6QBOGTN.mjs +0 -16
  216. package/dist/lib/browser/chunk-U6QBOGTN.mjs.map +0 -7
  217. package/dist/lib/browser/intent-resolver-3O33MMP5.mjs +0 -30
  218. package/dist/lib/browser/intent-resolver-3O33MMP5.mjs.map +0 -7
  219. package/dist/lib/browser/react-surface-E5D5AE3F.mjs +0 -34
  220. package/dist/lib/browser/react-surface-E5D5AE3F.mjs.map +0 -7
  221. package/dist/lib/browser/transcriber-PXT4QBFY.mjs.map +0 -7
  222. package/dist/lib/node-esm/TranscriptContainer-VBAOM5DG.mjs +0 -12
  223. package/dist/lib/node-esm/chunk-HT3W7LDP.mjs.map +0 -7
  224. package/dist/lib/node-esm/chunk-RHF2ALML.mjs +0 -17
  225. package/dist/lib/node-esm/chunk-RHF2ALML.mjs.map +0 -7
  226. package/dist/lib/node-esm/chunk-TJKAO7VR.mjs.map +0 -7
  227. package/dist/lib/node-esm/chunk-U65ZWK3L.mjs +0 -56
  228. package/dist/lib/node-esm/chunk-U65ZWK3L.mjs.map +0 -7
  229. package/dist/lib/node-esm/chunk-XMUCZBP3.mjs +0 -21
  230. package/dist/lib/node-esm/chunk-XMUCZBP3.mjs.map +0 -7
  231. package/dist/lib/node-esm/chunk-Y2B4HWSS.mjs +0 -10
  232. package/dist/lib/node-esm/chunk-Y2B4HWSS.mjs.map +0 -7
  233. package/dist/lib/node-esm/intent-resolver-YMN5SXNC.mjs +0 -31
  234. package/dist/lib/node-esm/intent-resolver-YMN5SXNC.mjs.map +0 -7
  235. package/dist/lib/node-esm/react-surface-QRDJOHN5.mjs +0 -35
  236. package/dist/lib/node-esm/react-surface-QRDJOHN5.mjs.map +0 -7
  237. package/dist/lib/node-esm/transcriber-YUTEVANE.mjs.map +0 -7
  238. package/dist/types/src/capabilities/capabilities.d.ts +0 -17
  239. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  240. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  241. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  242. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  243. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  244. package/dist/types/src/capabilities/transcriber.d.ts +0 -8
  245. package/dist/types/src/capabilities/transcriber.d.ts.map +0 -1
  246. package/dist/types/src/components/Transcript/Transcript.d.ts +0 -20
  247. package/dist/types/src/components/Transcript/Transcript.d.ts.map +0 -1
  248. package/dist/types/src/components/Transcript/Transcript.stories.d.ts +0 -24
  249. package/dist/types/src/components/Transcript/Transcript.stories.d.ts.map +0 -1
  250. package/dist/types/src/components/Transcript/deprecated/OldTranscript.d.ts +0 -28
  251. package/dist/types/src/components/Transcript/deprecated/OldTranscript.d.ts.map +0 -1
  252. package/dist/types/src/components/Transcript/index.d.ts +0 -2
  253. package/dist/types/src/components/Transcript/index.d.ts.map +0 -1
  254. package/dist/types/src/components/Transcript/transcript-extension.d.ts +0 -19
  255. package/dist/types/src/components/Transcript/transcript-extension.d.ts.map +0 -1
  256. package/dist/types/src/components/TranscriptContainer.d.ts +0 -9
  257. package/dist/types/src/components/TranscriptContainer.d.ts.map +0 -1
  258. package/dist/types/src/types/schema.d.ts +0 -41
  259. package/dist/types/src/types/schema.d.ts.map +0 -1
  260. package/src/capabilities/capabilities.ts +0 -33
  261. package/src/capabilities/intent-resolver.ts +0 -24
  262. package/src/capabilities/react-surface.tsx +0 -22
  263. package/src/capabilities/transcriber.ts +0 -76
  264. package/src/components/Transcript/Transcript.tsx +0 -100
  265. package/src/components/Transcript/deprecated/OldTranscript.tsx +0 -260
  266. package/src/components/TranscriptContainer.tsx +0 -35
  267. package/src/types/schema.ts +0 -41
  268. /package/dist/lib/browser/{TranscriptContainer-6WCKCXQ6.mjs.map → blueprints/index.mjs.map} +0 -0
  269. /package/dist/lib/{node-esm/TranscriptContainer-VBAOM5DG.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
@@ -0,0 +1,36 @@
1
+ import {
2
+ meta
3
+ } from "./chunk-2B74LZZD.mjs";
4
+ import "./chunk-J5LGTIGS.mjs";
5
+
6
+ // src/capabilities/react-surface/react-surface.tsx
7
+ import * as Effect from "effect/Effect";
8
+ import React from "react";
9
+ import { Capabilities, Capability } from "@dxos/app-framework";
10
+ import { Surface } from "@dxos/app-framework/ui";
11
+ import { Obj } from "@dxos/echo";
12
+ import { Transcript } from "@dxos/types";
13
+
14
+ // src/containers/index.ts
15
+ import { lazy } from "react";
16
+ var TranscriptionContainer = lazy(() => import("./TranscriptionContainer-RBFHP2AV.mjs"));
17
+
18
+ // src/capabilities/react-surface/react-surface.tsx
19
+ var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, [
20
+ Surface.create({
21
+ id: `${meta.id}/article/transcript`,
22
+ role: [
23
+ "article",
24
+ "section"
25
+ ],
26
+ filter: (data) => Obj.instanceOf(Transcript.Transcript, data.subject),
27
+ component: ({ data, role }) => /* @__PURE__ */ React.createElement(TranscriptionContainer, {
28
+ role,
29
+ subject: data.subject
30
+ })
31
+ })
32
+ ])));
33
+ export {
34
+ react_surface_default as default
35
+ };
36
+ //# sourceMappingURL=react-surface-U2SI74JK.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface/react-surface.tsx", "../../../src/containers/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\nimport { Obj } from '@dxos/echo';\nimport { Transcript } from '@dxos/types';\n\nimport { TranscriptionContainer } from '../../containers';\nimport { meta } from '../../meta';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: `${meta.id}/article/transcript`,\n role: ['article', 'section'],\n filter: (data): data is { subject: Transcript.Transcript } =>\n Obj.instanceOf(Transcript.Transcript, data.subject),\n component: ({ data, role }) => <TranscriptionContainer role={role} subject={data.subject} />,\n }),\n ]),\n ),\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const TranscriptionContainer: ComponentType<any> = lazy(() => import('./TranscriptionContainer'));\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,eAAe;AACxB,SAASC,WAAW;AACpB,SAASC,kBAAkB;;;ACN3B,SAA6BC,YAAY;AAElC,IAAMC,yBAA6CC,KAAK,MAAM,OAAO,uCAAA,CAAA;;;ADS5E,IAAA,wBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YAAYC,aAAaC,cAAc;EAChDC,QAAQC,OAAO;IACbC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;MAAC;MAAW;;IAClBC,QAAQ,CAACC,SACPC,IAAIC,WAAWC,WAAWA,YAAYH,KAAKI,OAAO;IACpDC,WAAW,CAAC,EAAEL,MAAMF,KAAI,MAAO,sBAAA,cAACQ,wBAAAA;MAAuBR;MAAYM,SAASJ,KAAKI;;EACnF,CAAA;CACD,CAAA,CAAA;",
6
+ "names": ["Effect", "React", "Capabilities", "Capability", "Surface", "Obj", "Transcript", "lazy", "TranscriptionContainer", "lazy", "Capability", "makeModule", "succeed", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "meta", "role", "filter", "data", "Obj", "instanceOf", "Transcript", "subject", "component", "TranscriptionContainer"]
7
+ }
@@ -2,20 +2,24 @@ import {
2
2
  MediaStreamRecorder,
3
3
  Transcriber,
4
4
  TranscriptionManager
5
- } from "./chunk-FFEPEPCU.mjs";
6
- import "./chunk-R7INNNUQ.mjs";
5
+ } from "./chunk-EV5ZYKET.mjs";
6
+ import "./chunk-HOOPZ7EM.mjs";
7
7
  import {
8
8
  TranscriptionCapabilities
9
- } from "./chunk-U6QBOGTN.mjs";
10
- import "./chunk-5WH45KBY.mjs";
9
+ } from "./chunk-GH4IIQ6C.mjs";
10
+ import "./chunk-2B74LZZD.mjs";
11
+ import "./chunk-J5LGTIGS.mjs";
11
12
 
12
- // src/capabilities/transcriber.ts
13
- import { contributes } from "@dxos/app-framework";
13
+ // src/capabilities/transcriber/transcriber.ts
14
+ import * as Effect from "effect/Effect";
15
+ import { Capabilities, Capability } from "@dxos/app-framework";
14
16
  import { ClientCapabilities } from "@dxos/plugin-client";
15
17
  var RECORD_INTERVAL = 200;
16
18
  var PREFIXED_CHUNKS_AMOUNT = 10;
17
19
  var TRANSCRIBE_AFTER_CHUNKS_AMOUNT = 50;
18
- var transcriber_default = (context) => {
20
+ var transcriber_default = Capability.makeModule(Effect.fnUntraced(function* () {
21
+ const capabilities = yield* Capability.Service;
22
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
19
23
  const getTranscriber = ({ audioStreamTrack, onSegments, transcriberConfig, recorderConfig }) => {
20
24
  return new Transcriber({
21
25
  config: {
@@ -34,10 +38,11 @@ var transcriber_default = (context) => {
34
38
  });
35
39
  };
36
40
  const getTranscriptionManager = ({ messageEnricher }) => {
37
- const client = context.getCapability(ClientCapabilities.Client);
41
+ const client = capabilities.get(ClientCapabilities.Client);
38
42
  const transcriptionManager = new TranscriptionManager({
39
- edgeClient: client.edge,
40
- messageEnricher
43
+ edgeClient: client.edge.http,
44
+ messageEnricher,
45
+ registry
41
46
  });
42
47
  const identity = client.halo.identity.get();
43
48
  if (identity) {
@@ -46,11 +51,11 @@ var transcriber_default = (context) => {
46
51
  return transcriptionManager;
47
52
  };
48
53
  return [
49
- contributes(TranscriptionCapabilities.Transcriber, getTranscriber),
50
- contributes(TranscriptionCapabilities.TranscriptionManager, getTranscriptionManager)
54
+ Capability.contributes(TranscriptionCapabilities.Transcriber, getTranscriber),
55
+ Capability.contributes(TranscriptionCapabilities.TranscriptionManager, getTranscriptionManager)
51
56
  ];
52
- };
57
+ }));
53
58
  export {
54
59
  transcriber_default as default
55
60
  };
56
- //# sourceMappingURL=transcriber-PXT4QBFY.mjs.map
61
+ //# sourceMappingURL=transcriber-WCPHHJYY.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/transcriber/transcriber.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { MediaStreamRecorder, Transcriber, TranscriptionManager } from '../../transcriber';\nimport { TranscriptionCapabilities } from '../../types';\n\n// TODO(burdon): Move to config?\n\n/**\n * Length of the chunk in ms.\n */\nconst RECORD_INTERVAL = 200;\n\n/**\n * Number of chunks to save before the user starts speaking.\n */\nconst PREFIXED_CHUNKS_AMOUNT = 10;\n\n/**\n * Number of chunks to transcribe automatically after.\n * Combined should be mess than 25MB or whisper would fail.\n */\nconst TRANSCRIBE_AFTER_CHUNKS_AMOUNT = 50;\n\n/**\n * Records audio while user is speaking and transcribes it after user is done speaking.\n */\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n // Get context for lazy capability access in callbacks.\n const capabilities = yield* Capability.Service;\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n\n const getTranscriber: TranscriptionCapabilities.GetTranscriber = ({\n audioStreamTrack,\n onSegments,\n transcriberConfig,\n recorderConfig,\n }) => {\n // Initialize audio transcription.\n return new Transcriber({\n config: {\n transcribeAfterChunksAmount: TRANSCRIBE_AFTER_CHUNKS_AMOUNT,\n prefixBufferChunksAmount: PREFIXED_CHUNKS_AMOUNT,\n ...transcriberConfig,\n },\n recorder: new MediaStreamRecorder({\n mediaStreamTrack: audioStreamTrack,\n config: {\n interval: RECORD_INTERVAL,\n ...recorderConfig,\n },\n }),\n onSegments,\n });\n };\n\n const getTranscriptionManager: TranscriptionCapabilities.GetTranscriptionManager = ({ messageEnricher }) => {\n const client = capabilities.get(ClientCapabilities.Client);\n const transcriptionManager = new TranscriptionManager({\n edgeClient: client.edge.http,\n messageEnricher,\n registry,\n });\n\n const identity = client.halo.identity.get();\n if (identity) {\n transcriptionManager.setIdentityDid(identity.did);\n }\n\n return transcriptionManager;\n };\n\n return [\n Capability.contributes(TranscriptionCapabilities.Transcriber, getTranscriber),\n Capability.contributes(TranscriptionCapabilities.TranscriptionManager, getTranscriptionManager),\n ];\n }),\n);\n"],
5
+ "mappings": ";;;;;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,0BAA0B;AAUnC,IAAMC,kBAAkB;AAKxB,IAAMC,yBAAyB;AAM/B,IAAMC,iCAAiC;AAKvC,IAAA,sBAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAEhB,QAAMC,eAAe,OAAOH,WAAWI;AACvC,QAAMC,WAAW,OAAOL,WAAWM,IAAIC,aAAaC,YAAY;AAEhE,QAAMC,iBAA2D,CAAC,EAChEC,kBACAC,YACAC,mBACAC,eAAc,MACf;AAEC,WAAO,IAAIC,YAAY;MACrBC,QAAQ;QACNC,6BAA6BjB;QAC7BkB,0BAA0BnB;QAC1B,GAAGc;MACL;MACAM,UAAU,IAAIC,oBAAoB;QAChCC,kBAAkBV;QAClBK,QAAQ;UACNM,UAAUxB;UACV,GAAGgB;QACL;MACF,CAAA;MACAF;IACF,CAAA;EACF;AAEA,QAAMW,0BAA6E,CAAC,EAAEC,gBAAe,MAAE;AACrG,UAAMC,SAASrB,aAAaG,IAAImB,mBAAmBC,MAAM;AACzD,UAAMC,uBAAuB,IAAIC,qBAAqB;MACpDC,YAAYL,OAAOM,KAAKC;MACxBR;MACAlB;IACF,CAAA;AAEA,UAAM2B,WAAWR,OAAOS,KAAKD,SAAS1B,IAAG;AACzC,QAAI0B,UAAU;AACZL,2BAAqBO,eAAeF,SAASG,GAAG;IAClD;AAEA,WAAOR;EACT;AAEA,SAAO;IACL3B,WAAWoC,YAAYC,0BAA0BvB,aAAaL,cAAAA;IAC9DT,WAAWoC,YAAYC,0BAA0BT,sBAAsBN,uBAAAA;;AAE3E,CAAA,CAAA;",
6
+ "names": ["Effect", "Capabilities", "Capability", "ClientCapabilities", "RECORD_INTERVAL", "PREFIXED_CHUNKS_AMOUNT", "TRANSCRIBE_AFTER_CHUNKS_AMOUNT", "Capability", "makeModule", "fnUntraced", "capabilities", "Service", "registry", "get", "Capabilities", "AtomRegistry", "getTranscriber", "audioStreamTrack", "onSegments", "transcriberConfig", "recorderConfig", "Transcriber", "config", "transcribeAfterChunksAmount", "prefixBufferChunksAmount", "recorder", "MediaStreamRecorder", "mediaStreamTrack", "interval", "getTranscriptionManager", "messageEnricher", "client", "ClientCapabilities", "Client", "transcriptionManager", "TranscriptionManager", "edgeClient", "edge", "http", "identity", "halo", "setIdentityDid", "did", "contributes", "TranscriptionCapabilities"]
7
+ }
@@ -1,14 +1,15 @@
1
1
  import {
2
2
  TRANSCRIPTION_URL,
3
- TranscriptSchema,
4
- TranscriptType,
5
- TranscriptionAction
6
- } from "../chunk-R7INNNUQ.mjs";
7
- import "../chunk-5WH45KBY.mjs";
3
+ TranscriptAction_exports,
4
+ TranscriptOperation,
5
+ TranscriptionCapabilities
6
+ } from "../chunk-GH4IIQ6C.mjs";
7
+ import "../chunk-2B74LZZD.mjs";
8
+ import "../chunk-J5LGTIGS.mjs";
8
9
  export {
9
10
  TRANSCRIPTION_URL,
10
- TranscriptSchema,
11
- TranscriptType,
12
- TranscriptionAction
11
+ TranscriptAction_exports as TranscriptAction,
12
+ TranscriptOperation,
13
+ TranscriptionCapabilities
13
14
  };
14
15
  //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,42 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ Transcription,
4
+ useQueueModelAdapter
5
+ } from "./chunk-DYUGYQCB.mjs";
6
+ import {
7
+ renderByline
8
+ } from "./chunk-NVM2QUMX.mjs";
9
+ import "./chunk-6GW5NZYG.mjs";
10
+ import "./chunk-F47HK7GT.mjs";
11
+ import "./chunk-HSLMI22Q.mjs";
12
+
13
+ // src/containers/TranscriptionContainer/TranscriptionContainer.tsx
14
+ import React from "react";
15
+ import { Obj } from "@dxos/echo";
16
+ import { useMembers, useQueue } from "@dxos/react-client/echo";
17
+ import { Panel } from "@dxos/react-ui";
18
+ var TranscriptionContainer = ({ role, subject: transcript }) => {
19
+ const attendableId = Obj.getDXN(transcript).toString();
20
+ const db = Obj.getDatabase(transcript);
21
+ const members = useMembers(db?.spaceId).map((member) => member.identity);
22
+ const queue = useQueue(transcript.queue.dxn, {
23
+ pollInterval: 1e3
24
+ });
25
+ const model = useQueueModelAdapter(renderByline(members), queue);
26
+ return /* @__PURE__ */ React.createElement(Panel.Root, {
27
+ role
28
+ }, /* @__PURE__ */ React.createElement(Panel.Content, {
29
+ asChild: true
30
+ }, /* @__PURE__ */ React.createElement(Transcription, {
31
+ attendableId,
32
+ model,
33
+ transcript
34
+ })));
35
+ };
36
+
37
+ // src/containers/TranscriptionContainer/index.ts
38
+ var TranscriptionContainer_default = TranscriptionContainer;
39
+ export {
40
+ TranscriptionContainer_default as default
41
+ };
42
+ //# sourceMappingURL=TranscriptionContainer-3OOID5KH.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/TranscriptionContainer/TranscriptionContainer.tsx", "../../../src/containers/TranscriptionContainer/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { Obj } from '@dxos/echo';\nimport { useMembers, useQueue } from '@dxos/react-client/echo';\nimport { Panel } from '@dxos/react-ui';\nimport { type Message, type Transcript } from '@dxos/types';\n\nimport { Transcription } from '../../components';\nimport { useQueueModelAdapter } from '../../hooks';\nimport { renderByline } from '../../util';\n\nexport type TranscriptionContainerProps = SurfaceComponentProps<Transcript.Transcript>;\n\nexport const TranscriptionContainer = ({ role, subject: transcript }: TranscriptionContainerProps) => {\n const attendableId = Obj.getDXN(transcript).toString();\n const db = Obj.getDatabase(transcript);\n const members = useMembers(db?.spaceId).map((member) => member.identity);\n const queue = useQueue<Message.Message>(transcript.queue.dxn, { pollInterval: 1_000 });\n const model = useQueueModelAdapter(renderByline(members), queue);\n\n return (\n <Panel.Root role={role}>\n <Panel.Content asChild>\n <Transcription attendableId={attendableId} model={model} transcript={transcript} />\n </Panel.Content>\n </Panel.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { TranscriptionContainer } from './TranscriptionContainer';\n\nexport default TranscriptionContainer;\n"],
5
+ "mappings": ";;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAGlB,SAASC,WAAW;AACpB,SAASC,YAAYC,gBAAgB;AACrC,SAASC,aAAa;AASf,IAAMC,yBAAyB,CAAC,EAAEC,MAAMC,SAASC,WAAU,MAA+B;AAC/F,QAAMC,eAAeC,IAAIC,OAAOH,UAAAA,EAAYI,SAAQ;AACpD,QAAMC,KAAKH,IAAII,YAAYN,UAAAA;AAC3B,QAAMO,UAAUC,WAAWH,IAAII,OAAAA,EAASC,IAAI,CAACC,WAAWA,OAAOC,QAAQ;AACvE,QAAMC,QAAQC,SAA0Bd,WAAWa,MAAME,KAAK;IAAEC,cAAc;EAAM,CAAA;AACpF,QAAMC,QAAQC,qBAAqBC,aAAaZ,OAAAA,GAAUM,KAAAA;AAE1D,SACE,sBAAA,cAACO,MAAMC,MAAI;IAACvB;KACV,sBAAA,cAACsB,MAAME,SAAO;IAACC,SAAAA;KACb,sBAAA,cAACC,eAAAA;IAAcvB;IAA4BgB;IAAcjB;;AAIjE;;;AC1BA,IAAA,iCAAeyB;",
6
+ "names": ["React", "Obj", "useMembers", "useQueue", "Panel", "TranscriptionContainer", "role", "subject", "transcript", "attendableId", "Obj", "getDXN", "toString", "db", "getDatabase", "members", "useMembers", "spaceId", "map", "member", "identity", "queue", "useQueue", "dxn", "pollInterval", "model", "useQueueModelAdapter", "renderByline", "Panel", "Root", "Content", "asChild", "Transcription", "TranscriptionContainer"]
7
+ }
@@ -0,0 +1,19 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ transcription_blueprint_default
4
+ } from "./chunk-H3MXHMQL.mjs";
5
+ import "./chunk-NVM2QUMX.mjs";
6
+ import "./chunk-HSLMI22Q.mjs";
7
+
8
+ // src/capabilities/blueprint-definition/blueprint-definition.ts
9
+ import * as Effect from "effect/Effect";
10
+ import { Capability } from "@dxos/app-framework";
11
+ import { AppCapabilities } from "@dxos/app-toolkit";
12
+ var blueprintDefinition = Capability.makeModule(() => Effect.succeed([
13
+ Capability.contributes(AppCapabilities.BlueprintDefinition, transcription_blueprint_default)
14
+ ]));
15
+ var blueprint_definition_default = blueprintDefinition;
16
+ export {
17
+ blueprint_definition_default as default
18
+ };
19
+ //# sourceMappingURL=blueprint-definition-TLXDUXIQ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/blueprint-definition/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\nconst blueprintDefinition = Capability.makeModule<\n [],\n Capability.Capability<typeof AppCapabilities.BlueprintDefinition>[]\n>(() => Effect.succeed([Capability.contributes(AppCapabilities.BlueprintDefinition, TranscriptionBlueprint)]));\n\nexport default blueprintDefinition;\n"],
5
+ "mappings": ";;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAIhC,IAAMC,sBAAsBC,WAAWC,WAGrC,MAAaC,eAAQ;EAACF,WAAWG,YAAYC,gBAAgBC,qBAAqBC,+BAAAA;CAAwB,CAAA;AAE5G,IAAA,+BAAeP;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "blueprintDefinition", "Capability", "makeModule", "succeed", "contributes", "AppCapabilities", "BlueprintDefinition", "TranscriptionBlueprint"]
7
+ }
@@ -0,0 +1,10 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ transcription_blueprint_default
4
+ } from "../chunk-H3MXHMQL.mjs";
5
+ import "../chunk-NVM2QUMX.mjs";
6
+ import "../chunk-HSLMI22Q.mjs";
7
+ export {
8
+ transcription_blueprint_default as TranscriptionBlueprint
9
+ };
10
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,55 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ meta
4
+ } from "./chunk-F47HK7GT.mjs";
5
+ import {
6
+ __export
7
+ } from "./chunk-HSLMI22Q.mjs";
8
+
9
+ // src/types/capabilities.ts
10
+ import { Capability } from "@dxos/app-framework";
11
+ (function(TranscriptionCapabilities2) {
12
+ TranscriptionCapabilities2.Transcriber = Capability.make(`${meta.id}/capability/transcriber`);
13
+ TranscriptionCapabilities2.TranscriptionManager = Capability.make(`${meta.id}/capability/transcription-manager`);
14
+ })(TranscriptionCapabilities || (TranscriptionCapabilities = {}));
15
+ var TranscriptionCapabilities;
16
+
17
+ // src/types/TranscriptAction.ts
18
+ var TranscriptAction_exports = {};
19
+ __export(TranscriptAction_exports, {
20
+ TranscriptOperation: () => TranscriptOperation
21
+ });
22
+ import * as Schema from "effect/Schema";
23
+ import { SpaceSchema } from "@dxos/client/echo";
24
+ import { Operation } from "@dxos/operation";
25
+ import { Transcript } from "@dxos/types";
26
+ var TRANSCRIPT_OPERATION = `${meta.id}/operation`;
27
+ (function(TranscriptOperation2) {
28
+ TranscriptOperation2.Create = Operation.make({
29
+ meta: {
30
+ key: `${TRANSCRIPT_OPERATION}/create`,
31
+ name: "Create Transcript"
32
+ },
33
+ schema: {
34
+ input: Schema.Struct({
35
+ name: Schema.optional(Schema.String),
36
+ space: SpaceSchema
37
+ }),
38
+ output: Schema.Struct({
39
+ object: Transcript.Transcript
40
+ })
41
+ }
42
+ });
43
+ })(TranscriptOperation || (TranscriptOperation = {}));
44
+ var TranscriptOperation;
45
+
46
+ // src/types/types.ts
47
+ var TRANSCRIPTION_URL = "https://calls-service.dxos.workers.dev";
48
+
49
+ export {
50
+ TranscriptionCapabilities,
51
+ TranscriptOperation,
52
+ TranscriptAction_exports,
53
+ TRANSCRIPTION_URL
54
+ };
55
+ //# sourceMappingURL=chunk-6GW5NZYG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/capabilities.ts", "../../../src/types/TranscriptAction.ts", "../../../src/types/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nimport { meta } from '../meta';\nimport {\n type MediaStreamRecorderProps,\n type Transcriber,\n type TranscriberProps,\n type TranscriptMessageEnricher,\n type TranscriptionManager,\n} from '../transcriber';\n\nexport namespace TranscriptionCapabilities {\n export type GetTranscriberProps = {\n audioStreamTrack: MediaStreamTrack;\n recorderConfig?: Partial<MediaStreamRecorderProps['config']>;\n transcriberConfig?: Partial<TranscriberProps['config']>;\n onSegments: TranscriberProps['onSegments'];\n };\n export type GetTranscriber = (props: GetTranscriberProps) => Transcriber;\n export const Transcriber = Capability.make<GetTranscriber>(`${meta.id}/capability/transcriber`);\n\n export type GetTranscriptionManagerProps = {\n messageEnricher?: TranscriptMessageEnricher;\n };\n export type GetTranscriptionManager = (props: GetTranscriptionManagerProps) => TranscriptionManager;\n export const TranscriptionManager = Capability.make<GetTranscriptionManager>(\n `${meta.id}/capability/transcription-manager`,\n );\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { Operation } from '@dxos/operation';\nimport { Transcript } from '@dxos/types';\n\nimport { meta } from '../meta';\n\n//\n// Operations\n//\n\nconst TRANSCRIPT_OPERATION = `${meta.id}/operation`;\n\nexport namespace TranscriptOperation {\n export const Create = Operation.make({\n meta: { key: `${TRANSCRIPT_OPERATION}/create`, name: 'Create Transcript' },\n schema: {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n space: SpaceSchema,\n }),\n output: Schema.Struct({\n object: Transcript.Transcript,\n }),\n },\n });\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\n/**\n * Endpoint to the calls service.\n */\n// TODO(burdon): Reconfigure/move.\nexport const TRANSCRIPTION_URL = 'https://calls-service.dxos.workers.dev';\n"],
5
+ "mappings": ";;;;;;;;;AAIA,SAASA,kBAAkB;UAWVC,4BAAAA;6BAQFC,cAAcC,WAAWC,KAAqB,GAAGC,KAAKC,EAAE,yBAAyB;6BAMjFC,uBAAuBJ,WAAWC,KAC7C,GAAGC,KAAKC,EAAE,mCAAmC;AAEjD,GAjBiBL,8BAAAA,4BAAAA,CAAAA,EAAAA;;;;ACfjB;;;;AAIA,YAAYO,YAAY;AAExB,SAASC,mBAAmB;AAC5B,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;AAQ3B,IAAMC,uBAAuB,GAAGC,KAAKC,EAAE;UAEtBC,sBAAAA;uBACFC,SAASC,UAAUC,KAAK;IACnCL,MAAM;MAAEM,KAAK,GAAGP,oBAAAA;MAA+BQ,MAAM;IAAoB;IACzEC,QAAQ;MACNC,OAAcC,cAAO;QACnBH,MAAaI,gBAAgBC,aAAM;QACnCC,OAAOC;MACT,CAAA;MACAC,QAAeL,cAAO;QACpBM,QAAQC,WAAWA;MACrB,CAAA;IACF;EACF,CAAA;AACF,GAbiBf,wBAAAA,sBAAAA,CAAAA,EAAAA;;;;ACVV,IAAMgB,oBAAoB;",
6
+ "names": ["Capability", "TranscriptionCapabilities", "Transcriber", "Capability", "make", "meta", "id", "TranscriptionManager", "Schema", "SpaceSchema", "Operation", "Transcript", "TRANSCRIPT_OPERATION", "meta", "id", "TranscriptOperation", "Create", "Operation", "make", "key", "name", "schema", "input", "Struct", "optional", "String", "space", "SpaceSchema", "output", "object", "Transcript", "TRANSCRIPTION_URL"]
7
+ }
@@ -1,7 +1,10 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ mergeFloat64Arrays
4
+ } from "./chunk-NVM2QUMX.mjs";
2
5
  import {
3
6
  TRANSCRIPTION_URL
4
- } from "./chunk-U65ZWK3L.mjs";
7
+ } from "./chunk-6GW5NZYG.mjs";
5
8
 
6
9
  // src/transcriber/media-stream-recorder.ts
7
10
  import { MediaRecorder, register } from "extendable-media-recorder";
@@ -23,9 +26,15 @@ var initializeExtendableMediaRecorder = async () => {
23
26
  await register(await connect());
24
27
  };
25
28
  var MediaStreamRecorder = class {
29
+ _mediaStreamTrack;
30
+ /**
31
+ * Default MediaRecorder implementation do not support wav encoding.
32
+ */
33
+ _config;
34
+ _mediaRecorder = void 0;
35
+ _header = void 0;
36
+ _onChunk;
26
37
  constructor({ mediaStreamTrack, config }) {
27
- this._mediaRecorder = void 0;
28
- this._header = void 0;
29
38
  this._mediaStreamTrack = mediaStreamTrack;
30
39
  this._config = config;
31
40
  }
@@ -125,19 +134,6 @@ import { DeferredTask, Trigger } from "@dxos/async";
125
134
  import { LifecycleState, Resource } from "@dxos/context";
126
135
  import { log as log2 } from "@dxos/log";
127
136
  import { trace as trace2 } from "@dxos/tracing";
128
-
129
- // src/util/array.ts
130
- var mergeFloat64Arrays = (arrays) => {
131
- const newArray = new Float64Array(arrays.reduce((acc, array) => array.length + acc, 0));
132
- let offset = 0;
133
- for (const array of arrays) {
134
- newArray.set(array, offset);
135
- offset += array.length;
136
- }
137
- return newArray;
138
- };
139
-
140
- // src/transcriber/transcriber.ts
141
137
  function _ts_decorate2(decorators, target, key, desc) {
142
138
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
143
139
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -146,15 +142,18 @@ function _ts_decorate2(decorators, target, key, desc) {
146
142
  }
147
143
  var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-transcription/src/transcriber/transcriber.ts";
148
144
  var Transcriber = class extends Resource {
145
+ _audioChunks = [];
146
+ _lastUsedTimestamp = 0;
147
+ _openTrigger = new Trigger({
148
+ autoReset: true
149
+ });
150
+ _config;
151
+ _recorder;
152
+ _onSegments;
153
+ _recording = false;
154
+ _transcribeTask = void 0;
149
155
  constructor({ config, recorder, onSegments }) {
150
156
  super();
151
- this._audioChunks = [];
152
- this._lastUsedTimestamp = 0;
153
- this._openTrigger = new Trigger({
154
- autoReset: true
155
- });
156
- this._recording = false;
157
- this._transcribeTask = void 0;
158
157
  this._config = config;
159
158
  this._recorder = recorder;
160
159
  this._onSegments = onSegments;
@@ -162,7 +161,7 @@ var Transcriber = class extends Resource {
162
161
  async _open(ctx) {
163
162
  log2.info("opening", void 0, {
164
163
  F: __dxlog_file2,
165
- L: 101,
164
+ L: 102,
166
165
  S: this,
167
166
  C: (f, a) => f(...a)
168
167
  });
@@ -174,7 +173,7 @@ var Transcriber = class extends Resource {
174
173
  async _close() {
175
174
  log2.info("closing", void 0, {
176
175
  F: __dxlog_file2,
177
- L: 109,
176
+ L: 110,
178
177
  S: this,
179
178
  C: (f, a) => f(...a)
180
179
  });
@@ -185,7 +184,7 @@ var Transcriber = class extends Resource {
185
184
  startChunksRecording() {
186
185
  log2.info("starting", void 0, {
187
186
  F: __dxlog_file2,
188
- L: 116,
187
+ L: 117,
189
188
  S: this,
190
189
  C: (f, a) => f(...a)
191
190
  });
@@ -202,7 +201,7 @@ var Transcriber = class extends Resource {
202
201
  this._transcribeTask?.schedule();
203
202
  log2.info("stopped", void 0, {
204
203
  F: __dxlog_file2,
205
- L: 131,
204
+ L: 132,
206
205
  S: this,
207
206
  C: (f, a) => f(...a)
208
207
  });
@@ -212,7 +211,7 @@ var Transcriber = class extends Resource {
212
211
  chunk
213
212
  }, {
214
213
  F: __dxlog_file2,
215
- L: 135,
214
+ L: 136,
216
215
  S: this,
217
216
  C: (f, a) => f(...a)
218
217
  });
@@ -228,7 +227,7 @@ var Transcriber = class extends Resource {
228
227
  chunks: this._audioChunks.length
229
228
  }, {
230
229
  F: __dxlog_file2,
231
- L: 151,
230
+ L: 152,
232
231
  S: this,
233
232
  C: (f, a) => f(...a)
234
233
  });
@@ -280,7 +279,7 @@ var Transcriber = class extends Resource {
280
279
  string: segments.map((segments2) => segments2.text).join(" ")
281
280
  }, {
282
281
  F: __dxlog_file2,
283
- L: 215,
282
+ L: 216,
284
283
  S: this,
285
284
  C: (f, a) => f(...a)
286
285
  });
@@ -320,11 +319,11 @@ _ts_decorate2([
320
319
  ], Transcriber.prototype, "_fetchTranscription", null);
321
320
 
322
321
  // src/transcriber/transcription-manager.ts
323
- import { signal } from "@preact/signals-core";
322
+ import { Atom } from "@effect-atom/atom-react";
324
323
  import { synchronized as synchronized2 } from "@dxos/async";
325
324
  import { Resource as Resource2 } from "@dxos/context";
326
325
  import { Obj } from "@dxos/echo";
327
- import { DataType } from "@dxos/schema";
326
+ import { Message } from "@dxos/types";
328
327
  function _ts_decorate3(decorators, target, key, desc) {
329
328
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
330
329
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -335,20 +334,26 @@ var RECORD_INTERVAL = 200;
335
334
  var PREFIXED_CHUNKS_AMOUNT = 10;
336
335
  var TRANSCRIBE_AFTER_CHUNKS_AMOUNT = 50;
337
336
  var TranscriptionManager = class extends Resource2 {
337
+ _edgeClient;
338
+ _messageEnricher;
339
+ _registry;
340
+ _audioStreamTrack = void 0;
341
+ _identityDid = void 0;
342
+ _mediaRecorder = void 0;
343
+ _transcriber = void 0;
344
+ _queue = void 0;
345
+ _enabledAtom = Atom.make(false);
338
346
  constructor(options) {
339
347
  super();
340
- this._audioStreamTrack = void 0;
341
- this._identityDid = void 0;
342
- this._mediaRecorder = void 0;
343
- this._transcriber = void 0;
344
- this._queue = void 0;
345
- this._enabled = signal(false);
346
348
  this._edgeClient = options.edgeClient;
347
349
  this._messageEnricher = options.messageEnricher;
350
+ this._registry = options.registry;
348
351
  }
349
- /** @reactive */
350
352
  get enabled() {
351
- return this._enabled.value;
353
+ return this._enabledAtom;
354
+ }
355
+ getEnabled() {
356
+ return this._registry.get(this._enabledAtom);
352
357
  }
353
358
  setQueue(queue) {
354
359
  this._queue = queue;
@@ -361,7 +366,7 @@ var TranscriptionManager = class extends Resource2 {
361
366
  return this;
362
367
  }
363
368
  setRecording(recording) {
364
- if (!this.isOpen || !this._enabled.value) {
369
+ if (!this.isOpen || !this.getEnabled()) {
365
370
  return this;
366
371
  }
367
372
  if (recording) {
@@ -371,73 +376,32 @@ var TranscriptionManager = class extends Resource2 {
371
376
  }
372
377
  return this;
373
378
  }
374
- /**
375
- * Enable or disable transcription.
376
- * @param enabled - Whether to enable transcription.
377
- */
378
379
  async setEnabled(enabled) {
379
- if (this._enabled.value === enabled) {
380
+ if (this.getEnabled() === enabled) {
380
381
  return;
381
382
  }
382
- this._enabled.value = enabled ?? false;
383
- this.isOpen && await this._toggleTranscriber();
383
+ this._registry.set(this._enabledAtom, enabled ?? false);
384
+ if (enabled) {
385
+ await this._maybeRestartTranscriber();
386
+ } else {
387
+ await this._stopTranscriber();
388
+ }
384
389
  }
385
390
  async setAudioTrack(track) {
386
391
  if (this._audioStreamTrack === track) {
387
392
  return;
388
393
  }
389
394
  this._audioStreamTrack = track;
390
- this.isOpen && await this._toggleTranscriber();
395
+ await this._maybeRestartTranscriber();
391
396
  }
392
397
  async _open() {
393
- await this._toggleTranscriber();
398
+ await this._maybeRestartTranscriber();
394
399
  }
395
400
  async _close() {
396
- void this._transcriber?.close();
401
+ await this._stopTranscriber();
397
402
  }
398
- // TODO(burdon): Change this to setEnables (explicit), not toggle.
399
- async _toggleTranscriber() {
400
- await this._maybeReinitTranscriber();
401
- if (this._enabled.value) {
402
- await this._transcriber?.open();
403
- const block = Obj.make(DataType.Message, {
404
- created: (/* @__PURE__ */ new Date()).toISOString(),
405
- blocks: [
406
- {
407
- _tag: "transcript",
408
- text: "Started",
409
- started: (/* @__PURE__ */ new Date()).toISOString()
410
- }
411
- ],
412
- sender: {
413
- role: "assistant"
414
- }
415
- });
416
- await this._queue?.append([
417
- block
418
- ]);
419
- } else {
420
- await this._transcriber?.close();
421
- const block = Obj.make(DataType.Message, {
422
- created: (/* @__PURE__ */ new Date()).toISOString(),
423
- blocks: [
424
- {
425
- _tag: "transcript",
426
- text: "Stopped",
427
- started: (/* @__PURE__ */ new Date()).toISOString()
428
- }
429
- ],
430
- sender: {
431
- role: "assistant"
432
- }
433
- });
434
- await this._queue?.append([
435
- block
436
- ]);
437
- }
438
- }
439
- async _maybeReinitTranscriber() {
440
- if (!this._audioStreamTrack || !this._enabled.value) {
403
+ async _maybeRestartTranscriber() {
404
+ if (!this._audioStreamTrack || !this.getEnabled() || !this.isOpen) {
441
405
  return;
442
406
  }
443
407
  let needReinit = false;
@@ -460,13 +424,17 @@ var TranscriptionManager = class extends Resource2 {
460
424
  recorder: this._mediaRecorder,
461
425
  onSegments: (segments) => this._onSegments(segments)
462
426
  });
427
+ await this._transcriber?.open();
463
428
  }
464
429
  }
430
+ async _stopTranscriber() {
431
+ await this._transcriber?.close();
432
+ }
465
433
  async _onSegments(segments) {
466
434
  if (!this.isOpen || !this._queue) {
467
435
  return;
468
436
  }
469
- let block = Obj.make(DataType.Message, {
437
+ let block = Obj.make(Message.Message, {
470
438
  created: (/* @__PURE__ */ new Date()).toISOString(),
471
439
  blocks: segments,
472
440
  sender: {
@@ -481,9 +449,6 @@ var TranscriptionManager = class extends Resource2 {
481
449
  ]);
482
450
  }
483
451
  };
484
- _ts_decorate3([
485
- synchronized2
486
- ], TranscriptionManager.prototype, "setEnabled", null);
487
452
  _ts_decorate3([
488
453
  synchronized2
489
454
  ], TranscriptionManager.prototype, "setAudioTrack", null);
@@ -493,4 +458,4 @@ export {
493
458
  Transcriber,
494
459
  TranscriptionManager
495
460
  };
496
- //# sourceMappingURL=chunk-HT3W7LDP.mjs.map
461
+ //# sourceMappingURL=chunk-7UE7G6DE.mjs.map