@mieweb/ui 0.11.0-dev.6 → 0.11.0-dev.8
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/ag-grid.cjs +11 -2
- package/dist/ag-grid.cjs.map +1 -1
- package/dist/ag-grid.d.cts +8 -0
- package/dist/ag-grid.d.ts +8 -0
- package/dist/ag-grid.js +11 -2
- package/dist/ag-grid.js.map +1 -1
- package/dist/brands/index.cjs +12 -12
- package/dist/brands/index.js +3 -3
- package/dist/chunk-3TUULOTW.cjs +333 -0
- package/dist/chunk-3TUULOTW.cjs.map +1 -0
- package/dist/{chunk-OODVC2UD.cjs → chunk-AWSSWNJY.cjs} +2 -2
- package/dist/{chunk-OODVC2UD.cjs.map → chunk-AWSSWNJY.cjs.map} +1 -1
- package/dist/{chunk-QJ2L5RU6.js → chunk-DSQCYX7L.js} +2 -2
- package/dist/{chunk-QJ2L5RU6.js.map → chunk-DSQCYX7L.js.map} +1 -1
- package/dist/{chunk-JTSKPDPH.cjs → chunk-HIYQ3M5V.cjs} +4 -3
- package/dist/chunk-HIYQ3M5V.cjs.map +1 -0
- package/dist/chunk-IZY4CMOO.js +715 -0
- package/dist/chunk-IZY4CMOO.js.map +1 -0
- package/dist/{chunk-753ENNB6.js → chunk-J3QEMZCH.js} +2 -2
- package/dist/{chunk-753ENNB6.js.map → chunk-J3QEMZCH.js.map} +1 -1
- package/dist/{chunk-VNWJTCBQ.js → chunk-MQOYDQTF.js} +4 -3
- package/dist/chunk-MQOYDQTF.js.map +1 -0
- package/dist/{chunk-NAH65KPK.cjs → chunk-TOJ56HKQ.cjs} +2 -2
- package/dist/{chunk-NAH65KPK.cjs.map → chunk-TOJ56HKQ.cjs.map} +1 -1
- package/dist/chunk-TRZLN32I.cjs +740 -0
- package/dist/chunk-TRZLN32I.cjs.map +1 -0
- package/dist/chunk-XQIQX5OB.js +309 -0
- package/dist/chunk-XQIQX5OB.js.map +1 -0
- package/dist/components/DictationButton/index.cjs +23 -0
- package/dist/components/DictationButton/index.cjs.map +1 -0
- package/dist/components/DictationButton/index.d.cts +67 -0
- package/dist/components/DictationButton/index.d.ts +67 -0
- package/dist/components/DictationButton/index.js +6 -0
- package/dist/components/DictationButton/index.js.map +1 -0
- package/dist/components/Markdown/index.cjs +10 -10
- package/dist/components/Markdown/index.js +2 -2
- package/dist/components/RecordButton/index.cjs +4 -4
- package/dist/components/RecordButton/index.js +1 -1
- package/dist/components/SuperChat/index.d.cts +2 -2
- package/dist/components/SuperChat/index.d.ts +2 -2
- package/dist/components/SuperChat/plugins/index.d.cts +2 -2
- package/dist/components/SuperChat/plugins/index.d.ts +2 -2
- package/dist/index.cjs +221 -844
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +63 -1
- package/dist/index.d.ts +63 -1
- package/dist/index.js +25 -716
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/{types-Cx1FHLq2.d.cts → types-DSWbrVkM.d.cts} +1 -1
- package/dist/{types-Cx1FHLq2.d.ts → types-DSWbrVkM.d.ts} +1 -1
- package/dist/whisperTranscribe-AV752TZI.cjs +81 -0
- package/dist/whisperTranscribe-AV752TZI.cjs.map +1 -0
- package/dist/whisperTranscribe-UBNUWXUQ.js +4 -0
- package/dist/whisperTranscribe-UBNUWXUQ.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-JTSKPDPH.cjs.map +0 -1
- package/dist/chunk-VNWJTCBQ.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkUVSODK6V_cjs = require('./chunk-UVSODK6V.cjs');
|
|
4
|
+
var chunkTRZLN32I_cjs = require('./chunk-TRZLN32I.cjs');
|
|
4
5
|
var chunkOGNADPM4_cjs = require('./chunk-OGNADPM4.cjs');
|
|
6
|
+
var chunkXNPDZANN_cjs = require('./chunk-XNPDZANN.cjs');
|
|
5
7
|
var chunkIEZXJWHJ_cjs = require('./chunk-IEZXJWHJ.cjs');
|
|
6
8
|
var chunkPWXDRFJL_cjs = require('./chunk-PWXDRFJL.cjs');
|
|
7
9
|
var chunkFSWHZY3T_cjs = require('./chunk-FSWHZY3T.cjs');
|
|
8
10
|
var chunkOIF34LEN_cjs = require('./chunk-OIF34LEN.cjs');
|
|
9
|
-
var
|
|
11
|
+
var chunkAWSSWNJY_cjs = require('./chunk-AWSSWNJY.cjs');
|
|
12
|
+
var chunkX7S76WB7_cjs = require('./chunk-X7S76WB7.cjs');
|
|
10
13
|
var chunkNM7O7RY5_cjs = require('./chunk-NM7O7RY5.cjs');
|
|
11
14
|
var chunkLCQGAOAZ_cjs = require('./chunk-LCQGAOAZ.cjs');
|
|
12
15
|
var chunkZ5J4NTPL_cjs = require('./chunk-Z5J4NTPL.cjs');
|
|
13
16
|
var chunkU7VQUOLS_cjs = require('./chunk-U7VQUOLS.cjs');
|
|
17
|
+
var chunkUCGUA3QV_cjs = require('./chunk-UCGUA3QV.cjs');
|
|
14
18
|
var chunkRR2MJBGV_cjs = require('./chunk-RR2MJBGV.cjs');
|
|
15
|
-
var chunkX7S76WB7_cjs = require('./chunk-X7S76WB7.cjs');
|
|
16
19
|
var chunkNGQRS7AW_cjs = require('./chunk-NGQRS7AW.cjs');
|
|
17
20
|
var chunk3ZWCIPFT_cjs = require('./chunk-3ZWCIPFT.cjs');
|
|
18
|
-
|
|
21
|
+
require('./chunk-6TTCZY3P.cjs');
|
|
19
22
|
var chunkA4W5CSK7_cjs = require('./chunk-A4W5CSK7.cjs');
|
|
20
23
|
var chunkARIJ5OHW_cjs = require('./chunk-ARIJ5OHW.cjs');
|
|
21
24
|
var chunkBJ6ABRSQ_cjs = require('./chunk-BJ6ABRSQ.cjs');
|
|
@@ -23,7 +26,7 @@ var chunkFSGJXCBG_cjs = require('./chunk-FSGJXCBG.cjs');
|
|
|
23
26
|
var chunkHNFFFFYH_cjs = require('./chunk-HNFFFFYH.cjs');
|
|
24
27
|
var chunkDO2YN46R_cjs = require('./chunk-DO2YN46R.cjs');
|
|
25
28
|
var chunk4ZB7RSMY_cjs = require('./chunk-4ZB7RSMY.cjs');
|
|
26
|
-
var
|
|
29
|
+
var chunkGYXSF6BJ_cjs = require('./chunk-GYXSF6BJ.cjs');
|
|
27
30
|
var chunkFYAKUU2A_cjs = require('./chunk-FYAKUU2A.cjs');
|
|
28
31
|
var chunkHCIXGFWR_cjs = require('./chunk-HCIXGFWR.cjs');
|
|
29
32
|
var chunkZJCPW6MS_cjs = require('./chunk-ZJCPW6MS.cjs');
|
|
@@ -34,28 +37,27 @@ require('./chunk-47P5QLX4.cjs');
|
|
|
34
37
|
var chunkCLQW724U_cjs = require('./chunk-CLQW724U.cjs');
|
|
35
38
|
require('./chunk-IWRBJHO3.cjs');
|
|
36
39
|
require('./chunk-7IRTD4JT.cjs');
|
|
37
|
-
require('./chunk-
|
|
40
|
+
var chunk3AD4HFYI_cjs = require('./chunk-3AD4HFYI.cjs');
|
|
38
41
|
var chunk3IAA3KCE_cjs = require('./chunk-3IAA3KCE.cjs');
|
|
39
42
|
var chunkKY67AMQ5_cjs = require('./chunk-KY67AMQ5.cjs');
|
|
40
43
|
var chunkVTKXM7IE_cjs = require('./chunk-VTKXM7IE.cjs');
|
|
41
|
-
var chunkGYXSF6BJ_cjs = require('./chunk-GYXSF6BJ.cjs');
|
|
42
44
|
var chunkXPWFIDZM_cjs = require('./chunk-XPWFIDZM.cjs');
|
|
45
|
+
var chunkYGA35Z2P_cjs = require('./chunk-YGA35Z2P.cjs');
|
|
43
46
|
var chunkAHHFFXJR_cjs = require('./chunk-AHHFFXJR.cjs');
|
|
44
47
|
var chunk7RV6CAP6_cjs = require('./chunk-7RV6CAP6.cjs');
|
|
45
48
|
var chunkQKW2QCGI_cjs = require('./chunk-QKW2QCGI.cjs');
|
|
46
49
|
var chunkC66JR43M_cjs = require('./chunk-C66JR43M.cjs');
|
|
47
50
|
var chunkWGXJNCRG_cjs = require('./chunk-WGXJNCRG.cjs');
|
|
48
|
-
var chunk3AD4HFYI_cjs = require('./chunk-3AD4HFYI.cjs');
|
|
49
51
|
var chunk3SZQRMHM_cjs = require('./chunk-3SZQRMHM.cjs');
|
|
50
52
|
var chunkOZOSWBSI_cjs = require('./chunk-OZOSWBSI.cjs');
|
|
51
53
|
var chunkKDW6BD4O_cjs = require('./chunk-KDW6BD4O.cjs');
|
|
52
54
|
var chunk2S76TRBJ_cjs = require('./chunk-2S76TRBJ.cjs');
|
|
53
|
-
var chunkYGA35Z2P_cjs = require('./chunk-YGA35Z2P.cjs');
|
|
54
55
|
var chunkMGFRGPWI_cjs = require('./chunk-MGFRGPWI.cjs');
|
|
55
56
|
var chunk2I4IRQQG_cjs = require('./chunk-2I4IRQQG.cjs');
|
|
56
57
|
var chunkXWZEECEX_cjs = require('./chunk-XWZEECEX.cjs');
|
|
57
58
|
var chunk5MXO6PEV_cjs = require('./chunk-5MXO6PEV.cjs');
|
|
58
|
-
var
|
|
59
|
+
var chunk3TUULOTW_cjs = require('./chunk-3TUULOTW.cjs');
|
|
60
|
+
var chunkHIYQ3M5V_cjs = require('./chunk-HIYQ3M5V.cjs');
|
|
59
61
|
var chunkXZNHS7YQ_cjs = require('./chunk-XZNHS7YQ.cjs');
|
|
60
62
|
var chunkGDKOYVX3_cjs = require('./chunk-GDKOYVX3.cjs');
|
|
61
63
|
var chunkAJPFQF3H_cjs = require('./chunk-AJPFQF3H.cjs');
|
|
@@ -70,11 +72,11 @@ var chunkVINZZQBD_cjs = require('./chunk-VINZZQBD.cjs');
|
|
|
70
72
|
var chunkUEDTZYGI_cjs = require('./chunk-UEDTZYGI.cjs');
|
|
71
73
|
var chunkVV2U36T6_cjs = require('./chunk-VV2U36T6.cjs');
|
|
72
74
|
var chunkPYI2IWNX_cjs = require('./chunk-PYI2IWNX.cjs');
|
|
73
|
-
var
|
|
75
|
+
var chunkTOJ56HKQ_cjs = require('./chunk-TOJ56HKQ.cjs');
|
|
76
|
+
var chunkIGDO62KR_cjs = require('./chunk-IGDO62KR.cjs');
|
|
74
77
|
var chunkSW2E7XKY_cjs = require('./chunk-SW2E7XKY.cjs');
|
|
75
78
|
var chunkERACGSDY_cjs = require('./chunk-ERACGSDY.cjs');
|
|
76
79
|
var chunk32ZCJOSR_cjs = require('./chunk-32ZCJOSR.cjs');
|
|
77
|
-
var chunkIGDO62KR_cjs = require('./chunk-IGDO62KR.cjs');
|
|
78
80
|
var chunkRIUQP2QS_cjs = require('./chunk-RIUQP2QS.cjs');
|
|
79
81
|
var chunkNGSDBWKA_cjs = require('./chunk-NGSDBWKA.cjs');
|
|
80
82
|
var chunk56C7K4MV_cjs = require('./chunk-56C7K4MV.cjs');
|
|
@@ -1833,7 +1835,7 @@ function AIChat({
|
|
|
1833
1835
|
disabled: isGenerating,
|
|
1834
1836
|
isSending: isGenerating,
|
|
1835
1837
|
micSlot: hostMicSlot !== void 0 ? hostMicSlot : hasInputTrailing ? normalizeLegacySlot(inputTrailing) : talkToText ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1836
|
-
|
|
1838
|
+
chunkHIYQ3M5V_cjs.RecordButton,
|
|
1837
1839
|
{
|
|
1838
1840
|
variant: "ghost",
|
|
1839
1841
|
size: "sm",
|
|
@@ -3100,27 +3102,6 @@ function OzwellSettingsMenu({
|
|
|
3100
3102
|
}
|
|
3101
3103
|
);
|
|
3102
3104
|
}
|
|
3103
|
-
|
|
3104
|
-
// src/components/AI/modelCache.ts
|
|
3105
|
-
var registered = /* @__PURE__ */ new Set();
|
|
3106
|
-
function registerModelServiceWorker(swUrl = "/ozwell-model-sw.js") {
|
|
3107
|
-
if (typeof navigator === "undefined" || !("serviceWorker" in navigator))
|
|
3108
|
-
return;
|
|
3109
|
-
if (registered.has(swUrl)) return;
|
|
3110
|
-
registered.add(swUrl);
|
|
3111
|
-
navigator.serviceWorker.register(swUrl).then(
|
|
3112
|
-
() => console.log("[modelCache] model service worker registered"),
|
|
3113
|
-
(e) => {
|
|
3114
|
-
registered.delete(swUrl);
|
|
3115
|
-
console.warn(
|
|
3116
|
-
"[modelCache] SW registration failed (models will still load, just not cached):",
|
|
3117
|
-
e
|
|
3118
|
-
);
|
|
3119
|
-
}
|
|
3120
|
-
);
|
|
3121
|
-
}
|
|
3122
|
-
|
|
3123
|
-
// src/components/AI/HeyOzwell/WakeWord/useWakeWord.ts
|
|
3124
3105
|
var DEFAULT_ASSET_BASE = "https://huggingface.co/jlocala/ozwell-voice-assets/resolve/main";
|
|
3125
3106
|
var DEFAULT_ASSET = `${DEFAULT_ASSET_BASE}/wakeword`;
|
|
3126
3107
|
var PHRASES = ["hey-ozwell", "ozwell-i'm-done"];
|
|
@@ -3248,7 +3229,7 @@ function useWakeWord(opts = {}) {
|
|
|
3248
3229
|
);
|
|
3249
3230
|
return;
|
|
3250
3231
|
}
|
|
3251
|
-
if (registerServiceWorker) registerModelServiceWorker();
|
|
3232
|
+
if (registerServiceWorker) chunkTRZLN32I_cjs.registerModelServiceWorker();
|
|
3252
3233
|
let cancelled = false;
|
|
3253
3234
|
(async () => {
|
|
3254
3235
|
try {
|
|
@@ -3399,679 +3380,6 @@ function useWakeWord(opts = {}) {
|
|
|
3399
3380
|
}
|
|
3400
3381
|
};
|
|
3401
3382
|
}
|
|
3402
|
-
|
|
3403
|
-
// src/components/AI/ozwellChat.ts
|
|
3404
|
-
var DEFAULT_BASE = "https://api.ozwell.ai";
|
|
3405
|
-
var OLLAMA_BASE = "http://localhost:11434";
|
|
3406
|
-
var DEFAULTS = {
|
|
3407
|
-
model: "gpt-4o-mini",
|
|
3408
|
-
system: "You are Ozwell, a concise and helpful clinical assistant. Answer briefly and clearly.",
|
|
3409
|
-
temperature: 0.7
|
|
3410
|
-
};
|
|
3411
|
-
function readWindowGlobal() {
|
|
3412
|
-
if (typeof window === "undefined") return {};
|
|
3413
|
-
const get = (w) => {
|
|
3414
|
-
try {
|
|
3415
|
-
return w?.__ozwell;
|
|
3416
|
-
} catch {
|
|
3417
|
-
return void 0;
|
|
3418
|
-
}
|
|
3419
|
-
};
|
|
3420
|
-
return get(window) || get(window.parent) || get(window.top) || {};
|
|
3421
|
-
}
|
|
3422
|
-
function sanitizeConfig(o) {
|
|
3423
|
-
if (!o || typeof o !== "object") return {};
|
|
3424
|
-
const out = {};
|
|
3425
|
-
for (const k of Object.keys(o)) {
|
|
3426
|
-
if (k === "__proto__" || k === "constructor" || k === "prototype") continue;
|
|
3427
|
-
out[k] = o[k];
|
|
3428
|
-
}
|
|
3429
|
-
return out;
|
|
3430
|
-
}
|
|
3431
|
-
function readRaw() {
|
|
3432
|
-
let stored = {};
|
|
3433
|
-
try {
|
|
3434
|
-
stored = sanitizeConfig(
|
|
3435
|
-
JSON.parse(localStorage.getItem("ozwellConfig") || "{}")
|
|
3436
|
-
);
|
|
3437
|
-
} catch {
|
|
3438
|
-
}
|
|
3439
|
-
return { ...stored, ...sanitizeConfig(readWindowGlobal()) };
|
|
3440
|
-
}
|
|
3441
|
-
function getOzwellConfig() {
|
|
3442
|
-
const c = readRaw();
|
|
3443
|
-
const apiKey = c.apiKey || "";
|
|
3444
|
-
const baseURL = c.baseURL || (apiKey === "ollama" ? OLLAMA_BASE : DEFAULT_BASE);
|
|
3445
|
-
return {
|
|
3446
|
-
baseURL,
|
|
3447
|
-
apiKey,
|
|
3448
|
-
model: c.model || DEFAULTS.model,
|
|
3449
|
-
system: c.system ?? DEFAULTS.system,
|
|
3450
|
-
// Coerce: temperature set via console/localStorage often arrives as a string; a string in the request
|
|
3451
|
-
// body can be rejected by OpenAI-compatible servers. Fall back to the default if it's not a real number —
|
|
3452
|
-
// and guard the empty/whitespace string explicitly, since Number('') is 0 (a valid-looking temperature)
|
|
3453
|
-
// and would silently pin sampling to 0 instead of using the default.
|
|
3454
|
-
temperature: c.temperature != null && String(c.temperature).trim() !== "" && Number.isFinite(Number(c.temperature)) ? Number(c.temperature) : DEFAULTS.temperature
|
|
3455
|
-
};
|
|
3456
|
-
}
|
|
3457
|
-
function isOzwellConfigured() {
|
|
3458
|
-
return !!getOzwellConfig().apiKey;
|
|
3459
|
-
}
|
|
3460
|
-
function toOzwellMessages(msgs) {
|
|
3461
|
-
const out = [];
|
|
3462
|
-
for (const m of msgs) {
|
|
3463
|
-
if (m.role !== "user" && m.role !== "assistant") continue;
|
|
3464
|
-
const text = (m.content || []).map((c) => c.text || "").join(" ").trim();
|
|
3465
|
-
if (text) out.push({ role: m.role, content: text });
|
|
3466
|
-
}
|
|
3467
|
-
return out;
|
|
3468
|
-
}
|
|
3469
|
-
function withSystem(messages, system) {
|
|
3470
|
-
if (!system || messages.some((m) => m.role === "system")) return messages;
|
|
3471
|
-
return [{ role: "system", content: system }, ...messages];
|
|
3472
|
-
}
|
|
3473
|
-
function buildRequest(messages, cfg, stream) {
|
|
3474
|
-
const msgs = typeof messages === "string" ? [{ role: "user", content: messages }] : messages;
|
|
3475
|
-
return {
|
|
3476
|
-
url: `${cfg.baseURL.replace(/\/$/, "")}/v1/chat/completions`,
|
|
3477
|
-
headers: {
|
|
3478
|
-
"Content-Type": "application/json",
|
|
3479
|
-
// 'ollama' is a sentinel that points baseURL at the local Ollama server, not a real credential —
|
|
3480
|
-
// don't send it as a Bearer token (some local OpenAI-compatible servers reject unexpected auth).
|
|
3481
|
-
...cfg.apiKey && cfg.apiKey !== "ollama" ? { Authorization: `Bearer ${cfg.apiKey}` } : {}
|
|
3482
|
-
},
|
|
3483
|
-
body: JSON.stringify({
|
|
3484
|
-
model: cfg.model,
|
|
3485
|
-
messages: withSystem(msgs, cfg.system),
|
|
3486
|
-
temperature: cfg.temperature,
|
|
3487
|
-
stream
|
|
3488
|
-
})
|
|
3489
|
-
};
|
|
3490
|
-
}
|
|
3491
|
-
function resolveConfig(opts) {
|
|
3492
|
-
const cfg = { ...getOzwellConfig(), ...opts };
|
|
3493
|
-
if (opts.apiKey && !opts.baseURL && !readRaw().baseURL) {
|
|
3494
|
-
cfg.baseURL = cfg.apiKey === "ollama" ? OLLAMA_BASE : DEFAULT_BASE;
|
|
3495
|
-
}
|
|
3496
|
-
return cfg;
|
|
3497
|
-
}
|
|
3498
|
-
async function askOzwell(messages, opts = {}) {
|
|
3499
|
-
const cfg = resolveConfig(opts);
|
|
3500
|
-
const req = buildRequest(messages, cfg, false);
|
|
3501
|
-
const res = await fetch(req.url, {
|
|
3502
|
-
method: "POST",
|
|
3503
|
-
headers: req.headers,
|
|
3504
|
-
body: req.body,
|
|
3505
|
-
signal: opts.signal
|
|
3506
|
-
});
|
|
3507
|
-
if (!res.ok) throw new Error(`Ozwell API ${res.status}: ${res.statusText}`);
|
|
3508
|
-
const data = await res.json();
|
|
3509
|
-
return (data?.choices?.[0]?.message?.content ?? "").trim();
|
|
3510
|
-
}
|
|
3511
|
-
async function askOzwellStream(messages, onToken, opts = {}) {
|
|
3512
|
-
const cfg = resolveConfig(opts);
|
|
3513
|
-
const req = buildRequest(messages, cfg, true);
|
|
3514
|
-
const res = await fetch(req.url, {
|
|
3515
|
-
method: "POST",
|
|
3516
|
-
headers: req.headers,
|
|
3517
|
-
body: req.body,
|
|
3518
|
-
signal: opts.signal
|
|
3519
|
-
});
|
|
3520
|
-
if (!res.ok || !res.body)
|
|
3521
|
-
throw new Error(`Ozwell API ${res.status}: ${res.statusText}`);
|
|
3522
|
-
const reader = res.body.getReader();
|
|
3523
|
-
const decoder = new TextDecoder();
|
|
3524
|
-
let buf = "";
|
|
3525
|
-
let full = "";
|
|
3526
|
-
const processEvent = (ev) => {
|
|
3527
|
-
for (const line of ev.split(/\r?\n/)) {
|
|
3528
|
-
if (!line.startsWith("data:")) continue;
|
|
3529
|
-
const payload = line.slice(5).trim();
|
|
3530
|
-
if (payload === "[DONE]") return true;
|
|
3531
|
-
try {
|
|
3532
|
-
const json = JSON.parse(payload);
|
|
3533
|
-
const delta = json?.choices?.[0]?.delta?.content || "";
|
|
3534
|
-
if (delta) {
|
|
3535
|
-
full += delta;
|
|
3536
|
-
onToken(delta, full);
|
|
3537
|
-
}
|
|
3538
|
-
} catch {
|
|
3539
|
-
}
|
|
3540
|
-
}
|
|
3541
|
-
return false;
|
|
3542
|
-
};
|
|
3543
|
-
try {
|
|
3544
|
-
for (; ; ) {
|
|
3545
|
-
const { done, value } = await reader.read();
|
|
3546
|
-
if (done) break;
|
|
3547
|
-
buf += decoder.decode(value, { stream: true });
|
|
3548
|
-
const events = buf.split(/\r?\n\r?\n/);
|
|
3549
|
-
buf = events.pop() || "";
|
|
3550
|
-
for (const ev of events) if (processEvent(ev)) return full;
|
|
3551
|
-
}
|
|
3552
|
-
buf += decoder.decode();
|
|
3553
|
-
if (buf.trim()) processEvent(buf);
|
|
3554
|
-
} finally {
|
|
3555
|
-
try {
|
|
3556
|
-
await reader.cancel();
|
|
3557
|
-
} catch {
|
|
3558
|
-
}
|
|
3559
|
-
}
|
|
3560
|
-
return full;
|
|
3561
|
-
}
|
|
3562
|
-
|
|
3563
|
-
// src/components/AI/whisperTranscribe.ts
|
|
3564
|
-
var HF_HOST = "https://huggingface.co";
|
|
3565
|
-
var HF_PATH = "{model}/resolve/{revision}/";
|
|
3566
|
-
var R2_HOST = "https://pub-64db68afc2cb4e108ff06e7e583f09d1.r2.dev";
|
|
3567
|
-
function whisperHost() {
|
|
3568
|
-
if (typeof window === "undefined") return R2_HOST;
|
|
3569
|
-
const fromWin = (w) => {
|
|
3570
|
-
try {
|
|
3571
|
-
return w?.__ozwellWhisperHost;
|
|
3572
|
-
} catch {
|
|
3573
|
-
return void 0;
|
|
3574
|
-
}
|
|
3575
|
-
};
|
|
3576
|
-
const win = fromWin(window) || fromWin(window.parent) || fromWin(window.top);
|
|
3577
|
-
if (win) return win.replace(/\/$/, "");
|
|
3578
|
-
try {
|
|
3579
|
-
const h = JSON.parse(
|
|
3580
|
-
localStorage.getItem("ozwellConfig") || "{}"
|
|
3581
|
-
).whisperHost;
|
|
3582
|
-
if (h) return String(h).replace(/\/$/, "");
|
|
3583
|
-
} catch {
|
|
3584
|
-
}
|
|
3585
|
-
return R2_HOST;
|
|
3586
|
-
}
|
|
3587
|
-
var SMALL_MODELS = {
|
|
3588
|
-
tiny: "Xenova/whisper-tiny.en",
|
|
3589
|
-
"tiny.en": "Xenova/whisper-tiny.en",
|
|
3590
|
-
base: "Xenova/whisper-base.en",
|
|
3591
|
-
"base.en": "Xenova/whisper-base.en",
|
|
3592
|
-
small: "Xenova/whisper-small.en",
|
|
3593
|
-
"small.en": "Xenova/whisper-small.en"
|
|
3594
|
-
};
|
|
3595
|
-
var GATE_MODEL = "Xenova/whisper-base.en";
|
|
3596
|
-
function whisperPref() {
|
|
3597
|
-
if (typeof window === "undefined") return null;
|
|
3598
|
-
const fromWin = (w) => {
|
|
3599
|
-
try {
|
|
3600
|
-
return w?.__ozwell?.whisper;
|
|
3601
|
-
} catch {
|
|
3602
|
-
return void 0;
|
|
3603
|
-
}
|
|
3604
|
-
};
|
|
3605
|
-
const win = fromWin(window) || fromWin(window.parent) || fromWin(window.top);
|
|
3606
|
-
if (win) return win;
|
|
3607
|
-
try {
|
|
3608
|
-
return JSON.parse(localStorage.getItem("ozwellConfig") || "{}").whisper || null;
|
|
3609
|
-
} catch {
|
|
3610
|
-
return null;
|
|
3611
|
-
}
|
|
3612
|
-
}
|
|
3613
|
-
function whisperDevice() {
|
|
3614
|
-
if (typeof window === "undefined") return null;
|
|
3615
|
-
const fromWin = (w) => {
|
|
3616
|
-
try {
|
|
3617
|
-
return w?.__ozwell?.whisperDevice;
|
|
3618
|
-
} catch {
|
|
3619
|
-
return void 0;
|
|
3620
|
-
}
|
|
3621
|
-
};
|
|
3622
|
-
const win = fromWin(window) || fromWin(window.parent) || fromWin(window.top);
|
|
3623
|
-
if (win) return win;
|
|
3624
|
-
try {
|
|
3625
|
-
return JSON.parse(localStorage.getItem("ozwellConfig") || "{}").whisperDevice || null;
|
|
3626
|
-
} catch {
|
|
3627
|
-
return null;
|
|
3628
|
-
}
|
|
3629
|
-
}
|
|
3630
|
-
function whisperDtype() {
|
|
3631
|
-
if (typeof window === "undefined") return null;
|
|
3632
|
-
const fromWin = (w) => {
|
|
3633
|
-
try {
|
|
3634
|
-
return w?.__ozwell?.whisperDtype;
|
|
3635
|
-
} catch {
|
|
3636
|
-
return void 0;
|
|
3637
|
-
}
|
|
3638
|
-
};
|
|
3639
|
-
const win = fromWin(window) || fromWin(window.parent) || fromWin(window.top);
|
|
3640
|
-
if (win) return win;
|
|
3641
|
-
try {
|
|
3642
|
-
return JSON.parse(localStorage.getItem("ozwellConfig") || "{}").whisperDtype || null;
|
|
3643
|
-
} catch {
|
|
3644
|
-
return null;
|
|
3645
|
-
}
|
|
3646
|
-
}
|
|
3647
|
-
var DEFAULT_TRANSFORMERS_URL = "https://cdn.jsdelivr.net/npm/@huggingface/transformers@3.8.1";
|
|
3648
|
-
function transformersUrl() {
|
|
3649
|
-
try {
|
|
3650
|
-
const w = window.__ozwellTransformersUrl;
|
|
3651
|
-
if (w) return w;
|
|
3652
|
-
const ls = localStorage.getItem("ozwellTransformersUrl");
|
|
3653
|
-
if (ls) return ls;
|
|
3654
|
-
} catch {
|
|
3655
|
-
}
|
|
3656
|
-
return DEFAULT_TRANSFORMERS_URL;
|
|
3657
|
-
}
|
|
3658
|
-
var dictationLoad = {
|
|
3659
|
-
active: false,
|
|
3660
|
-
progress: 0,
|
|
3661
|
-
done: false
|
|
3662
|
-
};
|
|
3663
|
-
var loadListeners = /* @__PURE__ */ new Set();
|
|
3664
|
-
function setDictationLoad(patch) {
|
|
3665
|
-
dictationLoad = { ...dictationLoad, ...patch };
|
|
3666
|
-
loadListeners.forEach((l) => l());
|
|
3667
|
-
}
|
|
3668
|
-
function getDictationLoad() {
|
|
3669
|
-
return dictationLoad;
|
|
3670
|
-
}
|
|
3671
|
-
function subscribeDictationLoad(cb) {
|
|
3672
|
-
loadListeners.add(cb);
|
|
3673
|
-
return () => {
|
|
3674
|
-
loadListeners.delete(cb);
|
|
3675
|
-
};
|
|
3676
|
-
}
|
|
3677
|
-
var WORKER_SRC = `
|
|
3678
|
-
let cfg = null, modP = null, pipeP = null, gateP = null, isMulti = false;
|
|
3679
|
-
let chain = Promise.resolve();
|
|
3680
|
-
const serialize = (fn) => { const r = chain.then(fn, fn); chain = r.then(() => {}, () => {}); return r; };
|
|
3681
|
-
|
|
3682
|
-
function getMod() {
|
|
3683
|
-
if (modP) return modP;
|
|
3684
|
-
modP = (async () => {
|
|
3685
|
-
const mod = await import(cfg.transformersUrl);
|
|
3686
|
-
mod.env.allowLocalModels = false;
|
|
3687
|
-
// transformers.js's OWN cache STREAMS the model straight to the Cache API (how whisper-web caches this
|
|
3688
|
-
// 1.2GB turbo model). A hand-rolled SW that buffers the whole file chokes (QuotaExceeded).
|
|
3689
|
-
mod.env.useBrowserCache = true;
|
|
3690
|
-
mod.env.backends.onnx.wasm.numThreads = 1;
|
|
3691
|
-
try { if (navigator.storage && navigator.storage.persist) await navigator.storage.persist(); } catch (e) {}
|
|
3692
|
-
return mod;
|
|
3693
|
-
})();
|
|
3694
|
-
return modP;
|
|
3695
|
-
}
|
|
3696
|
-
|
|
3697
|
-
function progressCb() {
|
|
3698
|
-
const frac = {};
|
|
3699
|
-
const report = () => {
|
|
3700
|
-
const v = Object.values(frac);
|
|
3701
|
-
self.postMessage({ type: 'progress', frac: v.length ? v.reduce((a, b) => a + b, 0) / v.length : 0 });
|
|
3702
|
-
};
|
|
3703
|
-
return (p) => {
|
|
3704
|
-
if (!p || !p.file) return;
|
|
3705
|
-
if (p.status === 'initiate') { frac[p.file] = frac[p.file] || 0; report(); }
|
|
3706
|
-
else if (p.status === 'done') { frac[p.file] = 1; report(); }
|
|
3707
|
-
else if (p.status === 'progress' && typeof p.progress === 'number') { frac[p.file] = p.progress / 100; report(); }
|
|
3708
|
-
};
|
|
3709
|
-
}
|
|
3710
|
-
|
|
3711
|
-
async function buildEnglish(modelId) {
|
|
3712
|
-
const mod = await getMod();
|
|
3713
|
-
mod.env.remoteHost = cfg.hfHost;
|
|
3714
|
-
mod.env.remotePathTemplate = cfg.hfPath;
|
|
3715
|
-
if ((cfg.whisperDevice || '').toLowerCase() !== 'wasm') {
|
|
3716
|
-
try {
|
|
3717
|
-
const gpuDtype = cfg.whisperDtype || 'q8';
|
|
3718
|
-
const pipe = await mod.pipeline('automatic-speech-recognition', modelId, { device: 'webgpu', dtype: gpuDtype, progress_callback: progressCb() });
|
|
3719
|
-
console.log('[whisper] ready (' + modelId + ' / WebGPU ' + gpuDtype + ', worker)');
|
|
3720
|
-
return pipe;
|
|
3721
|
-
} catch (e) { /* fall through to wasm */ }
|
|
3722
|
-
}
|
|
3723
|
-
const pipe = await mod.pipeline('automatic-speech-recognition', modelId, { dtype: 'q8', progress_callback: progressCb() });
|
|
3724
|
-
console.log('[whisper] ready (' + modelId + ' / wasm, worker)');
|
|
3725
|
-
return pipe;
|
|
3726
|
-
}
|
|
3727
|
-
|
|
3728
|
-
async function buildTurbo() {
|
|
3729
|
-
const mod = await getMod();
|
|
3730
|
-
mod.env.remoteHost = cfg.whisperHost;
|
|
3731
|
-
mod.env.remotePathTemplate = '{model}/';
|
|
3732
|
-
const pipe = await mod.pipeline('automatic-speech-recognition', 'whisper-turbo', {
|
|
3733
|
-
device: 'webgpu',
|
|
3734
|
-
dtype: { encoder_model: 'fp16', decoder_model_merged: 'q4' },
|
|
3735
|
-
progress_callback: progressCb(),
|
|
3736
|
-
});
|
|
3737
|
-
isMulti = true;
|
|
3738
|
-
console.log('[whisper] ready (turbo / worker)');
|
|
3739
|
-
return pipe;
|
|
3740
|
-
}
|
|
3741
|
-
|
|
3742
|
-
function loadWhisper() {
|
|
3743
|
-
if (pipeP) return pipeP;
|
|
3744
|
-
self.postMessage({ type: 'loadState', patch: { active: true, progress: 0, done: false } });
|
|
3745
|
-
pipeP = (async () => {
|
|
3746
|
-
const pref = (cfg.whisperPref || '').toLowerCase();
|
|
3747
|
-
if (pref && pref !== 'turbo' && cfg.smallModels[pref]) {
|
|
3748
|
-
console.log('[whisper] loading ' + pref + ' (forced via ozwellConfig.whisper)\u2026');
|
|
3749
|
-
return serialize(() => buildEnglish(cfg.smallModels[pref]));
|
|
3750
|
-
}
|
|
3751
|
-
console.log('[whisper] loading turbo\u2026');
|
|
3752
|
-
try { return await serialize(() => buildTurbo()); }
|
|
3753
|
-
catch (e) {
|
|
3754
|
-
console.log('[whisper] turbo unavailable (' + (e && e.message ? e.message : e) + ') \u2192 base.en fallback');
|
|
3755
|
-
return serialize(() => buildEnglish(cfg.gateModel));
|
|
3756
|
-
}
|
|
3757
|
-
})();
|
|
3758
|
-
pipeP.then(
|
|
3759
|
-
() => self.postMessage({ type: 'loadState', patch: { active: false, progress: 1, done: true } }),
|
|
3760
|
-
() => { pipeP = null; self.postMessage({ type: 'loadState', patch: { active: false } }); }
|
|
3761
|
-
);
|
|
3762
|
-
return pipeP;
|
|
3763
|
-
}
|
|
3764
|
-
|
|
3765
|
-
function loadGate() {
|
|
3766
|
-
if (gateP) return gateP;
|
|
3767
|
-
console.log('[whisper] loading stop-confirm gate (base.en)\u2026');
|
|
3768
|
-
gateP = serialize(() => buildEnglish(cfg.gateModel));
|
|
3769
|
-
gateP.catch(() => { gateP = null; });
|
|
3770
|
-
return gateP;
|
|
3771
|
-
}
|
|
3772
|
-
|
|
3773
|
-
self.onmessage = async (e) => {
|
|
3774
|
-
const m = e.data;
|
|
3775
|
-
if (!m) return;
|
|
3776
|
-
if (m.type === 'init') { cfg = m.cfg; return; }
|
|
3777
|
-
if (m.type === 'warm') { loadWhisper().catch(() => {}); return; }
|
|
3778
|
-
if (m.type === 'warmGate') { loadGate().catch(() => {}); return; }
|
|
3779
|
-
if (m.type === 'transcribe') {
|
|
3780
|
-
try {
|
|
3781
|
-
let pipe, opts;
|
|
3782
|
-
if (m.want === 'gate') { pipe = await loadGate(); opts = { chunk_length_s: 30 }; }
|
|
3783
|
-
else {
|
|
3784
|
-
pipe = await loadWhisper();
|
|
3785
|
-
if (m.want === 'segments' || m.want === 'words') opts = Object.assign({ chunk_length_s: 30, return_timestamps: m.want === 'words' ? 'word' : true }, isMulti ? { language: 'english', task: 'transcribe' } : {});
|
|
3786
|
-
else opts = isMulti ? { chunk_length_s: 30, language: 'english', task: 'transcribe' } : { chunk_length_s: 30 };
|
|
3787
|
-
}
|
|
3788
|
-
const out = await pipe(m.samples, opts);
|
|
3789
|
-
self.postMessage({ type: 'result', id: m.id, text: (out && out.text ? out.text : '').trim(), chunks: (out && out.chunks) || null });
|
|
3790
|
-
} catch (err) {
|
|
3791
|
-
self.postMessage({ type: 'error', id: m.id, message: err && err.message ? err.message : String(err) });
|
|
3792
|
-
}
|
|
3793
|
-
}
|
|
3794
|
-
};
|
|
3795
|
-
`;
|
|
3796
|
-
var worker = null;
|
|
3797
|
-
var reqId = 0;
|
|
3798
|
-
var pending = /* @__PURE__ */ new Map();
|
|
3799
|
-
function buildWorkerCfg() {
|
|
3800
|
-
return {
|
|
3801
|
-
transformersUrl: transformersUrl(),
|
|
3802
|
-
whisperHost: whisperHost(),
|
|
3803
|
-
whisperPref: whisperPref(),
|
|
3804
|
-
whisperDevice: whisperDevice(),
|
|
3805
|
-
whisperDtype: whisperDtype(),
|
|
3806
|
-
hfHost: HF_HOST,
|
|
3807
|
-
hfPath: HF_PATH,
|
|
3808
|
-
smallModels: SMALL_MODELS,
|
|
3809
|
-
gateModel: GATE_MODEL
|
|
3810
|
-
};
|
|
3811
|
-
}
|
|
3812
|
-
function getWorker() {
|
|
3813
|
-
if (worker) return worker;
|
|
3814
|
-
registerModelServiceWorker();
|
|
3815
|
-
const url = URL.createObjectURL(
|
|
3816
|
-
new Blob([WORKER_SRC], { type: "application/javascript" })
|
|
3817
|
-
);
|
|
3818
|
-
const w = new Worker(url, { type: "module" });
|
|
3819
|
-
w.onmessage = (e) => {
|
|
3820
|
-
const m = e.data;
|
|
3821
|
-
if (!m) return;
|
|
3822
|
-
if (m.type === "loadState") {
|
|
3823
|
-
setDictationLoad(m.patch);
|
|
3824
|
-
return;
|
|
3825
|
-
}
|
|
3826
|
-
if (m.type === "progress") {
|
|
3827
|
-
setDictationLoad({ progress: m.frac });
|
|
3828
|
-
return;
|
|
3829
|
-
}
|
|
3830
|
-
if (m.type === "result") {
|
|
3831
|
-
const p = pending.get(m.id);
|
|
3832
|
-
if (p) {
|
|
3833
|
-
pending.delete(m.id);
|
|
3834
|
-
p.resolve({ text: m.text, chunks: m.chunks });
|
|
3835
|
-
}
|
|
3836
|
-
return;
|
|
3837
|
-
}
|
|
3838
|
-
if (m.type === "error") {
|
|
3839
|
-
const p = pending.get(m.id);
|
|
3840
|
-
if (p) {
|
|
3841
|
-
pending.delete(m.id);
|
|
3842
|
-
p.reject(new Error(m.message));
|
|
3843
|
-
}
|
|
3844
|
-
return;
|
|
3845
|
-
}
|
|
3846
|
-
};
|
|
3847
|
-
w.onerror = (e) => {
|
|
3848
|
-
const err = new Error(
|
|
3849
|
-
`whisper worker error: ${e.message || "failed to load"}`
|
|
3850
|
-
);
|
|
3851
|
-
pending.forEach((p) => p.reject(err));
|
|
3852
|
-
pending.clear();
|
|
3853
|
-
setDictationLoad({ active: false });
|
|
3854
|
-
};
|
|
3855
|
-
w.postMessage({ type: "init", cfg: buildWorkerCfg() });
|
|
3856
|
-
worker = w;
|
|
3857
|
-
return worker;
|
|
3858
|
-
}
|
|
3859
|
-
function callWorker(want, samples) {
|
|
3860
|
-
const w = getWorker();
|
|
3861
|
-
const id = ++reqId;
|
|
3862
|
-
return new Promise((resolve, reject) => {
|
|
3863
|
-
pending.set(id, { resolve, reject });
|
|
3864
|
-
w.postMessage({ type: "transcribe", id, want, samples }, [samples.buffer]);
|
|
3865
|
-
});
|
|
3866
|
-
}
|
|
3867
|
-
function isWhisperLoaded() {
|
|
3868
|
-
return getDictationLoad().done;
|
|
3869
|
-
}
|
|
3870
|
-
function warmWhisper() {
|
|
3871
|
-
getWorker().postMessage({ type: "warm" });
|
|
3872
|
-
}
|
|
3873
|
-
function warmStopGate() {
|
|
3874
|
-
getWorker().postMessage({ type: "warmGate" });
|
|
3875
|
-
}
|
|
3876
|
-
function downmixToMono(audio) {
|
|
3877
|
-
if (audio.numberOfChannels <= 1) return audio.getChannelData(0);
|
|
3878
|
-
const n = audio.length;
|
|
3879
|
-
const out = new Float32Array(n);
|
|
3880
|
-
for (let ch = 0; ch < audio.numberOfChannels; ch++) {
|
|
3881
|
-
const data = audio.getChannelData(ch);
|
|
3882
|
-
for (let i = 0; i < n; i++) out[i] += data[i];
|
|
3883
|
-
}
|
|
3884
|
-
for (let i = 0; i < n; i++) out[i] /= audio.numberOfChannels;
|
|
3885
|
-
return out;
|
|
3886
|
-
}
|
|
3887
|
-
function resampleTo16kMono(src, sampleRate) {
|
|
3888
|
-
const ratio = 16e3 / sampleRate;
|
|
3889
|
-
const n = Math.round(src.length * ratio);
|
|
3890
|
-
const out = new Float32Array(n);
|
|
3891
|
-
for (let i = 0; i < n; i++) {
|
|
3892
|
-
const t = i / ratio;
|
|
3893
|
-
const i0 = Math.floor(t);
|
|
3894
|
-
const i1 = Math.min(i0 + 1, src.length - 1);
|
|
3895
|
-
out[i] = src[i0] + (src[i1] - src[i0]) * (t - i0);
|
|
3896
|
-
}
|
|
3897
|
-
return out;
|
|
3898
|
-
}
|
|
3899
|
-
async function decodeTo16kMono(blob) {
|
|
3900
|
-
const Ctx = window.AudioContext || window.webkitAudioContext;
|
|
3901
|
-
const ctx = new Ctx();
|
|
3902
|
-
try {
|
|
3903
|
-
const audio = await ctx.decodeAudioData(await blob.arrayBuffer());
|
|
3904
|
-
return resampleTo16kMono(downmixToMono(audio), audio.sampleRate);
|
|
3905
|
-
} finally {
|
|
3906
|
-
void ctx.close();
|
|
3907
|
-
}
|
|
3908
|
-
}
|
|
3909
|
-
function encodeWav16kMono(samples) {
|
|
3910
|
-
const sr = 16e3;
|
|
3911
|
-
const buf = new ArrayBuffer(44 + samples.length * 2);
|
|
3912
|
-
const view = new DataView(buf);
|
|
3913
|
-
const str = (o2, s) => {
|
|
3914
|
-
for (let i = 0; i < s.length; i++) view.setUint8(o2 + i, s.charCodeAt(i));
|
|
3915
|
-
};
|
|
3916
|
-
str(0, "RIFF");
|
|
3917
|
-
view.setUint32(4, 36 + samples.length * 2, true);
|
|
3918
|
-
str(8, "WAVE");
|
|
3919
|
-
str(12, "fmt ");
|
|
3920
|
-
view.setUint32(16, 16, true);
|
|
3921
|
-
view.setUint16(20, 1, true);
|
|
3922
|
-
view.setUint16(22, 1, true);
|
|
3923
|
-
view.setUint32(24, sr, true);
|
|
3924
|
-
view.setUint32(28, sr * 2, true);
|
|
3925
|
-
view.setUint16(32, 2, true);
|
|
3926
|
-
view.setUint16(34, 16, true);
|
|
3927
|
-
str(36, "data");
|
|
3928
|
-
view.setUint32(40, samples.length * 2, true);
|
|
3929
|
-
let o = 44;
|
|
3930
|
-
for (let i = 0; i < samples.length; i++) {
|
|
3931
|
-
const s = Math.max(-1, Math.min(1, samples[i]));
|
|
3932
|
-
view.setInt16(o, s < 0 ? s * 32768 : s * 32767, true);
|
|
3933
|
-
o += 2;
|
|
3934
|
-
}
|
|
3935
|
-
return new Blob([buf], { type: "audio/wav" });
|
|
3936
|
-
}
|
|
3937
|
-
async function trimTrailingStopPhrase(blob, phraseHintSec = 0) {
|
|
3938
|
-
let samples;
|
|
3939
|
-
try {
|
|
3940
|
-
samples = await decodeTo16kMono(blob);
|
|
3941
|
-
} catch {
|
|
3942
|
-
return blob;
|
|
3943
|
-
}
|
|
3944
|
-
const SR2 = 16e3;
|
|
3945
|
-
const n = samples.length;
|
|
3946
|
-
if (n < SR2 * 0.8) return blob;
|
|
3947
|
-
const fr = Math.round(SR2 * 0.03);
|
|
3948
|
-
const nf = Math.ceil(n / fr);
|
|
3949
|
-
const e = new Float32Array(nf);
|
|
3950
|
-
let peak = 0;
|
|
3951
|
-
for (let f = 0; f < nf; f++) {
|
|
3952
|
-
const a = f * fr, b = Math.min(n, a + fr);
|
|
3953
|
-
let s = 0;
|
|
3954
|
-
for (let i = a; i < b; i++) s += samples[i] * samples[i];
|
|
3955
|
-
e[f] = Math.sqrt(s / (b - a));
|
|
3956
|
-
if (e[f] > peak) peak = e[f];
|
|
3957
|
-
}
|
|
3958
|
-
const sil = Math.max(8e-3, peak * 0.15);
|
|
3959
|
-
const minGap = Math.max(1, Math.round(0.15 * SR2 / fr));
|
|
3960
|
-
const maxTrimFrames = Math.round(2.2 * SR2 / fr);
|
|
3961
|
-
const floor = Math.max(0, nf - maxTrimFrames);
|
|
3962
|
-
let cutFrame;
|
|
3963
|
-
if (phraseHintSec > 0.2) {
|
|
3964
|
-
const anchor = Math.max(0, nf - Math.round(phraseHintSec * SR2 / fr));
|
|
3965
|
-
const win = Math.round(0.35 * SR2 / fr);
|
|
3966
|
-
let best = -1, bestDist = Infinity;
|
|
3967
|
-
for (let f = Math.max(0, anchor - win); f <= Math.min(nf - 1, anchor + win); f++) {
|
|
3968
|
-
if (e[f] < sil) {
|
|
3969
|
-
const dist = Math.abs(f - anchor);
|
|
3970
|
-
if (dist < bestDist) {
|
|
3971
|
-
bestDist = dist;
|
|
3972
|
-
best = f;
|
|
3973
|
-
}
|
|
3974
|
-
}
|
|
3975
|
-
}
|
|
3976
|
-
cutFrame = best >= 0 ? best : anchor;
|
|
3977
|
-
} else {
|
|
3978
|
-
let k = nf - 1;
|
|
3979
|
-
while (k >= floor && e[k] < sil) k--;
|
|
3980
|
-
cutFrame = -1;
|
|
3981
|
-
while (k >= floor) {
|
|
3982
|
-
if (e[k] < sil) {
|
|
3983
|
-
let m = k;
|
|
3984
|
-
while (m >= floor && e[m] < sil) m--;
|
|
3985
|
-
if (k - m >= minGap) {
|
|
3986
|
-
cutFrame = k + 1;
|
|
3987
|
-
break;
|
|
3988
|
-
}
|
|
3989
|
-
k = m;
|
|
3990
|
-
} else k--;
|
|
3991
|
-
}
|
|
3992
|
-
if (cutFrame < 0) cutFrame = Math.max(0, nf - Math.round(1.1 * SR2 / fr));
|
|
3993
|
-
}
|
|
3994
|
-
cutFrame = Math.max(cutFrame, floor);
|
|
3995
|
-
const cutSample = Math.min(n, cutFrame * fr);
|
|
3996
|
-
if (cutSample < SR2 * 0.2) return blob;
|
|
3997
|
-
return encodeWav16kMono(samples.subarray(0, cutSample));
|
|
3998
|
-
}
|
|
3999
|
-
async function transcribeBlob(blob, trimEndSeconds = 0) {
|
|
4000
|
-
let samples = await decodeTo16kMono(blob);
|
|
4001
|
-
if (trimEndSeconds > 0) {
|
|
4002
|
-
const cut = Math.round(trimEndSeconds * 16e3);
|
|
4003
|
-
if (samples.length > cut + 16e3)
|
|
4004
|
-
samples = samples.slice(0, samples.length - cut);
|
|
4005
|
-
}
|
|
4006
|
-
const out = await callWorker("text", samples);
|
|
4007
|
-
return (out.text ?? "").trim();
|
|
4008
|
-
}
|
|
4009
|
-
async function transcribeSamples(samples, sampleRate) {
|
|
4010
|
-
const out = await callWorker("text", resampleTo16kMono(samples, sampleRate));
|
|
4011
|
-
return (out.text ?? "").trim();
|
|
4012
|
-
}
|
|
4013
|
-
function chunksToSegments(chunks) {
|
|
4014
|
-
return (chunks ?? []).map((c) => ({
|
|
4015
|
-
start: c.timestamp?.[0] ?? 0,
|
|
4016
|
-
end: c.timestamp?.[1] ?? c.timestamp?.[0] ?? 0,
|
|
4017
|
-
text: (c.text ?? "").trim()
|
|
4018
|
-
})).filter((s) => s.text);
|
|
4019
|
-
}
|
|
4020
|
-
async function transcribeSegments(blob) {
|
|
4021
|
-
const samples = await decodeTo16kMono(blob);
|
|
4022
|
-
const out = await callWorker("segments", samples);
|
|
4023
|
-
return chunksToSegments(out.chunks);
|
|
4024
|
-
}
|
|
4025
|
-
function serverAsrModel() {
|
|
4026
|
-
try {
|
|
4027
|
-
return JSON.parse(localStorage.getItem("ozwellConfig") || "{}").serverWhisper || "whisper-1";
|
|
4028
|
-
} catch {
|
|
4029
|
-
return "whisper-1";
|
|
4030
|
-
}
|
|
4031
|
-
}
|
|
4032
|
-
async function transcribeServer(blob) {
|
|
4033
|
-
const cfg = getOzwellConfig();
|
|
4034
|
-
const form = new FormData();
|
|
4035
|
-
form.append("file", blob, "audio.webm");
|
|
4036
|
-
form.append("model", serverAsrModel());
|
|
4037
|
-
const url = `${cfg.baseURL.replace(/\/$/, "")}/v1/audio/transcriptions`;
|
|
4038
|
-
const headers = {};
|
|
4039
|
-
if (cfg.apiKey && cfg.apiKey !== "ollama")
|
|
4040
|
-
headers.Authorization = `Bearer ${cfg.apiKey}`;
|
|
4041
|
-
const res = await fetch(url, { method: "POST", headers, body: form });
|
|
4042
|
-
if (!res.ok) {
|
|
4043
|
-
const body = await res.text().catch(() => "");
|
|
4044
|
-
throw new Error(
|
|
4045
|
-
`Server ASR ${res.status}: ${res.statusText || body.slice(0, 200) || "request failed"}`
|
|
4046
|
-
);
|
|
4047
|
-
}
|
|
4048
|
-
const data = await res.json();
|
|
4049
|
-
return (typeof data?.text === "string" ? data.text : "").trim();
|
|
4050
|
-
}
|
|
4051
|
-
async function transcribeGate(samples, sampleRate) {
|
|
4052
|
-
const out = await callWorker("gate", resampleTo16kMono(samples, sampleRate));
|
|
4053
|
-
return (out.text ?? "").trim();
|
|
4054
|
-
}
|
|
4055
|
-
function stripStopPhrase(text) {
|
|
4056
|
-
const tail = /(?:\b(?:oz\s{0,4}well|all(?:['’]?s|\s{1,4}was)?\s{0,4}well|as\s{0,4}well|also|oswald)\b[\s,]{0,6}i(?:['’]?m|\s{1,4}am)\s{1,4}done\b|\b(?:oz\s{0,4}well|all(?:['’]?s|\s{1,4}was)?\s{0,4}well|oswald)\b|\bi(?:['’]?m|\s{1,4}am)\s{1,4}done\b|\b(?:that\s{1,4}was\s{1,4}|was\s{1,4})?well\s{1,4}done\b|\bthat['’]?s?\s{1,4}(?:was\s{1,4})?all\b|\bthank(?:s|\s{1,4}you)(?:\s{1,4}for\s{1,4}watching)?\b|\bbye\b)[\s.,!?-]{0,24}$/i;
|
|
4057
|
-
let prev = null;
|
|
4058
|
-
let t = text;
|
|
4059
|
-
while (t !== prev && t) {
|
|
4060
|
-
prev = t;
|
|
4061
|
-
t = trimTrailingPunct(t.replace(tail, ""));
|
|
4062
|
-
}
|
|
4063
|
-
return t.trim();
|
|
4064
|
-
}
|
|
4065
|
-
function trimTrailingPunct(s) {
|
|
4066
|
-
let end = s.length;
|
|
4067
|
-
while (end > 0 && /[\s.,!?-]/.test(s[end - 1])) end--;
|
|
4068
|
-
return end === s.length ? s : s.slice(0, end);
|
|
4069
|
-
}
|
|
4070
|
-
function endsWithDone(text) {
|
|
4071
|
-
return /\b(?:i(?:['’]?m|\s{1,4}am)\s{1,4}|all\s{1,4}|well\s{1,4})?done\b[\s.,!?-]{0,24}$/i.test(
|
|
4072
|
-
text
|
|
4073
|
-
);
|
|
4074
|
-
}
|
|
4075
3383
|
function useSpeakerVerify(opts = {}) {
|
|
4076
3384
|
const { enabled = true, voiceprintNamespace } = opts;
|
|
4077
3385
|
const [ready, setReady] = React13__namespace.useState(false);
|
|
@@ -4313,7 +3621,7 @@ function useDiarization(options = {}) {
|
|
|
4313
3621
|
const [error, setError] = React13__namespace.useState(null);
|
|
4314
3622
|
const [result, setResult] = React13__namespace.useState(null);
|
|
4315
3623
|
React13__namespace.useEffect(() => {
|
|
4316
|
-
if (enabled) warmWhisper();
|
|
3624
|
+
if (enabled) chunkTRZLN32I_cjs.warmWhisper();
|
|
4317
3625
|
}, [enabled]);
|
|
4318
3626
|
const diarize = React13__namespace.useCallback(
|
|
4319
3627
|
async (blob) => {
|
|
@@ -4327,8 +3635,8 @@ function useDiarization(options = {}) {
|
|
|
4327
3635
|
throw new Error("voiceprint namespace changed during diarization");
|
|
4328
3636
|
};
|
|
4329
3637
|
const [segments, samples] = await Promise.all([
|
|
4330
|
-
transcribeSegments(blob),
|
|
4331
|
-
decodeTo16kMono(blob)
|
|
3638
|
+
chunkTRZLN32I_cjs.transcribeSegments(blob),
|
|
3639
|
+
chunkTRZLN32I_cjs.decodeTo16kMono(blob)
|
|
4332
3640
|
]);
|
|
4333
3641
|
assertNamespace();
|
|
4334
3642
|
if (!segments.length) {
|
|
@@ -4378,9 +3686,9 @@ function useDiarization(options = {}) {
|
|
|
4378
3686
|
}
|
|
4379
3687
|
const labels = labelClusters(segCluster, names);
|
|
4380
3688
|
let out = attributeSegments(segments, segCluster, labels);
|
|
4381
|
-
if (inferRoles && isOzwellConfigured()) {
|
|
3689
|
+
if (inferRoles && chunkTRZLN32I_cjs.isOzwellConfigured()) {
|
|
4382
3690
|
try {
|
|
4383
|
-
out = await inferSpeakerRoles(out, (p) => askOzwell(p));
|
|
3691
|
+
out = await inferSpeakerRoles(out, (p) => chunkTRZLN32I_cjs.askOzwell(p));
|
|
4384
3692
|
} catch {
|
|
4385
3693
|
}
|
|
4386
3694
|
}
|
|
@@ -4596,8 +3904,8 @@ function useHeyOzwell(options = {}) {
|
|
|
4596
3904
|
const [phase, setPhase] = React13__namespace.useState("listening");
|
|
4597
3905
|
const [typed, setTyped] = React13__namespace.useState("");
|
|
4598
3906
|
const dictLoad = React13__namespace.useSyncExternalStore(
|
|
4599
|
-
subscribeDictationLoad,
|
|
4600
|
-
getDictationLoad
|
|
3907
|
+
chunkTRZLN32I_cjs.subscribeDictationLoad,
|
|
3908
|
+
chunkTRZLN32I_cjs.getDictationLoad
|
|
4601
3909
|
);
|
|
4602
3910
|
const wakeWarm2 = React13__namespace.useSyncExternalStore(subscribeWakeWarm, getWakeWarm);
|
|
4603
3911
|
const counterRef = React13__namespace.useRef(0);
|
|
@@ -4681,7 +3989,7 @@ function useHeyOzwell(options = {}) {
|
|
|
4681
3989
|
onSendRef.current(t);
|
|
4682
3990
|
return;
|
|
4683
3991
|
}
|
|
4684
|
-
if (!isOzwellConfigured()) {
|
|
3992
|
+
if (!chunkTRZLN32I_cjs.isOzwellConfigured()) {
|
|
4685
3993
|
window.setTimeout(
|
|
4686
3994
|
() => setMessages((m) => [
|
|
4687
3995
|
...m,
|
|
@@ -4695,7 +4003,7 @@ function useHeyOzwell(options = {}) {
|
|
|
4695
4003
|
return;
|
|
4696
4004
|
}
|
|
4697
4005
|
const history = [
|
|
4698
|
-
...toOzwellMessages(messagesRef.current),
|
|
4006
|
+
...chunkTRZLN32I_cjs.toOzwellMessages(messagesRef.current),
|
|
4699
4007
|
{ role: "user", content: t }
|
|
4700
4008
|
];
|
|
4701
4009
|
const id = `assistant-${++counterRef.current}`;
|
|
@@ -4718,7 +4026,7 @@ function useHeyOzwell(options = {}) {
|
|
|
4718
4026
|
streamAbortRef.current?.abort();
|
|
4719
4027
|
const ac = new AbortController();
|
|
4720
4028
|
streamAbortRef.current = ac;
|
|
4721
|
-
askOzwellStream(history, (_d, full) => patch(full, "streaming"), {
|
|
4029
|
+
chunkTRZLN32I_cjs.askOzwellStream(history, (_d, full) => patch(full, "streaming"), {
|
|
4722
4030
|
signal: ac.signal
|
|
4723
4031
|
}).then((full) => patch(full || "(no response)", "complete")).catch((e) => {
|
|
4724
4032
|
if (e?.name === "AbortError") return;
|
|
@@ -4759,7 +4067,7 @@ function useHeyOzwell(options = {}) {
|
|
|
4759
4067
|
const tail = acc.snapshotFrom(liveCursorRef.current);
|
|
4760
4068
|
liveBusyRef.current = true;
|
|
4761
4069
|
try {
|
|
4762
|
-
const t = (await transcribeSamples(tail, acc.sampleRate)).trim();
|
|
4070
|
+
const t = (await chunkTRZLN32I_cjs.transcribeSamples(tail, acc.sampleRate)).trim();
|
|
4763
4071
|
if (!liveRecRef.current) return;
|
|
4764
4072
|
const committed = liveCommittedRef.current;
|
|
4765
4073
|
setLiveText(committed ? t ? `${committed} ${t}` : committed : t);
|
|
@@ -4791,7 +4099,7 @@ function useHeyOzwell(options = {}) {
|
|
|
4791
4099
|
const dur = wakeRef.current?.getLastWakeDuration() ?? 0;
|
|
4792
4100
|
const hint = dur > 0 ? dur + stopTrimLeadIn() : 0;
|
|
4793
4101
|
try {
|
|
4794
|
-
blob = await trimTrailingStopPhrase(blob, hint);
|
|
4102
|
+
blob = await chunkTRZLN32I_cjs.trimTrailingStopPhrase(blob, hint);
|
|
4795
4103
|
} catch {
|
|
4796
4104
|
}
|
|
4797
4105
|
}
|
|
@@ -4799,21 +4107,21 @@ function useHeyOzwell(options = {}) {
|
|
|
4799
4107
|
if (conversationMode && diarRef.current.ready) {
|
|
4800
4108
|
const turns = await diarRef.current.diarize(blob);
|
|
4801
4109
|
const joined = turns.map((t) => `${t.speaker}: ${t.text}`).join("\n");
|
|
4802
|
-
text = stripStopPhrase(joined) || stripStopPhrase(await transcribeBlob(blob));
|
|
4110
|
+
text = chunkTRZLN32I_cjs.stripStopPhrase(joined) || chunkTRZLN32I_cjs.stripStopPhrase(await chunkTRZLN32I_cjs.transcribeBlob(blob));
|
|
4803
4111
|
} else if (transcription === "server") {
|
|
4804
4112
|
let raw;
|
|
4805
4113
|
try {
|
|
4806
|
-
raw = await transcribeServer(blob);
|
|
4114
|
+
raw = await chunkTRZLN32I_cjs.transcribeServer(blob);
|
|
4807
4115
|
} catch (e) {
|
|
4808
4116
|
console.warn(
|
|
4809
4117
|
"[hey-ozwell] server ASR failed \u2192 on-device fallback",
|
|
4810
4118
|
e
|
|
4811
4119
|
);
|
|
4812
|
-
raw = await transcribeBlob(blob);
|
|
4120
|
+
raw = await chunkTRZLN32I_cjs.transcribeBlob(blob);
|
|
4813
4121
|
}
|
|
4814
|
-
text = stripStopPhrase(raw);
|
|
4122
|
+
text = chunkTRZLN32I_cjs.stripStopPhrase(raw);
|
|
4815
4123
|
} else {
|
|
4816
|
-
text = stripStopPhrase(await transcribeBlob(blob));
|
|
4124
|
+
text = chunkTRZLN32I_cjs.stripStopPhrase(await chunkTRZLN32I_cjs.transcribeBlob(blob));
|
|
4817
4125
|
}
|
|
4818
4126
|
if (text) {
|
|
4819
4127
|
if (reviewBeforeSend) setTyped(text);
|
|
@@ -4900,7 +4208,7 @@ function useHeyOzwell(options = {}) {
|
|
|
4900
4208
|
void warmWakeModels(assetBase);
|
|
4901
4209
|
}, [assetBase]);
|
|
4902
4210
|
React13__namespace.useEffect(() => {
|
|
4903
|
-
if (active) warmWhisper();
|
|
4211
|
+
if (active) chunkTRZLN32I_cjs.warmWhisper();
|
|
4904
4212
|
}, [active]);
|
|
4905
4213
|
const toggle = React13__namespace.useCallback(
|
|
4906
4214
|
(next) => {
|
|
@@ -5194,7 +4502,7 @@ function useVoiceSetup(options = {}) {
|
|
|
5194
4502
|
const [adding, setAdding] = React13__namespace.useState(startAdding);
|
|
5195
4503
|
const total = PHRASES2.length * REPS;
|
|
5196
4504
|
React13__namespace.useEffect(() => {
|
|
5197
|
-
warmWhisper();
|
|
4505
|
+
chunkTRZLN32I_cjs.warmWhisper();
|
|
5198
4506
|
let cancelled = false;
|
|
5199
4507
|
whatRef.current = {};
|
|
5200
4508
|
void chunkOGNADPM4_cjs.loadWhatPrints(voiceprintNamespace).then((w) => {
|
|
@@ -5862,7 +5170,7 @@ function HandsFreeChat({
|
|
|
5862
5170
|
style: { display: "inline-flex" },
|
|
5863
5171
|
title: "Dictate \u2014 or just say \u201Chey ozwell\u201D",
|
|
5864
5172
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5865
|
-
|
|
5173
|
+
chunkHIYQ3M5V_cjs.RecordButton,
|
|
5866
5174
|
{
|
|
5867
5175
|
variant: "ghost",
|
|
5868
5176
|
size: "sm",
|
|
@@ -6010,7 +5318,7 @@ function useVisitScribe(options = {}) {
|
|
|
6010
5318
|
acc.discardBefore(liveCursorRef.current);
|
|
6011
5319
|
liveBusyRef.current = true;
|
|
6012
5320
|
try {
|
|
6013
|
-
const text = (await transcribeSamples(window2, acc.sampleRate)).trim();
|
|
5321
|
+
const text = (await chunkTRZLN32I_cjs.transcribeSamples(window2, acc.sampleRate)).trim();
|
|
6014
5322
|
if (text && liveRecRef.current)
|
|
6015
5323
|
setLiveText((prev) => prev ? `${prev} ${text}` : text);
|
|
6016
5324
|
} catch {
|
|
@@ -12901,7 +12209,7 @@ function CheckrIntegration({
|
|
|
12901
12209
|
viewReports = "View Reports",
|
|
12902
12210
|
noReports = "No background checks yet",
|
|
12903
12211
|
refresh = "Refresh",
|
|
12904
|
-
pending
|
|
12212
|
+
pending = "Pending",
|
|
12905
12213
|
running = "Running",
|
|
12906
12214
|
complete = "Complete",
|
|
12907
12215
|
failed = "Failed",
|
|
@@ -12933,7 +12241,7 @@ function CheckrIntegration({
|
|
|
12933
12241
|
setSelectedReports((prev) => prev.size > 0 ? /* @__PURE__ */ new Set() : prev);
|
|
12934
12242
|
}, [reports, connected]);
|
|
12935
12243
|
const statusLabels = {
|
|
12936
|
-
pending
|
|
12244
|
+
pending,
|
|
12937
12245
|
running,
|
|
12938
12246
|
complete,
|
|
12939
12247
|
failed,
|
|
@@ -39723,13 +39031,13 @@ var DEFAULT_SERVICE_PRICING_MANAGER_LABELS = {
|
|
|
39723
39031
|
function ServiceNote({ service, onNoteChange, labels }) {
|
|
39724
39032
|
const [editing, setEditing] = React13__namespace.useState(false);
|
|
39725
39033
|
const [draft, setDraft] = React13__namespace.useState("");
|
|
39726
|
-
const [
|
|
39034
|
+
const [pending, setPending] = React13__namespace.useState(null);
|
|
39727
39035
|
const [failed, setFailed] = React13__namespace.useState(false);
|
|
39728
39036
|
const inputRef = React13__namespace.useRef(null);
|
|
39729
39037
|
const buttonRef = React13__namespace.useRef(null);
|
|
39730
39038
|
const cancelRef = React13__namespace.useRef(false);
|
|
39731
39039
|
const refocusRef = React13__namespace.useRef(false);
|
|
39732
|
-
const note =
|
|
39040
|
+
const note = pending ?? service.note ?? "";
|
|
39733
39041
|
React13__namespace.useEffect(() => {
|
|
39734
39042
|
if (editing) inputRef.current?.focus();
|
|
39735
39043
|
else if (refocusRef.current) {
|
|
@@ -39783,12 +39091,12 @@ function ServiceNote({ service, onNoteChange, labels }) {
|
|
|
39783
39091
|
ref: buttonRef,
|
|
39784
39092
|
type: "button",
|
|
39785
39093
|
onClick: () => {
|
|
39786
|
-
if (
|
|
39094
|
+
if (pending !== null) return;
|
|
39787
39095
|
setDraft(note);
|
|
39788
39096
|
setEditing(true);
|
|
39789
39097
|
},
|
|
39790
|
-
"aria-disabled":
|
|
39791
|
-
"aria-busy":
|
|
39098
|
+
"aria-disabled": pending !== null,
|
|
39099
|
+
"aria-busy": pending !== null,
|
|
39792
39100
|
"aria-label": `${labels.noteLabel(service.serviceName)}: ${note || labels.addNote}`,
|
|
39793
39101
|
className: chunkS5RVSXDV_cjs.cn(
|
|
39794
39102
|
"w-full truncate rounded text-start text-sm",
|
|
@@ -44828,6 +44136,82 @@ function WebsiteInputGroup({
|
|
|
44828
44136
|
}
|
|
44829
44137
|
WebsiteInputGroup.displayName = "WebsiteInputGroup";
|
|
44830
44138
|
|
|
44139
|
+
Object.defineProperty(exports, "askOzwell", {
|
|
44140
|
+
enumerable: true,
|
|
44141
|
+
get: function () { return chunkTRZLN32I_cjs.askOzwell; }
|
|
44142
|
+
});
|
|
44143
|
+
Object.defineProperty(exports, "askOzwellStream", {
|
|
44144
|
+
enumerable: true,
|
|
44145
|
+
get: function () { return chunkTRZLN32I_cjs.askOzwellStream; }
|
|
44146
|
+
});
|
|
44147
|
+
Object.defineProperty(exports, "decodeTo16kMono", {
|
|
44148
|
+
enumerable: true,
|
|
44149
|
+
get: function () { return chunkTRZLN32I_cjs.decodeTo16kMono; }
|
|
44150
|
+
});
|
|
44151
|
+
Object.defineProperty(exports, "endsWithDone", {
|
|
44152
|
+
enumerable: true,
|
|
44153
|
+
get: function () { return chunkTRZLN32I_cjs.endsWithDone; }
|
|
44154
|
+
});
|
|
44155
|
+
Object.defineProperty(exports, "getDictationLoad", {
|
|
44156
|
+
enumerable: true,
|
|
44157
|
+
get: function () { return chunkTRZLN32I_cjs.getDictationLoad; }
|
|
44158
|
+
});
|
|
44159
|
+
Object.defineProperty(exports, "getOzwellConfig", {
|
|
44160
|
+
enumerable: true,
|
|
44161
|
+
get: function () { return chunkTRZLN32I_cjs.getOzwellConfig; }
|
|
44162
|
+
});
|
|
44163
|
+
Object.defineProperty(exports, "isOzwellConfigured", {
|
|
44164
|
+
enumerable: true,
|
|
44165
|
+
get: function () { return chunkTRZLN32I_cjs.isOzwellConfigured; }
|
|
44166
|
+
});
|
|
44167
|
+
Object.defineProperty(exports, "isWhisperLoaded", {
|
|
44168
|
+
enumerable: true,
|
|
44169
|
+
get: function () { return chunkTRZLN32I_cjs.isWhisperLoaded; }
|
|
44170
|
+
});
|
|
44171
|
+
Object.defineProperty(exports, "stripStopPhrase", {
|
|
44172
|
+
enumerable: true,
|
|
44173
|
+
get: function () { return chunkTRZLN32I_cjs.stripStopPhrase; }
|
|
44174
|
+
});
|
|
44175
|
+
Object.defineProperty(exports, "subscribeDictationLoad", {
|
|
44176
|
+
enumerable: true,
|
|
44177
|
+
get: function () { return chunkTRZLN32I_cjs.subscribeDictationLoad; }
|
|
44178
|
+
});
|
|
44179
|
+
Object.defineProperty(exports, "toOzwellMessages", {
|
|
44180
|
+
enumerable: true,
|
|
44181
|
+
get: function () { return chunkTRZLN32I_cjs.toOzwellMessages; }
|
|
44182
|
+
});
|
|
44183
|
+
Object.defineProperty(exports, "transcribeBlob", {
|
|
44184
|
+
enumerable: true,
|
|
44185
|
+
get: function () { return chunkTRZLN32I_cjs.transcribeBlob; }
|
|
44186
|
+
});
|
|
44187
|
+
Object.defineProperty(exports, "transcribeGate", {
|
|
44188
|
+
enumerable: true,
|
|
44189
|
+
get: function () { return chunkTRZLN32I_cjs.transcribeGate; }
|
|
44190
|
+
});
|
|
44191
|
+
Object.defineProperty(exports, "transcribeSamples", {
|
|
44192
|
+
enumerable: true,
|
|
44193
|
+
get: function () { return chunkTRZLN32I_cjs.transcribeSamples; }
|
|
44194
|
+
});
|
|
44195
|
+
Object.defineProperty(exports, "transcribeSegments", {
|
|
44196
|
+
enumerable: true,
|
|
44197
|
+
get: function () { return chunkTRZLN32I_cjs.transcribeSegments; }
|
|
44198
|
+
});
|
|
44199
|
+
Object.defineProperty(exports, "transcribeServer", {
|
|
44200
|
+
enumerable: true,
|
|
44201
|
+
get: function () { return chunkTRZLN32I_cjs.transcribeServer; }
|
|
44202
|
+
});
|
|
44203
|
+
Object.defineProperty(exports, "trimTrailingStopPhrase", {
|
|
44204
|
+
enumerable: true,
|
|
44205
|
+
get: function () { return chunkTRZLN32I_cjs.trimTrailingStopPhrase; }
|
|
44206
|
+
});
|
|
44207
|
+
Object.defineProperty(exports, "warmStopGate", {
|
|
44208
|
+
enumerable: true,
|
|
44209
|
+
get: function () { return chunkTRZLN32I_cjs.warmStopGate; }
|
|
44210
|
+
});
|
|
44211
|
+
Object.defineProperty(exports, "warmWhisper", {
|
|
44212
|
+
enumerable: true,
|
|
44213
|
+
get: function () { return chunkTRZLN32I_cjs.warmWhisper; }
|
|
44214
|
+
});
|
|
44831
44215
|
Object.defineProperty(exports, "clearVoiceprints", {
|
|
44832
44216
|
enumerable: true,
|
|
44833
44217
|
get: function () { return chunkOGNADPM4_cjs.clearVoiceprints; }
|
|
@@ -44852,6 +44236,22 @@ Object.defineProperty(exports, "setVoiceprints", {
|
|
|
44852
44236
|
enumerable: true,
|
|
44853
44237
|
get: function () { return chunkOGNADPM4_cjs.setVoiceprints; }
|
|
44854
44238
|
});
|
|
44239
|
+
Object.defineProperty(exports, "Rating", {
|
|
44240
|
+
enumerable: true,
|
|
44241
|
+
get: function () { return chunkXNPDZANN_cjs.Rating; }
|
|
44242
|
+
});
|
|
44243
|
+
Object.defineProperty(exports, "ReviewCard", {
|
|
44244
|
+
enumerable: true,
|
|
44245
|
+
get: function () { return chunkXNPDZANN_cjs.ReviewCard; }
|
|
44246
|
+
});
|
|
44247
|
+
Object.defineProperty(exports, "defaultRatingLabels", {
|
|
44248
|
+
enumerable: true,
|
|
44249
|
+
get: function () { return chunkXNPDZANN_cjs.defaultRatingLabels; }
|
|
44250
|
+
});
|
|
44251
|
+
Object.defineProperty(exports, "defaultReviewCardLabels", {
|
|
44252
|
+
enumerable: true,
|
|
44253
|
+
get: function () { return chunkXNPDZANN_cjs.defaultReviewCardLabels; }
|
|
44254
|
+
});
|
|
44855
44255
|
Object.defineProperty(exports, "RecordHeader", {
|
|
44856
44256
|
enumerable: true,
|
|
44857
44257
|
get: function () { return chunkIEZXJWHJ_cjs.RecordHeader; }
|
|
@@ -44886,7 +44286,11 @@ Object.defineProperty(exports, "defaultUserPickerLabels", {
|
|
|
44886
44286
|
});
|
|
44887
44287
|
Object.defineProperty(exports, "brands", {
|
|
44888
44288
|
enumerable: true,
|
|
44889
|
-
get: function () { return
|
|
44289
|
+
get: function () { return chunkAWSSWNJY_cjs.brands; }
|
|
44290
|
+
});
|
|
44291
|
+
Object.defineProperty(exports, "defaultBrand", {
|
|
44292
|
+
enumerable: true,
|
|
44293
|
+
get: function () { return chunkX7S76WB7_cjs.defaultBrand; }
|
|
44890
44294
|
});
|
|
44891
44295
|
Object.defineProperty(exports, "enterpriseHealthBrand", {
|
|
44892
44296
|
enumerable: true,
|
|
@@ -44904,13 +44308,13 @@ Object.defineProperty(exports, "webchartBrand", {
|
|
|
44904
44308
|
enumerable: true,
|
|
44905
44309
|
get: function () { return chunkU7VQUOLS_cjs.webchartBrand; }
|
|
44906
44310
|
});
|
|
44907
|
-
Object.defineProperty(exports, "
|
|
44311
|
+
Object.defineProperty(exports, "ccmeBrand", {
|
|
44908
44312
|
enumerable: true,
|
|
44909
|
-
get: function () { return
|
|
44313
|
+
get: function () { return chunkUCGUA3QV_cjs.ccmeBrand; }
|
|
44910
44314
|
});
|
|
44911
|
-
Object.defineProperty(exports, "
|
|
44315
|
+
Object.defineProperty(exports, "ozwellBrand", {
|
|
44912
44316
|
enumerable: true,
|
|
44913
|
-
get: function () { return
|
|
44317
|
+
get: function () { return chunkRR2MJBGV_cjs.ozwellBrand; }
|
|
44914
44318
|
});
|
|
44915
44319
|
Object.defineProperty(exports, "createBrandPreset", {
|
|
44916
44320
|
enumerable: true,
|
|
@@ -44928,10 +44332,6 @@ Object.defineProperty(exports, "bluehiveBrand", {
|
|
|
44928
44332
|
enumerable: true,
|
|
44929
44333
|
get: function () { return chunk3ZWCIPFT_cjs.bluehiveBrand; }
|
|
44930
44334
|
});
|
|
44931
|
-
Object.defineProperty(exports, "ccmeBrand", {
|
|
44932
|
-
enumerable: true,
|
|
44933
|
-
get: function () { return chunkUCGUA3QV_cjs.ccmeBrand; }
|
|
44934
|
-
});
|
|
44935
44335
|
Object.defineProperty(exports, "CalendarHeatmap", {
|
|
44936
44336
|
enumerable: true,
|
|
44937
44337
|
get: function () { return chunkA4W5CSK7_cjs.CalendarHeatmap; }
|
|
@@ -44992,21 +44392,9 @@ Object.defineProperty(exports, "defaultInlineEditLabels", {
|
|
|
44992
44392
|
enumerable: true,
|
|
44993
44393
|
get: function () { return chunk4ZB7RSMY_cjs.defaultInlineEditLabels; }
|
|
44994
44394
|
});
|
|
44995
|
-
Object.defineProperty(exports, "
|
|
44996
|
-
enumerable: true,
|
|
44997
|
-
get: function () { return chunkXNPDZANN_cjs.Rating; }
|
|
44998
|
-
});
|
|
44999
|
-
Object.defineProperty(exports, "ReviewCard", {
|
|
45000
|
-
enumerable: true,
|
|
45001
|
-
get: function () { return chunkXNPDZANN_cjs.ReviewCard; }
|
|
45002
|
-
});
|
|
45003
|
-
Object.defineProperty(exports, "defaultRatingLabels", {
|
|
45004
|
-
enumerable: true,
|
|
45005
|
-
get: function () { return chunkXNPDZANN_cjs.defaultRatingLabels; }
|
|
45006
|
-
});
|
|
45007
|
-
Object.defineProperty(exports, "defaultReviewCardLabels", {
|
|
44395
|
+
Object.defineProperty(exports, "ViewSet", {
|
|
45008
44396
|
enumerable: true,
|
|
45009
|
-
get: function () { return
|
|
44397
|
+
get: function () { return chunkGYXSF6BJ_cjs.ViewSet; }
|
|
45010
44398
|
});
|
|
45011
44399
|
Object.defineProperty(exports, "TranscriptView", {
|
|
45012
44400
|
enumerable: true,
|
|
@@ -45068,6 +44456,38 @@ Object.defineProperty(exports, "defaultAssociationListLabels", {
|
|
|
45068
44456
|
enumerable: true,
|
|
45069
44457
|
get: function () { return chunkCLQW724U_cjs.defaultAssociationListLabels; }
|
|
45070
44458
|
});
|
|
44459
|
+
Object.defineProperty(exports, "Table", {
|
|
44460
|
+
enumerable: true,
|
|
44461
|
+
get: function () { return chunk3AD4HFYI_cjs.Table; }
|
|
44462
|
+
});
|
|
44463
|
+
Object.defineProperty(exports, "TableBody", {
|
|
44464
|
+
enumerable: true,
|
|
44465
|
+
get: function () { return chunk3AD4HFYI_cjs.TableBody; }
|
|
44466
|
+
});
|
|
44467
|
+
Object.defineProperty(exports, "TableCaption", {
|
|
44468
|
+
enumerable: true,
|
|
44469
|
+
get: function () { return chunk3AD4HFYI_cjs.TableCaption; }
|
|
44470
|
+
});
|
|
44471
|
+
Object.defineProperty(exports, "TableCell", {
|
|
44472
|
+
enumerable: true,
|
|
44473
|
+
get: function () { return chunk3AD4HFYI_cjs.TableCell; }
|
|
44474
|
+
});
|
|
44475
|
+
Object.defineProperty(exports, "TableFooter", {
|
|
44476
|
+
enumerable: true,
|
|
44477
|
+
get: function () { return chunk3AD4HFYI_cjs.TableFooter; }
|
|
44478
|
+
});
|
|
44479
|
+
Object.defineProperty(exports, "TableHead", {
|
|
44480
|
+
enumerable: true,
|
|
44481
|
+
get: function () { return chunk3AD4HFYI_cjs.TableHead; }
|
|
44482
|
+
});
|
|
44483
|
+
Object.defineProperty(exports, "TableHeader", {
|
|
44484
|
+
enumerable: true,
|
|
44485
|
+
get: function () { return chunk3AD4HFYI_cjs.TableHeader; }
|
|
44486
|
+
});
|
|
44487
|
+
Object.defineProperty(exports, "TableRow", {
|
|
44488
|
+
enumerable: true,
|
|
44489
|
+
get: function () { return chunk3AD4HFYI_cjs.TableRow; }
|
|
44490
|
+
});
|
|
45071
44491
|
Object.defineProperty(exports, "SmallMuted", {
|
|
45072
44492
|
enumerable: true,
|
|
45073
44493
|
get: function () { return chunk3IAA3KCE_cjs.SmallMuted; }
|
|
@@ -45112,10 +44532,6 @@ Object.defineProperty(exports, "toggleVariants", {
|
|
|
45112
44532
|
enumerable: true,
|
|
45113
44533
|
get: function () { return chunkVTKXM7IE_cjs.toggleVariants; }
|
|
45114
44534
|
});
|
|
45115
|
-
Object.defineProperty(exports, "ViewSet", {
|
|
45116
|
-
enumerable: true,
|
|
45117
|
-
get: function () { return chunkGYXSF6BJ_cjs.ViewSet; }
|
|
45118
|
-
});
|
|
45119
44535
|
Object.defineProperty(exports, "ViewSwitcher", {
|
|
45120
44536
|
enumerable: true,
|
|
45121
44537
|
get: function () { return chunkXPWFIDZM_cjs.ViewSwitcher; }
|
|
@@ -45124,6 +44540,26 @@ Object.defineProperty(exports, "viewSwitcherVariants", {
|
|
|
45124
44540
|
enumerable: true,
|
|
45125
44541
|
get: function () { return chunkXPWFIDZM_cjs.viewSwitcherVariants; }
|
|
45126
44542
|
});
|
|
44543
|
+
Object.defineProperty(exports, "Skeleton", {
|
|
44544
|
+
enumerable: true,
|
|
44545
|
+
get: function () { return chunkYGA35Z2P_cjs.Skeleton; }
|
|
44546
|
+
});
|
|
44547
|
+
Object.defineProperty(exports, "SkeletonCard", {
|
|
44548
|
+
enumerable: true,
|
|
44549
|
+
get: function () { return chunkYGA35Z2P_cjs.SkeletonCard; }
|
|
44550
|
+
});
|
|
44551
|
+
Object.defineProperty(exports, "SkeletonTable", {
|
|
44552
|
+
enumerable: true,
|
|
44553
|
+
get: function () { return chunkYGA35Z2P_cjs.SkeletonTable; }
|
|
44554
|
+
});
|
|
44555
|
+
Object.defineProperty(exports, "SkeletonText", {
|
|
44556
|
+
enumerable: true,
|
|
44557
|
+
get: function () { return chunkYGA35Z2P_cjs.SkeletonText; }
|
|
44558
|
+
});
|
|
44559
|
+
Object.defineProperty(exports, "skeletonVariants", {
|
|
44560
|
+
enumerable: true,
|
|
44561
|
+
get: function () { return chunkYGA35Z2P_cjs.skeletonVariants; }
|
|
44562
|
+
});
|
|
45127
44563
|
Object.defineProperty(exports, "SourceTip", {
|
|
45128
44564
|
enumerable: true,
|
|
45129
44565
|
get: function () { return chunkAHHFFXJR_cjs.SourceTip; }
|
|
@@ -45356,38 +44792,6 @@ Object.defineProperty(exports, "validateFile", {
|
|
|
45356
44792
|
enumerable: true,
|
|
45357
44793
|
get: function () { return chunkWGXJNCRG_cjs.validateFile; }
|
|
45358
44794
|
});
|
|
45359
|
-
Object.defineProperty(exports, "Table", {
|
|
45360
|
-
enumerable: true,
|
|
45361
|
-
get: function () { return chunk3AD4HFYI_cjs.Table; }
|
|
45362
|
-
});
|
|
45363
|
-
Object.defineProperty(exports, "TableBody", {
|
|
45364
|
-
enumerable: true,
|
|
45365
|
-
get: function () { return chunk3AD4HFYI_cjs.TableBody; }
|
|
45366
|
-
});
|
|
45367
|
-
Object.defineProperty(exports, "TableCaption", {
|
|
45368
|
-
enumerable: true,
|
|
45369
|
-
get: function () { return chunk3AD4HFYI_cjs.TableCaption; }
|
|
45370
|
-
});
|
|
45371
|
-
Object.defineProperty(exports, "TableCell", {
|
|
45372
|
-
enumerable: true,
|
|
45373
|
-
get: function () { return chunk3AD4HFYI_cjs.TableCell; }
|
|
45374
|
-
});
|
|
45375
|
-
Object.defineProperty(exports, "TableFooter", {
|
|
45376
|
-
enumerable: true,
|
|
45377
|
-
get: function () { return chunk3AD4HFYI_cjs.TableFooter; }
|
|
45378
|
-
});
|
|
45379
|
-
Object.defineProperty(exports, "TableHead", {
|
|
45380
|
-
enumerable: true,
|
|
45381
|
-
get: function () { return chunk3AD4HFYI_cjs.TableHead; }
|
|
45382
|
-
});
|
|
45383
|
-
Object.defineProperty(exports, "TableHeader", {
|
|
45384
|
-
enumerable: true,
|
|
45385
|
-
get: function () { return chunk3AD4HFYI_cjs.TableHeader; }
|
|
45386
|
-
});
|
|
45387
|
-
Object.defineProperty(exports, "TableRow", {
|
|
45388
|
-
enumerable: true,
|
|
45389
|
-
get: function () { return chunk3AD4HFYI_cjs.TableRow; }
|
|
45390
|
-
});
|
|
45391
44795
|
Object.defineProperty(exports, "DateButton", {
|
|
45392
44796
|
enumerable: true,
|
|
45393
44797
|
get: function () { return chunk3SZQRMHM_cjs.DateButton; }
|
|
@@ -45444,26 +44848,6 @@ Object.defineProperty(exports, "SliderCalculator", {
|
|
|
45444
44848
|
enumerable: true,
|
|
45445
44849
|
get: function () { return chunk2S76TRBJ_cjs.SliderCalculator; }
|
|
45446
44850
|
});
|
|
45447
|
-
Object.defineProperty(exports, "Skeleton", {
|
|
45448
|
-
enumerable: true,
|
|
45449
|
-
get: function () { return chunkYGA35Z2P_cjs.Skeleton; }
|
|
45450
|
-
});
|
|
45451
|
-
Object.defineProperty(exports, "SkeletonCard", {
|
|
45452
|
-
enumerable: true,
|
|
45453
|
-
get: function () { return chunkYGA35Z2P_cjs.SkeletonCard; }
|
|
45454
|
-
});
|
|
45455
|
-
Object.defineProperty(exports, "SkeletonTable", {
|
|
45456
|
-
enumerable: true,
|
|
45457
|
-
get: function () { return chunkYGA35Z2P_cjs.SkeletonTable; }
|
|
45458
|
-
});
|
|
45459
|
-
Object.defineProperty(exports, "SkeletonText", {
|
|
45460
|
-
enumerable: true,
|
|
45461
|
-
get: function () { return chunkYGA35Z2P_cjs.SkeletonText; }
|
|
45462
|
-
});
|
|
45463
|
-
Object.defineProperty(exports, "skeletonVariants", {
|
|
45464
|
-
enumerable: true,
|
|
45465
|
-
get: function () { return chunkYGA35Z2P_cjs.skeletonVariants; }
|
|
45466
|
-
});
|
|
45467
44851
|
Object.defineProperty(exports, "PhoneInput", {
|
|
45468
44852
|
enumerable: true,
|
|
45469
44853
|
get: function () { return chunkMGFRGPWI_cjs.PhoneInput; }
|
|
@@ -45516,17 +44900,29 @@ Object.defineProperty(exports, "ReadingProgressBar", {
|
|
|
45516
44900
|
enumerable: true,
|
|
45517
44901
|
get: function () { return chunk5MXO6PEV_cjs.ReadingProgressBar; }
|
|
45518
44902
|
});
|
|
44903
|
+
Object.defineProperty(exports, "DictationButton", {
|
|
44904
|
+
enumerable: true,
|
|
44905
|
+
get: function () { return chunk3TUULOTW_cjs.DictationButton; }
|
|
44906
|
+
});
|
|
44907
|
+
Object.defineProperty(exports, "defaultDictationLabels", {
|
|
44908
|
+
enumerable: true,
|
|
44909
|
+
get: function () { return chunk3TUULOTW_cjs.defaultDictationLabels; }
|
|
44910
|
+
});
|
|
44911
|
+
Object.defineProperty(exports, "useDictation", {
|
|
44912
|
+
enumerable: true,
|
|
44913
|
+
get: function () { return chunk3TUULOTW_cjs.useDictation; }
|
|
44914
|
+
});
|
|
45519
44915
|
Object.defineProperty(exports, "RecordButton", {
|
|
45520
44916
|
enumerable: true,
|
|
45521
|
-
get: function () { return
|
|
44917
|
+
get: function () { return chunkHIYQ3M5V_cjs.RecordButton; }
|
|
45522
44918
|
});
|
|
45523
44919
|
Object.defineProperty(exports, "formatDuration", {
|
|
45524
44920
|
enumerable: true,
|
|
45525
|
-
get: function () { return
|
|
44921
|
+
get: function () { return chunkHIYQ3M5V_cjs.formatDuration; }
|
|
45526
44922
|
});
|
|
45527
44923
|
Object.defineProperty(exports, "recordButtonVariants", {
|
|
45528
44924
|
enumerable: true,
|
|
45529
|
-
get: function () { return
|
|
44925
|
+
get: function () { return chunkHIYQ3M5V_cjs.recordButtonVariants; }
|
|
45530
44926
|
});
|
|
45531
44927
|
Object.defineProperty(exports, "FillerWordsModal", {
|
|
45532
44928
|
enumerable: true,
|
|
@@ -45658,19 +45054,23 @@ Object.defineProperty(exports, "listViewItemVariants", {
|
|
|
45658
45054
|
});
|
|
45659
45055
|
Object.defineProperty(exports, "CodeBlock", {
|
|
45660
45056
|
enumerable: true,
|
|
45661
|
-
get: function () { return
|
|
45057
|
+
get: function () { return chunkTOJ56HKQ_cjs.CodeBlock; }
|
|
45662
45058
|
});
|
|
45663
45059
|
Object.defineProperty(exports, "MarkdownRenderer", {
|
|
45664
45060
|
enumerable: true,
|
|
45665
|
-
get: function () { return
|
|
45061
|
+
get: function () { return chunkTOJ56HKQ_cjs.MarkdownRenderer; }
|
|
45666
45062
|
});
|
|
45667
45063
|
Object.defineProperty(exports, "highlightCode", {
|
|
45668
45064
|
enumerable: true,
|
|
45669
|
-
get: function () { return
|
|
45065
|
+
get: function () { return chunkTOJ56HKQ_cjs.highlightCode; }
|
|
45670
45066
|
});
|
|
45671
45067
|
Object.defineProperty(exports, "useMarkdown", {
|
|
45672
45068
|
enumerable: true,
|
|
45673
|
-
get: function () { return
|
|
45069
|
+
get: function () { return chunkTOJ56HKQ_cjs.useMarkdown; }
|
|
45070
|
+
});
|
|
45071
|
+
Object.defineProperty(exports, "SurveyBlock", {
|
|
45072
|
+
enumerable: true,
|
|
45073
|
+
get: function () { return chunkIGDO62KR_cjs.SurveyBlock; }
|
|
45674
45074
|
});
|
|
45675
45075
|
Object.defineProperty(exports, "CsvBlock", {
|
|
45676
45076
|
enumerable: true,
|
|
@@ -45684,10 +45084,6 @@ Object.defineProperty(exports, "MermaidBlock", {
|
|
|
45684
45084
|
enumerable: true,
|
|
45685
45085
|
get: function () { return chunk32ZCJOSR_cjs.MermaidBlock; }
|
|
45686
45086
|
});
|
|
45687
|
-
Object.defineProperty(exports, "SurveyBlock", {
|
|
45688
|
-
enumerable: true,
|
|
45689
|
-
get: function () { return chunkIGDO62KR_cjs.SurveyBlock; }
|
|
45690
|
-
});
|
|
45691
45087
|
Object.defineProperty(exports, "FenceBlock", {
|
|
45692
45088
|
enumerable: true,
|
|
45693
45089
|
get: function () { return chunkRIUQP2QS_cjs.FenceBlock; }
|
|
@@ -47796,8 +47192,6 @@ exports.WebChartReportViewer = WebChartReportViewer;
|
|
|
47796
47192
|
exports.WebcamModal = WebcamModal;
|
|
47797
47193
|
exports.WebsiteInput = WebsiteInput;
|
|
47798
47194
|
exports.WebsiteInputGroup = WebsiteInputGroup;
|
|
47799
|
-
exports.askOzwell = askOzwell;
|
|
47800
|
-
exports.askOzwellStream = askOzwellStream;
|
|
47801
47195
|
exports.attributeSegments = attributeSegments;
|
|
47802
47196
|
exports.calculateDateRange = calculateDateRange;
|
|
47803
47197
|
exports.centroid = centroid;
|
|
@@ -47812,28 +47206,22 @@ exports.create24HourSchedule = create24HourSchedule;
|
|
|
47812
47206
|
exports.createDefaultSchedule = createDefaultSchedule;
|
|
47813
47207
|
exports.createWeekdaySchedule = createWeekdaySchedule;
|
|
47814
47208
|
exports.currentAssertion = currentAssertion;
|
|
47815
|
-
exports.decodeTo16kMono = decodeTo16kMono;
|
|
47816
47209
|
exports.defaultCaseManagementHeaderLabels = defaultCaseManagementHeaderLabels;
|
|
47817
47210
|
exports.defaultOrderTabs = defaultOrderTabs;
|
|
47818
47211
|
exports.defaultReconciliationIsEqual = defaultReconciliationIsEqual;
|
|
47819
|
-
exports.endsWithDone = endsWithDone;
|
|
47820
47212
|
exports.formatAddressLines = formatAddressLines;
|
|
47821
47213
|
exports.formatAddressSingleLine = formatAddressSingleLine;
|
|
47822
47214
|
exports.formatCityState = formatCityState;
|
|
47823
47215
|
exports.formatCityStateZip = formatCityStateZip;
|
|
47824
47216
|
exports.generateId = generateId;
|
|
47825
47217
|
exports.getDefaultPresets = getDefaultPresets;
|
|
47826
|
-
exports.getDictationLoad = getDictationLoad;
|
|
47827
47218
|
exports.getExtendedPresets = getExtendedPresets;
|
|
47828
47219
|
exports.getGoogleMapsSearchUrl = getGoogleMapsSearchUrl;
|
|
47829
47220
|
exports.getGoogleMapsUrl = getGoogleMapsUrl;
|
|
47830
|
-
exports.getOzwellConfig = getOzwellConfig;
|
|
47831
47221
|
exports.getWakeWarm = getWakeWarm;
|
|
47832
47222
|
exports.inferSpeakerRoles = inferSpeakerRoles;
|
|
47833
47223
|
exports.isConditionCodetype = isConditionCodetype;
|
|
47834
|
-
exports.isOzwellConfigured = isOzwellConfigured;
|
|
47835
47224
|
exports.isValidUrl = isValidUrl;
|
|
47836
|
-
exports.isWhisperLoaded = isWhisperLoaded;
|
|
47837
47225
|
exports.labelClusters = labelClusters;
|
|
47838
47226
|
exports.medicationToOrder = medicationToOrder;
|
|
47839
47227
|
exports.mergeTurns = mergeTurns;
|
|
@@ -47844,16 +47232,7 @@ exports.orderToMedication = orderToMedication;
|
|
|
47844
47232
|
exports.orderTypeForCodetype = orderTypeForCodetype;
|
|
47845
47233
|
exports.parseTimeInput = parseTimeInput;
|
|
47846
47234
|
exports.reconciliationPanelVariants = panelVariants;
|
|
47847
|
-
exports.stripStopPhrase = stripStopPhrase;
|
|
47848
|
-
exports.subscribeDictationLoad = subscribeDictationLoad;
|
|
47849
47235
|
exports.subscribeWakeWarm = subscribeWakeWarm;
|
|
47850
|
-
exports.toOzwellMessages = toOzwellMessages;
|
|
47851
|
-
exports.transcribeBlob = transcribeBlob;
|
|
47852
|
-
exports.transcribeGate = transcribeGate;
|
|
47853
|
-
exports.transcribeSamples = transcribeSamples;
|
|
47854
|
-
exports.transcribeSegments = transcribeSegments;
|
|
47855
|
-
exports.transcribeServer = transcribeServer;
|
|
47856
|
-
exports.trimTrailingStopPhrase = trimTrailingStopPhrase;
|
|
47857
47236
|
exports.useCamera = useCamera;
|
|
47858
47237
|
exports.useCommandPalette = useCommandPalette;
|
|
47859
47238
|
exports.useConnectionStatus = useConnectionStatus;
|
|
@@ -47870,9 +47249,7 @@ exports.useToast = useToast;
|
|
|
47870
47249
|
exports.useVisitScribe = useVisitScribe;
|
|
47871
47250
|
exports.useVoiceSetup = useVoiceSetup;
|
|
47872
47251
|
exports.useWakeWord = useWakeWord;
|
|
47873
|
-
exports.warmStopGate = warmStopGate;
|
|
47874
47252
|
exports.warmWakeModels = warmWakeModels;
|
|
47875
|
-
exports.warmWhisper = warmWhisper;
|
|
47876
47253
|
exports.widgetVariants = widgetVariants;
|
|
47877
47254
|
//# sourceMappingURL=index.cjs.map
|
|
47878
47255
|
//# sourceMappingURL=index.cjs.map
|