@dxos/plugin-transcription 0.10.0 → 0.11.1

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 (200) hide show
  1. package/dist/lib/TranscriptionPlugin.mjs +2 -0
  2. package/dist/lib/TranscriptionPlugin.node.mjs +11 -0
  3. package/dist/lib/TranscriptionPlugin.node.mjs.map +1 -0
  4. package/dist/lib/TranscriptionPlugin.workerd.mjs +11 -0
  5. package/dist/lib/TranscriptionPlugin.workerd.mjs.map +1 -0
  6. package/dist/lib/capabilities/node.mjs +9 -0
  7. package/dist/lib/capabilities/node.mjs.map +1 -0
  8. package/dist/lib/capabilities.mjs +18 -0
  9. package/dist/lib/capabilities.mjs.map +1 -0
  10. package/dist/lib/chunk-TranscriptionArticle.mjs +49 -0
  11. package/dist/lib/chunk-TranscriptionArticle.mjs.map +1 -0
  12. package/dist/lib/chunk-TranscriptionPlugin.mjs +39 -0
  13. package/dist/lib/chunk-TranscriptionPlugin.mjs.map +1 -0
  14. package/dist/lib/chunk-app-graph-builder.mjs +33 -0
  15. package/dist/lib/chunk-app-graph-builder.mjs.map +1 -0
  16. package/dist/lib/chunk-create.mjs +14 -0
  17. package/dist/lib/chunk-create.mjs.map +1 -0
  18. package/dist/lib/chunk-enrich-message.mjs +18 -0
  19. package/dist/lib/chunk-enrich-message.mjs.map +1 -0
  20. package/dist/lib/chunk-entity-lookup.mjs +26 -0
  21. package/dist/lib/chunk-entity-lookup.mjs.map +1 -0
  22. package/dist/lib/{neutral/markdown-extension-CCDXXY7E.mjs → chunk-markdown-extension.mjs} +7 -11
  23. package/dist/lib/chunk-markdown-extension.mjs.map +1 -0
  24. package/dist/lib/{neutral/chunk-5BVHY75B.mjs → chunk-meta.mjs} +20 -27
  25. package/dist/lib/chunk-meta.mjs.map +1 -0
  26. package/dist/lib/chunk-open.mjs +16 -0
  27. package/dist/lib/chunk-open.mjs.map +1 -0
  28. package/dist/lib/chunk-operation-handler.mjs +11 -0
  29. package/dist/lib/chunk-operation-handler.mjs.map +1 -0
  30. package/dist/lib/chunk-pipeline-status.mjs +17 -0
  31. package/dist/lib/chunk-pipeline-status.mjs.map +1 -0
  32. package/dist/lib/chunk-react-surface.mjs +21 -0
  33. package/dist/lib/chunk-react-surface.mjs.map +1 -0
  34. package/dist/lib/chunk-recording-session.mjs +13 -0
  35. package/dist/lib/chunk-recording-session.mjs.map +1 -0
  36. package/dist/lib/chunk-render-byline.mjs +15 -0
  37. package/dist/lib/chunk-render-byline.mjs.map +1 -0
  38. package/dist/lib/chunk-settings.mjs +26 -0
  39. package/dist/lib/chunk-settings.mjs.map +1 -0
  40. package/dist/lib/chunk-skill-definition.mjs +10 -0
  41. package/dist/lib/chunk-skill-definition.mjs.map +1 -0
  42. package/dist/lib/chunk-skills.mjs +21 -0
  43. package/dist/lib/chunk-skills.mjs.map +1 -0
  44. package/dist/lib/{neutral/summarize-LBUZTOTH.mjs → chunk-summarize.mjs} +25 -38
  45. package/dist/lib/chunk-summarize.mjs.map +1 -0
  46. package/dist/lib/chunk-text-content.mjs +28 -0
  47. package/dist/lib/chunk-text-content.mjs.map +1 -0
  48. package/dist/lib/chunk-transcriber.mjs +161 -0
  49. package/dist/lib/chunk-transcriber.mjs.map +1 -0
  50. package/dist/lib/chunk-transcription-driver.mjs +165 -0
  51. package/dist/lib/chunk-transcription-driver.mjs.map +1 -0
  52. package/dist/lib/chunk-types.mjs +141 -0
  53. package/dist/lib/chunk-types.mjs.map +1 -0
  54. package/dist/lib/components.mjs +108 -0
  55. package/dist/lib/components.mjs.map +1 -0
  56. package/dist/lib/containers.mjs +7 -0
  57. package/dist/lib/containers.mjs.map +1 -0
  58. package/dist/lib/hooks.mjs +87 -0
  59. package/dist/lib/hooks.mjs.map +1 -0
  60. package/dist/lib/index.mjs +4 -0
  61. package/dist/lib/meta.mjs +2 -0
  62. package/dist/lib/operations.mjs +7 -0
  63. package/dist/lib/operations.mjs.map +1 -0
  64. package/dist/lib/plugin.mjs +9 -0
  65. package/dist/lib/plugin.mjs.map +1 -0
  66. package/dist/lib/skills.mjs +2 -0
  67. package/dist/lib/testing.mjs +118 -0
  68. package/dist/lib/testing.mjs.map +1 -0
  69. package/dist/lib/translations.mjs +23 -0
  70. package/dist/lib/translations.mjs.map +1 -0
  71. package/dist/lib/types.mjs +2 -0
  72. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  73. package/dist/types/src/capabilities/entity-lookup.d.ts +1 -1
  74. package/dist/types/src/capabilities/markdown-extension.d.ts +1 -1
  75. package/dist/types/src/capabilities/node.d.ts +6 -0
  76. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  78. package/dist/types/src/capabilities/pipeline-status.d.ts +1 -1
  79. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  80. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/recording-session.d.ts +1 -1
  82. package/dist/types/src/capabilities/settings.d.ts +1 -1
  83. package/dist/types/src/capabilities/text-content.d.ts +1 -1
  84. package/dist/types/src/capabilities/transcriber.d.ts +1 -1
  85. package/dist/types/src/capabilities/transcriber.d.ts.map +1 -1
  86. package/dist/types/src/capabilities/transcription-driver.d.ts +1 -1
  87. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.d.ts +4 -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.map +1 -1
  90. package/dist/types/src/hooks/useTranscriptionRecording.d.ts.map +1 -1
  91. package/dist/types/src/normalization/message-normalizer.d.ts +4 -4
  92. package/dist/types/src/normalization/message-normalizer.d.ts.map +1 -1
  93. package/dist/types/src/normalization/normalization.d.ts +97 -87
  94. package/dist/types/src/normalization/normalization.d.ts.map +1 -1
  95. package/dist/types/src/operations/open.d.ts.map +1 -1
  96. package/dist/types/src/stories/Pipeline.stories.d.ts.map +1 -1
  97. package/dist/types/src/stories/Transcription.stories.d.ts.map +1 -1
  98. package/dist/types/src/transcription-manager.d.ts +1 -1
  99. package/dist/types/src/transcription-manager.d.ts.map +1 -1
  100. package/dist/types/src/types/TranscriptOperation.d.ts +97 -87
  101. package/dist/types/src/types/TranscriptOperation.d.ts.map +1 -1
  102. package/dist/types/src/types/TranscriptionCapabilities.d.ts +2 -2
  103. package/dist/types/src/types/TranscriptionCapabilities.d.ts.map +1 -1
  104. package/dist/types/src/util/index.d.ts +1 -0
  105. package/dist/types/src/util/index.d.ts.map +1 -1
  106. package/dist/types/src/util/render-byline.d.ts +11 -0
  107. package/dist/types/src/util/render-byline.d.ts.map +1 -0
  108. package/dist/types/tsconfig.tsbuildinfo +1 -1
  109. package/dx.config.ts +1 -1
  110. package/package.json +78 -70
  111. package/src/capabilities/entity-lookup.ts +1 -1
  112. package/src/capabilities/node.ts +17 -0
  113. package/src/capabilities/pipeline-status.ts +1 -1
  114. package/src/capabilities/{react-surface.tsx → react-surface.ts} +2 -4
  115. package/src/capabilities/recording-session.ts +1 -1
  116. package/src/capabilities/text-content.ts +9 -4
  117. package/src/capabilities/transcriber.ts +3 -1
  118. package/src/capabilities/transcription-driver.tsx +1 -1
  119. package/src/containers/TranscriptionArticle/TranscriptionArticle.stories.tsx +2 -1
  120. package/src/containers/TranscriptionArticle/TranscriptionArticle.tsx +8 -3
  121. package/src/hooks/useTranscriptionRecording.ts +7 -8
  122. package/src/normalization/message-normalizer.ts +10 -7
  123. package/src/normalization/normalization.test.ts +41 -44
  124. package/src/operations/open.ts +1 -1
  125. package/src/stories/Pipeline.stories.tsx +15 -14
  126. package/src/stories/Transcription.stories.tsx +3 -8
  127. package/src/transcription-manager.ts +2 -2
  128. package/src/types/TranscriptionCapabilities.ts +2 -2
  129. package/src/util/index.ts +1 -0
  130. package/src/util/render-byline.ts +40 -0
  131. package/dist/lib/neutral/TranscriptionArticle-FEWCWG4A.mjs +0 -51
  132. package/dist/lib/neutral/TranscriptionArticle-FEWCWG4A.mjs.map +0 -7
  133. package/dist/lib/neutral/TranscriptionPlugin.mjs +0 -69
  134. package/dist/lib/neutral/TranscriptionPlugin.mjs.map +0 -7
  135. package/dist/lib/neutral/TranscriptionPlugin.node.mjs +0 -25
  136. package/dist/lib/neutral/TranscriptionPlugin.node.mjs.map +0 -7
  137. package/dist/lib/neutral/TranscriptionPlugin.workerd.mjs +0 -21
  138. package/dist/lib/neutral/TranscriptionPlugin.workerd.mjs.map +0 -7
  139. package/dist/lib/neutral/app-graph-builder-GQRMI22E.mjs +0 -48
  140. package/dist/lib/neutral/app-graph-builder-GQRMI22E.mjs.map +0 -7
  141. package/dist/lib/neutral/capabilities/index.mjs +0 -31
  142. package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
  143. package/dist/lib/neutral/chunk-5BVHY75B.mjs.map +0 -7
  144. package/dist/lib/neutral/chunk-HNXSU7HJ.mjs +0 -8
  145. package/dist/lib/neutral/chunk-HNXSU7HJ.mjs.map +0 -7
  146. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
  147. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
  148. package/dist/lib/neutral/chunk-KOXLGGSL.mjs +0 -30
  149. package/dist/lib/neutral/chunk-KOXLGGSL.mjs.map +0 -7
  150. package/dist/lib/neutral/chunk-MDV7NBFJ.mjs +0 -182
  151. package/dist/lib/neutral/chunk-MDV7NBFJ.mjs.map +0 -7
  152. package/dist/lib/neutral/components/index.mjs +0 -125
  153. package/dist/lib/neutral/components/index.mjs.map +0 -7
  154. package/dist/lib/neutral/containers/index.mjs +0 -9
  155. package/dist/lib/neutral/containers/index.mjs.map +0 -7
  156. package/dist/lib/neutral/create-HNHGCKZ4.mjs +0 -21
  157. package/dist/lib/neutral/create-HNHGCKZ4.mjs.map +0 -7
  158. package/dist/lib/neutral/enrich-message-DSJU4TXC.mjs +0 -24
  159. package/dist/lib/neutral/enrich-message-DSJU4TXC.mjs.map +0 -7
  160. package/dist/lib/neutral/entity-lookup-PCDW7NC4.mjs +0 -25
  161. package/dist/lib/neutral/entity-lookup-PCDW7NC4.mjs.map +0 -7
  162. package/dist/lib/neutral/hooks/index.mjs +0 -97
  163. package/dist/lib/neutral/hooks/index.mjs.map +0 -7
  164. package/dist/lib/neutral/index.mjs +0 -20
  165. package/dist/lib/neutral/index.mjs.map +0 -7
  166. package/dist/lib/neutral/markdown-extension-CCDXXY7E.mjs.map +0 -7
  167. package/dist/lib/neutral/meta.json +0 -1
  168. package/dist/lib/neutral/meta.mjs +0 -8
  169. package/dist/lib/neutral/meta.mjs.map +0 -7
  170. package/dist/lib/neutral/open-SNMZXXYO.mjs +0 -25
  171. package/dist/lib/neutral/open-SNMZXXYO.mjs.map +0 -7
  172. package/dist/lib/neutral/operation-handler-NXMOAXFP.mjs +0 -13
  173. package/dist/lib/neutral/operation-handler-NXMOAXFP.mjs.map +0 -7
  174. package/dist/lib/neutral/operations/index.mjs +0 -8
  175. package/dist/lib/neutral/operations/index.mjs.map +0 -7
  176. package/dist/lib/neutral/pipeline-status-XMWMAUJY.mjs +0 -17
  177. package/dist/lib/neutral/pipeline-status-XMWMAUJY.mjs.map +0 -7
  178. package/dist/lib/neutral/plugin.mjs +0 -16
  179. package/dist/lib/neutral/plugin.mjs.map +0 -7
  180. package/dist/lib/neutral/react-surface-YMZRO242.mjs +0 -26
  181. package/dist/lib/neutral/react-surface-YMZRO242.mjs.map +0 -7
  182. package/dist/lib/neutral/recording-session-IADO7ATU.mjs +0 -15
  183. package/dist/lib/neutral/recording-session-IADO7ATU.mjs.map +0 -7
  184. package/dist/lib/neutral/settings-7KE4MABW.mjs +0 -31
  185. package/dist/lib/neutral/settings-7KE4MABW.mjs.map +0 -7
  186. package/dist/lib/neutral/skill-definition-DXNK324V.mjs +0 -15
  187. package/dist/lib/neutral/skill-definition-DXNK324V.mjs.map +0 -7
  188. package/dist/lib/neutral/skills/index.mjs +0 -8
  189. package/dist/lib/neutral/skills/index.mjs.map +0 -7
  190. package/dist/lib/neutral/summarize-LBUZTOTH.mjs.map +0 -7
  191. package/dist/lib/neutral/text-content-NOWR642C.mjs +0 -30
  192. package/dist/lib/neutral/text-content-NOWR642C.mjs.map +0 -7
  193. package/dist/lib/neutral/transcriber-6XZHUUHK.mjs +0 -174
  194. package/dist/lib/neutral/transcriber-6XZHUUHK.mjs.map +0 -7
  195. package/dist/lib/neutral/transcription-driver-DN6ELQXZ.mjs +0 -207
  196. package/dist/lib/neutral/transcription-driver-DN6ELQXZ.mjs.map +0 -7
  197. package/dist/lib/neutral/translations.mjs +0 -31
  198. package/dist/lib/neutral/translations.mjs.map +0 -7
  199. package/dist/lib/neutral/types/index.mjs +0 -12
  200. package/dist/lib/neutral/types/index.mjs.map +0 -7
package/dx.config.ts CHANGED
@@ -36,7 +36,7 @@ export default Config2.make({
36
36
  source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-transcription',
37
37
  icon: { key: 'ph--microphone--regular', hue: 'sky' },
38
38
  spec: 'PLUGIN.mdl',
39
- tags: ['labs'],
39
+ tags: ['alpha'],
40
40
  screenshots: [],
41
41
  },
42
42
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-transcription",
3
- "version": "0.10.0",
3
+ "version": "0.11.1",
4
4
  "description": "Voice transcription.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -15,37 +15,41 @@
15
15
  "#skills": {
16
16
  "source": "./src/skills/index.ts",
17
17
  "types": "./dist/types/src/skills/index.d.ts",
18
- "default": "./dist/lib/neutral/skills/index.mjs"
18
+ "default": "./dist/lib/skills.mjs"
19
19
  },
20
20
  "#capabilities": {
21
- "source": "./src/capabilities/index.ts",
21
+ "source": {
22
+ "node": "./src/capabilities/node.ts",
23
+ "default": "./src/capabilities/index.ts"
24
+ },
22
25
  "types": "./dist/types/src/capabilities/index.d.ts",
23
- "default": "./dist/lib/neutral/capabilities/index.mjs"
26
+ "node": "./dist/lib/capabilities/node.mjs",
27
+ "default": "./dist/lib/capabilities.mjs"
24
28
  },
25
29
  "#components": {
26
30
  "source": "./src/components/index.ts",
27
31
  "types": "./dist/types/src/components/index.d.ts",
28
- "default": "./dist/lib/neutral/components/index.mjs"
32
+ "default": "./dist/lib/components.mjs"
29
33
  },
30
34
  "#containers": {
31
35
  "source": "./src/containers/index.ts",
32
36
  "types": "./dist/types/src/containers/index.d.ts",
33
- "default": "./dist/lib/neutral/containers/index.mjs"
37
+ "default": "./dist/lib/containers.mjs"
34
38
  },
35
39
  "#hooks": {
36
40
  "source": "./src/hooks/index.ts",
37
41
  "types": "./dist/types/src/hooks/index.d.ts",
38
- "default": "./dist/lib/neutral/hooks/index.mjs"
42
+ "default": "./dist/lib/hooks.mjs"
39
43
  },
40
44
  "#meta": {
41
45
  "source": "./src/meta.ts",
42
46
  "types": "./dist/types/src/meta.d.ts",
43
- "default": "./dist/lib/neutral/meta.mjs"
47
+ "default": "./dist/lib/meta.mjs"
44
48
  },
45
49
  "#operations": {
46
50
  "source": "./src/operations/index.ts",
47
51
  "types": "./dist/types/src/operations/index.d.ts",
48
- "default": "./dist/lib/neutral/operations/index.mjs"
52
+ "default": "./dist/lib/operations.mjs"
49
53
  },
50
54
  "#plugin": {
51
55
  "source": {
@@ -54,53 +58,53 @@
54
58
  "default": "./src/TranscriptionPlugin.tsx"
55
59
  },
56
60
  "types": "./dist/types/src/TranscriptionPlugin.d.ts",
57
- "workerd": "./dist/lib/neutral/TranscriptionPlugin.workerd.mjs",
58
- "node": "./dist/lib/neutral/TranscriptionPlugin.node.mjs",
59
- "default": "./dist/lib/neutral/TranscriptionPlugin.mjs"
61
+ "workerd": "./dist/lib/TranscriptionPlugin.workerd.mjs",
62
+ "node": "./dist/lib/TranscriptionPlugin.node.mjs",
63
+ "default": "./dist/lib/TranscriptionPlugin.mjs"
60
64
  },
61
65
  "#testing": "./src/testing/index.ts",
62
66
  "#translations": {
63
67
  "source": "./src/translations.ts",
64
68
  "types": "./dist/types/src/translations.d.ts",
65
- "default": "./dist/lib/neutral/translations.mjs"
69
+ "default": "./dist/lib/translations.mjs"
66
70
  },
67
71
  "#types": {
68
72
  "source": "./src/types/index.ts",
69
73
  "types": "./dist/types/src/types/index.d.ts",
70
- "default": "./dist/lib/neutral/types/index.mjs"
74
+ "default": "./dist/lib/types.mjs"
71
75
  }
72
76
  },
73
77
  "exports": {
74
78
  ".": {
75
79
  "source": "./src/index.ts",
76
80
  "types": "./dist/types/src/index.d.ts",
77
- "default": "./dist/lib/neutral/index.mjs"
81
+ "import": "./dist/lib/index.mjs"
78
82
  },
79
83
  "./assets/PLUGIN.mdl": "./PLUGIN.mdl",
80
84
  "./skills": {
81
85
  "source": "./src/skills/index.ts",
82
86
  "types": "./dist/types/src/skills/index.d.ts",
83
- "default": "./dist/lib/neutral/skills/index.mjs"
87
+ "import": "./dist/lib/skills.mjs"
84
88
  },
85
89
  "./components": {
86
90
  "source": "./src/components/index.ts",
87
91
  "types": "./dist/types/src/components/index.d.ts",
88
- "default": "./dist/lib/neutral/components/index.mjs"
92
+ "import": "./dist/lib/components.mjs"
89
93
  },
90
94
  "./plugin": {
91
95
  "source": "./src/plugin.ts",
92
96
  "types": "./dist/types/src/plugin.d.ts",
93
- "default": "./dist/lib/neutral/plugin.mjs"
97
+ "import": "./dist/lib/plugin.mjs"
94
98
  },
95
99
  "./translations": {
96
100
  "source": "./src/translations.ts",
97
101
  "types": "./dist/types/src/translations.d.ts",
98
- "default": "./dist/lib/neutral/translations.mjs"
102
+ "import": "./dist/lib/translations.mjs"
99
103
  },
100
104
  "./types": {
101
105
  "source": "./src/types/index.ts",
102
106
  "types": "./dist/types/src/types/index.d.ts",
103
- "default": "./dist/lib/neutral/types/index.mjs"
107
+ "import": "./dist/lib/types.mjs"
104
108
  }
105
109
  },
106
110
  "types": "dist/types/src/index.d.ts",
@@ -111,46 +115,50 @@
111
115
  "PLUGIN.mdl"
112
116
  ],
113
117
  "dependencies": {
114
- "@codemirror/state": "^6.6.0",
115
- "@effect-atom/atom-react": "^0.5.0",
118
+ "@codemirror/state": "^6.7.1",
119
+ "@effect-atom/atom": "^0.5.3",
116
120
  "@radix-ui/react-primitive": "2.0.2",
117
121
  "@radix-ui/react-slot": "1.1.2",
118
122
  "effect": "3.21.4",
119
- "@dxos/ai": "0.10.0",
120
- "@dxos/app-toolkit": "0.10.0",
121
- "@dxos/app-framework": "0.10.0",
122
- "@dxos/assistant": "0.10.0",
123
- "@dxos/async": "0.10.0",
124
- "@dxos/client": "0.10.0",
125
- "@dxos/compute": "0.10.0",
126
- "@dxos/config": "0.10.0",
127
- "@dxos/context": "0.10.0",
128
- "@dxos/echo-doc": "0.10.0",
129
- "@dxos/echo": "0.10.0",
130
- "@dxos/functions-runtime": "0.10.0",
131
- "@dxos/invariant": "0.10.0",
132
- "@dxos/log": "0.10.0",
133
- "@dxos/keys": "0.10.0",
134
- "@dxos/plugin-markdown": "0.10.0",
135
- "@dxos/plugin-graph": "0.10.0",
136
- "@dxos/react-client": "0.10.0",
137
- "@dxos/react-edge-client": "0.10.0",
138
- "@dxos/react-ui-audio": "0.10.0",
139
- "@dxos/react-ui-components": "0.10.0",
140
- "@dxos/react-ui-editor": "0.10.0",
141
- "@dxos/react-ui-graph": "0.10.0",
142
- "@dxos/react-ui-menu": "0.10.0",
143
- "@dxos/plugin-client": "0.10.0",
144
- "@dxos/effect": "0.10.0",
145
- "@dxos/react-ui-transcription": "0.10.0",
146
- "@dxos/schema": "0.10.0",
147
- "@dxos/tracing": "0.10.0",
148
- "@dxos/transcription-pipeline": "0.10.0",
149
- "@dxos/types": "0.10.0",
150
- "@dxos/ui-editor": "0.10.0",
151
- "@dxos/util": "0.10.0"
123
+ "@dxos/ai": "0.11.1",
124
+ "@dxos/app-framework": "0.11.1",
125
+ "@dxos/app-toolkit": "0.11.1",
126
+ "@dxos/assistant": "0.11.1",
127
+ "@dxos/async": "0.11.1",
128
+ "@dxos/client": "0.11.1",
129
+ "@dxos/compute": "0.11.1",
130
+ "@dxos/compute-runtime": "0.11.1",
131
+ "@dxos/config": "0.11.1",
132
+ "@dxos/context": "0.11.1",
133
+ "@dxos/echo": "0.11.1",
134
+ "@dxos/echo-doc": "0.11.1",
135
+ "@dxos/echo-react": "0.11.1",
136
+ "@dxos/effect": "0.11.1",
137
+ "@dxos/halo": "0.11.1",
138
+ "@dxos/halo-react": "0.11.1",
139
+ "@dxos/invariant": "0.11.1",
140
+ "@dxos/keys": "0.11.1",
141
+ "@dxos/log": "0.11.1",
142
+ "@dxos/pipeline-transcription": "0.11.1",
143
+ "@dxos/plugin-client": "0.11.1",
144
+ "@dxos/plugin-graph": "0.11.1",
145
+ "@dxos/plugin-markdown": "0.11.1",
146
+ "@dxos/react-client": "0.11.1",
147
+ "@dxos/react-edge-client": "0.11.1",
148
+ "@dxos/react-ui-audio": "0.11.1",
149
+ "@dxos/react-ui-components": "0.11.1",
150
+ "@dxos/react-ui-editor": "0.11.1",
151
+ "@dxos/react-ui-graph": "0.11.1",
152
+ "@dxos/react-ui-menu": "0.11.1",
153
+ "@dxos/react-ui-transcription": "0.11.1",
154
+ "@dxos/schema": "0.11.1",
155
+ "@dxos/tracing": "0.11.1",
156
+ "@dxos/types": "0.11.1",
157
+ "@dxos/ui-editor": "0.11.1",
158
+ "@dxos/util": "0.11.1"
152
159
  },
153
160
  "devDependencies": {
161
+ "@effect-atom/atom": "^0.5.3",
154
162
  "@effect-atom/atom-react": "^0.5.0",
155
163
  "@effect/platform": "0.96.2",
156
164
  "@types/dom-speech-recognition": "^0.0.6",
@@ -159,19 +167,19 @@
159
167
  "react": "~19.2.7",
160
168
  "react-dom": "~19.2.7",
161
169
  "tailwindcss": "^4.3.0",
162
- "@dxos/plugin-preview": "0.10.0",
163
- "@dxos/plugin-space": "0.10.0",
164
- "@dxos/plugin-testing": "0.10.0",
165
- "@dxos/plugin-theme": "0.10.0",
166
- "@dxos/random": "0.10.0",
167
- "@dxos/react-ui": "0.10.0",
168
- "@dxos/react-ui-attention": "0.10.0",
169
- "@dxos/react-ui-form": "0.10.0",
170
- "@dxos/react-ui-list": "0.10.0",
171
- "@dxos/storybook-utils": "0.10.0",
172
- "@dxos/ui-theme": "0.10.0",
173
- "@dxos/react-ui-syntax-highlighter": "0.10.0",
174
- "@dxos/test-utils": "0.10.0"
170
+ "@dxos/plugin-preview": "0.11.1",
171
+ "@dxos/plugin-space": "0.11.1",
172
+ "@dxos/plugin-testing": "0.11.1",
173
+ "@dxos/plugin-theme": "0.11.1",
174
+ "@dxos/random": "0.11.1",
175
+ "@dxos/react-ui": "0.11.1",
176
+ "@dxos/react-ui-attention": "0.11.1",
177
+ "@dxos/react-ui-form": "0.11.1",
178
+ "@dxos/react-ui-list": "0.11.1",
179
+ "@dxos/react-ui-syntax-highlighter": "0.11.1",
180
+ "@dxos/storybook-utils": "0.11.1",
181
+ "@dxos/ui-theme": "0.11.1",
182
+ "@dxos/test-utils": "0.11.1"
175
183
  },
176
184
  "peerDependencies": {
177
185
  "@effect-atom/atom-react": "^0.5.0",
@@ -179,8 +187,8 @@
179
187
  "effect": "3.21.4",
180
188
  "react": "~19.2.7",
181
189
  "react-dom": "~19.2.7",
182
- "@dxos/ui-theme": "0.10.0",
183
- "@dxos/react-ui": "0.10.0"
190
+ "@dxos/ui-theme": "^0.11.1",
191
+ "@dxos/react-ui": "^0.11.1"
184
192
  },
185
193
  "publishConfig": {
186
194
  "access": "public"
@@ -6,8 +6,8 @@ import * as Effect from 'effect/Effect';
6
6
 
7
7
  import { Capability } from '@dxos/app-framework';
8
8
  import { AppSpace } from '@dxos/app-toolkit';
9
+ import { type EntityLookup, makeDatabaseLookup } from '@dxos/pipeline-transcription';
9
10
  import { ClientCapabilities } from '@dxos/plugin-client';
10
- import { type EntityLookup, makeDatabaseLookup } from '@dxos/transcription-pipeline';
11
11
 
12
12
  import { TranscriptionCapabilities } from '#types';
13
13
 
@@ -0,0 +1,17 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+ import type { OperationHandlerSet } from '@dxos/compute';
7
+
8
+ // The capabilities `TranscriptionPlugin.node` activates, and only those. `Capability.lazy` defers the
9
+ // import at runtime but a bundler still walks it, so listing the React surfaces here would pull
10
+ // the plugin's components into every node and bun build.
11
+
12
+ export const SkillDefinition = Capability.lazy('SkillDefinition', () => import('./skill-definition'));
13
+ export const TextContent = Capability.lazy('TextContent', () => import('./text-content'));
14
+ export const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(
15
+ 'OperationHandler',
16
+ () => import('./operation-handler'),
17
+ );
@@ -2,7 +2,7 @@
2
2
  // Copyright 2026 DXOS.org
3
3
  //
4
4
 
5
- import { Atom } from '@effect-atom/atom-react';
5
+ import { Atom } from '@effect-atom/atom';
6
6
  import * as Effect from 'effect/Effect';
7
7
 
8
8
  import { Capability } from '@dxos/app-framework';
@@ -3,7 +3,6 @@
3
3
  //
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
- import React from 'react';
7
6
 
8
7
  import { Capabilities, Capability } from '@dxos/app-framework';
9
8
  import { Surface } from '@dxos/app-framework/ui';
@@ -22,9 +21,8 @@ export default Capability.makeModule(() =>
22
21
  AppSurface.object(AppSurface.Article, Transcript.Transcript),
23
22
  AppSurface.object(AppSurface.Section, Transcript.Transcript),
24
23
  ),
25
- component: ({ data, role }) => (
26
- <TranscriptionArticle role={role} subject={data.subject} attendableId={data.attendableId} />
27
- ),
24
+ component: TranscriptionArticle,
25
+ props: ({ role, data: { subject, attendableId } }) => ({ role, subject, attendableId }),
28
26
  }),
29
27
  ]),
30
28
  ),
@@ -2,7 +2,7 @@
2
2
  // Copyright 2026 DXOS.org
3
3
  //
4
4
 
5
- import { Atom } from '@effect-atom/atom-react';
5
+ import { Atom } from '@effect-atom/atom';
6
6
  import * as Effect from 'effect/Effect';
7
7
 
8
8
  import { Capability } from '@dxos/app-framework';
@@ -6,20 +6,25 @@ import * as Effect from 'effect/Effect';
6
6
 
7
7
  import { Capability } from '@dxos/app-framework';
8
8
  import { AppCapabilities } from '@dxos/app-toolkit';
9
+ import { getSpace } from '@dxos/client/echo';
9
10
  import { Feed, Filter, Obj, Query, Scope, Type } from '@dxos/echo';
10
- import { getSpace } from '@dxos/react-client/echo';
11
- import { renderByline } from '@dxos/react-ui-transcription';
12
11
  import { Message, Transcript } from '@dxos/types';
13
12
 
13
+ import { renderByline } from '../util';
14
+
14
15
  export default Capability.makeModule(
15
16
  Effect.fnUntraced(function* () {
16
17
  return Capability.contributes(AppCapabilities.TextContent, {
17
18
  id: Type.getTypename(Transcript.Transcript),
18
19
  getTextContent: async (transcript: Transcript.Transcript) => {
19
20
  const space = getSpace(transcript);
20
- const members = space?.members.get().map((member) => member.identity) ?? [];
21
+ const members =
22
+ space?.members.get().map((member) => ({
23
+ did: member.identity?.did,
24
+ displayName: member.identity?.profile?.displayName,
25
+ })) ?? [];
21
26
  const feed = await transcript.feed.load();
22
- const feedDXN = feed ? Feed.getQueueUri(feed) : undefined;
27
+ const feedDXN = feed ? Feed.getFeedUri(feed) : undefined;
23
28
  if (!space || !feedDXN) {
24
29
  return undefined;
25
30
  }
@@ -3,6 +3,7 @@
3
3
  //
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
+ import * as Option from 'effect/Option';
6
7
 
7
8
  import { Capabilities, Capability } from '@dxos/app-framework';
8
9
  import { ClientCapabilities } from '@dxos/plugin-client';
@@ -26,13 +27,14 @@ export default Capability.makeModule(
26
27
  messageEnricher,
27
28
  }) => {
28
29
  const client = capabilities.get(ClientCapabilities.Client);
30
+ const haloIdentity = capabilities.get(ClientCapabilities.IdentityService);
29
31
  const transcriptionManager = new TranscriptionManagerImpl({
30
32
  edgeClient: client.edge.http,
31
33
  messageEnricher,
32
34
  registry,
33
35
  });
34
36
 
35
- const identity = client.halo.identity.get();
37
+ const identity = Option.getOrUndefined(haloIdentity.getSnapshot());
36
38
  if (identity) {
37
39
  transcriptionManager.setIdentityDid(identity.did);
38
40
  }
@@ -8,9 +8,9 @@ import React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } fr
8
8
  import { Capabilities, Capability } from '@dxos/app-framework';
9
9
  import { useAtomCapability, useAtomCapabilityState, useCapabilities } from '@dxos/app-framework/ui';
10
10
  import { log } from '@dxos/log';
11
+ import { linkEntities } from '@dxos/pipeline-transcription';
11
12
  import { MarkdownCapabilities } from '@dxos/plugin-markdown/types';
12
13
  import { useAudioTrack, useTranscriber } from '@dxos/react-ui-transcription';
13
- import { linkEntities } from '@dxos/transcription-pipeline';
14
14
  import { type ContentBlock } from '@dxos/types';
15
15
  import { PendingTextStreamer, cancelPendingText, editorPendingTextSink, pendingTextState } from '@dxos/ui-editor';
16
16
 
@@ -9,9 +9,10 @@ import React from 'react';
9
9
  import { withPluginManager } from '@dxos/app-framework/testing';
10
10
  import { AppActivationEvents } from '@dxos/app-toolkit';
11
11
  import { Feed, Query, Ref } from '@dxos/echo';
12
+ import { useQuery } from '@dxos/echo-react';
12
13
  import { ClientPlugin, initializeIdentity } from '@dxos/plugin-client/testing';
13
14
  import { corePlugins } from '@dxos/plugin-testing';
14
- import { useQuery, useSpaces } from '@dxos/react-client/echo';
15
+ import { useSpaces } from '@dxos/react-client/echo';
15
16
  import { Loading, withLayout } from '@dxos/react-ui/testing';
16
17
  import { Message, Transcript } from '@dxos/types';
17
18
 
@@ -6,20 +6,23 @@ import React from 'react';
6
6
 
7
7
  import { type AppSurface } from '@dxos/app-toolkit/ui';
8
8
  import { Filter, Obj, Query } from '@dxos/echo';
9
- import { useMembers, useQuery } from '@dxos/react-client/echo';
9
+ import { useQuery } from '@dxos/echo-react';
10
+ import { useMembers } from '@dxos/halo-react';
10
11
  import { Panel } from '@dxos/react-ui';
11
12
  import { Menu, MenuBuilder, useMenuBuilder } from '@dxos/react-ui-menu';
12
- import { Transcription, renderByline, useFeedModelAdapter } from '@dxos/react-ui-transcription';
13
+ import { Transcription, useFeedModelAdapter } from '@dxos/react-ui-transcription';
13
14
  import { Message, type Transcript } from '@dxos/types';
14
15
 
15
16
  import { useTranscriptionRecording } from '#hooks';
16
17
  import { meta } from '#meta';
17
18
 
19
+ import { renderByline } from '../../util';
20
+
18
21
  export type TranscriptionArticleProps = AppSurface.ObjectArticleProps<Transcript.Transcript>;
19
22
 
20
23
  export const TranscriptionArticle = ({ role, subject: transcript, attendableId }: TranscriptionArticleProps) => {
21
24
  const db = Obj.getDatabase(transcript);
22
- const members = useMembers(db?.spaceId).map((member) => member.identity);
25
+ const members = useMembers(db?.spaceId);
23
26
  const feed = transcript.feed.target;
24
27
  const messages = useQuery(
25
28
  db,
@@ -59,3 +62,5 @@ export const TranscriptionArticle = ({ role, subject: transcript, attendableId }
59
62
  </Panel.Root>
60
63
  );
61
64
  };
65
+
66
+ TranscriptionArticle.displayName = 'TranscriptionArticle';
@@ -8,9 +8,8 @@ import { useCallback, useEffect, useState } from 'react';
8
8
  import { useAtomCapability, useOperationInvoker } from '@dxos/app-framework/ui';
9
9
  import { Database, Feed, Obj } from '@dxos/echo';
10
10
  import { EffectEx } from '@dxos/effect';
11
+ import { useIdentity } from '@dxos/halo-react';
11
12
  import { log } from '@dxos/log';
12
- import { getSpace } from '@dxos/react-client/echo';
13
- import { useIdentity } from '@dxos/react-client/halo';
14
13
  import { useAudioTrack, useTranscriber } from '@dxos/react-ui-transcription';
15
14
  import { Message, type Transcript } from '@dxos/types';
16
15
 
@@ -27,7 +26,7 @@ export type TranscriptionRecording = {
27
26
  * recording flag and a toggle callback for the caller to wire to UI.
28
27
  */
29
28
  export const useTranscriptionRecording = (transcript: Transcript.Transcript): TranscriptionRecording => {
30
- const space = getSpace(transcript);
29
+ const db = Obj.getDatabase(transcript);
31
30
  const identity = useIdentity();
32
31
  const feed = transcript.feed.target;
33
32
 
@@ -40,10 +39,10 @@ export const useTranscriptionRecording = (transcript: Transcript.Transcript): Tr
40
39
  // extraction is enabled) with references to known entities mentioned in the transcript.
41
40
  const handleSegments = useCallback(
42
41
  async (blocks: Message.Message['blocks']) => {
43
- if (!space || !feed || blocks.length === 0) {
42
+ if (!db || !feed || blocks.length === 0) {
44
43
  return;
45
44
  }
46
- const sender = identity ? { identityDid: identity.did, name: identity.profile?.displayName } : {};
45
+ const sender = identity ? { identityDid: identity.did, name: identity.displayName } : {};
47
46
  let message = Obj.make(Message.Message, {
48
47
  sender,
49
48
  created: new Date().toISOString(),
@@ -56,7 +55,7 @@ export const useTranscriptionRecording = (transcript: Transcript.Transcript): Tr
56
55
  const { data, error } = await invokePromise(
57
56
  TranscriptOperation.EnrichMessage,
58
57
  { message },
59
- { spaceId: space.id },
58
+ { spaceId: db.spaceId },
60
59
  );
61
60
  if (error) {
62
61
  log.warn('entity extraction failed; using raw transcript', { error });
@@ -65,9 +64,9 @@ export const useTranscriptionRecording = (transcript: Transcript.Transcript): Tr
65
64
  }
66
65
  }
67
66
 
68
- await Feed.append(feed, [message]).pipe(Effect.provide(Database.layer(space.db)), EffectEx.runAndForwardErrors);
67
+ await Feed.append(feed, [message]).pipe(Effect.provide(Database.layer(db)), EffectEx.runAndForwardErrors);
69
68
  },
70
- [space, feed, identity, invokePromise, settings],
69
+ [db, feed, identity, invokePromise, settings],
71
70
  );
72
71
 
73
72
  // Drive the transcriber lifecycle off the recording flag + audio track.
@@ -6,10 +6,10 @@ import * as Effect from 'effect/Effect';
6
6
  import type * as Runtime from 'effect/Runtime';
7
7
 
8
8
  import { DeferredTask, asyncTimeout } from '@dxos/async';
9
+ import { Operation } from '@dxos/compute';
9
10
  import { LifecycleState, Resource } from '@dxos/context';
10
11
  import { Database, Feed, Filter } from '@dxos/echo';
11
12
  import { EffectEx } from '@dxos/effect';
12
- import { type FunctionExecutor } from '@dxos/functions-runtime';
13
13
  import { log } from '@dxos/log';
14
14
  import { Message } from '@dxos/types';
15
15
 
@@ -20,7 +20,7 @@ const PROCESSING_TIMEOUT = 20_000; // ms
20
20
  const MAX_RANGE_ID_COUNT = 10;
21
21
 
22
22
  export type SegmentsNormalizerProps = {
23
- functionExecutor: FunctionExecutor;
23
+ operationRuntime: Runtime.Runtime<Operation.Service>;
24
24
  feed: Feed.Feed;
25
25
  feedRuntime: Runtime.Runtime<Database.Service>;
26
26
  startingCursor: QueueCursor;
@@ -33,7 +33,7 @@ export type QueueCursor = {
33
33
  };
34
34
 
35
35
  export class MessageNormalizer extends Resource {
36
- private readonly _functionExecutor: FunctionExecutor;
36
+ private readonly _operationRuntime: Runtime.Runtime<Operation.Service>;
37
37
 
38
38
  private _feed: Feed.Feed;
39
39
  private _feedRuntime: Runtime.Runtime<Database.Service>;
@@ -42,9 +42,9 @@ export class MessageNormalizer extends Resource {
42
42
  private _normalizationTask?: DeferredTask;
43
43
  private _lastProcessedMessageIds?: string[];
44
44
 
45
- constructor({ functionExecutor, feed, feedRuntime, startingCursor }: SegmentsNormalizerProps) {
45
+ constructor({ operationRuntime, feed, feedRuntime, startingCursor }: SegmentsNormalizerProps) {
46
46
  super();
47
- this._functionExecutor = functionExecutor;
47
+ this._operationRuntime = operationRuntime;
48
48
  this._feed = feed;
49
49
  this._feedRuntime = feedRuntime;
50
50
  this._cursor = startingCursor;
@@ -93,9 +93,12 @@ export class MessageNormalizer extends Resource {
93
93
  this._lastProcessedMessageIds = messages.map((message) => message.id);
94
94
 
95
95
  try {
96
- // TODO(mykola): Executor should support timeout.
96
+ // TODO(mykola): Invocation should support timeout.
97
97
  const response: NormalizationOutput = await asyncTimeout(
98
- this._functionExecutor.invoke(sentenceNormalization, { messages }),
98
+ Operation.invoke(sentenceNormalization, { messages }).pipe(
99
+ Effect.provide(this._operationRuntime),
100
+ EffectEx.runAndForwardErrors,
101
+ ),
99
102
  PROCESSING_TIMEOUT,
100
103
  );
101
104