@dxos/plugin-transcription 0.8.2-main.12df754 → 0.8.2-main.36232bc

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 (193) hide show
  1. package/dist/lib/browser/{TranscriptContainer-4D4BHE7G.mjs → TranscriptContainer-2VFHUHLE.mjs} +3 -3
  2. package/dist/lib/browser/app-graph-builder-TDP6PYV6.mjs +350 -0
  3. package/dist/lib/browser/app-graph-builder-TDP6PYV6.mjs.map +7 -0
  4. package/dist/lib/browser/{chunk-DR3NBV6Q.mjs → chunk-KSUYWWIU.mjs} +105 -78
  5. package/dist/lib/browser/chunk-KSUYWWIU.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-5BE6RTNC.mjs → chunk-LTIQFX4W.mjs} +1 -1
  7. package/dist/lib/browser/{chunk-5BE6RTNC.mjs.map → chunk-LTIQFX4W.mjs.map} +1 -1
  8. package/dist/lib/browser/{chunk-RHHJZQPM.mjs → chunk-NFVDICSJ.mjs} +133 -116
  9. package/dist/lib/browser/chunk-NFVDICSJ.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-O6RY7FNK.mjs +27 -0
  11. package/dist/lib/browser/chunk-O6RY7FNK.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-5Q3R53U3.mjs → chunk-YRWBY6UK.mjs} +9 -21
  13. package/dist/lib/browser/chunk-YRWBY6UK.mjs.map +7 -0
  14. package/dist/lib/browser/index.mjs +29 -17
  15. package/dist/lib/browser/index.mjs.map +3 -3
  16. package/dist/lib/browser/{intent-resolver-ZQQEH27F.mjs → intent-resolver-ZWKYRFE7.mjs} +4 -4
  17. package/dist/lib/browser/{intent-resolver-ZQQEH27F.mjs.map → intent-resolver-ZWKYRFE7.mjs.map} +2 -2
  18. package/dist/lib/browser/{meeting-transcription-state-5D52VTHU.mjs → meeting-transcription-state-MNA2XROE.mjs} +2 -2
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/{react-surface-HETJ5XY6.mjs → react-surface-F32UNCKZ.mjs} +18 -7
  21. package/dist/lib/browser/react-surface-F32UNCKZ.mjs.map +7 -0
  22. package/dist/lib/browser/settings-6YAHKVKX.mjs +24 -0
  23. package/dist/lib/browser/settings-6YAHKVKX.mjs.map +7 -0
  24. package/dist/lib/browser/{transcriber-SMRLU2KY.mjs → transcriber-MSBS4VBI.mjs} +4 -4
  25. package/dist/lib/browser/types/index.mjs +3 -3
  26. package/dist/lib/node/{TranscriptContainer-ZWP6UKY6.cjs → TranscriptContainer-E2D7PKO3.cjs} +8 -8
  27. package/dist/lib/node/{TranscriptContainer-ZWP6UKY6.cjs.map → TranscriptContainer-E2D7PKO3.cjs.map} +2 -2
  28. package/dist/lib/node/app-graph-builder-W4VDMVGV.cjs +351 -0
  29. package/dist/lib/node/app-graph-builder-W4VDMVGV.cjs.map +7 -0
  30. package/dist/lib/node/{chunk-LA73IHCB.cjs → chunk-7XIIUVN3.cjs} +108 -80
  31. package/dist/lib/node/chunk-7XIIUVN3.cjs.map +7 -0
  32. package/dist/lib/node/{chunk-3QEJ5EBO.cjs → chunk-IXU57SCA.cjs} +10 -22
  33. package/dist/lib/node/chunk-IXU57SCA.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-HYGDHS6X.cjs → chunk-JUGOXWES.cjs} +4 -4
  35. package/dist/lib/node/{chunk-HYGDHS6X.cjs.map → chunk-JUGOXWES.cjs.map} +1 -1
  36. package/dist/lib/node/{chunk-KO6MKCED.cjs → chunk-NBC6V3M2.cjs} +136 -118
  37. package/dist/lib/node/chunk-NBC6V3M2.cjs.map +7 -0
  38. package/dist/lib/node/{chunk-WXG4Z2EZ.cjs → chunk-TJMZ26GS.cjs} +23 -8
  39. package/dist/lib/node/chunk-TJMZ26GS.cjs.map +7 -0
  40. package/dist/lib/node/index.cjs +46 -34
  41. package/dist/lib/node/index.cjs.map +3 -3
  42. package/dist/lib/node/{intent-resolver-VY3XWYAA.cjs → intent-resolver-RM4JOCDV.cjs} +8 -8
  43. package/dist/lib/node/{intent-resolver-VY3XWYAA.cjs.map → intent-resolver-RM4JOCDV.cjs.map} +2 -2
  44. package/dist/lib/node/{meeting-transcription-state-OYWCY5XE.cjs → meeting-transcription-state-5XLTMWPA.cjs} +6 -6
  45. package/dist/lib/node/meta.json +1 -1
  46. package/dist/lib/node/{react-surface-M2JQIIDY.cjs → react-surface-YQHBGPOC.cjs} +20 -11
  47. package/dist/lib/node/react-surface-YQHBGPOC.cjs.map +7 -0
  48. package/dist/lib/node/settings-ZMB4XRWS.cjs +38 -0
  49. package/dist/lib/node/settings-ZMB4XRWS.cjs.map +7 -0
  50. package/dist/lib/node/{transcriber-E6AAB4SU.cjs → transcriber-55OE4X6I.cjs} +10 -10
  51. package/dist/lib/node/types/index.cjs +8 -8
  52. package/dist/lib/node/types/index.cjs.map +1 -1
  53. package/dist/lib/node-esm/{TranscriptContainer-3HJ752CP.mjs → TranscriptContainer-5N3BSK2S.mjs} +3 -3
  54. package/dist/lib/node-esm/app-graph-builder-DDDVKUHS.mjs +351 -0
  55. package/dist/lib/node-esm/app-graph-builder-DDDVKUHS.mjs.map +7 -0
  56. package/dist/lib/node-esm/{chunk-SDMGJZLN.mjs → chunk-4RMJO6QQ.mjs} +133 -116
  57. package/dist/lib/node-esm/chunk-4RMJO6QQ.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-YXZOLOFT.mjs → chunk-5E2MR5XK.mjs} +1 -1
  59. package/dist/lib/node-esm/{chunk-YXZOLOFT.mjs.map → chunk-5E2MR5XK.mjs.map} +1 -1
  60. package/dist/lib/node-esm/chunk-HZBSWUJH.mjs +28 -0
  61. package/dist/lib/node-esm/chunk-HZBSWUJH.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-54HDN33F.mjs → chunk-OS2ITZUL.mjs} +9 -21
  63. package/dist/lib/node-esm/chunk-OS2ITZUL.mjs.map +7 -0
  64. package/dist/lib/node-esm/{chunk-K3R3YK3S.mjs → chunk-UWF6LM27.mjs} +105 -78
  65. package/dist/lib/node-esm/chunk-UWF6LM27.mjs.map +7 -0
  66. package/dist/lib/node-esm/index.mjs +29 -17
  67. package/dist/lib/node-esm/index.mjs.map +3 -3
  68. package/dist/lib/node-esm/{intent-resolver-FCTNJPWY.mjs → intent-resolver-HDRFXMKP.mjs} +4 -4
  69. package/dist/lib/node-esm/{intent-resolver-FCTNJPWY.mjs.map → intent-resolver-HDRFXMKP.mjs.map} +2 -2
  70. package/dist/lib/node-esm/{meeting-transcription-state-XMZJ45P4.mjs → meeting-transcription-state-3WOZ52BQ.mjs} +2 -2
  71. package/dist/lib/node-esm/meta.json +1 -1
  72. package/dist/lib/node-esm/{react-surface-PXFSIM6V.mjs → react-surface-DRDNXTFZ.mjs} +18 -7
  73. package/dist/lib/node-esm/react-surface-DRDNXTFZ.mjs.map +7 -0
  74. package/dist/lib/node-esm/settings-I35TVDUG.mjs +25 -0
  75. package/dist/lib/node-esm/settings-I35TVDUG.mjs.map +7 -0
  76. package/dist/lib/node-esm/{transcriber-REAGRCPY.mjs → transcriber-HH7EMCGH.mjs} +4 -4
  77. package/dist/lib/node-esm/types/index.mjs +3 -3
  78. package/dist/types/src/TranscriptionPlugin.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/capabilities.d.ts +1 -1
  81. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/index.d.ts +1 -0
  83. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/settings.d.ts +4 -0
  86. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  87. package/dist/types/src/components/Transcript/Transcript.d.ts +6 -4
  88. package/dist/types/src/components/Transcript/Transcript.d.ts.map +1 -1
  89. package/dist/types/src/components/Transcript/Transcript.stories.d.ts +8 -4
  90. package/dist/types/src/components/Transcript/Transcript.stories.d.ts.map +1 -1
  91. package/dist/types/src/components/Transcript/deprecated/OldTranscript.d.ts +27 -0
  92. package/dist/types/src/components/Transcript/deprecated/OldTranscript.d.ts.map +1 -0
  93. package/dist/types/src/components/Transcript/transcript-extension.d.ts +4 -4
  94. package/dist/types/src/components/Transcript/transcript-extension.d.ts.map +1 -1
  95. package/dist/types/src/components/TranscriptContainer.d.ts.map +1 -1
  96. package/dist/types/src/components/TranscriptionSettings/TranscriptionSettings.d.ts +6 -0
  97. package/dist/types/src/components/TranscriptionSettings/TranscriptionSettings.d.ts.map +1 -0
  98. package/dist/types/src/components/TranscriptionSettings/index.d.ts +2 -0
  99. package/dist/types/src/components/TranscriptionSettings/index.d.ts.map +1 -0
  100. package/dist/types/src/components/index.d.ts +1 -0
  101. package/dist/types/src/components/index.d.ts.map +1 -1
  102. package/dist/types/src/components/transcription.stories.d.ts +6 -3
  103. package/dist/types/src/components/transcription.stories.d.ts.map +1 -1
  104. package/dist/types/src/entity-extraction/entity-extraction.d.ts +33 -7
  105. package/dist/types/src/entity-extraction/entity-extraction.d.ts.map +1 -1
  106. package/dist/types/src/hooks/useQueueModelAdapter.d.ts +2 -2
  107. package/dist/types/src/hooks/useQueueModelAdapter.d.ts.map +1 -1
  108. package/dist/types/src/model/model.d.ts +23 -23
  109. package/dist/types/src/model/model.d.ts.map +1 -1
  110. package/dist/types/src/testing/index.d.ts +2 -0
  111. package/dist/types/src/testing/index.d.ts.map +1 -0
  112. package/dist/types/src/testing/testing.d.ts +39 -0
  113. package/dist/types/src/testing/testing.d.ts.map +1 -0
  114. package/dist/types/src/transcriber/transcriber.d.ts +2 -2
  115. package/dist/types/src/transcriber/transcriber.d.ts.map +1 -1
  116. package/dist/types/src/transcriber/transcription-manager.d.ts +17 -15
  117. package/dist/types/src/transcriber/transcription-manager.d.ts.map +1 -1
  118. package/dist/types/src/translations.d.ts +3 -0
  119. package/dist/types/src/translations.d.ts.map +1 -1
  120. package/dist/types/src/types/schema.d.ts +0 -21
  121. package/dist/types/src/types/schema.d.ts.map +1 -1
  122. package/dist/types/src/types/types.d.ts +5 -1
  123. package/dist/types/src/types/types.d.ts.map +1 -1
  124. package/package.json +48 -45
  125. package/src/TranscriptionPlugin.tsx +29 -12
  126. package/src/capabilities/app-graph-builder.ts +99 -29
  127. package/src/capabilities/capabilities.ts +1 -1
  128. package/src/capabilities/index.ts +1 -0
  129. package/src/capabilities/intent-resolver.ts +2 -2
  130. package/src/capabilities/react-surface.tsx +12 -4
  131. package/src/capabilities/settings.ts +20 -0
  132. package/src/components/Transcript/Transcript.stories.tsx +71 -35
  133. package/src/components/Transcript/Transcript.tsx +30 -29
  134. package/src/components/Transcript/deprecated/{Transcript.tsx → OldTranscript.tsx} +24 -1
  135. package/src/components/Transcript/transcript-extension.ts +20 -17
  136. package/src/components/TranscriptContainer.tsx +6 -4
  137. package/src/components/TranscriptionSettings/TranscriptionSettings.tsx +26 -0
  138. package/src/components/TranscriptionSettings/index.ts +5 -0
  139. package/src/components/index.ts +1 -0
  140. package/src/components/transcription.stories.tsx +77 -29
  141. package/src/entity-extraction/entity-extraction.test.ts +55 -9
  142. package/src/entity-extraction/entity-extraction.ts +105 -55
  143. package/src/entity-extraction/system-prompt.tpl +38 -9
  144. package/src/hooks/useQueueModelAdapter.ts +44 -11
  145. package/src/model/model.test.ts +85 -43
  146. package/src/model/model.ts +59 -59
  147. package/src/testing/index.ts +5 -0
  148. package/src/testing/testing.ts +208 -0
  149. package/src/transcriber/transcriber.browser.test.ts +3 -3
  150. package/src/transcriber/transcriber.ts +16 -10
  151. package/src/transcriber/transcription-manager.ts +66 -57
  152. package/src/translations.ts +2 -0
  153. package/src/types/schema.ts +1 -24
  154. package/src/types/types.ts +11 -3
  155. package/dist/lib/browser/app-graph-builder-I4SSIQMW.mjs +0 -168
  156. package/dist/lib/browser/app-graph-builder-I4SSIQMW.mjs.map +0 -7
  157. package/dist/lib/browser/chunk-5Q3R53U3.mjs.map +0 -7
  158. package/dist/lib/browser/chunk-DR3NBV6Q.mjs.map +0 -7
  159. package/dist/lib/browser/chunk-GI5LZ4SV.mjs +0 -8
  160. package/dist/lib/browser/chunk-GI5LZ4SV.mjs.map +0 -7
  161. package/dist/lib/browser/chunk-RHHJZQPM.mjs.map +0 -7
  162. package/dist/lib/browser/react-surface-HETJ5XY6.mjs.map +0 -7
  163. package/dist/lib/node/app-graph-builder-WWC4WNTG.cjs +0 -177
  164. package/dist/lib/node/app-graph-builder-WWC4WNTG.cjs.map +0 -7
  165. package/dist/lib/node/chunk-3QEJ5EBO.cjs.map +0 -7
  166. package/dist/lib/node/chunk-KO6MKCED.cjs.map +0 -7
  167. package/dist/lib/node/chunk-LA73IHCB.cjs.map +0 -7
  168. package/dist/lib/node/chunk-WXG4Z2EZ.cjs.map +0 -7
  169. package/dist/lib/node/react-surface-M2JQIIDY.cjs.map +0 -7
  170. package/dist/lib/node-esm/app-graph-builder-PPJQAFSI.mjs +0 -169
  171. package/dist/lib/node-esm/app-graph-builder-PPJQAFSI.mjs.map +0 -7
  172. package/dist/lib/node-esm/chunk-54HDN33F.mjs.map +0 -7
  173. package/dist/lib/node-esm/chunk-K3R3YK3S.mjs.map +0 -7
  174. package/dist/lib/node-esm/chunk-SDMGJZLN.mjs.map +0 -7
  175. package/dist/lib/node-esm/chunk-XY22OP6H.mjs +0 -10
  176. package/dist/lib/node-esm/chunk-XY22OP6H.mjs.map +0 -7
  177. package/dist/lib/node-esm/react-surface-PXFSIM6V.mjs.map +0 -7
  178. package/dist/types/src/components/Transcript/deprecated/Transcript.d.ts +0 -13
  179. package/dist/types/src/components/Transcript/deprecated/Transcript.d.ts.map +0 -1
  180. package/dist/types/src/components/Transcript/testings.d.ts +0 -51
  181. package/dist/types/src/components/Transcript/testings.d.ts.map +0 -1
  182. package/dist/types/src/testing/test-data.d.ts +0 -73
  183. package/dist/types/src/testing/test-data.d.ts.map +0 -1
  184. package/src/components/Transcript/testings.ts +0 -182
  185. package/src/testing/test-data.ts +0 -314
  186. /package/dist/lib/browser/{TranscriptContainer-4D4BHE7G.mjs.map → TranscriptContainer-2VFHUHLE.mjs.map} +0 -0
  187. /package/dist/lib/browser/{meeting-transcription-state-5D52VTHU.mjs.map → meeting-transcription-state-MNA2XROE.mjs.map} +0 -0
  188. /package/dist/lib/browser/{transcriber-SMRLU2KY.mjs.map → transcriber-MSBS4VBI.mjs.map} +0 -0
  189. /package/dist/lib/node/{meeting-transcription-state-OYWCY5XE.cjs.map → meeting-transcription-state-5XLTMWPA.cjs.map} +0 -0
  190. /package/dist/lib/node/{transcriber-E6AAB4SU.cjs.map → transcriber-55OE4X6I.cjs.map} +0 -0
  191. /package/dist/lib/node-esm/{TranscriptContainer-3HJ752CP.mjs.map → TranscriptContainer-5N3BSK2S.mjs.map} +0 -0
  192. /package/dist/lib/node-esm/{meeting-transcription-state-XMZJ45P4.mjs.map → meeting-transcription-state-3WOZ52BQ.mjs.map} +0 -0
  193. /package/dist/lib/node-esm/{transcriber-REAGRCPY.mjs.map → transcriber-HH7EMCGH.mjs.map} +0 -0
@@ -26,12 +26,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_KO6MKCED_exports = {};
30
- __export(chunk_KO6MKCED_exports, {
29
+ var chunk_NBC6V3M2_exports = {};
30
+ __export(chunk_NBC6V3M2_exports, {
31
31
  AppGraphBuilder: () => AppGraphBuilder,
32
32
  IntentResolver: () => IntentResolver,
33
33
  MeetingTranscriptionState: () => MeetingTranscriptionState,
34
34
  ReactSurface: () => ReactSurface,
35
+ Settings: () => Settings,
35
36
  Transcriber: () => Transcriber,
36
37
  Transcript: () => Transcript,
37
38
  TranscriptContainer_default: () => TranscriptContainer_default,
@@ -43,16 +44,13 @@ __export(chunk_KO6MKCED_exports, {
43
44
  useTranscriber: () => useTranscriber,
44
45
  useVoiceInput: () => useVoiceInput
45
46
  });
46
- module.exports = __toCommonJS(chunk_KO6MKCED_exports);
47
- var import_chunk_HYGDHS6X = require("./chunk-HYGDHS6X.cjs");
47
+ module.exports = __toCommonJS(chunk_NBC6V3M2_exports);
48
+ var import_chunk_JUGOXWES = require("./chunk-JUGOXWES.cjs");
48
49
  var import_react = __toESM(require("react"));
49
50
  var import_echo = require("@dxos/client/echo");
50
51
  var import_echo2 = require("@dxos/react-client/echo");
51
52
  var import_react_ui_stack = require("@dxos/react-ui-stack");
52
53
  var import_react2 = __toESM(require("react"));
53
- var import_keys = require("@dxos/keys");
54
- var import_log = require("@dxos/log");
55
- var import_react_client = require("@dxos/react-client");
56
54
  var import_react_ui = require("@dxos/react-ui");
57
55
  var import_react_ui_editor = require("@dxos/react-ui-editor");
58
56
  var import_react_ui_theme = require("@dxos/react-ui-theme");
@@ -65,9 +63,9 @@ var import_async = require("@dxos/async");
65
63
  var import_state2 = require("@codemirror/state");
66
64
  var import_async2 = require("@dxos/async");
67
65
  var import_invariant = require("@dxos/invariant");
68
- var import_log2 = require("@dxos/log");
66
+ var import_log = require("@dxos/log");
69
67
  var import_react3 = require("react");
70
- var import_log3 = require("@dxos/log");
68
+ var import_log2 = require("@dxos/log");
71
69
  var import_react4 = require("react");
72
70
  var import_react5 = require("react");
73
71
  var import_react6 = require("react");
@@ -76,7 +74,7 @@ var import_app_framework2 = require("@dxos/app-framework");
76
74
  var import_react7 = require("react");
77
75
  var import_async3 = require("@dxos/async");
78
76
  var import_context = require("@dxos/context");
79
- var import_log4 = require("@dxos/log");
77
+ var import_log3 = require("@dxos/log");
80
78
  var import_react_ui_sfx = require("@dxos/react-ui-sfx");
81
79
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-transcription/src/model/model.ts";
82
80
  var DocumentAdapter = class {
@@ -88,7 +86,7 @@ var DocumentAdapter = class {
88
86
  return this._view.state.doc.lines - 1;
89
87
  }
90
88
  replaceLines(from, remove, insert) {
91
- (0, import_log2.log)("replaceLines", {
89
+ (0, import_log.log)("replaceLines", {
92
90
  count: this._view.state.doc.lines,
93
91
  from,
94
92
  remove,
@@ -115,59 +113,59 @@ var DocumentAdapter = class {
115
113
  });
116
114
  }
117
115
  };
118
- var BlockModel = class {
119
- constructor(_renderer, initialBlocks = []) {
116
+ var SerializationModel = class {
117
+ constructor(_renderer, initialChunks = []) {
120
118
  this._renderer = _renderer;
121
- this._blocks = [];
122
- this._blockLineCounts = /* @__PURE__ */ new Map();
123
- this._lineToBlock = /* @__PURE__ */ new Map();
119
+ this._chunks = [];
120
+ this._chunkLineCounts = /* @__PURE__ */ new Map();
121
+ this._lineToChunk = /* @__PURE__ */ new Map();
124
122
  this._changes = [];
125
123
  this.update = new import_async2.Event();
126
- initialBlocks.forEach((block) => {
127
- this.appendBlock(block);
124
+ initialChunks.forEach((chunk) => {
125
+ this.appendChunk(chunk);
128
126
  });
129
127
  }
130
128
  toJSON() {
131
129
  return {
132
- blocks: this._blocks.length,
130
+ chunks: this._chunks.length,
133
131
  changes: this._changes.length
134
132
  };
135
133
  }
136
134
  get doc() {
137
135
  return import_state2.Text.of([
138
- ...this._blocks.flatMap((block) => this._renderer(block)),
136
+ ...this._chunks.flatMap((chunk, index) => this._renderer(chunk, index)),
139
137
  ""
140
138
  ]);
141
139
  }
142
- get blocks() {
143
- return this._blocks;
140
+ get chunks() {
141
+ return this._chunks;
144
142
  }
145
143
  /**
146
144
  * Get the block ID at the given line number.
147
145
  */
148
- getBlockAtLine(line) {
149
- return this._lineToBlock.get(line);
146
+ getChunkAtLine(line) {
147
+ return this._lineToChunk.get(line);
150
148
  }
151
149
  reset() {
152
- this._blocks.length = 0;
153
- this._blockLineCounts.clear();
154
- this._lineToBlock.clear();
150
+ this._chunks.length = 0;
151
+ this._chunkLineCounts.clear();
152
+ this._lineToChunk.clear();
155
153
  this.update.emit();
156
154
  return this;
157
155
  }
158
- appendBlock(block) {
159
- const index = this._blocks.length;
160
- this._blocks.push(block);
156
+ appendChunk(chunk) {
157
+ const index = this._chunks.length;
158
+ this._chunks.push(chunk);
161
159
  this._changes.push({
162
160
  type: "append",
163
161
  index,
164
- block
162
+ chunk
165
163
  });
166
164
  this.update.emit();
167
165
  return this;
168
166
  }
169
- updateBlock(block) {
170
- const index = this._blocks.findIndex((b) => b.id === block.id);
167
+ updateChunk(chunk) {
168
+ const index = this._chunks.findIndex((c) => c.id === chunk.id);
171
169
  (0, import_invariant.invariant)(index !== -1, void 0, {
172
170
  F: __dxlog_file,
173
171
  L: 147,
@@ -177,17 +175,17 @@ var BlockModel = class {
177
175
  ""
178
176
  ]
179
177
  });
180
- this._blocks[index] = block;
178
+ this._chunks[index] = chunk;
181
179
  this._changes.push({
182
180
  type: "update",
183
181
  index,
184
- block
182
+ chunk
185
183
  });
186
184
  this.update.emit();
187
185
  return this;
188
186
  }
189
187
  deleteBlock(id) {
190
- const index = this._blocks.findIndex((b) => b.id === id);
188
+ const index = this._chunks.findIndex((c) => c.id === id);
191
189
  (0, import_invariant.invariant)(index !== -1, void 0, {
192
190
  F: __dxlog_file,
193
191
  L: 156,
@@ -197,7 +195,7 @@ var BlockModel = class {
197
195
  ""
198
196
  ]
199
197
  });
200
- this._blocks.splice(index, 1);
198
+ this._chunks.splice(index, 1);
201
199
  this._changes.push({
202
200
  type: "delete",
203
201
  index,
@@ -207,10 +205,10 @@ var BlockModel = class {
207
205
  return this;
208
206
  }
209
207
  /**
210
- * Syncs the tracked changes with the BlockDocument.
208
+ * Syncs the tracked changes with the ChunkDocument.
211
209
  */
212
210
  sync(document2) {
213
- (0, import_log2.log)("sync", {
211
+ (0, import_log.log)("sync", {
214
212
  changes: this._changes
215
213
  }, {
216
214
  F: __dxlog_file,
@@ -221,7 +219,7 @@ var BlockModel = class {
221
219
  for (const change of this._changes) {
222
220
  switch (change.type) {
223
221
  case "append": {
224
- const lines = this._renderer(change.block);
222
+ const lines = this._renderer(change.chunk, change.index);
225
223
  const lastLine = document2.lineCount();
226
224
  document2.replaceLines(lastLine + 1, 0, lines);
227
225
  break;
@@ -229,36 +227,36 @@ var BlockModel = class {
229
227
  case "update": {
230
228
  let lineStart = 1;
231
229
  for (let i = 0; i < change.index; i++) {
232
- lineStart += this._blockLineCounts.get(this._blocks[i].id);
230
+ lineStart += this._chunkLineCounts.get(this._chunks[i].id);
233
231
  }
234
- const previousLineCount = this._blockLineCounts.get(change.block.id);
235
- const newLines = this._renderer(change.block);
232
+ const previousLineCount = this._chunkLineCounts.get(change.chunk.id);
233
+ const newLines = this._renderer(change.chunk, change.index);
236
234
  document2.replaceLines(lineStart, previousLineCount, newLines);
237
235
  break;
238
236
  }
239
237
  case "delete": {
240
238
  let lineStart = 1;
241
239
  for (let i = 0; i < change.index; i++) {
242
- lineStart += this._blockLineCounts.get(this._blocks[i].id);
240
+ lineStart += this._chunkLineCounts.get(this._chunks[i].id);
243
241
  }
244
- const previousLineCount = this._blockLineCounts.get(change.id);
242
+ const previousLineCount = this._chunkLineCounts.get(change.id);
245
243
  document2.replaceLines(lineStart, previousLineCount, []);
246
244
  break;
247
245
  }
248
246
  }
249
247
  }
250
- this._lineToBlock.clear();
248
+ this._lineToChunk.clear();
251
249
  let currentLine = 1;
252
- for (const block of this._blocks) {
253
- const lineCount = this._renderer(block).length;
254
- this._blockLineCounts.set(block.id, lineCount);
255
- this._lineToBlock.set(currentLine, block);
250
+ for (const [index, chunk] of this._chunks.entries()) {
251
+ const lineCount = this._renderer(chunk, index).length;
252
+ this._chunkLineCounts.set(chunk.id, lineCount);
253
+ this._lineToChunk.set(currentLine, chunk);
256
254
  currentLine += lineCount;
257
255
  }
258
- const blockIds = new Set(this._blocks.map((block) => block.id));
259
- for (const id of this._blockLineCounts.keys()) {
260
- if (!blockIds.has(id)) {
261
- this._blockLineCounts.delete(id);
256
+ const chunkIds = new Set(this._chunks.map((chunk) => chunk.id));
257
+ for (const id of this._chunkLineCounts.keys()) {
258
+ if (!chunkIds.has(id)) {
259
+ this._chunkLineCounts.delete(id);
262
260
  }
263
261
  }
264
262
  this._changes.length = 0;
@@ -272,12 +270,13 @@ var transcript = ({ model, started, renderButton }) => {
272
270
  class: "cm-timestamp-gutter",
273
271
  lineMarkerChange: (update) => update.docChanged || update.viewportChanged,
274
272
  markers: (view) => {
275
- const start = getStartTime(started, model.blocks[0]);
273
+ const start = getStartTime(started, model.chunks[0]);
276
274
  const builder = new import_state.RangeSetBuilder();
277
275
  for (const { from, to } of view.visibleRanges) {
278
276
  let line = view.state.doc.lineAt(from);
279
277
  while (line.from <= to) {
280
- const timestamp = model.getBlockAtLine(line.number)?.segments[0]?.started;
278
+ const block = model.getChunkAtLine(line.number)?.blocks[0];
279
+ const timestamp = block?.type === "transcription" && block.started;
281
280
  if (timestamp) {
282
281
  builder.add(line.from, line.from, new TimestampMarker(line.number, new Date(timestamp), start));
283
282
  }
@@ -298,11 +297,13 @@ var transcript = ({ model, started, renderButton }) => {
298
297
  const scroller = view.scrollDOM;
299
298
  let isAutoScrolling = false;
300
299
  let hasScrolled = false;
301
- const scrollToBottom = () => {
302
- scroller.style.scrollBehavior = "smooth";
300
+ let timeout;
301
+ const scrollToBottom = (smooth = false) => {
302
+ scroller.style.scrollBehavior = smooth ? "smooth" : "";
303
303
  scroller.classList.add("cm-hide-scrollbar");
304
304
  isAutoScrolling = true;
305
- setTimeout(() => {
305
+ clearTimeout(timeout);
306
+ timeout = setTimeout(() => {
306
307
  this._controls?.classList.add("opacity-0");
307
308
  scroller.classList.remove("cm-hide-scrollbar");
308
309
  isAutoScrolling = false;
@@ -319,7 +320,7 @@ var transcript = ({ model, started, renderButton }) => {
319
320
  view.dom.appendChild(this._controls);
320
321
  renderButton(this._controls, {
321
322
  onClick: () => {
322
- scrollToBottom();
323
+ scrollToBottom(false);
323
324
  }
324
325
  }, view);
325
326
  }
@@ -332,7 +333,7 @@ var transcript = ({ model, started, renderButton }) => {
332
333
  const autoScroll = scroller.scrollHeight - scroller.scrollTop - scroller.clientHeight === 0 || !hasScrolled;
333
334
  model.sync(this._adapter);
334
335
  if (autoScroll) {
335
- scrollToBottom();
336
+ scrollToBottom(true);
336
337
  }
337
338
  }));
338
339
  }
@@ -406,37 +407,44 @@ var TimestampMarker = class extends import_view.GutterMarker {
406
407
  return el;
407
408
  }
408
409
  };
409
- var getStartTime = (started, block) => {
410
+ var getStartTime = (started, message) => {
410
411
  if (started) {
411
412
  return started;
412
413
  }
413
- if (block?.segments[0]?.started) {
414
- return new Date(block.segments[0].started);
414
+ if (message?.blocks[0]?.type === "transcription" && message.blocks[0].started) {
415
+ return new Date(message.blocks[0].started);
415
416
  }
416
417
  return void 0;
417
418
  };
418
419
  var formatTimestamp = (timestamp, relative) => {
419
- if (!relative) {
420
- return (0, import_format.format)(timestamp, "HH:mm:ss");
421
- } else {
420
+ if (relative) {
422
421
  const pad = (n = 0) => String(n).padStart(2, "0");
423
422
  const { hours, minutes, seconds } = (0, import_intervalToDuration.intervalToDuration)({
424
423
  start: relative,
425
424
  end: timestamp
426
425
  });
427
426
  return `${pad(hours)}:${pad(minutes)}:${pad(seconds)}`;
427
+ } else {
428
+ return (0, import_format.format)(timestamp, "HH:mm:ss");
428
429
  }
429
430
  };
430
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-transcription/src/components/Transcript/Transcript.tsx";
431
- var renderMarkdown = (block, debug = false) => {
431
+ var renderMarkdown = (identities) => (message, index, debug = false) => {
432
+ if (message.sender.role === "assistant") {
433
+ return [
434
+ message.blocks.find((block) => block.type === "transcription")?.text ?? "",
435
+ ""
436
+ ];
437
+ }
438
+ const identity = identities.find((identity2) => identity2.did === message.sender.identityDid);
439
+ const name = identity?.profile?.displayName ?? message.sender.contact?.target?.fullName ?? message.sender.name ?? message.sender.email ?? message.sender.identityDid;
440
+ const blocks = message.blocks.filter((block) => block.type === "transcription");
432
441
  return [
433
- `###### ${block.authorName}` + (debug ? ` (${block.id})` : ""),
434
- block.segments.map((segment) => segment.text.trim()).join(" "),
442
+ `###### ${name}` + (debug ? ` [${index}]:${message.id}` : ""),
443
+ blocks.map((block) => block.text.trim()).join(" "),
435
444
  ""
436
445
  ];
437
446
  };
438
447
  var Transcript = ({ classNames, transcript: object, space, model, attendableId, ignoreAttention }) => {
439
- const client = (0, import_react_client.useClient)();
440
448
  const { themeMode } = (0, import_react_ui.useThemeContext)();
441
449
  const { parentRef } = (0, import_react_ui_editor.useTextEditor)(() => {
442
450
  return {
@@ -452,28 +460,7 @@ var Transcript = ({ classNames, transcript: object, space, model, attendableId,
452
460
  themeMode
453
461
  }),
454
462
  (0, import_react_ui_editor.decorateMarkdown)(),
455
- space && (0, import_react_ui_editor.preview)({
456
- onLookup: async ({ label, ref }) => {
457
- import_log.log.info("onLookup", {
458
- label,
459
- ref
460
- }, {
461
- F: __dxlog_file2,
462
- L: 71,
463
- S: void 0,
464
- C: (f, a) => f(...a)
465
- });
466
- const dxn = import_keys.DXN.parse(ref);
467
- if (!dxn) {
468
- return null;
469
- }
470
- const object2 = await (0, import_react_client.resolveRef)(client, dxn, space);
471
- return {
472
- label,
473
- object: object2
474
- };
475
- }
476
- }),
463
+ space && (0, import_react_ui_editor.preview)(),
477
464
  transcript({
478
465
  model,
479
466
  started: object?.started ? new Date(object.started) : void 0,
@@ -495,7 +482,7 @@ var Transcript = ({ classNames, transcript: object, space, model, attendableId,
495
482
  className: (0, import_react_ui_theme.mx)("flex grow overflow-hidden", import_react_ui_editor.editorWidth, classNames)
496
483
  });
497
484
  };
498
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-transcription/src/hooks/useAudioFile.ts";
485
+ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-transcription/src/hooks/useAudioFile.ts";
499
486
  var useAudioFile = (audioUrl) => {
500
487
  const [{ audio, stream, track }, setStream] = (0, import_react3.useState)({});
501
488
  (0, import_react3.useEffect)(() => {
@@ -506,10 +493,10 @@ var useAudioFile = (audioUrl) => {
506
493
  audio2.src = URL.createObjectURL(blob);
507
494
  await new Promise((resolve, reject) => {
508
495
  audio2.addEventListener("error", (err) => {
509
- import_log3.log.error("error", {
496
+ import_log2.log.error("error", {
510
497
  err
511
498
  }, {
512
- F: __dxlog_file3,
499
+ F: __dxlog_file2,
513
500
  L: 27,
514
501
  S: void 0,
515
502
  C: (f, a) => f(...a)
@@ -519,8 +506,8 @@ var useAudioFile = (audioUrl) => {
519
506
  once: true
520
507
  });
521
508
  audio2.addEventListener("canplay", () => {
522
- import_log3.log.info("starting...", void 0, {
523
- F: __dxlog_file3,
509
+ import_log2.log.info("starting...", void 0, {
510
+ F: __dxlog_file2,
524
511
  L: 35,
525
512
  S: void 0,
526
513
  C: (f, a) => f(...a)
@@ -578,29 +565,58 @@ var useAudioTrack = (active) => {
578
565
  ]);
579
566
  return track;
580
567
  };
581
- var useQueueModelAdapter = (renderer, queue, initialBlocks = []) => {
582
- const model = (0, import_react5.useMemo)(() => new BlockModel(renderer, initialBlocks), [
568
+ var useQueueModelAdapter = (renderer, queue, initialChunks = []) => {
569
+ const model = (0, import_react5.useMemo)(() => new SerializationModel(renderer, initialChunks), [
570
+ queue
571
+ ]);
572
+ const [loaded, setLoaded] = (0, import_react5.useState)(false);
573
+ (0, import_react5.useEffect)(() => {
574
+ if (!queue) {
575
+ return;
576
+ }
577
+ const update = () => {
578
+ for (const block of queue?.items ?? []) {
579
+ model.appendChunk(block);
580
+ }
581
+ setLoaded(true);
582
+ };
583
+ let i;
584
+ if (queue.isLoading) {
585
+ i = setInterval(() => {
586
+ if (!queue?.isLoading) {
587
+ clearInterval(i);
588
+ update();
589
+ }
590
+ }, 1e3);
591
+ } else {
592
+ update();
593
+ }
594
+ return () => clearTimeout(i);
595
+ }, [
596
+ model,
583
597
  queue
584
598
  ]);
585
599
  (0, import_react5.useEffect)(() => {
586
- if (!queue?.items.length) {
600
+ if (!loaded || !queue || model.chunks.length === queue.items.length) {
587
601
  return;
588
602
  }
589
- const block = queue.items[queue.items.length - 1];
590
- model.appendBlock(block);
603
+ const chunk = queue.items[queue.items.length - 1];
604
+ model.appendChunk(chunk);
591
605
  }, [
592
606
  model,
607
+ loaded,
593
608
  queue?.items.length
594
609
  ]);
595
610
  return model;
596
611
  };
597
- var AppGraphBuilder = (0, import_app_framework2.lazy)(() => import("./app-graph-builder-WWC4WNTG.cjs"));
598
- var IntentResolver = (0, import_app_framework2.lazy)(() => import("./intent-resolver-VY3XWYAA.cjs"));
599
- var MeetingTranscriptionState = (0, import_app_framework2.lazy)(() => import("./meeting-transcription-state-OYWCY5XE.cjs"));
600
- var ReactSurface = (0, import_app_framework2.lazy)(() => import("./react-surface-M2JQIIDY.cjs"));
601
- var Transcriber = (0, import_app_framework2.lazy)(() => import("./transcriber-E6AAB4SU.cjs"));
612
+ var AppGraphBuilder = (0, import_app_framework2.lazy)(() => import("./app-graph-builder-W4VDMVGV.cjs"));
613
+ var IntentResolver = (0, import_app_framework2.lazy)(() => import("./intent-resolver-RM4JOCDV.cjs"));
614
+ var MeetingTranscriptionState = (0, import_app_framework2.lazy)(() => import("./meeting-transcription-state-5XLTMWPA.cjs"));
615
+ var ReactSurface = (0, import_app_framework2.lazy)(() => import("./react-surface-YQHBGPOC.cjs"));
616
+ var Transcriber = (0, import_app_framework2.lazy)(() => import("./transcriber-55OE4X6I.cjs"));
617
+ var Settings = (0, import_app_framework2.lazy)(() => import("./settings-ZMB4XRWS.cjs"));
602
618
  var useTranscriber = ({ audioStreamTrack, onSegments, config }) => {
603
- const [getTranscriber] = (0, import_app_framework.useCapabilities)(import_chunk_HYGDHS6X.TranscriptionCapabilities.Transcriber);
619
+ const [getTranscriber] = (0, import_app_framework.useCapabilities)(import_chunk_JUGOXWES.TranscriptionCapabilities.Transcriber);
604
620
  const transcriber = (0, import_react6.useMemo)(() => {
605
621
  if (!onSegments || !audioStreamTrack || !getTranscriber) {
606
622
  return void 0;
@@ -625,7 +641,7 @@ var useTranscriber = ({ audioStreamTrack, onSegments, config }) => {
625
641
  ]);
626
642
  return transcriber;
627
643
  };
628
- var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-transcription/src/hooks/useVoiceInput.ts";
644
+ var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-transcription/src/hooks/useVoiceInput.ts";
629
645
  var useVoiceInput = ({ active, onUpdate }) => {
630
646
  const soundStart = (0, import_react_ui_sfx.useSoundEffect)("StartRecording");
631
647
  const soundStop = (0, import_react_ui_sfx.useSoundEffect)("StopRecording");
@@ -641,14 +657,14 @@ var useVoiceInput = ({ active, onUpdate }) => {
641
657
  });
642
658
  (0, import_react7.useEffect)(() => {
643
659
  const ctx = new import_context.Context(void 0, {
644
- F: __dxlog_file4,
660
+ F: __dxlog_file3,
645
661
  L: 43
646
662
  });
647
663
  (0, import_async3.scheduleMicroTask)(ctx, async () => {
648
664
  if (active && transcriber) {
649
665
  await transcriber.open();
650
- import_log4.log.info("starting...", void 0, {
651
- F: __dxlog_file4,
666
+ import_log3.log.info("starting...", void 0, {
667
+ F: __dxlog_file3,
652
668
  L: 47,
653
669
  S: void 0,
654
670
  C: (f, a) => f(...a)
@@ -659,8 +675,8 @@ var useVoiceInput = ({ active, onUpdate }) => {
659
675
  } else if (!active && transcriber?.isOpen) {
660
676
  transcriber?.stopChunksRecording();
661
677
  await transcriber?.close();
662
- import_log4.log.info("stopped", void 0, {
663
- F: __dxlog_file4,
678
+ import_log3.log.info("stopped", void 0, {
679
+ F: __dxlog_file3,
664
680
  L: 54,
665
681
  S: void 0,
666
682
  C: (f, a) => f(...a)
@@ -683,10 +699,11 @@ var useVoiceInput = ({ active, onUpdate }) => {
683
699
  var TranscriptionContainer = ({ role, transcript: transcript2 }) => {
684
700
  const attendableId = (0, import_echo.fullyQualifiedId)(transcript2);
685
701
  const space = (0, import_echo.getSpace)(transcript2);
702
+ const members = (0, import_echo2.useMembers)(space?.key).map((member) => member.identity);
686
703
  const queue = (0, import_echo2.useQueue)(transcript2.queue.dxn, {
687
704
  pollInterval: 1e3
688
705
  });
689
- const model = useQueueModelAdapter(renderMarkdown, queue);
706
+ const model = useQueueModelAdapter(renderMarkdown(members), queue);
690
707
  return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
691
708
  role,
692
709
  classNames: "container-max-width pli-2"
@@ -704,6 +721,7 @@ var TranscriptContainer_default = TranscriptionContainer;
704
721
  IntentResolver,
705
722
  MeetingTranscriptionState,
706
723
  ReactSurface,
724
+ Settings,
707
725
  Transcriber,
708
726
  Transcript,
709
727
  TranscriptContainer_default,
@@ -715,4 +733,4 @@ var TranscriptContainer_default = TranscriptionContainer;
715
733
  useTranscriber,
716
734
  useVoiceInput
717
735
  });
718
- //# sourceMappingURL=chunk-KO6MKCED.cjs.map
736
+ //# sourceMappingURL=chunk-NBC6V3M2.cjs.map