@openspecui/web 3.11.2 → 3.11.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/assets/CanvasRenderer-DGnQw8uB.js +1 -0
- package/dist/assets/WebGLRenderer-DHRbteVS.js +1 -0
- package/dist/assets/WebGPURenderer-BnFcGKnW.js +1 -0
- package/dist/assets/browserAll-BB7WVzo0.js +1 -0
- package/dist/assets/dist-B0Que_Lt.js +1 -0
- package/dist/assets/dist-B8m1wxBF.js +1 -0
- package/dist/assets/{dist-BggZ7cyQ.js → dist-BKY1RG9s.js} +1 -1
- package/dist/assets/{dist-B9Ltz3Au.js → dist-BVKuVv2H.js} +1 -1
- package/dist/assets/{dist-wEqYYKag.js → dist-Bl4uejAA.js} +1 -1
- package/dist/assets/{dist-DRc-odji.js → dist-CZh2GIVt.js} +1 -1
- package/dist/assets/{dist-HIi-Q3U-.js → dist-Caq73PXT.js} +1 -1
- package/dist/assets/{dist-DHhbIMeO.js → dist-CkEGbci5.js} +1 -1
- package/dist/assets/{dist-Drgp5ero.js → dist-DDPVC2MF.js} +1 -1
- package/dist/assets/dist-DP_rT4tp.js +1 -0
- package/dist/assets/{dist-j6cthCRX.js → dist-YXnB8lV1.js} +1 -1
- package/dist/assets/{dist-B_UFDOda.js → dist-rlrlm1HB.js} +1 -1
- package/dist/assets/{init-D41cyy2z.js → init-sSrVfvjg.js} +1 -1
- package/dist/assets/{main-DpM-T-Pk.js → main-DThx1JaQ.js} +167 -167
- package/dist/assets/trpc-Dko2Zn9y.js +1 -0
- package/dist/assets/webworkerAll-Bfbn1LyG.js +1 -0
- package/dist/index.html +1 -1
- package/dist-ssg/client/.vite/ssr-manifest.json +15 -15
- package/dist-ssg/client/assets/CanvasRenderer-Dpr5EYjp.js +1 -0
- package/dist-ssg/client/assets/WebGLRenderer-DCzH263Z.js +1 -0
- package/dist-ssg/client/assets/WebGPURenderer-DgF_8B9g.js +1 -0
- package/dist-ssg/client/assets/browserAll-CPl4rDmN.js +1 -0
- package/dist-ssg/client/assets/{dist-CzScJNYz.js → dist-BKTT7Vdm.js} +1 -1
- package/dist-ssg/client/assets/{dist-lNUMJW4A.js → dist-BPUIHtZ8.js} +1 -1
- package/dist-ssg/client/assets/dist-BuFVGK1x.js +1 -0
- package/dist-ssg/client/assets/{dist-BZ35ju6s.js → dist-CLrPzzut.js} +1 -1
- package/dist-ssg/client/assets/{dist-CuFabXJ8.js → dist-CVizFqBj.js} +1 -1
- package/dist-ssg/client/assets/{dist-BJ0zzLee.js → dist-CX1-5rfl.js} +1 -1
- package/dist-ssg/client/assets/{dist-Bg-C799P.js → dist-Cm5Vx6W8.js} +1 -1
- package/dist-ssg/client/assets/{dist-CrdkjkLH.js → dist-DJkx9TIh.js} +1 -1
- package/dist-ssg/client/assets/dist-DlrmChto.js +1 -0
- package/dist-ssg/client/assets/{dist-xprslEpB.js → dist-HHQTTSi-.js} +1 -1
- package/dist-ssg/client/assets/dist-bnfyzoQu.js +1 -0
- package/dist-ssg/client/assets/{dist-nDBVtvCj.js → dist-upAmtw9_.js} +1 -1
- package/dist-ssg/client/assets/{ghostty-web-D9IXftv-.js → ghostty-web-BKQcHDq5.js} +1 -1
- package/dist-ssg/client/assets/index.ssg-DBq9_pDs.js +1624 -0
- package/dist-ssg/client/assets/{init-C058TQcq.js → init-brQ3KbKB.js} +1 -1
- package/dist-ssg/client/assets/trpc-DGapI9Ny.js +1 -0
- package/dist-ssg/client/assets/webworkerAll-BKMUeO96.js +1 -0
- package/dist-ssg/client/index.ssg.html +1 -1
- package/dist-ssg/server/entry-server.js +167 -102
- package/package.json +3 -3
- package/dist/assets/CanvasRenderer-C0z1_uAq.js +0 -1
- package/dist/assets/WebGLRenderer-BgB0b-_m.js +0 -1
- package/dist/assets/WebGPURenderer-DUOyTSOY.js +0 -1
- package/dist/assets/browserAll-DrkY7ahm.js +0 -1
- package/dist/assets/dist-BLzDSe4i.js +0 -1
- package/dist/assets/dist-C2tzK2BJ.js +0 -1
- package/dist/assets/dist-LSzi3-xz.js +0 -1
- package/dist/assets/trpc-lJhbxi32.js +0 -1
- package/dist/assets/webworkerAll-DXrA-UNG.js +0 -1
- package/dist-ssg/client/assets/CanvasRenderer-pScAgtDS.js +0 -1
- package/dist-ssg/client/assets/WebGLRenderer-BAJXWFrw.js +0 -1
- package/dist-ssg/client/assets/WebGPURenderer-BeNNGqxY.js +0 -1
- package/dist-ssg/client/assets/browserAll-CkiE7Jmg.js +0 -1
- package/dist-ssg/client/assets/dist-BJBQISim.js +0 -1
- package/dist-ssg/client/assets/dist-BPi1lJ-H.js +0 -1
- package/dist-ssg/client/assets/dist-CNPnfIVE.js +0 -1
- package/dist-ssg/client/assets/index.ssg-L1BBuH-7.js +0 -1624
- package/dist-ssg/client/assets/trpc-BTuQHFNd.js +0 -1
- package/dist-ssg/client/assets/webworkerAll-ByOBLjhR.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{it as e}from"./Geometry-DYOOLchf.js";import{E as t,T as n}from"./index.ssg-
|
|
1
|
+
import{it as e}from"./Geometry-DYOOLchf.js";import{E as t,T as n}from"./index.ssg-DBq9_pDs.js";e.add(n),e.add(t);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{F as e}from"./index.ssg-DBq9_pDs.js";export{e as trpcClient};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./Geometry-DYOOLchf.js";import"./index.ssg-DBq9_pDs.js";import"./init-brQ3KbKB.js";
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
document.head.append(preconnectApi, preconnectStatic, stylesheet)
|
|
36
36
|
})()
|
|
37
37
|
</script>
|
|
38
|
-
<script type="module" crossorigin src="/assets/index.ssg-
|
|
38
|
+
<script type="module" crossorigin src="/assets/index.ssg-DBq9_pDs.js"></script>
|
|
39
39
|
<link rel="modulepreload" crossorigin href="/assets/chunk-DECur_0Z.js">
|
|
40
40
|
<link rel="modulepreload" crossorigin href="/assets/dist-UN0VvTJo.js">
|
|
41
41
|
<link rel="modulepreload" crossorigin href="/assets/dist-DK_X22KS.js">
|
|
@@ -32296,15 +32296,20 @@ var TranslationEngineIdSchema = enumType([
|
|
|
32296
32296
|
"browser",
|
|
32297
32297
|
"local",
|
|
32298
32298
|
"local-ct2",
|
|
32299
|
+
"local-llama",
|
|
32299
32300
|
"openai"
|
|
32300
32301
|
]);
|
|
32301
32302
|
var DEFAULT_TRANSLATION_ENGINE_ID = "browser";
|
|
32302
32303
|
function isManagedLocalTranslationEngineId(engineId) {
|
|
32304
|
+
return engineId === "local" || engineId === "local-ct2" || engineId === "local-llama";
|
|
32305
|
+
}
|
|
32306
|
+
function isDirectionalManagedLocalTranslationEngineId(engineId) {
|
|
32303
32307
|
return engineId === "local" || engineId === "local-ct2";
|
|
32304
32308
|
}
|
|
32305
32309
|
enumType([
|
|
32306
32310
|
"local",
|
|
32307
32311
|
"local-ct2",
|
|
32312
|
+
"local-llama",
|
|
32308
32313
|
"openai"
|
|
32309
32314
|
]);
|
|
32310
32315
|
var LocalModelDownloadStatusSchema = enumType([
|
|
@@ -32419,7 +32424,11 @@ var LocalModelProfileLoadStateSchema = objectType({
|
|
|
32419
32424
|
updatedAt: numberType().int().nonnegative().optional()
|
|
32420
32425
|
});
|
|
32421
32426
|
objectType({
|
|
32422
|
-
engineId: enumType([
|
|
32427
|
+
engineId: enumType([
|
|
32428
|
+
"local",
|
|
32429
|
+
"local-ct2",
|
|
32430
|
+
"local-llama"
|
|
32431
|
+
]),
|
|
32423
32432
|
modelId: stringType().min(1),
|
|
32424
32433
|
selectedGroupId: stringType().min(1).optional(),
|
|
32425
32434
|
groupId: stringType().min(1).optional(),
|
|
@@ -32468,6 +32477,11 @@ objectType({
|
|
|
32468
32477
|
downloadedBytes: numberType().int().nonnegative().optional()
|
|
32469
32478
|
})).default([])
|
|
32470
32479
|
});
|
|
32480
|
+
enumType([
|
|
32481
|
+
"local",
|
|
32482
|
+
"network",
|
|
32483
|
+
"recommended"
|
|
32484
|
+
]);
|
|
32471
32485
|
var TranslationEngineDependencyStateSchema = enumType([
|
|
32472
32486
|
"installed",
|
|
32473
32487
|
"installing",
|
|
@@ -32549,10 +32563,16 @@ var TranslationLocalCt2SettingsSchema = objectType({
|
|
|
32549
32563
|
selectedGroupId: stringType().optional(),
|
|
32550
32564
|
hfEndpoint: stringType().default("")
|
|
32551
32565
|
});
|
|
32566
|
+
var TranslationLocalLlamaSettingsSchema = objectType({
|
|
32567
|
+
model: stringType().default("bartowski/Qwen2.5-0.5B-Instruct-GGUF"),
|
|
32568
|
+
selectedGroupId: stringType().optional(),
|
|
32569
|
+
hfEndpoint: stringType().default("")
|
|
32570
|
+
});
|
|
32552
32571
|
objectType({
|
|
32553
32572
|
openai: TranslationOpenAISettingsSchema.default(TranslationOpenAISettingsSchema.parse({})),
|
|
32554
32573
|
local: TranslationLocalSettingsSchema.default(TranslationLocalSettingsSchema.parse({})),
|
|
32555
|
-
localCt2: TranslationLocalCt2SettingsSchema.default(TranslationLocalCt2SettingsSchema.parse({}))
|
|
32574
|
+
localCt2: TranslationLocalCt2SettingsSchema.default(TranslationLocalCt2SettingsSchema.parse({})),
|
|
32575
|
+
localLlama: TranslationLocalLlamaSettingsSchema.default(TranslationLocalLlamaSettingsSchema.parse({}))
|
|
32556
32576
|
});
|
|
32557
32577
|
objectType({
|
|
32558
32578
|
engineId: TranslationEngineIdSchema,
|
|
@@ -32578,6 +32598,10 @@ var TranslationEngineProjectSettingsSchema = objectType({
|
|
|
32578
32598
|
model: stringType().min(1).optional(),
|
|
32579
32599
|
selectedGroupId: stringType().min(1).optional()
|
|
32580
32600
|
}).default({}),
|
|
32601
|
+
localLlama: objectType({
|
|
32602
|
+
model: stringType().min(1).optional(),
|
|
32603
|
+
selectedGroupId: stringType().min(1).optional()
|
|
32604
|
+
}).default({}),
|
|
32581
32605
|
openai: objectType({ model: stringType().min(1).optional() }).default({})
|
|
32582
32606
|
}).default({});
|
|
32583
32607
|
var DocumentTranslationConfigSchema = objectType({
|
|
@@ -114686,85 +114710,6 @@ function navigateHashAnchor(anchorElement, hash) {
|
|
|
114686
114710
|
return true;
|
|
114687
114711
|
}
|
|
114688
114712
|
//#endregion
|
|
114689
|
-
//#region src/lib/document-translation-session-state.ts
|
|
114690
|
-
var DOCUMENT_TRANSLATION_SESSION_STORAGE_KEY = "openspecui:document-translation:mode";
|
|
114691
|
-
var DEFAULT_ACTIVATION = "source";
|
|
114692
|
-
var ACTIVATION_STORAGE_EVENT = "openspecui:document-translation-session-change";
|
|
114693
|
-
function isDocumentTranslationActivation(value) {
|
|
114694
|
-
return value === "source" || value === "translated";
|
|
114695
|
-
}
|
|
114696
|
-
function readDocumentTranslationActivation() {
|
|
114697
|
-
if (typeof window === "undefined") return DEFAULT_ACTIVATION;
|
|
114698
|
-
try {
|
|
114699
|
-
const value = window.sessionStorage.getItem(DOCUMENT_TRANSLATION_SESSION_STORAGE_KEY);
|
|
114700
|
-
return isDocumentTranslationActivation(value) ? value : DEFAULT_ACTIVATION;
|
|
114701
|
-
} catch {
|
|
114702
|
-
return DEFAULT_ACTIVATION;
|
|
114703
|
-
}
|
|
114704
|
-
}
|
|
114705
|
-
function writeDocumentTranslationActivation(value) {
|
|
114706
|
-
if (typeof window === "undefined") return;
|
|
114707
|
-
try {
|
|
114708
|
-
window.sessionStorage.setItem(DOCUMENT_TRANSLATION_SESSION_STORAGE_KEY, value);
|
|
114709
|
-
} catch {
|
|
114710
|
-
return;
|
|
114711
|
-
}
|
|
114712
|
-
window.dispatchEvent(new CustomEvent(ACTIVATION_STORAGE_EVENT, { detail: value }));
|
|
114713
|
-
}
|
|
114714
|
-
function useDocumentTranslationActivation() {
|
|
114715
|
-
const [activation, setActivationState] = (0, import_react.useState)(readDocumentTranslationActivation);
|
|
114716
|
-
(0, import_react.useEffect)(() => {
|
|
114717
|
-
const handleActivationChange = () => {
|
|
114718
|
-
setActivationState(readDocumentTranslationActivation());
|
|
114719
|
-
};
|
|
114720
|
-
window.addEventListener(ACTIVATION_STORAGE_EVENT, handleActivationChange);
|
|
114721
|
-
window.addEventListener("storage", handleActivationChange);
|
|
114722
|
-
return () => {
|
|
114723
|
-
window.removeEventListener(ACTIVATION_STORAGE_EVENT, handleActivationChange);
|
|
114724
|
-
window.removeEventListener("storage", handleActivationChange);
|
|
114725
|
-
};
|
|
114726
|
-
}, []);
|
|
114727
|
-
return {
|
|
114728
|
-
activation,
|
|
114729
|
-
setActivation: (0, import_react.useCallback)((value) => {
|
|
114730
|
-
writeDocumentTranslationActivation(value);
|
|
114731
|
-
setActivationState(value);
|
|
114732
|
-
}, [])
|
|
114733
|
-
};
|
|
114734
|
-
}
|
|
114735
|
-
//#endregion
|
|
114736
|
-
//#region src/lib/resolve-document-translation-config.ts
|
|
114737
|
-
function resolveDocumentTranslationConfig(translationConfig, globalSettings) {
|
|
114738
|
-
if (!translationConfig) return void 0;
|
|
114739
|
-
const local = translationConfig.engines?.local ?? {};
|
|
114740
|
-
const localCt2 = translationConfig.engines?.localCt2 ?? {};
|
|
114741
|
-
const openai = translationConfig.engines?.openai ?? {};
|
|
114742
|
-
const resolvedLocalModel = local.model ?? globalSettings?.translationEngines.local?.model;
|
|
114743
|
-
const resolvedLocalSelectedGroupId = local.selectedGroupId ?? globalSettings?.translationEngines.local?.selectedGroupId;
|
|
114744
|
-
const resolvedLocalCt2Model = localCt2.model ?? globalSettings?.translationEngines.localCt2?.model;
|
|
114745
|
-
const resolvedLocalCt2SelectedGroupId = localCt2.selectedGroupId ?? globalSettings?.translationEngines.localCt2?.selectedGroupId;
|
|
114746
|
-
const resolvedOpenAIModel = openai.model ?? globalSettings?.translationEngines.openai?.model;
|
|
114747
|
-
return {
|
|
114748
|
-
...translationConfig,
|
|
114749
|
-
engines: {
|
|
114750
|
-
local: {
|
|
114751
|
-
...local,
|
|
114752
|
-
...resolvedLocalModel ? { model: resolvedLocalModel } : {},
|
|
114753
|
-
...resolvedLocalSelectedGroupId ? { selectedGroupId: resolvedLocalSelectedGroupId } : {}
|
|
114754
|
-
},
|
|
114755
|
-
localCt2: {
|
|
114756
|
-
...localCt2,
|
|
114757
|
-
...resolvedLocalCt2Model ? { model: resolvedLocalCt2Model } : {},
|
|
114758
|
-
...resolvedLocalCt2SelectedGroupId ? { selectedGroupId: resolvedLocalCt2SelectedGroupId } : {}
|
|
114759
|
-
},
|
|
114760
|
-
openai: {
|
|
114761
|
-
...openai,
|
|
114762
|
-
...resolvedOpenAIModel ? { model: resolvedOpenAIModel } : {}
|
|
114763
|
-
}
|
|
114764
|
-
}
|
|
114765
|
-
};
|
|
114766
|
-
}
|
|
114767
|
-
//#endregion
|
|
114768
114713
|
//#region ../browser-translator/dist/index.mjs
|
|
114769
114714
|
async function scanBrowserTranslationSupportTable(options) {
|
|
114770
114715
|
const translator = (options.win ?? window).Translator;
|
|
@@ -136508,6 +136453,9 @@ buildSearchIndex(SUPPORTED_TRANSLATION_LANGUAGES.map((language) => ({
|
|
|
136508
136453
|
//#endregion
|
|
136509
136454
|
//#region src/lib/browser-translation.ts
|
|
136510
136455
|
var browserSupportTableCache = /* @__PURE__ */ new Map();
|
|
136456
|
+
function isRenderableTranslationSegment(segment) {
|
|
136457
|
+
return typeof segment === "object" && segment !== null && !Array.isArray(segment);
|
|
136458
|
+
}
|
|
136511
136459
|
function createBrowserTranslationExecution() {
|
|
136512
136460
|
return {
|
|
136513
136461
|
factory: createBrowserTranslatorFactory(),
|
|
@@ -136840,7 +136788,7 @@ async function translateMarkdownDocumentProgressively(args, onPatch) {
|
|
|
136840
136788
|
onPatch
|
|
136841
136789
|
})));
|
|
136842
136790
|
return {
|
|
136843
|
-
segments: translatedSegments,
|
|
136791
|
+
segments: normalizeTranslationSegments(translatedSegments),
|
|
136844
136792
|
displayMode: args.displayMode,
|
|
136845
136793
|
sourceLanguage: languageDetection.documentLanguage,
|
|
136846
136794
|
targetLanguage: args.targetLanguage
|
|
@@ -137001,7 +136949,7 @@ async function translatePendingJobsBySourceLanguage(input) {
|
|
|
137001
136949
|
while (workerPromises.size > 0) await Promise.race(workerPromises);
|
|
137002
136950
|
}
|
|
137003
136951
|
function getUnsupportedEngineLanguagePairMessage(input) {
|
|
137004
|
-
if (!
|
|
136952
|
+
if (!isDirectionalManagedLocalTranslationEngineId(input.engine.cacheIdentity.engineId)) return null;
|
|
137005
136953
|
const directionCheck = checkLocalDirectionalModelLanguagePair({
|
|
137006
136954
|
model: input.engine.cacheIdentity.model,
|
|
137007
136955
|
sourceLanguage: input.sourceLanguage,
|
|
@@ -137010,6 +136958,9 @@ function getUnsupportedEngineLanguagePairMessage(input) {
|
|
|
137010
136958
|
if (directionCheck.supported) return null;
|
|
137011
136959
|
return directionCheck.message ?? "Selected local model does not support the detected translation direction.";
|
|
137012
136960
|
}
|
|
136961
|
+
function normalizeTranslationSegments(segments) {
|
|
136962
|
+
return segments.filter(isRenderableTranslationSegment);
|
|
136963
|
+
}
|
|
137013
136964
|
function summarizeTranslationLogThroughput(logs) {
|
|
137014
136965
|
if (logs.length === 0) return 0;
|
|
137015
136966
|
const totalTokens = logs.reduce((total, log) => total + log.estimatedTokens, 0);
|
|
@@ -137562,6 +137513,93 @@ function getErrorMessage(error) {
|
|
|
137562
137513
|
return error instanceof Error ? error.message : "Unknown translation error.";
|
|
137563
137514
|
}
|
|
137564
137515
|
//#endregion
|
|
137516
|
+
//#region src/lib/document-translation-session-state.ts
|
|
137517
|
+
var DOCUMENT_TRANSLATION_SESSION_STORAGE_KEY = "openspecui:document-translation:mode";
|
|
137518
|
+
var DEFAULT_ACTIVATION = "source";
|
|
137519
|
+
var ACTIVATION_STORAGE_EVENT = "openspecui:document-translation-session-change";
|
|
137520
|
+
function isDocumentTranslationActivation(value) {
|
|
137521
|
+
return value === "source" || value === "translated";
|
|
137522
|
+
}
|
|
137523
|
+
function readDocumentTranslationActivation() {
|
|
137524
|
+
if (typeof window === "undefined") return DEFAULT_ACTIVATION;
|
|
137525
|
+
try {
|
|
137526
|
+
const value = window.sessionStorage.getItem(DOCUMENT_TRANSLATION_SESSION_STORAGE_KEY);
|
|
137527
|
+
return isDocumentTranslationActivation(value) ? value : DEFAULT_ACTIVATION;
|
|
137528
|
+
} catch {
|
|
137529
|
+
return DEFAULT_ACTIVATION;
|
|
137530
|
+
}
|
|
137531
|
+
}
|
|
137532
|
+
function writeDocumentTranslationActivation(value) {
|
|
137533
|
+
if (typeof window === "undefined") return;
|
|
137534
|
+
try {
|
|
137535
|
+
window.sessionStorage.setItem(DOCUMENT_TRANSLATION_SESSION_STORAGE_KEY, value);
|
|
137536
|
+
} catch {
|
|
137537
|
+
return;
|
|
137538
|
+
}
|
|
137539
|
+
window.dispatchEvent(new CustomEvent(ACTIVATION_STORAGE_EVENT, { detail: value }));
|
|
137540
|
+
}
|
|
137541
|
+
function useDocumentTranslationActivation() {
|
|
137542
|
+
const [activation, setActivationState] = (0, import_react.useState)(readDocumentTranslationActivation);
|
|
137543
|
+
(0, import_react.useEffect)(() => {
|
|
137544
|
+
const handleActivationChange = () => {
|
|
137545
|
+
setActivationState(readDocumentTranslationActivation());
|
|
137546
|
+
};
|
|
137547
|
+
window.addEventListener(ACTIVATION_STORAGE_EVENT, handleActivationChange);
|
|
137548
|
+
window.addEventListener("storage", handleActivationChange);
|
|
137549
|
+
return () => {
|
|
137550
|
+
window.removeEventListener(ACTIVATION_STORAGE_EVENT, handleActivationChange);
|
|
137551
|
+
window.removeEventListener("storage", handleActivationChange);
|
|
137552
|
+
};
|
|
137553
|
+
}, []);
|
|
137554
|
+
return {
|
|
137555
|
+
activation,
|
|
137556
|
+
setActivation: (0, import_react.useCallback)((value) => {
|
|
137557
|
+
writeDocumentTranslationActivation(value);
|
|
137558
|
+
setActivationState(value);
|
|
137559
|
+
}, [])
|
|
137560
|
+
};
|
|
137561
|
+
}
|
|
137562
|
+
//#endregion
|
|
137563
|
+
//#region src/lib/resolve-document-translation-config.ts
|
|
137564
|
+
function resolveDocumentTranslationConfig(translationConfig, globalSettings) {
|
|
137565
|
+
if (!translationConfig) return void 0;
|
|
137566
|
+
const local = translationConfig.engines?.local ?? {};
|
|
137567
|
+
const localCt2 = translationConfig.engines?.localCt2 ?? {};
|
|
137568
|
+
const localLlama = translationConfig.engines?.localLlama ?? {};
|
|
137569
|
+
const openai = translationConfig.engines?.openai ?? {};
|
|
137570
|
+
const resolvedLocalModel = local.model ?? globalSettings?.translationEngines.local?.model;
|
|
137571
|
+
const resolvedLocalSelectedGroupId = local.selectedGroupId ?? globalSettings?.translationEngines.local?.selectedGroupId;
|
|
137572
|
+
const resolvedLocalCt2Model = localCt2.model ?? globalSettings?.translationEngines.localCt2?.model;
|
|
137573
|
+
const resolvedLocalCt2SelectedGroupId = localCt2.selectedGroupId ?? globalSettings?.translationEngines.localCt2?.selectedGroupId;
|
|
137574
|
+
const resolvedLocalLlamaModel = localLlama.model ?? globalSettings?.translationEngines.localLlama?.model;
|
|
137575
|
+
const resolvedLocalLlamaSelectedGroupId = localLlama.selectedGroupId ?? globalSettings?.translationEngines.localLlama?.selectedGroupId;
|
|
137576
|
+
const resolvedOpenAIModel = openai.model ?? globalSettings?.translationEngines.openai?.model;
|
|
137577
|
+
return {
|
|
137578
|
+
...translationConfig,
|
|
137579
|
+
engines: {
|
|
137580
|
+
local: {
|
|
137581
|
+
...local,
|
|
137582
|
+
...resolvedLocalModel ? { model: resolvedLocalModel } : {},
|
|
137583
|
+
...resolvedLocalSelectedGroupId ? { selectedGroupId: resolvedLocalSelectedGroupId } : {}
|
|
137584
|
+
},
|
|
137585
|
+
localCt2: {
|
|
137586
|
+
...localCt2,
|
|
137587
|
+
...resolvedLocalCt2Model ? { model: resolvedLocalCt2Model } : {},
|
|
137588
|
+
...resolvedLocalCt2SelectedGroupId ? { selectedGroupId: resolvedLocalCt2SelectedGroupId } : {}
|
|
137589
|
+
},
|
|
137590
|
+
localLlama: {
|
|
137591
|
+
...localLlama,
|
|
137592
|
+
...resolvedLocalLlamaModel ? { model: resolvedLocalLlamaModel } : {},
|
|
137593
|
+
...resolvedLocalLlamaSelectedGroupId ? { selectedGroupId: resolvedLocalLlamaSelectedGroupId } : {}
|
|
137594
|
+
},
|
|
137595
|
+
openai: {
|
|
137596
|
+
...openai,
|
|
137597
|
+
...resolvedOpenAIModel ? { model: resolvedOpenAIModel } : {}
|
|
137598
|
+
}
|
|
137599
|
+
}
|
|
137600
|
+
};
|
|
137601
|
+
}
|
|
137602
|
+
//#endregion
|
|
137565
137603
|
//#region ../core/src/local-download-profiles.ts
|
|
137566
137604
|
function selectLocalDownloadGroup(plan, selectedGroupId) {
|
|
137567
137605
|
if (!plan?.groups?.length) return null;
|
|
@@ -137719,15 +137757,17 @@ async function resolveTranslateServiceState(input) {
|
|
|
137719
137757
|
localModel: model,
|
|
137720
137758
|
localSelectedGroupId: localEngineConfig.selectedGroupId
|
|
137721
137759
|
}) });
|
|
137722
|
-
|
|
137723
|
-
|
|
137724
|
-
|
|
137725
|
-
|
|
137726
|
-
|
|
137727
|
-
|
|
137728
|
-
|
|
137729
|
-
|
|
137730
|
-
|
|
137760
|
+
if (isDirectionalManagedLocalTranslationEngineId(config.engineId)) {
|
|
137761
|
+
const directionCheck = checkLocalDirectionalModelLanguagePair({
|
|
137762
|
+
model,
|
|
137763
|
+
targetLanguage: config.targetLanguage
|
|
137764
|
+
});
|
|
137765
|
+
if (!directionCheck.supported) return emitTranslateServiceState(input.onUpdate, { status: {
|
|
137766
|
+
state: "unavailable",
|
|
137767
|
+
engineId: config.engineId,
|
|
137768
|
+
message: directionCheck.message ?? "Selected local model does not support the configured target language."
|
|
137769
|
+
} });
|
|
137770
|
+
}
|
|
137731
137771
|
input.onUpdate?.(createTranslateServiceState({ status: projectTranslateServiceStatus({
|
|
137732
137772
|
enabled: config.enabled,
|
|
137733
137773
|
hasSource: input.hasSource,
|
|
@@ -137897,13 +137937,16 @@ function getManagedLocalEngineConfig(config) {
|
|
|
137897
137937
|
return config.engineId === "local-ct2" ? {
|
|
137898
137938
|
model: config.engines.localCt2.model,
|
|
137899
137939
|
selectedGroupId: config.engines.localCt2.selectedGroupId
|
|
137940
|
+
} : config.engineId === "local-llama" ? {
|
|
137941
|
+
model: config.engines.localLlama.model,
|
|
137942
|
+
selectedGroupId: config.engines.localLlama.selectedGroupId
|
|
137900
137943
|
} : {
|
|
137901
137944
|
model: config.engines.local.model,
|
|
137902
137945
|
selectedGroupId: config.engines.local.selectedGroupId
|
|
137903
137946
|
};
|
|
137904
137947
|
}
|
|
137905
137948
|
async function queryManagedLocalPanelState(engineId, input) {
|
|
137906
|
-
return engineId === "local" ? trpcClient.localModels.panelState.query(input) : trpcClient.localCt2Models.panelState.query(input);
|
|
137949
|
+
return engineId === "local" ? trpcClient.localModels.panelState.query(input) : engineId === "local-ct2" ? trpcClient.localCt2Models.panelState.query(input) : trpcClient.localLlamaModels.panelState.query(input);
|
|
137907
137950
|
}
|
|
137908
137951
|
var TrpcTranslator = class {
|
|
137909
137952
|
constructor(options) {
|
|
@@ -137978,11 +138021,13 @@ function useDocumentTranslation(markdown, config) {
|
|
|
137978
138021
|
const abortRef = (0, import_react.useRef)(null);
|
|
137979
138022
|
const generationRef = (0, import_react.useRef)(0);
|
|
137980
138023
|
const latestStartRef = (0, import_react.useRef)(null);
|
|
138024
|
+
const segmentPatchMapRef = (0, import_react.useRef)(/* @__PURE__ */ new Map());
|
|
137981
138025
|
const { activation } = useDocumentTranslationActivation();
|
|
137982
138026
|
const cancel = (0, import_react.useCallback)(() => {
|
|
137983
138027
|
generationRef.current += 1;
|
|
137984
138028
|
abortRef.current?.abort();
|
|
137985
138029
|
abortRef.current = null;
|
|
138030
|
+
segmentPatchMapRef.current.clear();
|
|
137986
138031
|
setStatus("source");
|
|
137987
138032
|
setResult(null);
|
|
137988
138033
|
setError(null);
|
|
@@ -137991,6 +138036,7 @@ function useDocumentTranslation(markdown, config) {
|
|
|
137991
138036
|
generationRef.current += 1;
|
|
137992
138037
|
abortRef.current?.abort();
|
|
137993
138038
|
abortRef.current = null;
|
|
138039
|
+
segmentPatchMapRef.current.clear();
|
|
137994
138040
|
setStatus("source");
|
|
137995
138041
|
setResult(null);
|
|
137996
138042
|
setError(null);
|
|
@@ -138000,6 +138046,7 @@ function useDocumentTranslation(markdown, config) {
|
|
|
138000
138046
|
generationRef.current += 1;
|
|
138001
138047
|
setCapability(null);
|
|
138002
138048
|
setBrowserSupportTable(null);
|
|
138049
|
+
segmentPatchMapRef.current.clear();
|
|
138003
138050
|
setResult(null);
|
|
138004
138051
|
setStatus("source");
|
|
138005
138052
|
setError(null);
|
|
@@ -138012,6 +138059,8 @@ function useDocumentTranslation(markdown, config) {
|
|
|
138012
138059
|
config?.engines.local.selectedGroupId,
|
|
138013
138060
|
config?.engines.localCt2.model,
|
|
138014
138061
|
config?.engines.localCt2.selectedGroupId,
|
|
138062
|
+
config?.engines.localLlama.model,
|
|
138063
|
+
config?.engines.localLlama.selectedGroupId,
|
|
138015
138064
|
config?.engines.openai.model,
|
|
138016
138065
|
config?.targetLanguage
|
|
138017
138066
|
]);
|
|
@@ -138054,6 +138103,8 @@ function useDocumentTranslation(markdown, config) {
|
|
|
138054
138103
|
config?.engines.local.selectedGroupId,
|
|
138055
138104
|
config?.engines.localCt2.model,
|
|
138056
138105
|
config?.engines.localCt2.selectedGroupId,
|
|
138106
|
+
config?.engines.localLlama.model,
|
|
138107
|
+
config?.engines.localLlama.selectedGroupId,
|
|
138057
138108
|
config?.targetLanguage,
|
|
138058
138109
|
markdown.length
|
|
138059
138110
|
]);
|
|
@@ -138064,6 +138115,7 @@ function useDocumentTranslation(markdown, config) {
|
|
|
138064
138115
|
const generationId = generationRef.current + 1;
|
|
138065
138116
|
generationRef.current = generationId;
|
|
138066
138117
|
abortRef.current = controller;
|
|
138118
|
+
segmentPatchMapRef.current.clear();
|
|
138067
138119
|
setError(null);
|
|
138068
138120
|
setStatus("initializing");
|
|
138069
138121
|
try {
|
|
@@ -138108,11 +138160,11 @@ function useDocumentTranslation(markdown, config) {
|
|
|
138108
138160
|
setResult((current) => applyDocumentTranslationPatch(current, patch, {
|
|
138109
138161
|
displayMode: config.displayMode,
|
|
138110
138162
|
targetLanguage: config.targetLanguage
|
|
138111
|
-
}));
|
|
138163
|
+
}, segmentPatchMapRef.current));
|
|
138112
138164
|
});
|
|
138113
138165
|
if (controller.signal.aborted || abortRef.current !== controller || generationRef.current !== generationId) return;
|
|
138114
138166
|
const documentFailure = getDocumentTranslationFailureMessage(nextResult);
|
|
138115
|
-
setResult(nextResult);
|
|
138167
|
+
setResult(normalizeDocumentTranslationResult(nextResult));
|
|
138116
138168
|
if (documentFailure) {
|
|
138117
138169
|
setError(documentFailure);
|
|
138118
138170
|
setStatus("error");
|
|
@@ -138138,6 +138190,8 @@ function useDocumentTranslation(markdown, config) {
|
|
|
138138
138190
|
config?.engines.local.selectedGroupId,
|
|
138139
138191
|
config?.engines.localCt2.model,
|
|
138140
138192
|
config?.engines.localCt2.selectedGroupId,
|
|
138193
|
+
config?.engines.localLlama.model,
|
|
138194
|
+
config?.engines.localLlama.selectedGroupId,
|
|
138141
138195
|
markdown,
|
|
138142
138196
|
serviceStatus
|
|
138143
138197
|
]);
|
|
@@ -138167,22 +138221,33 @@ function useDocumentTranslation(markdown, config) {
|
|
|
138167
138221
|
reset
|
|
138168
138222
|
};
|
|
138169
138223
|
}
|
|
138224
|
+
function isDocumentTranslationSegment(segment) {
|
|
138225
|
+
return typeof segment === "object" && segment !== null && !Array.isArray(segment);
|
|
138226
|
+
}
|
|
138170
138227
|
function getDocumentTranslationFailureMessage(result) {
|
|
138171
|
-
const segments = (Array.isArray(result.segments) ? result.segments : []).filter(
|
|
138228
|
+
const segments = (Array.isArray(result.segments) ? result.segments : []).filter(isDocumentTranslationSegment);
|
|
138172
138229
|
if (segments.length === 0) return null;
|
|
138173
138230
|
if (segments.some((segment) => segment.status !== "error" && typeof segment.target === "string")) return null;
|
|
138174
138231
|
const errors = segments.map((segment) => segment.status === "error" ? segment.error : void 0).filter((message) => typeof message === "string" && message.length > 0);
|
|
138175
138232
|
if (errors.length === 0) return null;
|
|
138176
138233
|
return errors[0] ?? "Translation failed.";
|
|
138177
138234
|
}
|
|
138178
|
-
function applyDocumentTranslationPatch(current, patch, fallback) {
|
|
138179
|
-
|
|
138180
|
-
|
|
138181
|
-
|
|
138235
|
+
function applyDocumentTranslationPatch(current, patch, fallback, patchMap) {
|
|
138236
|
+
patchMap.set(patch.segmentIndex, patch.segment);
|
|
138237
|
+
return buildPatchedDocumentTranslationResult(current, fallback, patchMap);
|
|
138238
|
+
}
|
|
138239
|
+
function buildPatchedDocumentTranslationResult(current, fallback, patchMap) {
|
|
138240
|
+
return normalizeDocumentTranslationResult({
|
|
138182
138241
|
displayMode: current?.displayMode ?? fallback.displayMode,
|
|
138183
138242
|
sourceLanguage: current?.sourceLanguage,
|
|
138184
138243
|
targetLanguage: current?.targetLanguage ?? fallback.targetLanguage,
|
|
138185
|
-
segments
|
|
138244
|
+
segments: [...patchMap.entries()].sort((left, right) => left[0] - right[0]).map(([, segment]) => segment)
|
|
138245
|
+
});
|
|
138246
|
+
}
|
|
138247
|
+
function normalizeDocumentTranslationResult(result) {
|
|
138248
|
+
return {
|
|
138249
|
+
...result,
|
|
138250
|
+
segments: (Array.isArray(result.segments) ? result.segments : []).filter(isDocumentTranslationSegment)
|
|
138186
138251
|
};
|
|
138187
138252
|
}
|
|
138188
138253
|
//#endregion
|
|
@@ -149081,7 +149146,7 @@ function createTranslationProjection(result) {
|
|
|
149081
149146
|
};
|
|
149082
149147
|
}
|
|
149083
149148
|
function getRenderableTranslationSegments(result) {
|
|
149084
|
-
return (Array.isArray(result.segments) ? result.segments : []).filter(
|
|
149149
|
+
return (Array.isArray(result.segments) ? result.segments : []).filter(isRenderableTranslationSegment);
|
|
149085
149150
|
}
|
|
149086
149151
|
function createTranslatedHeadingTransform(input, segment, displayMode) {
|
|
149087
149152
|
const projectedTarget = segment.target ?? "";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openspecui/web",
|
|
3
|
-
"version": "3.11.
|
|
3
|
+
"version": "3.11.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"openspecui-ssg": "./dist-ssg/ssg-cli.mjs"
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"@codemirror/view": "^6.38.8",
|
|
40
40
|
"@lezer/common": "^1.4.0",
|
|
41
41
|
"@lezer/highlight": "^1.2.3",
|
|
42
|
-
"@openspecui/search": "3.11.
|
|
43
|
-
"@openspecui/server": "3.11.
|
|
42
|
+
"@openspecui/search": "3.11.3",
|
|
43
|
+
"@openspecui/server": "3.11.3",
|
|
44
44
|
"@storybook/addon-vitest": "^10.2.19",
|
|
45
45
|
"@storybook/web-components": "^10.2.19",
|
|
46
46
|
"@storybook/web-components-vite": "^10.2.19",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-Dr8DqqDe.js";import{w as e}from"./main-DpM-T-Pk.js";export{e as CanvasRenderer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-Dr8DqqDe.js";import{C as e}from"./main-DpM-T-Pk.js";export{e as WebGLRenderer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-Dr8DqqDe.js";import{S as e}from"./main-DpM-T-Pk.js";export{e as WebGPURenderer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{it as e,x as t}from"./Geometry-Dr8DqqDe.js";import{A as n,D as r,O as i,k as a}from"./main-DpM-T-Pk.js";import"./init-D41cyy2z.js";e.add(n),e.mixin(t,a),e.add(i),e.mixin(t,r);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-vqrjFRzf.js";import{g as e}from"./main-DpM-T-Pk.js";export{e as css};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-vqrjFRzf.js";import{t as e}from"./main-DpM-T-Pk.js";export{e as yaml};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-vqrjFRzf.js";import{b as e}from"./main-DpM-T-Pk.js";export{e as json};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./jsx-runtime-1jQlXmIx.js";import{F as e}from"./main-DpM-T-Pk.js";export{e as trpcClient};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-Dr8DqqDe.js";import"./main-DpM-T-Pk.js";import"./init-D41cyy2z.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-DYOOLchf.js";import{w as e}from"./index.ssg-L1BBuH-7.js";export{e as CanvasRenderer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-DYOOLchf.js";import{C as e}from"./index.ssg-L1BBuH-7.js";export{e as WebGLRenderer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Geometry-DYOOLchf.js";import{S as e}from"./index.ssg-L1BBuH-7.js";export{e as WebGPURenderer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{it as e,x as t}from"./Geometry-DYOOLchf.js";import{A as n,D as r,O as i,k as a}from"./index.ssg-L1BBuH-7.js";import"./init-C058TQcq.js";e.add(n),e.mixin(t,a),e.add(i),e.mixin(t,r);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-UN0VvTJo.js";import{g as e}from"./index.ssg-L1BBuH-7.js";export{e as css};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-UN0VvTJo.js";import{t as e}from"./index.ssg-L1BBuH-7.js";export{e as yaml};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-UN0VvTJo.js";import{b as e}from"./index.ssg-L1BBuH-7.js";export{e as json};
|