@dxos/plugin-transcription 0.8.1-main.ba2dec9 → 0.8.1-staging.31c3ee1
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.
- package/dist/lib/browser/{TranscriptContainer-N4KQHMY4.mjs → TranscriptContainer-JQ3HFHLQ.mjs} +3 -3
- package/dist/lib/browser/app-graph-builder-VDQOVX7P.mjs +191 -0
- package/dist/lib/browser/app-graph-builder-VDQOVX7P.mjs.map +7 -0
- package/dist/lib/browser/chunk-6ZR5MDK3.mjs +19 -0
- package/dist/lib/browser/chunk-6ZR5MDK3.mjs.map +7 -0
- package/dist/lib/browser/chunk-G4B6CPC2.mjs +253 -0
- package/dist/lib/browser/chunk-G4B6CPC2.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GHTRJTEB.mjs → chunk-GU2BNYKZ.mjs} +6 -6
- package/dist/lib/browser/chunk-GU2BNYKZ.mjs.map +7 -0
- package/dist/lib/browser/chunk-K7FOYAXO.mjs +8 -0
- package/dist/lib/browser/{chunk-QIHUPVQD.mjs → chunk-OGNXNGJB.mjs} +21 -28
- package/dist/lib/browser/chunk-OGNXNGJB.mjs.map +7 -0
- package/dist/lib/browser/chunk-YCZISX63.mjs +464 -0
- package/dist/lib/browser/chunk-YCZISX63.mjs.map +7 -0
- package/dist/lib/browser/chunk-YEPT334A.mjs +16 -0
- package/dist/lib/browser/chunk-YEPT334A.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +69 -512
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{intent-resolver-RW6DEJC2.mjs → intent-resolver-4R66ZCKT.mjs} +8 -7
- package/dist/lib/browser/intent-resolver-4R66ZCKT.mjs.map +7 -0
- package/dist/lib/browser/meeting-transcription-state-DLFHQK72.mjs +18 -0
- package/dist/lib/browser/meeting-transcription-state-DLFHQK72.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-UPTZBHVB.mjs → react-surface-FQUHU5G7.mjs} +15 -9
- package/dist/lib/{node-esm/react-surface-2WJQ67LB.mjs.map → browser/react-surface-FQUHU5G7.mjs.map} +2 -2
- package/dist/lib/browser/transcriber-LGMIWDYI.mjs +36 -0
- package/dist/lib/browser/transcriber-LGMIWDYI.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -1
- package/dist/lib/node/{TranscriptContainer-4BWXOVML.cjs → TranscriptContainer-QEYTTT2V.cjs} +8 -8
- package/dist/lib/node/{TranscriptContainer-4BWXOVML.cjs.map → TranscriptContainer-QEYTTT2V.cjs.map} +2 -2
- package/dist/lib/node/app-graph-builder-IFSIVNUR.cjs +200 -0
- package/dist/lib/node/app-graph-builder-IFSIVNUR.cjs.map +7 -0
- package/dist/lib/node/{chunk-HDRXDMK2.cjs → chunk-3KHUSQNW.cjs} +6 -6
- package/dist/lib/node/chunk-3KHUSQNW.cjs.map +7 -0
- package/dist/lib/node/chunk-CZMLKKWT.cjs +35 -0
- package/dist/lib/node/chunk-CZMLKKWT.cjs.map +7 -0
- package/dist/lib/node/chunk-FCCJALOT.cjs +488 -0
- package/dist/lib/node/chunk-FCCJALOT.cjs.map +7 -0
- package/dist/lib/node/{chunk-I35KHI2G.cjs → chunk-LP4FG423.cjs} +5 -5
- package/dist/lib/node/chunk-NVZWGFJL.cjs +42 -0
- package/dist/lib/node/chunk-NVZWGFJL.cjs.map +7 -0
- package/dist/lib/node/{chunk-UIHEGU6Q.cjs → chunk-P4VVD6ZO.cjs} +21 -29
- package/dist/lib/node/chunk-P4VVD6ZO.cjs.map +7 -0
- package/dist/lib/node/chunk-UOFHT4GZ.cjs +280 -0
- package/dist/lib/node/chunk-UOFHT4GZ.cjs.map +7 -0
- package/dist/lib/node/index.cjs +75 -513
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/{intent-resolver-KLBZ25XJ.cjs → intent-resolver-WMMCOUEH.cjs} +12 -11
- package/dist/lib/node/intent-resolver-WMMCOUEH.cjs.map +7 -0
- package/dist/lib/node/{app-graph-builder-YFBX3OTP.cjs → meeting-transcription-state-URIYILEQ.cjs} +14 -6
- package/dist/lib/node/meeting-transcription-state-URIYILEQ.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-NCKXB7EQ.cjs → react-surface-WI2MGWCC.cjs} +17 -12
- package/dist/lib/node/{react-surface-NCKXB7EQ.cjs.map → react-surface-WI2MGWCC.cjs.map} +2 -2
- package/dist/lib/node/transcriber-QG5WPKX4.cjs +49 -0
- package/dist/lib/node/transcriber-QG5WPKX4.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +8 -7
- package/dist/lib/node/types/index.cjs.map +2 -2
- package/dist/lib/node-esm/{TranscriptContainer-6IKRASR6.mjs → TranscriptContainer-ZXUCOWGY.mjs} +3 -3
- package/dist/lib/node-esm/app-graph-builder-UL6XLIZY.mjs +192 -0
- package/dist/lib/node-esm/app-graph-builder-UL6XLIZY.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-6X7X2UZF.mjs +254 -0
- package/dist/lib/node-esm/chunk-6X7X2UZF.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-KEG3ME4O.mjs → chunk-GIO6J6FE.mjs} +20 -28
- package/dist/lib/node-esm/chunk-GIO6J6FE.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LORUIVS4.mjs → chunk-HKATMD34.mjs} +6 -6
- package/dist/lib/node-esm/chunk-HKATMD34.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2CPKXRN6.mjs → chunk-J4D2RBBH.mjs} +3 -3
- package/dist/lib/node-esm/chunk-PTZHDZ36.mjs +17 -0
- package/dist/lib/node-esm/chunk-PTZHDZ36.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-X4DDJIVL.mjs +21 -0
- package/dist/lib/node-esm/chunk-X4DDJIVL.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-YQYBLFNI.mjs +465 -0
- package/dist/lib/node-esm/chunk-YQYBLFNI.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +69 -512
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-4FMISUPW.mjs → intent-resolver-QN2LO5TX.mjs} +8 -7
- package/dist/lib/node-esm/intent-resolver-QN2LO5TX.mjs.map +7 -0
- package/dist/lib/node-esm/meeting-transcription-state-ZYVRAW6Y.mjs +19 -0
- package/dist/lib/node-esm/meeting-transcription-state-ZYVRAW6Y.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-2WJQ67LB.mjs → react-surface-PCH6NTVB.mjs} +15 -9
- package/dist/lib/{browser/react-surface-UPTZBHVB.mjs.map → node-esm/react-surface-PCH6NTVB.mjs.map} +2 -2
- package/dist/lib/node-esm/transcriber-TMPYZ5L4.mjs +37 -0
- package/dist/lib/node-esm/transcriber-TMPYZ5L4.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -1
- package/dist/types/src/TranscriptionPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +16 -1
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +5 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/meeting-transcription-state.d.ts +6 -0
- package/dist/types/src/capabilities/meeting-transcription-state.d.ts.map +1 -0
- package/dist/types/src/capabilities/transcriber.d.ts +7 -0
- package/dist/types/src/capabilities/transcriber.d.ts.map +1 -0
- package/dist/types/src/components/Transcript/Transcript.d.ts +5 -2
- package/dist/types/src/components/Transcript/Transcript.d.ts.map +1 -1
- package/dist/types/src/components/Transcript/Transcript.stories.d.ts.map +1 -1
- package/dist/types/src/components/TranscriptContainer.d.ts +1 -0
- package/dist/types/src/components/TranscriptContainer.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/transcription.stories.d.ts +1 -1
- package/dist/types/src/components/transcription.stories.d.ts.map +1 -1
- package/dist/types/src/hooks/useTranscriber.d.ts +3 -6
- package/dist/types/src/hooks/useTranscriber.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -9
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/transcriber/index.d.ts +1 -0
- package/dist/types/src/transcriber/index.d.ts.map +1 -1
- package/dist/types/src/{transcription-manager.d.ts → transcriber/transcription-manager.d.ts} +5 -2
- package/dist/types/src/transcriber/transcription-manager.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +14 -18
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +13 -19
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +2 -6
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util/random-queue-dxn.d.ts +2 -2
- package/dist/types/src/util/random-queue-dxn.d.ts.map +1 -1
- package/package.json +40 -36
- package/src/TranscriptionPlugin.tsx +24 -7
- package/src/capabilities/app-graph-builder.ts +147 -2
- package/src/capabilities/capabilities.ts +16 -2
- package/src/capabilities/index.ts +2 -0
- package/src/capabilities/intent-resolver.ts +4 -3
- package/src/capabilities/meeting-transcription-state.ts +16 -0
- package/src/capabilities/react-surface.tsx +3 -3
- package/src/capabilities/transcriber.ts +48 -0
- package/src/components/Transcript/Transcript.stories.tsx +46 -27
- package/src/components/Transcript/Transcript.tsx +206 -50
- package/src/components/TranscriptContainer.tsx +9 -147
- package/src/components/transcription.stories.tsx +11 -13
- package/src/hooks/useTranscriber.ts +12 -37
- package/src/index.ts +2 -2
- package/src/meta.ts +2 -2
- package/src/transcriber/index.ts +1 -0
- package/src/{transcription-manager.ts → transcriber/transcription-manager.ts} +16 -5
- package/src/translations.ts +6 -6
- package/src/types/schema.ts +7 -5
- package/src/types/types.ts +4 -2
- package/src/util/random-queue-dxn.ts +2 -2
- package/dist/lib/browser/app-graph-builder-ZSSJIFY7.mjs +0 -7
- package/dist/lib/browser/app-graph-builder-ZSSJIFY7.mjs.map +0 -7
- package/dist/lib/browser/chunk-BDVUIRBP.mjs +0 -8
- package/dist/lib/browser/chunk-GHTRJTEB.mjs.map +0 -7
- package/dist/lib/browser/chunk-QIHUPVQD.mjs.map +0 -7
- package/dist/lib/browser/chunk-YX447BJ4.mjs +0 -241
- package/dist/lib/browser/chunk-YX447BJ4.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-RW6DEJC2.mjs.map +0 -7
- package/dist/lib/node/app-graph-builder-YFBX3OTP.cjs.map +0 -7
- package/dist/lib/node/chunk-ANSWGFMS.cjs +0 -267
- package/dist/lib/node/chunk-ANSWGFMS.cjs.map +0 -7
- package/dist/lib/node/chunk-HDRXDMK2.cjs.map +0 -7
- package/dist/lib/node/chunk-UIHEGU6Q.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-KLBZ25XJ.cjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-77GQG6UF.mjs +0 -9
- package/dist/lib/node-esm/app-graph-builder-77GQG6UF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KEG3ME4O.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-LORUIVS4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZMK2QLW2.mjs +0 -242
- package/dist/lib/node-esm/chunk-ZMK2QLW2.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-4FMISUPW.mjs.map +0 -7
- package/dist/types/src/transcription-manager.d.ts.map +0 -1
- /package/dist/lib/browser/{TranscriptContainer-N4KQHMY4.mjs.map → TranscriptContainer-JQ3HFHLQ.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-BDVUIRBP.mjs.map → chunk-K7FOYAXO.mjs.map} +0 -0
- /package/dist/lib/node/{chunk-I35KHI2G.cjs.map → chunk-LP4FG423.cjs.map} +0 -0
- /package/dist/lib/node-esm/{TranscriptContainer-6IKRASR6.mjs.map → TranscriptContainer-ZXUCOWGY.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-2CPKXRN6.mjs.map → chunk-J4D2RBBH.mjs.map} +0 -0
package/dist/lib/node/index.cjs
CHANGED
|
@@ -28,67 +28,50 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var node_exports = {};
|
|
30
30
|
__export(node_exports, {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
TranscriptionCapabilities: () => TranscriptionCapabilities,
|
|
40
|
-
TranscriptionContainer: () => import_chunk_ANSWGFMS.TranscriptionContainer,
|
|
41
|
-
TranscriptionManager: () => TranscriptionManager,
|
|
31
|
+
MediaStreamRecorder: () => import_chunk_FCCJALOT.MediaStreamRecorder,
|
|
32
|
+
TRANSCRIPTION_PLUGIN: () => import_chunk_NVZWGFJL.TRANSCRIPTION_PLUGIN,
|
|
33
|
+
Transcriber: () => import_chunk_FCCJALOT.Transcriber,
|
|
34
|
+
Transcript: () => import_chunk_UOFHT4GZ.Transcript,
|
|
35
|
+
TranscriptContainer: () => import_chunk_LP4FG423.TranscriptContainer,
|
|
36
|
+
TranscriptionCapabilities: () => import_chunk_CZMLKKWT.TranscriptionCapabilities,
|
|
37
|
+
TranscriptionContainer: () => import_chunk_UOFHT4GZ.TranscriptionContainer,
|
|
38
|
+
TranscriptionManager: () => import_chunk_FCCJALOT.TranscriptionManager,
|
|
42
39
|
TranscriptionPlugin: () => TranscriptionPlugin,
|
|
43
|
-
meta: () =>
|
|
40
|
+
meta: () => import_chunk_NVZWGFJL.meta,
|
|
44
41
|
useAudioFile: () => useAudioFile,
|
|
45
42
|
useAudioTrack: () => useAudioTrack,
|
|
46
43
|
useTranscriber: () => useTranscriber,
|
|
47
44
|
useVoiceInput: () => useVoiceInput
|
|
48
45
|
});
|
|
49
46
|
module.exports = __toCommonJS(node_exports);
|
|
50
|
-
var
|
|
51
|
-
var
|
|
52
|
-
var
|
|
53
|
-
var
|
|
47
|
+
var import_chunk_LP4FG423 = require("./chunk-LP4FG423.cjs");
|
|
48
|
+
var import_chunk_UOFHT4GZ = require("./chunk-UOFHT4GZ.cjs");
|
|
49
|
+
var import_chunk_FCCJALOT = require("./chunk-FCCJALOT.cjs");
|
|
50
|
+
var import_chunk_3KHUSQNW = require("./chunk-3KHUSQNW.cjs");
|
|
51
|
+
var import_chunk_CZMLKKWT = require("./chunk-CZMLKKWT.cjs");
|
|
52
|
+
var import_chunk_P4VVD6ZO = require("./chunk-P4VVD6ZO.cjs");
|
|
53
|
+
var import_chunk_NVZWGFJL = require("./chunk-NVZWGFJL.cjs");
|
|
54
54
|
var import_app_framework = require("@dxos/app-framework");
|
|
55
|
-
var import_app_framework2 = require("@dxos/app-framework");
|
|
56
55
|
var import_react = require("react");
|
|
57
56
|
var import_log = require("@dxos/log");
|
|
58
57
|
var import_react2 = require("react");
|
|
59
58
|
var import_react3 = require("react");
|
|
60
|
-
var
|
|
61
|
-
var
|
|
59
|
+
var import_app_framework2 = require("@dxos/app-framework");
|
|
60
|
+
var import_react4 = require("react");
|
|
62
61
|
var import_async = require("@dxos/async");
|
|
63
|
-
var import_invariant = require("@dxos/invariant");
|
|
64
|
-
var import_log2 = require("@dxos/log");
|
|
65
|
-
var import_tracing = require("@dxos/tracing");
|
|
66
|
-
var import_wavefile2 = require("wavefile");
|
|
67
|
-
var import_async2 = require("@dxos/async");
|
|
68
62
|
var import_context = require("@dxos/context");
|
|
69
|
-
var
|
|
70
|
-
var import_tracing2 = require("@dxos/tracing");
|
|
71
|
-
var import_react4 = require("react");
|
|
72
|
-
var import_async3 = require("@dxos/async");
|
|
73
|
-
var import_context2 = require("@dxos/context");
|
|
74
|
-
var import_log4 = require("@dxos/log");
|
|
63
|
+
var import_log2 = require("@dxos/log");
|
|
75
64
|
var import_react_ui_sfx = require("@dxos/react-ui-sfx");
|
|
76
|
-
var
|
|
77
|
-
var import_context3 = require("@dxos/context");
|
|
65
|
+
var import_app_framework3 = require("@dxos/app-framework");
|
|
78
66
|
var import_echo_db = require("@dxos/echo-db");
|
|
79
67
|
var import_echo_schema = require("@dxos/echo-schema");
|
|
80
|
-
var import_invariant2 = require("@dxos/invariant");
|
|
81
|
-
var import_keys = require("@dxos/keys");
|
|
82
|
-
var import_app_framework3 = require("@dxos/app-framework");
|
|
83
68
|
var import_plugin_client = require("@dxos/plugin-client");
|
|
84
|
-
var
|
|
85
|
-
(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
var
|
|
89
|
-
var
|
|
90
|
-
var ReactSurface = (0, import_app_framework.lazy)(() => import("./react-surface-NCKXB7EQ.cjs"));
|
|
91
|
-
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-transcription/src/hooks/useAudioFile.ts";
|
|
69
|
+
var AppGraphBuilder = (0, import_app_framework.lazy)(() => import("./app-graph-builder-IFSIVNUR.cjs"));
|
|
70
|
+
var IntentResolver = (0, import_app_framework.lazy)(() => import("./intent-resolver-WMMCOUEH.cjs"));
|
|
71
|
+
var MeetingTranscriptionState = (0, import_app_framework.lazy)(() => import("./meeting-transcription-state-URIYILEQ.cjs"));
|
|
72
|
+
var ReactSurface = (0, import_app_framework.lazy)(() => import("./react-surface-WI2MGWCC.cjs"));
|
|
73
|
+
var Transcriber2 = (0, import_app_framework.lazy)(() => import("./transcriber-QG5WPKX4.cjs"));
|
|
74
|
+
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-transcription/src/hooks/useAudioFile.ts";
|
|
92
75
|
var useAudioFile = (audioUrl) => {
|
|
93
76
|
const [{ audio, stream, track }, setStream] = (0, import_react.useState)({});
|
|
94
77
|
(0, import_react.useEffect)(() => {
|
|
@@ -171,291 +154,20 @@ var useAudioTrack = (active) => {
|
|
|
171
154
|
]);
|
|
172
155
|
return track;
|
|
173
156
|
};
|
|
174
|
-
function _ts_decorate(decorators, target, key, desc) {
|
|
175
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
176
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
177
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
178
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
179
|
-
}
|
|
180
|
-
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-transcription/src/transcriber/media-stream-recorder.ts";
|
|
181
|
-
var initializingPromise;
|
|
182
|
-
var initializeExtendableMediaRecorder = async () => {
|
|
183
|
-
const { connect } = await import("extendable-media-recorder-wav-encoder");
|
|
184
|
-
await (0, import_extendable_media_recorder.register)(await connect());
|
|
185
|
-
};
|
|
186
|
-
var MediaStreamRecorder = class {
|
|
187
|
-
constructor({ mediaStreamTrack, interval }) {
|
|
188
|
-
this._mediaRecorder = void 0;
|
|
189
|
-
this._header = void 0;
|
|
190
|
-
this._mediaStreamTrack = mediaStreamTrack;
|
|
191
|
-
this._interval = interval;
|
|
192
|
-
}
|
|
193
|
-
get wavConfig() {
|
|
194
|
-
const settings = this._mediaStreamTrack.getSettings();
|
|
195
|
-
return {
|
|
196
|
-
channels: settings.channelCount ?? 1,
|
|
197
|
-
sampleRate: settings.sampleRate ?? 16e3,
|
|
198
|
-
bitDepthCode: settings.sampleSize ? String(settings.sampleSize) : "16"
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
get mediaStreamTrack() {
|
|
202
|
-
return this._mediaStreamTrack;
|
|
203
|
-
}
|
|
204
|
-
setOnChunk(onChunk) {
|
|
205
|
-
this._onChunk = onChunk;
|
|
206
|
-
}
|
|
207
|
-
async start() {
|
|
208
|
-
await (initializingPromise ??= initializeExtendableMediaRecorder()).catch((err) => import_log2.log.info("initializeExtendableMediaRecorder", {
|
|
209
|
-
err
|
|
210
|
-
}, {
|
|
211
|
-
F: __dxlog_file2,
|
|
212
|
-
L: 62,
|
|
213
|
-
S: this,
|
|
214
|
-
C: (f, a) => f(...a)
|
|
215
|
-
}));
|
|
216
|
-
if (!this._mediaRecorder) {
|
|
217
|
-
const stream = new MediaStream([
|
|
218
|
-
this._mediaStreamTrack
|
|
219
|
-
]);
|
|
220
|
-
this._mediaRecorder = new import_extendable_media_recorder.MediaRecorder(stream, {
|
|
221
|
-
mimeType: "audio/wav"
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
if (this._mediaRecorder.state === "recording") {
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
(0, import_invariant.invariant)(this._onChunk, "MediaStreamRecorder: onChunk is not set", {
|
|
228
|
-
F: __dxlog_file2,
|
|
229
|
-
L: 73,
|
|
230
|
-
S: this,
|
|
231
|
-
A: [
|
|
232
|
-
"this._onChunk",
|
|
233
|
-
"'MediaStreamRecorder: onChunk is not set'"
|
|
234
|
-
]
|
|
235
|
-
});
|
|
236
|
-
this._mediaRecorder.ondataavailable = (event) => this._ondataavailable(event);
|
|
237
|
-
this._mediaRecorder.start(this._interval);
|
|
238
|
-
}
|
|
239
|
-
async stop() {
|
|
240
|
-
if (this._mediaRecorder?.state !== "recording") {
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
this._mediaRecorder.stop();
|
|
244
|
-
}
|
|
245
|
-
async _ondataavailable(event) {
|
|
246
|
-
const blob = event.data;
|
|
247
|
-
const uint8Array = new Uint8Array(await blob.arrayBuffer());
|
|
248
|
-
const isHeader = uint8Array[0] === 82 && // R
|
|
249
|
-
uint8Array[1] === 73 && // I
|
|
250
|
-
uint8Array[2] === 70 && // F
|
|
251
|
-
uint8Array[3] === 70;
|
|
252
|
-
let wav;
|
|
253
|
-
if (isHeader) {
|
|
254
|
-
wav = new import_wavefile.WaveFile(uint8Array);
|
|
255
|
-
this._header = uint8Array.slice(0, 44);
|
|
256
|
-
} else if (this._header) {
|
|
257
|
-
wav = new import_wavefile.WaveFile(new Uint8Array([
|
|
258
|
-
...this._header,
|
|
259
|
-
...uint8Array
|
|
260
|
-
]));
|
|
261
|
-
} else {
|
|
262
|
-
import_log2.log.warn("MediaStreamRecorder: no header", void 0, {
|
|
263
|
-
F: __dxlog_file2,
|
|
264
|
-
L: 104,
|
|
265
|
-
S: this,
|
|
266
|
-
C: (f, a) => f(...a)
|
|
267
|
-
});
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
this._onChunk({
|
|
271
|
-
timestamp: Date.now(),
|
|
272
|
-
data: wav.getSamples()
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
};
|
|
276
|
-
_ts_decorate([
|
|
277
|
-
import_async.synchronized
|
|
278
|
-
], MediaStreamRecorder.prototype, "_ondataavailable", null);
|
|
279
|
-
MediaStreamRecorder = _ts_decorate([
|
|
280
|
-
import_tracing.trace.resource()
|
|
281
|
-
], MediaStreamRecorder);
|
|
282
|
-
function _ts_decorate2(decorators, target, key, desc) {
|
|
283
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
284
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
285
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
286
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
287
|
-
}
|
|
288
|
-
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-transcription/src/transcriber/transcriber.ts";
|
|
289
|
-
var Transcriber = class extends import_context.Resource {
|
|
290
|
-
constructor({ config, recorder, onSegments }) {
|
|
291
|
-
super();
|
|
292
|
-
this._audioChunks = [];
|
|
293
|
-
this._lastUsedTimestamp = 0;
|
|
294
|
-
this._openTrigger = new import_async2.Trigger({
|
|
295
|
-
autoReset: true
|
|
296
|
-
});
|
|
297
|
-
this._recording = false;
|
|
298
|
-
this._transcribeTask = void 0;
|
|
299
|
-
this._config = config;
|
|
300
|
-
this._recorder = recorder;
|
|
301
|
-
this._onSegments = onSegments;
|
|
302
|
-
}
|
|
303
|
-
async _open(ctx) {
|
|
304
|
-
this._recorder.setOnChunk((chunk) => this._saveAudioChunk(chunk));
|
|
305
|
-
await this._recorder.start();
|
|
306
|
-
this._transcribeTask = new import_async2.DeferredTask(ctx, async () => this._transcribe());
|
|
307
|
-
this._openTrigger.wake();
|
|
308
|
-
}
|
|
309
|
-
async _close() {
|
|
310
|
-
this._recording = false;
|
|
311
|
-
this._transcribeTask = void 0;
|
|
312
|
-
await this._recorder.stop();
|
|
313
|
-
}
|
|
314
|
-
startChunksRecording() {
|
|
315
|
-
if (this._lifecycleState !== import_context.LifecycleState.OPEN) {
|
|
316
|
-
return;
|
|
317
|
-
}
|
|
318
|
-
this._recording = true;
|
|
319
|
-
}
|
|
320
|
-
stopChunksRecording() {
|
|
321
|
-
if (this._lifecycleState !== import_context.LifecycleState.OPEN || !this._recording) {
|
|
322
|
-
return;
|
|
323
|
-
}
|
|
324
|
-
this._recording = false;
|
|
325
|
-
this._transcribeTask?.schedule();
|
|
326
|
-
}
|
|
327
|
-
_saveAudioChunk(chunk) {
|
|
328
|
-
(0, import_log3.log)("saving audio chunk", {
|
|
329
|
-
chunk
|
|
330
|
-
}, {
|
|
331
|
-
F: __dxlog_file3,
|
|
332
|
-
L: 124,
|
|
333
|
-
S: this,
|
|
334
|
-
C: (f, a) => f(...a)
|
|
335
|
-
});
|
|
336
|
-
this._audioChunks.push(chunk);
|
|
337
|
-
if (!this._recording && (!this._transcribeTask || !this._transcribeTask.scheduled) && this._audioChunks.length >= this._config.prefixBufferChunksAmount) {
|
|
338
|
-
this._audioChunks = this._dropOldChunks();
|
|
339
|
-
} else if (this._audioChunks.length >= this._config.transcribeAfterChunksAmount && this._recording) {
|
|
340
|
-
this._transcribeTask?.schedule();
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
async _transcribe() {
|
|
344
|
-
(0, import_log3.log)("transcribing", {
|
|
345
|
-
chunks: this._audioChunks.length
|
|
346
|
-
}, {
|
|
347
|
-
F: __dxlog_file3,
|
|
348
|
-
L: 140,
|
|
349
|
-
S: this,
|
|
350
|
-
C: (f, a) => f(...a)
|
|
351
|
-
});
|
|
352
|
-
const chunks = this._audioChunks;
|
|
353
|
-
this._audioChunks = this._dropOldChunks();
|
|
354
|
-
if (chunks.length === 0) {
|
|
355
|
-
return;
|
|
356
|
-
}
|
|
357
|
-
const audio = await this._mergeAudioChunks(chunks);
|
|
358
|
-
const segments = await this._fetchTranscription(audio);
|
|
359
|
-
if (!Array.isArray(segments) || segments.length === 0) {
|
|
360
|
-
return;
|
|
361
|
-
}
|
|
362
|
-
const alignedSegments = this._alignSegments(segments, chunks);
|
|
363
|
-
if (alignedSegments.length > 0) {
|
|
364
|
-
await this._onSegments(alignedSegments);
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
_dropOldChunks() {
|
|
368
|
-
return this._config.prefixBufferChunksAmount > 0 ? this._audioChunks.slice(-this._config.prefixBufferChunksAmount) : [];
|
|
369
|
-
}
|
|
370
|
-
async _mergeAudioChunks(chunks) {
|
|
371
|
-
const file = new import_wavefile2.WaveFile();
|
|
372
|
-
const wavConfig = this._recorder.wavConfig;
|
|
373
|
-
file.fromScratch(wavConfig.channels, wavConfig.sampleRate, wavConfig.bitDepthCode, (0, import_chunk_HDRXDMK2.mergeFloat64Arrays)(chunks.map(({ data }) => data)));
|
|
374
|
-
return file.toBase64();
|
|
375
|
-
}
|
|
376
|
-
async _fetchTranscription(audio) {
|
|
377
|
-
if (audio.length === 0) {
|
|
378
|
-
this._audioChunks = [];
|
|
379
|
-
throw new Error("No audio to send for transcribing");
|
|
380
|
-
}
|
|
381
|
-
const response = await fetch(`${import_chunk_UIHEGU6Q.TRANSCRIPTION_URL}/transcribe`, {
|
|
382
|
-
method: "POST",
|
|
383
|
-
body: JSON.stringify({
|
|
384
|
-
audio
|
|
385
|
-
}),
|
|
386
|
-
headers: {
|
|
387
|
-
"Content-Type": "application/json"
|
|
388
|
-
}
|
|
389
|
-
});
|
|
390
|
-
if (!response.ok) {
|
|
391
|
-
this._audioChunks = [];
|
|
392
|
-
throw new Error("Failed to transcribe");
|
|
393
|
-
}
|
|
394
|
-
const { segments } = await response.json();
|
|
395
|
-
import_log3.log.info("transcription response", {
|
|
396
|
-
segments,
|
|
397
|
-
string: segments.map((segments2) => segments2.text).join(" ")
|
|
398
|
-
}, {
|
|
399
|
-
F: __dxlog_file3,
|
|
400
|
-
L: 206,
|
|
401
|
-
S: this,
|
|
402
|
-
C: (f, a) => f(...a)
|
|
403
|
-
});
|
|
404
|
-
return segments;
|
|
405
|
-
}
|
|
406
|
-
_alignSegments(segments, originalChunks) {
|
|
407
|
-
const zeroTimestamp = originalChunks.at(0).timestamp;
|
|
408
|
-
const filteredSegments = segments.filter((segment) => zeroTimestamp + segment.end * 1e3 >= this._lastUsedTimestamp).map((segment) => {
|
|
409
|
-
const words = segment.words.filter((word) => zeroTimestamp + word.start * 1e3 >= this._lastUsedTimestamp);
|
|
410
|
-
return {
|
|
411
|
-
...segment,
|
|
412
|
-
words,
|
|
413
|
-
text: words.map((word) => word.word).join(""),
|
|
414
|
-
start: words.at(0)?.start ?? segment.end
|
|
415
|
-
};
|
|
416
|
-
}).filter((segment) => segment.words.length > 0);
|
|
417
|
-
if (filteredSegments.length === 0) {
|
|
418
|
-
return [];
|
|
419
|
-
}
|
|
420
|
-
this._lastUsedTimestamp = zeroTimestamp + filteredSegments.at(-1).end * 1e3;
|
|
421
|
-
return filteredSegments.map((segment) => ({
|
|
422
|
-
started: new Date(zeroTimestamp + segment.start * 1e3),
|
|
423
|
-
text: segment.text
|
|
424
|
-
}));
|
|
425
|
-
}
|
|
426
|
-
};
|
|
427
|
-
_ts_decorate2([
|
|
428
|
-
import_tracing2.trace.span({
|
|
429
|
-
showInBrowserTimeline: true
|
|
430
|
-
})
|
|
431
|
-
], Transcriber.prototype, "_mergeAudioChunks", null);
|
|
432
|
-
_ts_decorate2([
|
|
433
|
-
import_tracing2.trace.span({
|
|
434
|
-
showInBrowserTimeline: true
|
|
435
|
-
})
|
|
436
|
-
], Transcriber.prototype, "_fetchTranscription", null);
|
|
437
|
-
var RECORD_INTERVAL = 200;
|
|
438
|
-
var PREFIXED_CHUNKS_AMOUNT = 10;
|
|
439
|
-
var TRANSCRIBE_AFTER_CHUNKS_AMOUNT = 50;
|
|
440
157
|
var useTranscriber = ({ audioStreamTrack, onSegments }) => {
|
|
158
|
+
const [getTranscriber] = (0, import_app_framework2.useCapabilities)(import_chunk_CZMLKKWT.TranscriptionCapabilities.Transcriber);
|
|
441
159
|
const transcriber = (0, import_react3.useMemo)(() => {
|
|
442
|
-
if (!onSegments || !audioStreamTrack) {
|
|
160
|
+
if (!onSegments || !audioStreamTrack || !getTranscriber) {
|
|
443
161
|
return void 0;
|
|
444
162
|
}
|
|
445
|
-
return
|
|
446
|
-
|
|
447
|
-
transcribeAfterChunksAmount: TRANSCRIBE_AFTER_CHUNKS_AMOUNT,
|
|
448
|
-
prefixBufferChunksAmount: PREFIXED_CHUNKS_AMOUNT
|
|
449
|
-
},
|
|
450
|
-
recorder: new MediaStreamRecorder({
|
|
451
|
-
mediaStreamTrack: audioStreamTrack,
|
|
452
|
-
interval: RECORD_INTERVAL
|
|
453
|
-
}),
|
|
163
|
+
return getTranscriber({
|
|
164
|
+
audioStreamTrack,
|
|
454
165
|
onSegments
|
|
455
166
|
});
|
|
456
167
|
}, [
|
|
457
168
|
audioStreamTrack,
|
|
458
|
-
onSegments
|
|
169
|
+
onSegments,
|
|
170
|
+
getTranscriber
|
|
459
171
|
]);
|
|
460
172
|
(0, import_react3.useEffect)(() => {
|
|
461
173
|
return () => {
|
|
@@ -466,7 +178,7 @@ var useTranscriber = ({ audioStreamTrack, onSegments }) => {
|
|
|
466
178
|
]);
|
|
467
179
|
return transcriber;
|
|
468
180
|
};
|
|
469
|
-
var
|
|
181
|
+
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-transcription/src/hooks/useVoiceInput.ts";
|
|
470
182
|
var useVoiceInput = ({ active, onUpdate }) => {
|
|
471
183
|
const soundStart = (0, import_react_ui_sfx.useSoundEffect)("StartRecording");
|
|
472
184
|
const soundStop = (0, import_react_ui_sfx.useSoundEffect)("StopRecording");
|
|
@@ -481,15 +193,15 @@ var useVoiceInput = ({ active, onUpdate }) => {
|
|
|
481
193
|
onSegments: handleSegments
|
|
482
194
|
});
|
|
483
195
|
(0, import_react4.useEffect)(() => {
|
|
484
|
-
const ctx = new
|
|
485
|
-
F:
|
|
196
|
+
const ctx = new import_context.Context(void 0, {
|
|
197
|
+
F: __dxlog_file2,
|
|
486
198
|
L: 43
|
|
487
199
|
});
|
|
488
|
-
(0,
|
|
200
|
+
(0, import_async.scheduleMicroTask)(ctx, async () => {
|
|
489
201
|
if (active && transcriber) {
|
|
490
202
|
await transcriber.open();
|
|
491
|
-
|
|
492
|
-
F:
|
|
203
|
+
import_log2.log.info("starting...", void 0, {
|
|
204
|
+
F: __dxlog_file2,
|
|
493
205
|
L: 47,
|
|
494
206
|
S: void 0,
|
|
495
207
|
C: (f, a) => f(...a)
|
|
@@ -500,8 +212,8 @@ var useVoiceInput = ({ active, onUpdate }) => {
|
|
|
500
212
|
} else if (!active && transcriber?.isOpen) {
|
|
501
213
|
transcriber?.stopChunksRecording();
|
|
502
214
|
await transcriber?.close();
|
|
503
|
-
|
|
504
|
-
F:
|
|
215
|
+
import_log2.log.info("stopped", void 0, {
|
|
216
|
+
F: __dxlog_file2,
|
|
505
217
|
L: 54,
|
|
506
218
|
S: void 0,
|
|
507
219
|
C: (f, a) => f(...a)
|
|
@@ -521,237 +233,87 @@ var useVoiceInput = ({ active, onUpdate }) => {
|
|
|
521
233
|
recording
|
|
522
234
|
};
|
|
523
235
|
};
|
|
524
|
-
function _ts_decorate3(decorators, target, key, desc) {
|
|
525
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
526
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
527
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
528
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
529
|
-
}
|
|
530
|
-
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-transcription/src/transcription-manager.ts";
|
|
531
|
-
var RECORD_INTERVAL2 = 200;
|
|
532
|
-
var PREFIXED_CHUNKS_AMOUNT2 = 10;
|
|
533
|
-
var TRANSCRIBE_AFTER_CHUNKS_AMOUNT2 = 50;
|
|
534
|
-
var TranscriptionManager = class extends import_context3.Resource {
|
|
535
|
-
constructor(edgeClient) {
|
|
536
|
-
super();
|
|
537
|
-
this._audioStreamTrack = void 0;
|
|
538
|
-
this._name = void 0;
|
|
539
|
-
this._mediaRecorder = void 0;
|
|
540
|
-
this._transcriber = void 0;
|
|
541
|
-
this._enabled = false;
|
|
542
|
-
this._queue = void 0;
|
|
543
|
-
this._edgeClient = edgeClient;
|
|
544
|
-
}
|
|
545
|
-
async _open() {
|
|
546
|
-
await this._toggleTranscriber();
|
|
547
|
-
}
|
|
548
|
-
async _close() {
|
|
549
|
-
void this._transcriber?.close();
|
|
550
|
-
}
|
|
551
|
-
setRecording(recording) {
|
|
552
|
-
if (!this.isOpen || !this._enabled) {
|
|
553
|
-
return;
|
|
554
|
-
}
|
|
555
|
-
if (recording) {
|
|
556
|
-
this._transcriber?.startChunksRecording();
|
|
557
|
-
} else {
|
|
558
|
-
this._transcriber?.stopChunksRecording();
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
/**
|
|
562
|
-
* Enable or disable transcription.
|
|
563
|
-
* @param enabled - Whether to enable transcription.
|
|
564
|
-
*/
|
|
565
|
-
async setEnabled(enabled) {
|
|
566
|
-
if (this._enabled === enabled) {
|
|
567
|
-
return;
|
|
568
|
-
}
|
|
569
|
-
this._enabled = enabled ?? false;
|
|
570
|
-
this.isOpen && await this._toggleTranscriber();
|
|
571
|
-
}
|
|
572
|
-
async setAudioTrack(track) {
|
|
573
|
-
if (this._audioStreamTrack === track) {
|
|
574
|
-
return;
|
|
575
|
-
}
|
|
576
|
-
this._audioStreamTrack = track;
|
|
577
|
-
this.isOpen && await this._toggleTranscriber();
|
|
578
|
-
}
|
|
579
|
-
/**
|
|
580
|
-
* Set the queue to save the transcription to.
|
|
581
|
-
* @param queue - The queue to save the transcription to or the DXN of the queue.
|
|
582
|
-
*/
|
|
583
|
-
setQueue(queue) {
|
|
584
|
-
switch (typeof queue) {
|
|
585
|
-
case "string":
|
|
586
|
-
if (this._queue?.dxn.toString() === queue) {
|
|
587
|
-
return;
|
|
588
|
-
}
|
|
589
|
-
this._queue = new import_echo_db.QueueImpl(this._edgeClient, import_keys.DXN.parse(queue));
|
|
590
|
-
break;
|
|
591
|
-
case "object":
|
|
592
|
-
if (this._queue === queue) {
|
|
593
|
-
return;
|
|
594
|
-
}
|
|
595
|
-
(0, import_invariant2.invariant)(queue instanceof import_echo_db.QueueImpl, void 0, {
|
|
596
|
-
F: __dxlog_file5,
|
|
597
|
-
L: 110,
|
|
598
|
-
S: this,
|
|
599
|
-
A: [
|
|
600
|
-
"queue instanceof QueueImpl",
|
|
601
|
-
""
|
|
602
|
-
]
|
|
603
|
-
});
|
|
604
|
-
this._queue = queue;
|
|
605
|
-
break;
|
|
606
|
-
case "undefined":
|
|
607
|
-
this._queue = void 0;
|
|
608
|
-
break;
|
|
609
|
-
}
|
|
610
|
-
}
|
|
611
|
-
setName(name) {
|
|
612
|
-
if (this._name === name) {
|
|
613
|
-
return;
|
|
614
|
-
}
|
|
615
|
-
this._name = name;
|
|
616
|
-
}
|
|
617
|
-
async _toggleTranscriber() {
|
|
618
|
-
await this._maybeReinitTranscriber();
|
|
619
|
-
if (this._enabled) {
|
|
620
|
-
await this._transcriber?.open();
|
|
621
|
-
} else {
|
|
622
|
-
await this._transcriber?.close();
|
|
623
|
-
}
|
|
624
|
-
}
|
|
625
|
-
async _maybeReinitTranscriber() {
|
|
626
|
-
if (!this._audioStreamTrack || !this._enabled) {
|
|
627
|
-
return;
|
|
628
|
-
}
|
|
629
|
-
let needReinit = false;
|
|
630
|
-
if (this._audioStreamTrack !== this._mediaRecorder?.mediaStreamTrack) {
|
|
631
|
-
this._mediaRecorder = new MediaStreamRecorder({
|
|
632
|
-
mediaStreamTrack: this._audioStreamTrack,
|
|
633
|
-
interval: RECORD_INTERVAL2
|
|
634
|
-
});
|
|
635
|
-
needReinit = true;
|
|
636
|
-
}
|
|
637
|
-
if (needReinit) {
|
|
638
|
-
await this._transcriber?.close();
|
|
639
|
-
this._transcriber = new Transcriber({
|
|
640
|
-
config: {
|
|
641
|
-
transcribeAfterChunksAmount: TRANSCRIBE_AFTER_CHUNKS_AMOUNT2,
|
|
642
|
-
prefixBufferChunksAmount: PREFIXED_CHUNKS_AMOUNT2
|
|
643
|
-
},
|
|
644
|
-
recorder: this._mediaRecorder,
|
|
645
|
-
onSegments: (segments) => this._onSegments(segments)
|
|
646
|
-
});
|
|
647
|
-
}
|
|
648
|
-
}
|
|
649
|
-
async _onSegments(segments) {
|
|
650
|
-
if (!this.isOpen || !this._queue) {
|
|
651
|
-
return;
|
|
652
|
-
}
|
|
653
|
-
const block = (0, import_echo_schema.createStatic)(import_chunk_UIHEGU6Q.TranscriptBlock, {
|
|
654
|
-
author: this._name,
|
|
655
|
-
segments
|
|
656
|
-
});
|
|
657
|
-
this._queue.append([
|
|
658
|
-
block
|
|
659
|
-
]);
|
|
660
|
-
}
|
|
661
|
-
};
|
|
662
|
-
_ts_decorate3([
|
|
663
|
-
import_async4.synchronized
|
|
664
|
-
], TranscriptionManager.prototype, "setRecording", null);
|
|
665
|
-
_ts_decorate3([
|
|
666
|
-
import_async4.synchronized
|
|
667
|
-
], TranscriptionManager.prototype, "setEnabled", null);
|
|
668
|
-
_ts_decorate3([
|
|
669
|
-
import_async4.synchronized
|
|
670
|
-
], TranscriptionManager.prototype, "setAudioTrack", null);
|
|
671
|
-
_ts_decorate3([
|
|
672
|
-
import_async4.synchronized
|
|
673
|
-
], TranscriptionManager.prototype, "setQueue", null);
|
|
674
|
-
_ts_decorate3([
|
|
675
|
-
import_async4.synchronized
|
|
676
|
-
], TranscriptionManager.prototype, "setName", null);
|
|
677
236
|
var translations_default = [
|
|
678
237
|
{
|
|
679
238
|
"en-US": {
|
|
680
|
-
[
|
|
681
|
-
"typename label": "Transcript"
|
|
239
|
+
[import_chunk_P4VVD6ZO.TranscriptType.typename]: {
|
|
240
|
+
"typename label": "Transcript",
|
|
241
|
+
"object name placeholder": "New transcript"
|
|
682
242
|
},
|
|
683
|
-
[
|
|
243
|
+
[import_chunk_NVZWGFJL.TRANSCRIPTION_PLUGIN]: {
|
|
684
244
|
"plugin name": "Transcription",
|
|
685
|
-
"
|
|
686
|
-
"
|
|
687
|
-
"
|
|
688
|
-
"delete calls label": "Delete",
|
|
245
|
+
"transcript companion label": "Transcript",
|
|
246
|
+
"start transcription label": "Start transcription",
|
|
247
|
+
"stop transcription label": "Stop transcription",
|
|
689
248
|
"delete button": "Delete",
|
|
690
249
|
"bookmark button": "Bookmark",
|
|
691
|
-
"
|
|
692
|
-
"summarizing label": "Summarizing..."
|
|
250
|
+
"scroll to end label": "Scroll to latest"
|
|
693
251
|
}
|
|
694
252
|
}
|
|
695
253
|
}
|
|
696
254
|
];
|
|
697
|
-
var TranscriptionPlugin = () => (0, import_app_framework3.definePlugin)(
|
|
255
|
+
var TranscriptionPlugin = () => (0, import_app_framework3.definePlugin)(import_chunk_NVZWGFJL.meta, [
|
|
698
256
|
(0, import_app_framework3.defineModule)({
|
|
699
|
-
id: `${
|
|
257
|
+
id: `${import_chunk_NVZWGFJL.meta.id}/module/translations`,
|
|
700
258
|
activatesOn: import_app_framework3.Events.SetupTranslations,
|
|
701
259
|
activate: () => (0, import_app_framework3.contributes)(import_app_framework3.Capabilities.Translations, translations_default)
|
|
702
260
|
}),
|
|
703
261
|
(0, import_app_framework3.defineModule)({
|
|
704
|
-
id: `${
|
|
705
|
-
activatesOn: import_app_framework3.Events.
|
|
706
|
-
activate:
|
|
262
|
+
id: `${import_chunk_NVZWGFJL.meta.id}/module/transcription`,
|
|
263
|
+
activatesOn: import_app_framework3.Events.SetupAppGraph,
|
|
264
|
+
activate: Transcriber2
|
|
265
|
+
}),
|
|
266
|
+
(0, import_app_framework3.defineModule)({
|
|
267
|
+
id: `${import_chunk_NVZWGFJL.meta.id}/module/meeting-transcription-state`,
|
|
268
|
+
activatesOn: import_app_framework3.Events.SetupAppGraph,
|
|
269
|
+
activate: MeetingTranscriptionState
|
|
707
270
|
}),
|
|
708
271
|
(0, import_app_framework3.defineModule)({
|
|
709
|
-
id: `${
|
|
272
|
+
id: `${import_chunk_NVZWGFJL.meta.id}/module/metadata`,
|
|
710
273
|
activatesOn: import_app_framework3.Events.SetupMetadata,
|
|
711
|
-
activate: () => (0, import_app_framework3.contributes)(import_app_framework3.Capabilities.Metadata, {
|
|
712
|
-
id:
|
|
274
|
+
activate: (context) => (0, import_app_framework3.contributes)(import_app_framework3.Capabilities.Metadata, {
|
|
275
|
+
id: import_chunk_P4VVD6ZO.TranscriptType.typename,
|
|
713
276
|
metadata: {
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
277
|
+
icon: "ph--subtitles--regular",
|
|
278
|
+
// TODO(wittjosiah): Factor out. Artifact? Separate capability?
|
|
279
|
+
getTextContent: async (transcript) => {
|
|
280
|
+
const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
|
|
281
|
+
const queue = new import_echo_db.QueueImpl(client.edge, transcript.queue.dxn);
|
|
282
|
+
await queue.refresh();
|
|
283
|
+
const content = queue.items.filter((block) => (0, import_echo_schema.isInstanceOf)(import_chunk_P4VVD6ZO.TranscriptBlock, block)).map((block) => `${block.authorName}: ${block.segments.map((segment) => segment.text).join("\n")}`).join("\n\n");
|
|
284
|
+
return content;
|
|
285
|
+
}
|
|
721
286
|
}
|
|
722
287
|
})
|
|
723
288
|
}),
|
|
724
289
|
(0, import_app_framework3.defineModule)({
|
|
725
|
-
id: `${
|
|
290
|
+
id: `${import_chunk_NVZWGFJL.meta.id}/module/schema`,
|
|
726
291
|
activatesOn: import_plugin_client.ClientEvents.SetupSchema,
|
|
727
292
|
activate: () => [
|
|
728
293
|
(0, import_app_framework3.contributes)(import_plugin_client.ClientCapabilities.Schema, [
|
|
729
|
-
|
|
294
|
+
import_chunk_P4VVD6ZO.TranscriptType
|
|
730
295
|
])
|
|
731
296
|
]
|
|
732
297
|
}),
|
|
733
298
|
(0, import_app_framework3.defineModule)({
|
|
734
|
-
id: `${
|
|
299
|
+
id: `${import_chunk_NVZWGFJL.meta.id}/module/react-surface`,
|
|
735
300
|
activatesOn: import_app_framework3.Events.SetupReactSurface,
|
|
736
301
|
activate: ReactSurface
|
|
737
302
|
}),
|
|
738
303
|
(0, import_app_framework3.defineModule)({
|
|
739
|
-
id: `${
|
|
304
|
+
id: `${import_chunk_NVZWGFJL.meta.id}/module/intent-resolver`,
|
|
740
305
|
activatesOn: import_app_framework3.Events.SetupIntentResolver,
|
|
741
306
|
activate: IntentResolver
|
|
742
307
|
}),
|
|
743
308
|
(0, import_app_framework3.defineModule)({
|
|
744
|
-
id: `${
|
|
309
|
+
id: `${import_chunk_NVZWGFJL.meta.id}/module/app-graph-builder`,
|
|
745
310
|
activatesOn: import_app_framework3.Events.SetupAppGraph,
|
|
746
311
|
activate: AppGraphBuilder
|
|
747
312
|
})
|
|
748
313
|
]);
|
|
749
314
|
// Annotate the CommonJS export names for ESM import in node:
|
|
750
315
|
0 && (module.exports = {
|
|
751
|
-
AppGraphBuilder,
|
|
752
|
-
IntentResolver,
|
|
753
316
|
MediaStreamRecorder,
|
|
754
|
-
ReactSurface,
|
|
755
317
|
TRANSCRIPTION_PLUGIN,
|
|
756
318
|
Transcriber,
|
|
757
319
|
Transcript,
|