@omote/core 0.1.2 → 0.1.3
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/index.js +58 -65
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +53 -59
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -28876,12 +28876,12 @@ var Logger = class _Logger {
|
|
|
28876
28876
|
};
|
|
28877
28877
|
var loggerCache = /* @__PURE__ */ new Map();
|
|
28878
28878
|
function createLogger(module2) {
|
|
28879
|
-
let
|
|
28880
|
-
if (!
|
|
28881
|
-
|
|
28882
|
-
loggerCache.set(module2,
|
|
28879
|
+
let logger11 = loggerCache.get(module2);
|
|
28880
|
+
if (!logger11) {
|
|
28881
|
+
logger11 = new Logger(module2);
|
|
28882
|
+
loggerCache.set(module2, logger11);
|
|
28883
28883
|
}
|
|
28884
|
-
return
|
|
28884
|
+
return logger11;
|
|
28885
28885
|
}
|
|
28886
28886
|
var noopLogger = {
|
|
28887
28887
|
module: "noop",
|
|
@@ -29013,13 +29013,13 @@ async function isWebGPUAvailable() {
|
|
|
29013
29013
|
return false;
|
|
29014
29014
|
}
|
|
29015
29015
|
}
|
|
29016
|
-
function configureWasm(
|
|
29017
|
-
|
|
29016
|
+
function configureWasm(ort) {
|
|
29017
|
+
ort.env.wasm.wasmPaths = WASM_CDN_PATH;
|
|
29018
29018
|
const numThreads = getOptimalWasmThreads();
|
|
29019
29019
|
const enableProxy = shouldEnableWasmProxy();
|
|
29020
|
-
|
|
29021
|
-
|
|
29022
|
-
|
|
29020
|
+
ort.env.wasm.numThreads = numThreads;
|
|
29021
|
+
ort.env.wasm.simd = true;
|
|
29022
|
+
ort.env.wasm.proxy = enableProxy;
|
|
29023
29023
|
logger.info("WASM configured", {
|
|
29024
29024
|
numThreads,
|
|
29025
29025
|
simd: true,
|
|
@@ -29067,8 +29067,8 @@ async function getOnnxRuntimeForPreference(preference = "auto") {
|
|
|
29067
29067
|
webgpuAvailable,
|
|
29068
29068
|
resolvedBackend: backend
|
|
29069
29069
|
});
|
|
29070
|
-
const
|
|
29071
|
-
return { ort
|
|
29070
|
+
const ort = await getOnnxRuntime(backend);
|
|
29071
|
+
return { ort, backend };
|
|
29072
29072
|
}
|
|
29073
29073
|
function getSessionOptions(backend) {
|
|
29074
29074
|
if (backend === "webgpu") {
|
|
@@ -29089,12 +29089,12 @@ function getSessionOptions(backend) {
|
|
|
29089
29089
|
};
|
|
29090
29090
|
}
|
|
29091
29091
|
async function createSessionWithFallback(modelBuffer, preferredBackend) {
|
|
29092
|
-
const
|
|
29092
|
+
const ort = await getOnnxRuntime(preferredBackend);
|
|
29093
29093
|
const modelData = new Uint8Array(modelBuffer);
|
|
29094
29094
|
if (preferredBackend === "webgpu") {
|
|
29095
29095
|
try {
|
|
29096
29096
|
const options2 = getSessionOptions("webgpu");
|
|
29097
|
-
const session2 = await
|
|
29097
|
+
const session2 = await ort.InferenceSession.create(modelData, options2);
|
|
29098
29098
|
logger.info("Session created with WebGPU backend");
|
|
29099
29099
|
return { session: session2, backend: "webgpu" };
|
|
29100
29100
|
} catch (err) {
|
|
@@ -29104,7 +29104,7 @@ async function createSessionWithFallback(modelBuffer, preferredBackend) {
|
|
|
29104
29104
|
}
|
|
29105
29105
|
}
|
|
29106
29106
|
const options = getSessionOptions("wasm");
|
|
29107
|
-
const session = await
|
|
29107
|
+
const session = await ort.InferenceSession.create(modelData, options);
|
|
29108
29108
|
logger.info("Session created with WASM backend");
|
|
29109
29109
|
return { session, backend: "wasm" };
|
|
29110
29110
|
}
|
|
@@ -29276,8 +29276,8 @@ var Wav2Vec2Inference = class {
|
|
|
29276
29276
|
});
|
|
29277
29277
|
try {
|
|
29278
29278
|
logger2.info("Loading ONNX Runtime...", { preference: this.config.backend || "auto" });
|
|
29279
|
-
const { ort
|
|
29280
|
-
this.ort =
|
|
29279
|
+
const { ort, backend } = await getOnnxRuntimeForPreference(this.config.backend || "auto");
|
|
29280
|
+
this.ort = ort;
|
|
29281
29281
|
this._backend = backend;
|
|
29282
29282
|
logger2.info("ONNX Runtime loaded", { backend: this._backend });
|
|
29283
29283
|
const cache = getModelCache();
|
|
@@ -29919,8 +29919,8 @@ var SileroVADInference = class {
|
|
|
29919
29919
|
});
|
|
29920
29920
|
try {
|
|
29921
29921
|
logger5.info("Loading ONNX Runtime...", { preference: this.config.backend });
|
|
29922
|
-
const { ort
|
|
29923
|
-
this.ort =
|
|
29922
|
+
const { ort, backend } = await getOnnxRuntimeForPreference(this.config.backend);
|
|
29923
|
+
this.ort = ort;
|
|
29924
29924
|
this._backend = backend;
|
|
29925
29925
|
logger5.info("ONNX Runtime loaded", { backend: this._backend });
|
|
29926
29926
|
const cache = getModelCache();
|
|
@@ -29940,7 +29940,7 @@ var SileroVADInference = class {
|
|
|
29940
29940
|
});
|
|
29941
29941
|
const sessionOptions = getSessionOptions(this._backend);
|
|
29942
29942
|
const modelData = new Uint8Array(modelBuffer);
|
|
29943
|
-
this.session = await
|
|
29943
|
+
this.session = await ort.InferenceSession.create(modelData, sessionOptions);
|
|
29944
29944
|
this.reset();
|
|
29945
29945
|
const loadTimeMs = performance.now() - startTime;
|
|
29946
29946
|
logger5.info("Model loaded successfully", {
|
|
@@ -30909,8 +30909,8 @@ var Emotion2VecInference = class {
|
|
|
30909
30909
|
});
|
|
30910
30910
|
try {
|
|
30911
30911
|
logger8.info("Loading ONNX Runtime...", { preference: this.config.backend });
|
|
30912
|
-
const { ort
|
|
30913
|
-
this.ort =
|
|
30912
|
+
const { ort, backend } = await getOnnxRuntimeForPreference(this.config.backend);
|
|
30913
|
+
this.ort = ort;
|
|
30914
30914
|
this._backend = backend;
|
|
30915
30915
|
logger8.info("ONNX Runtime loaded", { backend: this._backend });
|
|
30916
30916
|
logger8.info("Checking model cache...");
|
|
@@ -30935,7 +30935,7 @@ var Emotion2VecInference = class {
|
|
|
30935
30935
|
});
|
|
30936
30936
|
const sessionOptions = getSessionOptions(this._backend);
|
|
30937
30937
|
const modelData = new Uint8Array(modelBuffer);
|
|
30938
|
-
this.session = await
|
|
30938
|
+
this.session = await ort.InferenceSession.create(modelData, sessionOptions);
|
|
30939
30939
|
const loadTimeMs = performance.now() - startTime;
|
|
30940
30940
|
logger8.info("Model loaded successfully", {
|
|
30941
30941
|
backend: this._backend,
|
|
@@ -31125,15 +31125,8 @@ var Emotion2VecInference = class {
|
|
|
31125
31125
|
*/
|
|
31126
31126
|
Emotion2VecInference.isWebGPUAvailable = isWebGPUAvailable;
|
|
31127
31127
|
|
|
31128
|
-
// src/inference/ChatterboxTurboInference.ts
|
|
31129
|
-
var import_webgpu = __toESM(require("onnxruntime-web/webgpu"));
|
|
31130
|
-
init_transformers_web();
|
|
31131
|
-
var logger9 = createLogger("ChatterboxTurbo");
|
|
31132
|
-
env2.allowLocalModels = true;
|
|
31133
|
-
import_webgpu.default.env.wasm.wasmPaths = "https://cdn.jsdelivr.net/npm/onnxruntime-web@1.23.2/dist/";
|
|
31134
|
-
|
|
31135
31128
|
// src/inference/SafariSpeechRecognition.ts
|
|
31136
|
-
var
|
|
31129
|
+
var logger9 = createLogger("SafariSpeech");
|
|
31137
31130
|
var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
31138
31131
|
constructor(config = {}) {
|
|
31139
31132
|
this.recognition = null;
|
|
@@ -31152,7 +31145,7 @@ var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
|
31152
31145
|
interimResults: config.interimResults ?? true,
|
|
31153
31146
|
maxAlternatives: config.maxAlternatives ?? 1
|
|
31154
31147
|
};
|
|
31155
|
-
|
|
31148
|
+
logger9.debug("SafariSpeechRecognition created", {
|
|
31156
31149
|
language: this.config.language,
|
|
31157
31150
|
continuous: this.config.continuous
|
|
31158
31151
|
});
|
|
@@ -31213,7 +31206,7 @@ var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
|
31213
31206
|
*/
|
|
31214
31207
|
async start() {
|
|
31215
31208
|
if (this.isListening) {
|
|
31216
|
-
|
|
31209
|
+
logger9.warn("Already listening");
|
|
31217
31210
|
return;
|
|
31218
31211
|
}
|
|
31219
31212
|
if (!_SafariSpeechRecognition.isAvailable()) {
|
|
@@ -31243,7 +31236,7 @@ var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
|
31243
31236
|
this.isListening = true;
|
|
31244
31237
|
this.startTime = performance.now();
|
|
31245
31238
|
this.accumulatedText = "";
|
|
31246
|
-
|
|
31239
|
+
logger9.info("Speech recognition started", {
|
|
31247
31240
|
language: this.config.language
|
|
31248
31241
|
});
|
|
31249
31242
|
span?.end();
|
|
@@ -31258,7 +31251,7 @@ var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
|
31258
31251
|
*/
|
|
31259
31252
|
async stop() {
|
|
31260
31253
|
if (!this.isListening || !this.recognition) {
|
|
31261
|
-
|
|
31254
|
+
logger9.warn("Not currently listening");
|
|
31262
31255
|
return {
|
|
31263
31256
|
text: this.accumulatedText,
|
|
31264
31257
|
language: this.config.language,
|
|
@@ -31287,7 +31280,7 @@ var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
|
31287
31280
|
if (this.recognition && this.isListening) {
|
|
31288
31281
|
this.recognition.abort();
|
|
31289
31282
|
this.isListening = false;
|
|
31290
|
-
|
|
31283
|
+
logger9.info("Speech recognition aborted");
|
|
31291
31284
|
}
|
|
31292
31285
|
}
|
|
31293
31286
|
/**
|
|
@@ -31318,7 +31311,7 @@ var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
|
31318
31311
|
this.isListening = false;
|
|
31319
31312
|
this.resultCallbacks = [];
|
|
31320
31313
|
this.errorCallbacks = [];
|
|
31321
|
-
|
|
31314
|
+
logger9.debug("SafariSpeechRecognition disposed");
|
|
31322
31315
|
}
|
|
31323
31316
|
/**
|
|
31324
31317
|
* Set up event handlers for the recognition instance
|
|
@@ -31346,7 +31339,7 @@ var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
|
31346
31339
|
confidence: alternative.confidence
|
|
31347
31340
|
};
|
|
31348
31341
|
this.emitResult(speechResult);
|
|
31349
|
-
|
|
31342
|
+
logger9.trace("Speech result", {
|
|
31350
31343
|
text: text.substring(0, 50),
|
|
31351
31344
|
isFinal,
|
|
31352
31345
|
confidence: alternative.confidence
|
|
@@ -31356,12 +31349,12 @@ var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
|
31356
31349
|
span?.end();
|
|
31357
31350
|
} catch (error) {
|
|
31358
31351
|
span?.endWithError(error instanceof Error ? error : new Error(String(error)));
|
|
31359
|
-
|
|
31352
|
+
logger9.error("Error processing speech result", { error });
|
|
31360
31353
|
}
|
|
31361
31354
|
};
|
|
31362
31355
|
this.recognition.onerror = (event) => {
|
|
31363
31356
|
const error = new Error(`Speech recognition error: ${event.error} - ${event.message}`);
|
|
31364
|
-
|
|
31357
|
+
logger9.error("Speech recognition error", { error: event.error, message: event.message });
|
|
31365
31358
|
this.emitError(error);
|
|
31366
31359
|
if (this.stopRejecter) {
|
|
31367
31360
|
this.stopRejecter(error);
|
|
@@ -31371,7 +31364,7 @@ var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
|
31371
31364
|
};
|
|
31372
31365
|
this.recognition.onend = () => {
|
|
31373
31366
|
this.isListening = false;
|
|
31374
|
-
|
|
31367
|
+
logger9.info("Speech recognition ended", {
|
|
31375
31368
|
totalText: this.accumulatedText.length,
|
|
31376
31369
|
durationMs: performance.now() - this.startTime
|
|
31377
31370
|
});
|
|
@@ -31388,13 +31381,13 @@ var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
|
31388
31381
|
}
|
|
31389
31382
|
};
|
|
31390
31383
|
this.recognition.onstart = () => {
|
|
31391
|
-
|
|
31384
|
+
logger9.debug("Speech recognition started by browser");
|
|
31392
31385
|
};
|
|
31393
31386
|
this.recognition.onspeechstart = () => {
|
|
31394
|
-
|
|
31387
|
+
logger9.debug("Speech detected");
|
|
31395
31388
|
};
|
|
31396
31389
|
this.recognition.onspeechend = () => {
|
|
31397
|
-
|
|
31390
|
+
logger9.debug("Speech ended");
|
|
31398
31391
|
};
|
|
31399
31392
|
}
|
|
31400
31393
|
/**
|
|
@@ -31405,7 +31398,7 @@ var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
|
31405
31398
|
try {
|
|
31406
31399
|
callback(result);
|
|
31407
31400
|
} catch (error) {
|
|
31408
|
-
|
|
31401
|
+
logger9.error("Error in result callback", { error });
|
|
31409
31402
|
}
|
|
31410
31403
|
}
|
|
31411
31404
|
}
|
|
@@ -31417,7 +31410,7 @@ var SafariSpeechRecognition = class _SafariSpeechRecognition {
|
|
|
31417
31410
|
try {
|
|
31418
31411
|
callback(error);
|
|
31419
31412
|
} catch (callbackError) {
|
|
31420
|
-
|
|
31413
|
+
logger9.error("Error in error callback", { error: callbackError });
|
|
31421
31414
|
}
|
|
31422
31415
|
}
|
|
31423
31416
|
}
|
|
@@ -32840,12 +32833,12 @@ async function isHuggingFaceCDNReachable(testUrl = HF_CDN_TEST_URL) {
|
|
|
32840
32833
|
}
|
|
32841
32834
|
|
|
32842
32835
|
// src/utils/transformersCacheClear.ts
|
|
32843
|
-
var
|
|
32836
|
+
var logger10 = createLogger("TransformersCache");
|
|
32844
32837
|
async function clearTransformersCache(options) {
|
|
32845
32838
|
const verbose = options?.verbose ?? true;
|
|
32846
32839
|
const additionalPatterns = options?.additionalPatterns ?? [];
|
|
32847
32840
|
if (!("caches" in window)) {
|
|
32848
|
-
|
|
32841
|
+
logger10.warn("Cache API not available in this environment");
|
|
32849
32842
|
return [];
|
|
32850
32843
|
}
|
|
32851
32844
|
try {
|
|
@@ -32863,18 +32856,18 @@ async function clearTransformersCache(options) {
|
|
|
32863
32856
|
);
|
|
32864
32857
|
if (shouldDelete) {
|
|
32865
32858
|
if (verbose) {
|
|
32866
|
-
|
|
32859
|
+
logger10.info("Deleting cache", { cacheName });
|
|
32867
32860
|
}
|
|
32868
32861
|
const deleted = await caches.delete(cacheName);
|
|
32869
32862
|
if (deleted) {
|
|
32870
32863
|
deletedCaches.push(cacheName);
|
|
32871
32864
|
} else if (verbose) {
|
|
32872
|
-
|
|
32865
|
+
logger10.warn("Failed to delete cache", { cacheName });
|
|
32873
32866
|
}
|
|
32874
32867
|
}
|
|
32875
32868
|
}
|
|
32876
32869
|
if (verbose) {
|
|
32877
|
-
|
|
32870
|
+
logger10.info("Cache clearing complete", {
|
|
32878
32871
|
totalCaches: cacheNames.length,
|
|
32879
32872
|
deletedCount: deletedCaches.length,
|
|
32880
32873
|
deletedCaches
|
|
@@ -32882,35 +32875,35 @@ async function clearTransformersCache(options) {
|
|
|
32882
32875
|
}
|
|
32883
32876
|
return deletedCaches;
|
|
32884
32877
|
} catch (error) {
|
|
32885
|
-
|
|
32878
|
+
logger10.error("Error clearing caches", { error });
|
|
32886
32879
|
throw error;
|
|
32887
32880
|
}
|
|
32888
32881
|
}
|
|
32889
32882
|
async function clearSpecificCache(cacheName) {
|
|
32890
32883
|
if (!("caches" in window)) {
|
|
32891
|
-
|
|
32884
|
+
logger10.warn("Cache API not available in this environment");
|
|
32892
32885
|
return false;
|
|
32893
32886
|
}
|
|
32894
32887
|
try {
|
|
32895
32888
|
const deleted = await caches.delete(cacheName);
|
|
32896
|
-
|
|
32889
|
+
logger10.info("Cache deletion attempt", { cacheName, deleted });
|
|
32897
32890
|
return deleted;
|
|
32898
32891
|
} catch (error) {
|
|
32899
|
-
|
|
32892
|
+
logger10.error("Error deleting cache", { cacheName, error });
|
|
32900
32893
|
return false;
|
|
32901
32894
|
}
|
|
32902
32895
|
}
|
|
32903
32896
|
async function listCaches() {
|
|
32904
32897
|
if (!("caches" in window)) {
|
|
32905
|
-
|
|
32898
|
+
logger10.warn("Cache API not available in this environment");
|
|
32906
32899
|
return [];
|
|
32907
32900
|
}
|
|
32908
32901
|
try {
|
|
32909
32902
|
const cacheNames = await caches.keys();
|
|
32910
|
-
|
|
32903
|
+
logger10.debug("Available caches", { cacheNames });
|
|
32911
32904
|
return cacheNames;
|
|
32912
32905
|
} catch (error) {
|
|
32913
|
-
|
|
32906
|
+
logger10.error("Error listing caches", { error });
|
|
32914
32907
|
return [];
|
|
32915
32908
|
}
|
|
32916
32909
|
}
|
|
@@ -32952,7 +32945,7 @@ async function validateCachedResponse(cacheName, requestUrl) {
|
|
|
32952
32945
|
reason: valid ? "Valid response" : `Invalid: status=${response.status}, contentType=${contentType}, isHtml=${isHtml || looksLikeHtml}`
|
|
32953
32946
|
};
|
|
32954
32947
|
} catch (error) {
|
|
32955
|
-
|
|
32948
|
+
logger10.error("Error validating cached response", { cacheName, requestUrl, error });
|
|
32956
32949
|
return {
|
|
32957
32950
|
exists: false,
|
|
32958
32951
|
valid: false,
|
|
@@ -32989,7 +32982,7 @@ async function scanForInvalidCaches() {
|
|
|
32989
32982
|
}
|
|
32990
32983
|
}
|
|
32991
32984
|
}
|
|
32992
|
-
|
|
32985
|
+
logger10.info("Cache scan complete", {
|
|
32993
32986
|
totalCaches: cacheNames.length,
|
|
32994
32987
|
scannedEntries,
|
|
32995
32988
|
invalidCount: invalidEntries.length
|
|
@@ -33000,13 +32993,13 @@ async function scanForInvalidCaches() {
|
|
|
33000
32993
|
invalidEntries
|
|
33001
32994
|
};
|
|
33002
32995
|
} catch (error) {
|
|
33003
|
-
|
|
32996
|
+
logger10.error("Error scanning caches", { error });
|
|
33004
32997
|
throw error;
|
|
33005
32998
|
}
|
|
33006
32999
|
}
|
|
33007
33000
|
async function nukeBrowserCaches(preventRecreation = false) {
|
|
33008
33001
|
if (!("caches" in window)) {
|
|
33009
|
-
|
|
33002
|
+
logger10.warn("Cache API not available in this environment");
|
|
33010
33003
|
return 0;
|
|
33011
33004
|
}
|
|
33012
33005
|
try {
|
|
@@ -33018,17 +33011,17 @@ async function nukeBrowserCaches(preventRecreation = false) {
|
|
|
33018
33011
|
deletedCount++;
|
|
33019
33012
|
}
|
|
33020
33013
|
}
|
|
33021
|
-
|
|
33014
|
+
logger10.info("All browser caches cleared", {
|
|
33022
33015
|
totalDeleted: deletedCount
|
|
33023
33016
|
});
|
|
33024
33017
|
if (preventRecreation) {
|
|
33025
33018
|
const { env: env3 } = await Promise.resolve().then(() => (init_transformers_web(), transformers_web_exports));
|
|
33026
33019
|
env3.useBrowserCache = false;
|
|
33027
|
-
|
|
33020
|
+
logger10.warn("Browser cache creation disabled (env.useBrowserCache = false)");
|
|
33028
33021
|
}
|
|
33029
33022
|
return deletedCount;
|
|
33030
33023
|
} catch (error) {
|
|
33031
|
-
|
|
33024
|
+
logger10.error("Error nuking caches", { error });
|
|
33032
33025
|
throw error;
|
|
33033
33026
|
}
|
|
33034
33027
|
}
|