@huanlin/dsh-plugin-mineru 0.2.3 → 0.2.4
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/lib/client.js +15 -2
- package/lib/client.js.map +1 -1
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -998,8 +998,21 @@ window.__ModuleLoader__.load({
|
|
|
998
998
|
zh,
|
|
999
999
|
en
|
|
1000
1000
|
}), "dsh-mineru: dictionaries");
|
|
1001
|
-
|
|
1002
|
-
|
|
1001
|
+
ctx.effect(() => {
|
|
1002
|
+
let dispose;
|
|
1003
|
+
const sync = () => {
|
|
1004
|
+
dispose?.();
|
|
1005
|
+
dispose = void 0;
|
|
1006
|
+
const store = ctx.get("betterLocale");
|
|
1007
|
+
if (store !== void 0) dispose = store.register(NS, dicts);
|
|
1008
|
+
};
|
|
1009
|
+
sync();
|
|
1010
|
+
const unsubscribe = ctx.locale.subscribe(sync);
|
|
1011
|
+
return () => {
|
|
1012
|
+
unsubscribe();
|
|
1013
|
+
dispose?.();
|
|
1014
|
+
};
|
|
1015
|
+
}, "dsh-mineru: better-locale override dicts");
|
|
1003
1016
|
const connection = ctx.connection;
|
|
1004
1017
|
const t = ctx.locale.bind(NS);
|
|
1005
1018
|
const settingsInjected = () => ({
|
package/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":["useState","useCallback","css"],"sources":["../src/client/SettingsPage.tsx","../src/client/locales.ts","../src/client/dictionaries.ts","../src/client/index.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\nimport type { PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'\nimport type { PropsLocale } from '@deepseek-ai/dsh-client-ui-slots'\nimport type { ClientConnectionRpc, RpcResult } from '@deepseek-ai/dsh-client-connection/client'\nimport type { MineruRuntimeConfig } from '../rpc.js'\nimport type { MineruKey } from './locales.js'\nimport css from './SettingsPage.module.css'\n\nexport interface MineruSettingsInjected {\n readonly rpc: ClientConnectionRpc\n readonly t: (key: string) => string\n}\n\ntype SettingsPageProps = PropsRuntime<'settings.section'> & PropsLocale<'dsh-mineru'> & MineruSettingsInjected\n\ntype ConfigGetResult = RpcResult<{ readonly config: MineruRuntimeConfig }>\ntype ConfigSetResult = RpcResult<{ readonly config: MineruRuntimeConfig }>\ntype HealthResult = RpcResult<{ readonly status: string; readonly version?: string; readonly queued_tasks?: number; readonly processing_tasks?: number }>\n\nconst BACKENDS = ['pipeline', 'vlm-engine', 'hybrid-engine', 'vlm-http-client', 'hybrid-http-client'] as const\nconst PARSE_METHODS = ['auto', 'txt', 'ocr'] as const\n\nasync function callRpc<T>(rpc: ClientConnectionRpc, endpoint: string, payload: unknown): Promise<T> {\n return rpc.call('/mineru-api', endpoint, payload) as Promise<T>\n}\n\nexport function SettingsPage({ rpc, t }: SettingsPageProps) {\n const [config, setConfig] = useState<MineruRuntimeConfig | null>(null)\n const [draft, setDraft] = useState<MineruRuntimeConfig | null>(null)\n const [loading, setLoading] = useState(true)\n const [saving, setSaving] = useState(false)\n const [saved, setSaved] = useState(false)\n const [error, setError] = useState<string | undefined>(undefined)\n const [testStatus, setTestStatus] = useState<'idle' | 'testing' | 'healthy' | 'unhealthy' | 'error'>('idle')\n const [testMessage, setTestMessage] = useState<string | undefined>(undefined)\n\n const refresh = useCallback(async () => {\n setLoading(true)\n setError(undefined)\n try {\n const result = await callRpc<ConfigGetResult>(rpc, 'mineru/config.get', {})\n if (result.ok) {\n setConfig(result.value.config)\n setDraft(result.value.config)\n } else {\n setError(result.error.message)\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err))\n } finally {\n setLoading(false)\n }\n }, [rpc])\n\n useEffect(() => { void refresh() }, [refresh])\n\n const save = useCallback(async () => {\n if (draft === null) return\n setSaving(true)\n setError(undefined)\n setSaved(false)\n try {\n const result = await callRpc<ConfigSetResult>(rpc, 'mineru/config.set', { config: draft })\n if (result.ok) {\n setConfig(result.value.config)\n setDraft(result.value.config)\n setSaved(true)\n setTimeout(() => setSaved(false), 2000)\n } else {\n setError(result.error.message)\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err))\n } finally {\n setSaving(false)\n }\n }, [draft, rpc])\n\n const testConnection = useCallback(async () => {\n if (draft === null) return\n setTestStatus('testing')\n setTestMessage(undefined)\n try {\n const result = await callRpc<HealthResult>(rpc, 'mineru/health', {})\n if (result.ok && result.value.status === 'healthy') {\n setTestStatus('healthy')\n const v = result.value.version ? ` v${result.value.version}` : ''\n const q = result.value.queued_tasks !== undefined ? ` (${result.value.queued_tasks} queued)` : ''\n setTestMessage(`${t('test.healthy')}${v}${q}`)\n } else if (result.ok) {\n setTestStatus('unhealthy')\n setTestMessage(t('test.unhealthy'))\n } else {\n setTestStatus('error')\n setTestMessage(result.error.message)\n }\n } catch (err) {\n setTestStatus('error')\n setTestMessage(err instanceof Error ? err.message : String(err))\n }\n }, [draft, rpc, t])\n\n const patch = (p: Partial<MineruRuntimeConfig>): void => {\n setDraft(prev => prev === null ? prev : { ...prev, ...p })\n }\n\n if (loading || draft === null) {\n return (\n <section className={css.section}>\n <h2 className={css.title}>{t('page.title')}</h2>\n <div className={css.loading}>…</div>\n </section>\n )\n }\n\n const dirty = JSON.stringify(draft) !== JSON.stringify(config)\n\n return (\n <section className={css.section}>\n <h2 className={css.title}>{t('page.title')}</h2>\n <p className={css.intro}>{t('page.intro')}</p>\n\n {error !== undefined && (\n <div className={css.error}>\n {error}\n <button type=\"button\" className={css.errorDismiss} onClick={() => setError(undefined)}>×</button>\n </div>\n )}\n\n <div className={css.editor}>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.baseURL')}</span>\n <input\n className={css.input}\n value={draft.baseURL}\n placeholder={t('field.baseURL.placeholder')}\n onChange={e => patch({ baseURL: e.target.value })}\n />\n </label>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.apiKeyEnv')}</span>\n <input\n className={css.input}\n value={draft.apiKeyEnv}\n placeholder={t('field.apiKeyEnv.placeholder')}\n onChange={e => patch({ apiKeyEnv: e.target.value })}\n />\n </label>\n\n <div className={css.row}>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.defaultBackend')}</span>\n <select\n className={css.select}\n value={draft.defaultBackend}\n onChange={e => patch({ defaultBackend: e.target.value })}\n >\n {BACKENDS.map(b => (\n <option key={b} value={b}>{t(`backend.${b}` as MineruKey)}</option>\n ))}\n </select>\n </label>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.defaultParseMethod')}</span>\n <select\n className={css.select}\n value={draft.defaultParseMethod}\n onChange={e => patch({ defaultParseMethod: e.target.value })}\n >\n {PARSE_METHODS.map(m => (\n <option key={m} value={m}>{t(`parse.${m}` as MineruKey)}</option>\n ))}\n </select>\n </label>\n </div>\n\n <div className={css.row}>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.defaultLang')}</span>\n <input\n className={css.input}\n value={draft.defaultLang}\n onChange={e => patch({ defaultLang: e.target.value })}\n />\n </label>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.pollIntervalMs')}</span>\n <input\n type=\"number\"\n className={css.input}\n value={draft.pollIntervalMs}\n onChange={e => patch({ pollIntervalMs: Number(e.target.value) })}\n />\n </label>\n </div>\n\n <div className={css.row}>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.pollTimeoutMs')}</span>\n <input\n type=\"number\"\n className={css.input}\n value={draft.pollTimeoutMs}\n onChange={e => patch({ pollTimeoutMs: Number(e.target.value) })}\n />\n </label>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.requestTimeoutMs')}</span>\n <input\n type=\"number\"\n className={css.input}\n value={draft.requestTimeoutMs}\n onChange={e => patch({ requestTimeoutMs: Number(e.target.value) })}\n />\n </label>\n </div>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.maxMdOutputChars')}</span>\n <input\n type=\"number\"\n className={css.input}\n value={draft.maxMdOutputChars}\n onChange={e => patch({ maxMdOutputChars: Number(e.target.value) })}\n />\n </label>\n </div>\n\n <div className={css.actions}>\n <button\n type=\"button\"\n className={css.primaryButton}\n onClick={() => void save()}\n disabled={!dirty || saving}\n >\n {saving ? '…' : saved ? t('action.saved') : t('action.save')}\n </button>\n <button\n type=\"button\"\n className={css.secondaryButton}\n onClick={() => void testConnection()}\n disabled={testStatus === 'testing'}\n >\n {testStatus === 'testing' ? t('action.testing') : t('action.test')}\n </button>\n {testStatus === 'healthy' && testMessage !== undefined && (\n <span className={css.testOk}>{testMessage}</span>\n )}\n {testStatus === 'unhealthy' && testMessage !== undefined && (\n <span className={css.testWarn}>{testMessage}</span>\n )}\n {testStatus === 'error' && testMessage !== undefined && (\n <span className={css.testErr}>{t('test.error')}: {testMessage}</span>\n )}\n </div>\n </section>\n )\n}\n","export type MineruKey =\n | 'nav'\n | 'page.title'\n | 'page.intro'\n | 'field.baseURL'\n | 'field.baseURL.placeholder'\n | 'field.apiKeyEnv'\n | 'field.apiKeyEnv.placeholder'\n | 'field.defaultBackend'\n | 'field.defaultParseMethod'\n | 'field.defaultLang'\n | 'field.pollIntervalMs'\n | 'field.pollTimeoutMs'\n | 'field.requestTimeoutMs'\n | 'field.maxMdOutputChars'\n | 'action.save'\n | 'action.saved'\n | 'action.test'\n | 'action.testing'\n | 'test.healthy'\n | 'test.unhealthy'\n | 'test.error'\n | 'backend.pipeline'\n | 'backend.vlm-engine'\n | 'backend.hybrid-engine'\n | 'backend.vlm-http-client'\n | 'backend.hybrid-http-client'\n | 'parse.auto'\n | 'parse.txt'\n | 'parse.ocr'\n\nexport const NS = 'dsh-mineru'\n\nexport const en: Record<MineruKey, string> = {\n 'nav': 'MinerU',\n 'page.title': 'MinerU Configuration',\n 'page.intro': 'Configure the MinerU document parsing server. Changes apply immediately to all mineru_* tools.',\n 'field.baseURL': 'API Base URL',\n 'field.baseURL.placeholder': 'http://your-mineru-host:18000',\n 'field.apiKeyEnv': 'API Key Env Var',\n 'field.apiKeyEnv.placeholder': 'MINERU_API_KEY',\n 'field.defaultBackend': 'Default Backend',\n 'field.defaultParseMethod': 'Default Parse Method',\n 'field.defaultLang': 'Default Language',\n 'field.pollIntervalMs': 'Poll Interval (ms)',\n 'field.pollTimeoutMs': 'Poll Timeout (ms)',\n 'field.requestTimeoutMs': 'Request Timeout (ms)',\n 'field.maxMdOutputChars': 'Max Markdown Output Chars',\n 'action.save': 'Save',\n 'action.saved': 'Saved',\n 'action.test': 'Test Connection',\n 'action.testing': 'Testing…',\n 'test.healthy': 'Healthy',\n 'test.unhealthy': 'Unhealthy',\n 'test.error': 'Connection failed',\n 'backend.pipeline': 'pipeline (no VLM, multi-language)',\n 'backend.vlm-engine': 'vlm-engine (VLM only)',\n 'backend.hybrid-engine': 'hybrid-engine (VLM + pipeline)',\n 'backend.vlm-http-client': 'vlm-http-client',\n 'backend.hybrid-http-client': 'hybrid-http-client',\n 'parse.auto': 'auto',\n 'parse.txt': 'txt (text only, no OCR)',\n 'parse.ocr': 'ocr (force OCR)',\n}\n\nexport const zh: Record<MineruKey, string> = {\n 'nav': 'MinerU',\n 'page.title': 'MinerU 配置',\n 'page.intro': '配置 MinerU 文档解析服务器。修改后立即对所有 mineru_* 工具生效。',\n 'field.baseURL': 'API 地址',\n 'field.baseURL.placeholder': 'http://your-mineru-host:18000',\n 'field.apiKeyEnv': 'API Key 环境变量',\n 'field.apiKeyEnv.placeholder': 'MINERU_API_KEY',\n 'field.defaultBackend': '默认后端',\n 'field.defaultParseMethod': '默认解析方式',\n 'field.defaultLang': '默认语言',\n 'field.pollIntervalMs': '轮询间隔 (ms)',\n 'field.pollTimeoutMs': '轮询超时 (ms)',\n 'field.requestTimeoutMs': '请求超时 (ms)',\n 'field.maxMdOutputChars': 'Markdown 输出字符上限',\n 'action.save': '保存',\n 'action.saved': '已保存',\n 'action.test': '测试连接',\n 'action.testing': '测试中…',\n 'test.healthy': '健康',\n 'test.unhealthy': '异常',\n 'test.error': '连接失败',\n 'backend.pipeline': 'pipeline(无 VLM,多语言)',\n 'backend.vlm-engine': 'vlm-engine(仅 VLM)',\n 'backend.hybrid-engine': 'hybrid-engine(VLM + pipeline)',\n 'backend.vlm-http-client': 'vlm-http-client',\n 'backend.hybrid-http-client': 'hybrid-http-client',\n 'parse.auto': 'auto',\n 'parse.txt': 'txt(仅文本,不 OCR)',\n 'parse.ocr': 'ocr(强制 OCR)',\n}\n","import type { MineruKey } from './locales.js'\n\nexport const dicts: Record<string, Record<MineruKey, string>> = {\n 'ja': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU 設定\",\n 'page.intro': \"MinerU ドキュメント解析サーバーを設定します。変更はすべての mineru_* ツールにすぐに反映されます。\",\n 'field.baseURL': \"API ベース URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API キー環境変数\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"デフォルトのバックエンド\",\n 'field.defaultParseMethod': \"デフォルトの解析方法\",\n 'field.defaultLang': \"デフォルトの言語\",\n 'field.pollIntervalMs': \"ポーリング間隔 (ms)\",\n 'field.pollTimeoutMs': \"ポーリングタイムアウト (ms)\",\n 'field.requestTimeoutMs': \"リクエストタイムアウト (ms)\",\n 'field.maxMdOutputChars': \"Markdown 出力の最大文字数\",\n 'action.save': \"保存\",\n 'action.saved': \"保存しました\",\n 'action.test': \"接続テスト\",\n 'action.testing': \"テスト中…\",\n 'test.healthy': \"正常\",\n 'test.unhealthy': \"異常\",\n 'test.error': \"接続に失敗しました\",\n 'backend.pipeline': \"pipeline(VLM なし、多言語対応)\",\n 'backend.vlm-engine': \"vlm-engine(VLM のみ)\",\n 'backend.hybrid-engine': \"hybrid-engine(VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt(テキストのみ、OCR なし)\",\n 'parse.ocr': \"ocr(OCR 強制)\",\n },\n 'de': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU-Konfiguration\",\n 'page.intro': \"MinerU-Dokumentparser-Server konfigurieren. Änderungen wirken sofort auf alle mineru_*-Tools.\",\n 'field.baseURL': \"API-Basis-URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API-Schlüssel-Umgebungsvariable\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Standard-Backend\",\n 'field.defaultParseMethod': \"Standard-Parsemethode\",\n 'field.defaultLang': \"Standardsprache\",\n 'field.pollIntervalMs': \"Polling-Intervall (ms)\",\n 'field.pollTimeoutMs': \"Polling-Timeout (ms)\",\n 'field.requestTimeoutMs': \"Anfrage-Timeout (ms)\",\n 'field.maxMdOutputChars': \"Max. Markdown-Ausgabezeichen\",\n 'action.save': \"Speichern\",\n 'action.saved': \"Gespeichert\",\n 'action.test': \"Verbindung testen\",\n 'action.testing': \"Teste…\",\n 'test.healthy': \"In Ordnung\",\n 'test.unhealthy': \"Nicht in Ordnung\",\n 'test.error': \"Verbindung fehlgeschlagen\",\n 'backend.pipeline': \"pipeline (kein VLM, mehrsprachig)\",\n 'backend.vlm-engine': \"vlm-engine (nur VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (nur Text, kein OCR)\",\n 'parse.ocr': \"ocr (OCR erzwingen)\",\n },\n 'fr': {\n 'nav': \"MinerU\",\n 'page.title': \"Configuration de MinerU\",\n 'page.intro': \"Configurez le serveur d'analyse de documents MinerU. Les modifications s'appliquent immédiatement à tous les outils mineru_*.\",\n 'field.baseURL': \"URL de base de l'API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Variable d'environnement de la clé API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Backend par défaut\",\n 'field.defaultParseMethod': \"Méthode d'analyse par défaut\",\n 'field.defaultLang': \"Langue par défaut\",\n 'field.pollIntervalMs': \"Intervalle de sondage (ms)\",\n 'field.pollTimeoutMs': \"Délai de sondage (ms)\",\n 'field.requestTimeoutMs': \"Délai de requête (ms)\",\n 'field.maxMdOutputChars': \"Nombre max de caractères Markdown\",\n 'action.save': \"Enregistrer\",\n 'action.saved': \"Enregistré\",\n 'action.test': \"Tester la connexion\",\n 'action.testing': \"Test en cours…\",\n 'test.healthy': \"Opérationnel\",\n 'test.unhealthy': \"Défaillant\",\n 'test.error': \"Échec de la connexion\",\n 'backend.pipeline': \"pipeline (sans VLM, multilingue)\",\n 'backend.vlm-engine': \"vlm-engine (VLM uniquement)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (texte seul, sans OCR)\",\n 'parse.ocr': \"ocr (OCR forcé)\",\n },\n 'pt': {\n 'nav': \"MinerU\",\n 'page.title': \"Configuração do MinerU\",\n 'page.intro': \"Configure o servidor de análise de documentos MinerU. As alterações são aplicadas imediatamente a todas as ferramentas mineru_*.\",\n 'field.baseURL': \"URL base da API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Variável de ambiente da chave de API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Backend padrão\",\n 'field.defaultParseMethod': \"Método de análise padrão\",\n 'field.defaultLang': \"Idioma padrão\",\n 'field.pollIntervalMs': \"Intervalo de consulta (ms)\",\n 'field.pollTimeoutMs': \"Tempo limite de consulta (ms)\",\n 'field.requestTimeoutMs': \"Tempo limite de requisição (ms)\",\n 'field.maxMdOutputChars': \"Máx. de caracteres de saída Markdown\",\n 'action.save': \"Salvar\",\n 'action.saved': \"Salvo\",\n 'action.test': \"Testar conexão\",\n 'action.testing': \"Testando…\",\n 'test.healthy': \"Saudável\",\n 'test.unhealthy': \"Anormal\",\n 'test.error': \"Falha na conexão\",\n 'backend.pipeline': \"pipeline (sem VLM, multilíngue)\",\n 'backend.vlm-engine': \"vlm-engine (somente VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (somente texto, sem OCR)\",\n 'parse.ocr': \"ocr (forçar OCR)\",\n },\n 'ko': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU 설정\",\n 'page.intro': \"MinerU 문서 파싱 서버를 구성합니다. 변경 사항은 모든 mineru_* 도구에 즉시 적용됩니다.\",\n 'field.baseURL': \"API 기본 URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API 키 환경 변수\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"기본 백엔드\",\n 'field.defaultParseMethod': \"기본 파싱 방식\",\n 'field.defaultLang': \"기본 언어\",\n 'field.pollIntervalMs': \"폴링 간격 (ms)\",\n 'field.pollTimeoutMs': \"폴링 제한 시간 (ms)\",\n 'field.requestTimeoutMs': \"요청 제한 시간 (ms)\",\n 'field.maxMdOutputChars': \"Markdown 출력 최대 문자 수\",\n 'action.save': \"저장\",\n 'action.saved': \"저장됨\",\n 'action.test': \"연결 테스트\",\n 'action.testing': \"테스트 중…\",\n 'test.healthy': \"정상\",\n 'test.unhealthy': \"비정상\",\n 'test.error': \"연결 실패\",\n 'backend.pipeline': \"pipeline (VLM 없음, 다국어)\",\n 'backend.vlm-engine': \"vlm-engine (VLM 전용)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (텍스트 전용, OCR 없음)\",\n 'parse.ocr': \"ocr (OCR 강제)\",\n },\n 'ar': {\n 'nav': \"MinerU\",\n 'page.title': \"إعدادات MinerU\",\n 'page.intro': \"قم بتكوين خادم تحليل المستندات MinerU. تُطبَّق التغييرات فورًا على جميع أدوات mineru_*.\",\n 'field.baseURL': \"عنوان URL الأساسي للـ API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"متغير بيئة مفتاح API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"الخادم الخلفي الافتراضي\",\n 'field.defaultParseMethod': \"طريقة التحليل الافتراضية\",\n 'field.defaultLang': \"اللغة الافتراضية\",\n 'field.pollIntervalMs': \"فاصل الاستعلام (بالملي ثانية)\",\n 'field.pollTimeoutMs': \"مهلة الاستعلام (بالملي ثانية)\",\n 'field.requestTimeoutMs': \"مهلة الطلب (بالملي ثانية)\",\n 'field.maxMdOutputChars': \"الحد الأقصى لأحرف إخراج Markdown\",\n 'action.save': \"حفظ\",\n 'action.saved': \"تم الحفظ\",\n 'action.test': \"اختبار الاتصال\",\n 'action.testing': \"جارٍ الاختبار…\",\n 'test.healthy': \"سليم\",\n 'test.unhealthy': \"غير سليم\",\n 'test.error': \"فشل الاتصال\",\n 'backend.pipeline': \"pipeline (بدون VLM، متعدد اللغات)\",\n 'backend.vlm-engine': \"vlm-engine (VLM فقط)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (نص فقط، بدون OCR)\",\n 'parse.ocr': \"ocr (فرض OCR)\",\n },\n 'hi': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU कॉन्फ़िगरेशन\",\n 'page.intro': \"MinerU दस्तावेज़ पार्सिंग सर्वर कॉन्फ़िगर करें। परिवर्तन सभी mineru_* टूल पर तुरंत लागू होते हैं।\",\n 'field.baseURL': \"API बेस URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API कुंजी एनवायरनमेंट वेरिएबल\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"डिफ़ॉल्ट बैकएंड\",\n 'field.defaultParseMethod': \"डिफ़ॉल्ट पार्सिंग विधि\",\n 'field.defaultLang': \"डिफ़ॉल्ट भाषा\",\n 'field.pollIntervalMs': \"पोलिंग अंतराल (ms)\",\n 'field.pollTimeoutMs': \"पोलिंग टाइमआउट (ms)\",\n 'field.requestTimeoutMs': \"अनुरोध टाइमआउट (ms)\",\n 'field.maxMdOutputChars': \"अधिकतम Markdown आउटपुट वर्ण\",\n 'action.save': \"सहेजें\",\n 'action.saved': \"सहेजा गया\",\n 'action.test': \"कनेक्शन जाँचें\",\n 'action.testing': \"जाँच हो रही है…\",\n 'test.healthy': \"स्वस्थ\",\n 'test.unhealthy': \"अस्वस्थ\",\n 'test.error': \"कनेक्शन विफल\",\n 'backend.pipeline': \"pipeline (कोई VLM नहीं, बहुभाषी)\",\n 'backend.vlm-engine': \"vlm-engine (केवल VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (केवल टेक्स्ट, कोई OCR नहीं)\",\n 'parse.ocr': \"ocr (OCR ज़बरदस्ती)\",\n },\n 'id': {\n 'nav': \"MinerU\",\n 'page.title': \"Konfigurasi MinerU\",\n 'page.intro': \"Konfigurasikan server parsing dokumen MinerU. Perubahan langsung berlaku untuk semua alat mineru_*.\",\n 'field.baseURL': \"URL Dasar API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Variabel Lingkungan Kunci API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Backend Default\",\n 'field.defaultParseMethod': \"Metode Parsing Default\",\n 'field.defaultLang': \"Bahasa Default\",\n 'field.pollIntervalMs': \"Interval Polling (ms)\",\n 'field.pollTimeoutMs': \"Waktu Tunggu Polling (ms)\",\n 'field.requestTimeoutMs': \"Waktu Tunggu Permintaan (ms)\",\n 'field.maxMdOutputChars': \"Maks. Karakter Output Markdown\",\n 'action.save': \"Simpan\",\n 'action.saved': \"Tersimpan\",\n 'action.test': \"Uji Koneksi\",\n 'action.testing': \"Menguji…\",\n 'test.healthy': \"Sehat\",\n 'test.unhealthy': \"Tidak Sehat\",\n 'test.error': \"Koneksi gagal\",\n 'backend.pipeline': \"pipeline (tanpa VLM, multibahasa)\",\n 'backend.vlm-engine': \"vlm-engine (khusus VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (teks saja, tanpa OCR)\",\n 'parse.ocr': \"ocr (paksa OCR)\",\n },\n 'tr': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU Yapılandırması\",\n 'page.intro': \"MinerU belge ayrıştırma sunucusunu yapılandırın. Değişiklikler tüm mineru_* araçlarına anında uygulanır.\",\n 'field.baseURL': \"API Temel URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API Anahtarı Ortam Değişkeni\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Varsayılan Arka Uç\",\n 'field.defaultParseMethod': \"Varsayılan Ayrıştırma Yöntemi\",\n 'field.defaultLang': \"Varsayılan Dil\",\n 'field.pollIntervalMs': \"Yoklama Aralığı (ms)\",\n 'field.pollTimeoutMs': \"Yoklama Zaman Aşımı (ms)\",\n 'field.requestTimeoutMs': \"İstek Zaman Aşımı (ms)\",\n 'field.maxMdOutputChars': \"Maks. Markdown Çıktı Karakteri\",\n 'action.save': \"Kaydet\",\n 'action.saved': \"Kaydedildi\",\n 'action.test': \"Bağlantıyı Test Et\",\n 'action.testing': \"Test ediliyor…\",\n 'test.healthy': \"Sağlıklı\",\n 'test.unhealthy': \"Sağlıksız\",\n 'test.error': \"Bağlantı başarısız\",\n 'backend.pipeline': \"pipeline (VLM yok, çok dilli)\",\n 'backend.vlm-engine': \"vlm-engine (yalnızca VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (yalnızca metin, OCR yok)\",\n 'parse.ocr': \"ocr (OCR zorla)\",\n },\n 'vi': {\n 'nav': \"MinerU\",\n 'page.title': \"Cấu hình MinerU\",\n 'page.intro': \"Định cấu hình máy chủ phân tích tài liệu MinerU. Thay đổi áp dụng ngay cho mọi công cụ mineru_*.\",\n 'field.baseURL': \"URL gốc API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Biến môi trường khóa API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Backend mặc định\",\n 'field.defaultParseMethod': \"Phương thức phân tích mặc định\",\n 'field.defaultLang': \"Ngôn ngữ mặc định\",\n 'field.pollIntervalMs': \"Khoảng thời gian thăm dò (ms)\",\n 'field.pollTimeoutMs': \"Hết thời gian thăm dò (ms)\",\n 'field.requestTimeoutMs': \"Hết thời gian yêu cầu (ms)\",\n 'field.maxMdOutputChars': \"Tối đa ký tự xuất Markdown\",\n 'action.save': \"Lưu\",\n 'action.saved': \"Đã lưu\",\n 'action.test': \"Kiểm tra kết nối\",\n 'action.testing': \"Đang kiểm tra…\",\n 'test.healthy': \"Hoạt động tốt\",\n 'test.unhealthy': \"Không ổn\",\n 'test.error': \"Kết nối thất bại\",\n 'backend.pipeline': \"pipeline (không VLM, đa ngôn ngữ)\",\n 'backend.vlm-engine': \"vlm-engine (chỉ VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (chỉ văn bản, không OCR)\",\n 'parse.ocr': \"ocr (buộc OCR)\",\n },\n 'th': {\n 'nav': \"MinerU\",\n 'page.title': \"การกำหนดค่า MinerU\",\n 'page.intro': \"กำหนดค่าเซิร์ฟเวอร์แยกวิเคราะห์เอกสาร MinerU การเปลี่ยนแปลงมีผลทันทีกับเครื่องมือ mineru_* ทั้งหมด\",\n 'field.baseURL': \"URL ฐานของ API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"ตัวแปรสภาพแวดล้อมคีย์ API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"แบ็กเอนด์เริ่มต้น\",\n 'field.defaultParseMethod': \"วิธีแยกวิเคราะห์เริ่มต้น\",\n 'field.defaultLang': \"ภาษาเริ่มต้น\",\n 'field.pollIntervalMs': \"ช่วงเวลาการสอบถาม (ms)\",\n 'field.pollTimeoutMs': \"หมดเวลาการสอบถาม (ms)\",\n 'field.requestTimeoutMs': \"หมดเวลาคำขอ (ms)\",\n 'field.maxMdOutputChars': \"อักขระสูงสุดของเอาต์พุต Markdown\",\n 'action.save': \"บันทึก\",\n 'action.saved': \"บันทึกแล้ว\",\n 'action.test': \"ทดสอบการเชื่อมต่อ\",\n 'action.testing': \"กำลังทดสอบ…\",\n 'test.healthy': \"ปกติ\",\n 'test.unhealthy': \"ผิดปกติ\",\n 'test.error': \"การเชื่อมต่อล้มเหลว\",\n 'backend.pipeline': \"pipeline (ไม่มี VLM, หลายภาษา)\",\n 'backend.vlm-engine': \"vlm-engine (เฉพาะ VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (เฉพาะข้อความ ไม่มี OCR)\",\n 'parse.ocr': \"ocr (บังคับ OCR)\",\n },\n 'ru': {\n 'nav': \"MinerU\",\n 'page.title': \"Конфигурация MinerU\",\n 'page.intro': \"Настройте сервер разбора документов MinerU. Изменения немедленно применяются ко всем инструментам mineru_*.\",\n 'field.baseURL': \"Базовый URL API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Переменная окружения ключа API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Бэкенд по умолчанию\",\n 'field.defaultParseMethod': \"Метод разбора по умолчанию\",\n 'field.defaultLang': \"Язык по умолчанию\",\n 'field.pollIntervalMs': \"Интервал опроса (мс)\",\n 'field.pollTimeoutMs': \"Таймаут опроса (мс)\",\n 'field.requestTimeoutMs': \"Таймаут запроса (мс)\",\n 'field.maxMdOutputChars': \"Макс. символов вывода Markdown\",\n 'action.save': \"Сохранить\",\n 'action.saved': \"Сохранено\",\n 'action.test': \"Проверить соединение\",\n 'action.testing': \"Проверка…\",\n 'test.healthy': \"Исправно\",\n 'test.unhealthy': \"Неисправно\",\n 'test.error': \"Ошибка соединения\",\n 'backend.pipeline': \"pipeline (без VLM, мультиязычный)\",\n 'backend.vlm-engine': \"vlm-engine (только VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (только текст, без OCR)\",\n 'parse.ocr': \"ocr (принудительный OCR)\",\n },\n 'it': {\n 'nav': \"MinerU\",\n 'page.title': \"Configurazione MinerU\",\n 'page.intro': \"Configura il server di parsing documenti MinerU. Le modifiche si applicano immediatamente a tutti gli strumenti mineru_*.\",\n 'field.baseURL': \"URL di base API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Variabile d'ambiente chiave API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Backend predefinito\",\n 'field.defaultParseMethod': \"Metodo di parsing predefinito\",\n 'field.defaultLang': \"Lingua predefinita\",\n 'field.pollIntervalMs': \"Intervallo di polling (ms)\",\n 'field.pollTimeoutMs': \"Timeout polling (ms)\",\n 'field.requestTimeoutMs': \"Timeout richiesta (ms)\",\n 'field.maxMdOutputChars': \"Max caratteri output Markdown\",\n 'action.save': \"Salva\",\n 'action.saved': \"Salvato\",\n 'action.test': \"Testa connessione\",\n 'action.testing': \"Test in corso…\",\n 'test.healthy': \"Funzionante\",\n 'test.unhealthy': \"Non funzionante\",\n 'test.error': \"Connessione fallita\",\n 'backend.pipeline': \"pipeline (senza VLM, multilingue)\",\n 'backend.vlm-engine': \"vlm-engine (solo VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (solo testo, senza OCR)\",\n 'parse.ocr': \"ocr (OCR forzato)\",\n },\n 'nl': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU-configuratie\",\n 'page.intro': \"Configureer de MinerU-documentparsingserver. Wijzigingen zijn direct van toepassing op alle mineru_*-tools.\",\n 'field.baseURL': \"API-basis-URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API-sleutelomgevingsvariabele\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Standaardbackend\",\n 'field.defaultParseMethod': \"Standaardparsingmethode\",\n 'field.defaultLang': \"Standaardtaal\",\n 'field.pollIntervalMs': \"Polling-interval (ms)\",\n 'field.pollTimeoutMs': \"Polling-timeout (ms)\",\n 'field.requestTimeoutMs': \"Aanvraagtimeout (ms)\",\n 'field.maxMdOutputChars': \"Max. Markdown-uitvoertekens\",\n 'action.save': \"Opslaan\",\n 'action.saved': \"Opgeslagen\",\n 'action.test': \"Verbinding testen\",\n 'action.testing': \"Bezig met testen…\",\n 'test.healthy': \"Gezond\",\n 'test.unhealthy': \"Ongezond\",\n 'test.error': \"Verbinding mislukt\",\n 'backend.pipeline': \"pipeline (geen VLM, meertalig)\",\n 'backend.vlm-engine': \"vlm-engine (alleen VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (alleen tekst, geen OCR)\",\n 'parse.ocr': \"ocr (OCR afdwingen)\",\n },\n 'sv': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU-konfiguration\",\n 'page.intro': \"Konfigurera MinerU-servern för dokumentparsning. Ändringar tillämpas omedelbart på alla mineru_*-verktyg.\",\n 'field.baseURL': \"API-bas-URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API-nyckelns miljövariabel\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Standardbackend\",\n 'field.defaultParseMethod': \"Standardparsningsmetod\",\n 'field.defaultLang': \"Standardspråk\",\n 'field.pollIntervalMs': \"Pollningsintervall (ms)\",\n 'field.pollTimeoutMs': \"Pollningstimeout (ms)\",\n 'field.requestTimeoutMs': \"Begärandetimeout (ms)\",\n 'field.maxMdOutputChars': \"Max Markdown-utdatatecken\",\n 'action.save': \"Spara\",\n 'action.saved': \"Sparat\",\n 'action.test': \"Testa anslutningen\",\n 'action.testing': \"Testar…\",\n 'test.healthy': \"Fungerar\",\n 'test.unhealthy': \"Fungerar inte\",\n 'test.error': \"Anslutningen misslyckades\",\n 'backend.pipeline': \"pipeline (ingen VLM, flerspråkig)\",\n 'backend.vlm-engine': \"vlm-engine (endast VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (endast text, ingen OCR)\",\n 'parse.ocr': \"ocr (tvinga OCR)\",\n },\n 'pl': {\n 'nav': \"MinerU\",\n 'page.title': \"Konfiguracja MinerU\",\n 'page.intro': \"Skonfiguruj serwer parsowania dokumentów MinerU. Zmiany natychmiast dotyczą wszystkich narzędzi mineru_*.\",\n 'field.baseURL': \"Bazowy URL API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Zmienna środowiskowa klucza API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Domyślny backend\",\n 'field.defaultParseMethod': \"Domyślna metoda parsowania\",\n 'field.defaultLang': \"Domyślny język\",\n 'field.pollIntervalMs': \"Interwał odpytywania (ms)\",\n 'field.pollTimeoutMs': \"Limit czasu odpytywania (ms)\",\n 'field.requestTimeoutMs': \"Limit czasu żądania (ms)\",\n 'field.maxMdOutputChars': \"Maks. znaków wyjściowych Markdown\",\n 'action.save': \"Zapisz\",\n 'action.saved': \"Zapisano\",\n 'action.test': \"Testuj połączenie\",\n 'action.testing': \"Testowanie…\",\n 'test.healthy': \"Sprawny\",\n 'test.unhealthy': \"Niesprawny\",\n 'test.error': \"Nie udało się połączyć\",\n 'backend.pipeline': \"pipeline (bez VLM, wielojęzyczny)\",\n 'backend.vlm-engine': \"vlm-engine (tylko VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (tylko tekst, bez OCR)\",\n 'parse.ocr': \"ocr (wymuś OCR)\",\n },\n 'zh-HK': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU 設定\",\n 'page.intro': \"設定 MinerU 文件解析伺服器。修改後即時對所有 mineru_* 工具生效。\",\n 'field.baseURL': \"API 位址\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API Key 環境變數\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"預設後端\",\n 'field.defaultParseMethod': \"預設解析方式\",\n 'field.defaultLang': \"預設語言\",\n 'field.pollIntervalMs': \"輪詢間隔 (ms)\",\n 'field.pollTimeoutMs': \"輪詢逾時 (ms)\",\n 'field.requestTimeoutMs': \"請求逾時 (ms)\",\n 'field.maxMdOutputChars': \"Markdown 輸出字元上限\",\n 'action.save': \"儲存\",\n 'action.saved': \"已儲存\",\n 'action.test': \"測試連線\",\n 'action.testing': \"測試中…\",\n 'test.healthy': \"健康\",\n 'test.unhealthy': \"異常\",\n 'test.error': \"連線失敗\",\n 'backend.pipeline': \"pipeline(無 VLM,多語言)\",\n 'backend.vlm-engine': \"vlm-engine(僅 VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine(VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt(僅文字,不 OCR)\",\n 'parse.ocr': \"ocr(強制 OCR)\",\n },\n 'zh-TW': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU 設定\",\n 'page.intro': \"設定 MinerU 文件解析伺服器。修改後立即對所有 mineru_* 工具生效。\",\n 'field.baseURL': \"API 位址\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API Key 環境變數\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"預設後端\",\n 'field.defaultParseMethod': \"預設解析方式\",\n 'field.defaultLang': \"預設語言\",\n 'field.pollIntervalMs': \"輪詢間隔 (ms)\",\n 'field.pollTimeoutMs': \"輪詢逾時 (ms)\",\n 'field.requestTimeoutMs': \"請求逾時 (ms)\",\n 'field.maxMdOutputChars': \"Markdown 輸出字元上限\",\n 'action.save': \"儲存\",\n 'action.saved': \"已儲存\",\n 'action.test': \"測試連線\",\n 'action.testing': \"測試中…\",\n 'test.healthy': \"健康\",\n 'test.unhealthy': \"異常\",\n 'test.error': \"連線失敗\",\n 'backend.pipeline': \"pipeline(無 VLM,多語言)\",\n 'backend.vlm-engine': \"vlm-engine(僅 VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine(VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt(僅文字,不 OCR)\",\n 'parse.ocr': \"ocr(強制 OCR)\",\n },\n 'zh-MO': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU 設定\",\n 'page.intro': \"設定 MinerU 文件解析伺服器。修改後即時對所有 mineru_* 工具生效。\",\n 'field.baseURL': \"API 位址\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API Key 環境變數\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"預設後端\",\n 'field.defaultParseMethod': \"預設解析方式\",\n 'field.defaultLang': \"預設語言\",\n 'field.pollIntervalMs': \"輪詢間隔 (ms)\",\n 'field.pollTimeoutMs': \"輪詢逾時 (ms)\",\n 'field.requestTimeoutMs': \"請求逾時 (ms)\",\n 'field.maxMdOutputChars': \"Markdown 輸出字元上限\",\n 'action.save': \"儲存\",\n 'action.saved': \"已儲存\",\n 'action.test': \"測試連線\",\n 'action.testing': \"測試中…\",\n 'test.healthy': \"健康\",\n 'test.unhealthy': \"異常\",\n 'test.error': \"連線失敗\",\n 'backend.pipeline': \"pipeline(無 VLM,多語言)\",\n 'backend.vlm-engine': \"vlm-engine(僅 VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine(VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt(僅文字,不 OCR)\",\n 'parse.ocr': \"ocr(強制 OCR)\",\n },\n}","import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client'\nimport type { ConnectionHandle } from '@deepseek-ai/dsh-client-connection/client'\nimport type {} from '@deepseek-ai/dsh-client-connection/client'\nimport type {} from '@deepseek-ai/dsh-client-ui-settings/client'\nimport type {} from '@deepseek-ai/dsh-client-locale/client'\nimport { SettingsPage, type MineruSettingsInjected } from './SettingsPage.js'\nimport { en, NS, zh, type MineruKey } from './locales.js'\nimport { dicts } from './dictionaries.js'\n\ndeclare module '@deepseek-ai/dsh-client-ui-slots' {\n interface LocaleNamespaceMap {\n 'dsh-mineru': MineruKey\n }\n}\n\nexport const inject = ['slots', 'locale', 'connection']\n\nexport function apply(ctx: ClientContext): void {\n ctx.effect(() => ctx.locale.register(NS, { zh, en }), 'dsh-mineru: dictionaries')\n\n const betterLocale = ctx.get('betterLocale') as\n | { register(ns: string, dicts: Record<string, Record<string, string>>): () => void }\n | undefined\n if (betterLocale) {\n ctx.effect(() => betterLocale.register(NS, dicts), 'dsh-mineru: better-locale override dicts')\n }\n\n const connection = ctx.connection as unknown as ConnectionHandle\n const t = ctx.locale.bind(NS) as (key: string) => string\n\n const settingsInjected = (): MineruSettingsInjected => ({\n rpc: connection.rpc,\n t,\n })\n\n ctx.slots.inject('settings.section', () => ctx.slots.register({\n name: 'settings.section',\n id: 'dsh-mineru',\n order: 40,\n label: () => t('nav'),\n inject: settingsInjected,\n }, SettingsPage))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBA,MAAM,WAAW;GAAC;GAAY;GAAc;GAAiB;GAAmB;EAAoB;EACpG,MAAM,gBAAgB;GAAC;GAAQ;GAAO;EAAK;EAE3C,eAAe,QAAW,KAA0B,UAAkB,SAA8B;GAClG,OAAO,IAAI,KAAK,eAAe,UAAU,OAAO;EAClD;EAEA,SAAgB,aAAa,EAAE,KAAK,KAAwB;GAC1D,MAAM,CAAC,QAAQ,cAAA,GAAaA,MAAAA,SAAAA,CAAqC,IAAI;GACrE,MAAM,CAAC,OAAO,aAAA,GAAYA,MAAAA,SAAAA,CAAqC,IAAI;GACnE,MAAM,CAAC,SAAS,eAAA,GAAcA,MAAAA,SAAAA,CAAS,IAAI;GAC3C,MAAM,CAAC,QAAQ,cAAA,GAAaA,MAAAA,SAAAA,CAAS,KAAK;GAC1C,MAAM,CAAC,OAAO,aAAA,GAAYA,MAAAA,SAAAA,CAAS,KAAK;GACxC,MAAM,CAAC,OAAO,aAAA,GAAYA,MAAAA,SAAAA,CAA6B,KAAA,CAAS;GAChE,MAAM,CAAC,YAAY,kBAAA,GAAiBA,MAAAA,SAAAA,CAAiE,MAAM;GAC3G,MAAM,CAAC,aAAa,mBAAA,GAAkBA,MAAAA,SAAAA,CAA6B,KAAA,CAAS;GAE5E,MAAM,WAAA,GAAUC,MAAAA,YAAAA,CAAY,YAAY;IACtC,WAAW,IAAI;IACf,SAAS,KAAA,CAAS;IAClB,IAAI;KACF,MAAM,SAAS,MAAM,QAAyB,KAAK,qBAAqB,CAAC,CAAC;KAC1E,IAAI,OAAO,IAAI;MACb,UAAU,OAAO,MAAM,MAAM;MAC7B,SAAS,OAAO,MAAM,MAAM;KAC9B,OACE,SAAS,OAAO,MAAM,OAAO;IAEjC,SAAS,KAAK;KACZ,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;IAC3D,UAAU;KACR,WAAW,KAAK;IAClB;GACF,GAAG,CAAC,GAAG,CAAC;GAER,CAAA,GAAA,MAAA,UAAA,OAAgB;IAAE,QAAa;GAAE,GAAG,CAAC,OAAO,CAAC;GAE7C,MAAM,QAAA,GAAOA,MAAAA,YAAAA,CAAY,YAAY;IACnC,IAAI,UAAU,MAAM;IACpB,UAAU,IAAI;IACd,SAAS,KAAA,CAAS;IAClB,SAAS,KAAK;IACd,IAAI;KACF,MAAM,SAAS,MAAM,QAAyB,KAAK,qBAAqB,EAAE,QAAQ,MAAM,CAAC;KACzF,IAAI,OAAO,IAAI;MACb,UAAU,OAAO,MAAM,MAAM;MAC7B,SAAS,OAAO,MAAM,MAAM;MAC5B,SAAS,IAAI;MACb,iBAAiB,SAAS,KAAK,GAAG,GAAI;KACxC,OACE,SAAS,OAAO,MAAM,OAAO;IAEjC,SAAS,KAAK;KACZ,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;IAC3D,UAAU;KACR,UAAU,KAAK;IACjB;GACF,GAAG,CAAC,OAAO,GAAG,CAAC;GAEf,MAAM,kBAAA,GAAiBA,MAAAA,YAAAA,CAAY,YAAY;IAC7C,IAAI,UAAU,MAAM;IACpB,cAAc,SAAS;IACvB,eAAe,KAAA,CAAS;IACxB,IAAI;KACF,MAAM,SAAS,MAAM,QAAsB,KAAK,iBAAiB,CAAC,CAAC;KACnE,IAAI,OAAO,MAAM,OAAO,MAAM,WAAW,WAAW;MAClD,cAAc,SAAS;MACvB,MAAM,IAAI,OAAO,MAAM,UAAU,KAAK,OAAO,MAAM,YAAY;MAC/D,MAAM,IAAI,OAAO,MAAM,iBAAiB,KAAA,IAAY,KAAK,OAAO,MAAM,aAAa,YAAY;MAC/F,eAAe,GAAG,EAAE,cAAc,IAAI,IAAI,GAAG;KAC/C,OAAO,IAAI,OAAO,IAAI;MACpB,cAAc,WAAW;MACzB,eAAe,EAAE,gBAAgB,CAAC;KACpC,OAAO;MACL,cAAc,OAAO;MACrB,eAAe,OAAO,MAAM,OAAO;KACrC;IACF,SAAS,KAAK;KACZ,cAAc,OAAO;KACrB,eAAe,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;IACjE;GACF,GAAG;IAAC;IAAO;IAAK;GAAC,CAAC;GAElB,MAAM,SAAS,MAA0C;IACvD,UAAS,SAAQ,SAAS,OAAO,OAAO;KAAE,GAAG;KAAM,GAAG;IAAE,CAAC;GAC3D;GAEA,IAAI,WAAW,UAAU,MACvB,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,WAAD;IAAS,WAAWC,SAAI;IAAxB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;KAAI,WAAWA,SAAI;KAAQ,UAAA,EAAE,YAAY;IAAM,CAAA,GAC/C,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KAAK,WAAWA,SAAI;KAAS,UAAA;IAAM,CAAA,CAC5B;;GAIb,MAAM,QAAQ,KAAK,UAAU,KAAK,MAAM,KAAK,UAAU,MAAM;GAE7D,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,WAAD;IAAS,WAAWA,SAAI;IAAxB,UAAA;KACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;MAAI,WAAWA,SAAI;MAAQ,UAAA,EAAE,YAAY;KAAM,CAAA;KAC/C,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;MAAG,WAAWA,SAAI;MAAQ,UAAA,EAAE,YAAY;KAAK,CAAA;KAE5C,UAAU,KAAA,KACT,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;MAAK,WAAWA,SAAI;MAApB,UAAA,CACG,OACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;OAAQ,MAAK;OAAS,WAAWA,SAAI;OAAc,eAAe,SAAS,KAAA,CAAS;OAAG,UAAA;MAAS,CAAA,CAC7F;;KAGP,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;MAAK,WAAWA,SAAI;MAApB,UAAA;OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,SAAD;QAAO,WAAWA,SAAI;QAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;SAAM,WAAWA,SAAI;SAAa,UAAA,EAAE,eAAe;QAAQ,CAAA,GAC3D,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;SACE,WAAWA,SAAI;SACf,OAAO,MAAM;SACb,aAAa,EAAE,2BAA2B;SAC1C,WAAU,MAAK,MAAM,EAAE,SAAS,EAAE,OAAO,MAAM,CAAC;QACjD,CAAA,CACI;;OAEP,iBAAA,GAAA,kBAAA,KAAA,CAAC,SAAD;QAAO,WAAWA,SAAI;QAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;SAAM,WAAWA,SAAI;SAAa,UAAA,EAAE,iBAAiB;QAAQ,CAAA,GAC7D,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;SACE,WAAWA,SAAI;SACf,OAAO,MAAM;SACb,aAAa,EAAE,6BAA6B;SAC5C,WAAU,MAAK,MAAM,EAAE,WAAW,EAAE,OAAO,MAAM,CAAC;QACnD,CAAA,CACI;;OAEP,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;QAAK,WAAWA,SAAI;QAApB,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,SAAD;SAAO,WAAWA,SAAI;SAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;UAAM,WAAWA,SAAI;UAAa,UAAA,EAAE,sBAAsB;SAAQ,CAAA,GAClE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;UACE,WAAWA,SAAI;UACf,OAAO,MAAM;UACb,WAAU,MAAK,MAAM,EAAE,gBAAgB,EAAE,OAAO,MAAM,CAAC;UAEtD,UAAA,SAAS,KAAI,MACZ,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;WAAgB,OAAO;WAAI,UAAA,EAAE,WAAW,GAAgB;UAAU,GAArD,CAAqD,CACnE;SACK,CAAA,CACH;QAEP,CAAA,GAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,SAAD;SAAO,WAAWA,SAAI;SAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;UAAM,WAAWA,SAAI;UAAa,UAAA,EAAE,0BAA0B;SAAQ,CAAA,GACtE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;UACE,WAAWA,SAAI;UACf,OAAO,MAAM;UACb,WAAU,MAAK,MAAM,EAAE,oBAAoB,EAAE,OAAO,MAAM,CAAC;UAE1D,UAAA,cAAc,KAAI,MACjB,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;WAAgB,OAAO;WAAI,UAAA,EAAE,SAAS,GAAgB;UAAU,GAAnD,CAAmD,CACjE;SACK,CAAA,CACH;QACJ,CAAA,CAAA;;OAEL,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;QAAK,WAAWA,SAAI;QAApB,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,SAAD;SAAO,WAAWA,SAAI;SAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;UAAM,WAAWA,SAAI;UAAa,UAAA,EAAE,mBAAmB;SAAQ,CAAA,GAC/D,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;UACE,WAAWA,SAAI;UACf,OAAO,MAAM;UACb,WAAU,MAAK,MAAM,EAAE,aAAa,EAAE,OAAO,MAAM,CAAC;SACrD,CAAA,CACI;QAEP,CAAA,GAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,SAAD;SAAO,WAAWA,SAAI;SAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;UAAM,WAAWA,SAAI;UAAa,UAAA,EAAE,sBAAsB;SAAQ,CAAA,GAClE,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;UACE,MAAK;UACL,WAAWA,SAAI;UACf,OAAO,MAAM;UACb,WAAU,MAAK,MAAM,EAAE,gBAAgB,OAAO,EAAE,OAAO,KAAK,EAAE,CAAC;SAChE,CAAA,CACI;QACJ,CAAA,CAAA;;OAEL,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;QAAK,WAAWA,SAAI;QAApB,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,SAAD;SAAO,WAAWA,SAAI;SAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;UAAM,WAAWA,SAAI;UAAa,UAAA,EAAE,qBAAqB;SAAQ,CAAA,GACjE,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;UACE,MAAK;UACL,WAAWA,SAAI;UACf,OAAO,MAAM;UACb,WAAU,MAAK,MAAM,EAAE,eAAe,OAAO,EAAE,OAAO,KAAK,EAAE,CAAC;SAC/D,CAAA,CACI;QAEP,CAAA,GAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,SAAD;SAAO,WAAWA,SAAI;SAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;UAAM,WAAWA,SAAI;UAAa,UAAA,EAAE,wBAAwB;SAAQ,CAAA,GACpE,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;UACE,MAAK;UACL,WAAWA,SAAI;UACf,OAAO,MAAM;UACb,WAAU,MAAK,MAAM,EAAE,kBAAkB,OAAO,EAAE,OAAO,KAAK,EAAE,CAAC;SAClE,CAAA,CACI;QACJ,CAAA,CAAA;;OAEL,iBAAA,GAAA,kBAAA,KAAA,CAAC,SAAD;QAAO,WAAWA,SAAI;QAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;SAAM,WAAWA,SAAI;SAAa,UAAA,EAAE,wBAAwB;QAAQ,CAAA,GACpE,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;SACE,MAAK;SACL,WAAWA,SAAI;SACf,OAAO,MAAM;SACb,WAAU,MAAK,MAAM,EAAE,kBAAkB,OAAO,EAAE,OAAO,KAAK,EAAE,CAAC;QAClE,CAAA,CACI;;MACJ;;KAEL,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;MAAK,WAAWA,SAAI;MAApB,UAAA;OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;QACE,MAAK;QACL,WAAWA,SAAI;QACf,eAAe,KAAK,KAAK;QACzB,UAAU,CAAC,SAAS;QAEnB,UAAA,SAAS,MAAM,QAAQ,EAAE,cAAc,IAAI,EAAE,aAAa;OACrD,CAAA;OACR,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;QACE,MAAK;QACL,WAAWA,SAAI;QACf,eAAe,KAAK,eAAe;QACnC,UAAU,eAAe;QAExB,UAAA,eAAe,YAAY,EAAE,gBAAgB,IAAI,EAAE,aAAa;OAC3D,CAAA;OACP,eAAe,aAAa,gBAAgB,KAAA,KAC3C,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;QAAM,WAAWA,SAAI;QAAS,UAAA;OAAkB,CAAA;OAEjD,eAAe,eAAe,gBAAgB,KAAA,KAC7C,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;QAAM,WAAWA,SAAI;QAAW,UAAA;OAAkB,CAAA;OAEnD,eAAe,WAAW,gBAAgB,KAAA,KACzC,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;QAAM,WAAWA,SAAI;QAArB,UAAA;SAA+B,EAAE,YAAY;SAAE;SAAG;QAAkB;;MAEnE;;IACE;;EAEb;;;ECtOA,MAAa,KAAK;EAElB,MAAa,KAAgC;GAC3C,OAAO;GACP,cAAc;GACd,cAAc;GACd,iBAAiB;GACjB,6BAA6B;GAC7B,mBAAmB;GACnB,+BAA+B;GAC/B,wBAAwB;GACxB,4BAA4B;GAC5B,qBAAqB;GACrB,wBAAwB;GACxB,uBAAuB;GACvB,0BAA0B;GAC1B,0BAA0B;GAC1B,eAAe;GACf,gBAAgB;GAChB,eAAe;GACf,kBAAkB;GAClB,gBAAgB;GAChB,kBAAkB;GAClB,cAAc;GACd,oBAAoB;GACpB,sBAAsB;GACtB,yBAAyB;GACzB,2BAA2B;GAC3B,8BAA8B;GAC9B,cAAc;GACd,aAAa;GACb,aAAa;EACf;EAEA,MAAa,KAAgC;GAC3C,OAAO;GACP,cAAc;GACd,cAAc;GACd,iBAAiB;GACjB,6BAA6B;GAC7B,mBAAmB;GACnB,+BAA+B;GAC/B,wBAAwB;GACxB,4BAA4B;GAC5B,qBAAqB;GACrB,wBAAwB;GACxB,uBAAuB;GACvB,0BAA0B;GAC1B,0BAA0B;GAC1B,eAAe;GACf,gBAAgB;GAChB,eAAe;GACf,kBAAkB;GAClB,gBAAgB;GAChB,kBAAkB;GAClB,cAAc;GACd,oBAAoB;GACpB,sBAAsB;GACtB,yBAAyB;GACzB,2BAA2B;GAC3B,8BAA8B;GAC9B,cAAc;GACd,aAAa;GACb,aAAa;EACf;;;EC7FA,MAAa,QAAmD;GAC9D,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,MAAM;IACJ,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,SAAS;IACP,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,SAAS;IACP,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;GACA,SAAS;IACP,OAAO;IACP,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,6BAA6B;IAC7B,mBAAmB;IACnB,+BAA+B;IAC/B,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;IACvB,0BAA0B;IAC1B,0BAA0B;IAC1B,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,8BAA8B;IAC9B,cAAc;IACd,aAAa;IACb,aAAa;GACf;EACF;;;ECjkBA,MAAa,SAAS;GAAC;GAAS;GAAU;EAAY;EAEtD,SAAgB,MAAM,KAA0B;GAC9C,IAAI,aAAa,IAAI,OAAO,SAAS,IAAI;IAAE;IAAI;GAAG,CAAC,GAAG,0BAA0B;GAEhF,MAAM,eAAe,IAAI,IAAI,cAAc;GAG3C,IAAI,cACF,IAAI,aAAa,aAAa,SAAS,IAAI,KAAK,GAAG,0CAA0C;GAG/F,MAAM,aAAa,IAAI;GACvB,MAAM,IAAI,IAAI,OAAO,KAAK,EAAE;GAE5B,MAAM,0BAAkD;IACtD,KAAK,WAAW;IAChB;GACF;GAEA,IAAI,MAAM,OAAO,0BAA0B,IAAI,MAAM,SAAS;IAC5D,MAAM;IACN,IAAI;IACJ,OAAO;IACP,aAAa,EAAE,KAAK;IACpB,QAAQ;GACV,GAAG,YAAY,CAAC;EAClB"}
|
|
1
|
+
{"version":3,"file":"client.js","names":["useState","useCallback","css"],"sources":["../src/client/SettingsPage.tsx","../src/client/locales.ts","../src/client/dictionaries.ts","../src/client/index.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\nimport type { PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'\nimport type { PropsLocale } from '@deepseek-ai/dsh-client-ui-slots'\nimport type { ClientConnectionRpc, RpcResult } from '@deepseek-ai/dsh-client-connection/client'\nimport type { MineruRuntimeConfig } from '../rpc.js'\nimport type { MineruKey } from './locales.js'\nimport css from './SettingsPage.module.css'\n\nexport interface MineruSettingsInjected {\n readonly rpc: ClientConnectionRpc\n readonly t: (key: string) => string\n}\n\ntype SettingsPageProps = PropsRuntime<'settings.section'> & PropsLocale<'dsh-mineru'> & MineruSettingsInjected\n\ntype ConfigGetResult = RpcResult<{ readonly config: MineruRuntimeConfig }>\ntype ConfigSetResult = RpcResult<{ readonly config: MineruRuntimeConfig }>\ntype HealthResult = RpcResult<{ readonly status: string; readonly version?: string; readonly queued_tasks?: number; readonly processing_tasks?: number }>\n\nconst BACKENDS = ['pipeline', 'vlm-engine', 'hybrid-engine', 'vlm-http-client', 'hybrid-http-client'] as const\nconst PARSE_METHODS = ['auto', 'txt', 'ocr'] as const\n\nasync function callRpc<T>(rpc: ClientConnectionRpc, endpoint: string, payload: unknown): Promise<T> {\n return rpc.call('/mineru-api', endpoint, payload) as Promise<T>\n}\n\nexport function SettingsPage({ rpc, t }: SettingsPageProps) {\n const [config, setConfig] = useState<MineruRuntimeConfig | null>(null)\n const [draft, setDraft] = useState<MineruRuntimeConfig | null>(null)\n const [loading, setLoading] = useState(true)\n const [saving, setSaving] = useState(false)\n const [saved, setSaved] = useState(false)\n const [error, setError] = useState<string | undefined>(undefined)\n const [testStatus, setTestStatus] = useState<'idle' | 'testing' | 'healthy' | 'unhealthy' | 'error'>('idle')\n const [testMessage, setTestMessage] = useState<string | undefined>(undefined)\n\n const refresh = useCallback(async () => {\n setLoading(true)\n setError(undefined)\n try {\n const result = await callRpc<ConfigGetResult>(rpc, 'mineru/config.get', {})\n if (result.ok) {\n setConfig(result.value.config)\n setDraft(result.value.config)\n } else {\n setError(result.error.message)\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err))\n } finally {\n setLoading(false)\n }\n }, [rpc])\n\n useEffect(() => { void refresh() }, [refresh])\n\n const save = useCallback(async () => {\n if (draft === null) return\n setSaving(true)\n setError(undefined)\n setSaved(false)\n try {\n const result = await callRpc<ConfigSetResult>(rpc, 'mineru/config.set', { config: draft })\n if (result.ok) {\n setConfig(result.value.config)\n setDraft(result.value.config)\n setSaved(true)\n setTimeout(() => setSaved(false), 2000)\n } else {\n setError(result.error.message)\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : String(err))\n } finally {\n setSaving(false)\n }\n }, [draft, rpc])\n\n const testConnection = useCallback(async () => {\n if (draft === null) return\n setTestStatus('testing')\n setTestMessage(undefined)\n try {\n const result = await callRpc<HealthResult>(rpc, 'mineru/health', {})\n if (result.ok && result.value.status === 'healthy') {\n setTestStatus('healthy')\n const v = result.value.version ? ` v${result.value.version}` : ''\n const q = result.value.queued_tasks !== undefined ? ` (${result.value.queued_tasks} queued)` : ''\n setTestMessage(`${t('test.healthy')}${v}${q}`)\n } else if (result.ok) {\n setTestStatus('unhealthy')\n setTestMessage(t('test.unhealthy'))\n } else {\n setTestStatus('error')\n setTestMessage(result.error.message)\n }\n } catch (err) {\n setTestStatus('error')\n setTestMessage(err instanceof Error ? err.message : String(err))\n }\n }, [draft, rpc, t])\n\n const patch = (p: Partial<MineruRuntimeConfig>): void => {\n setDraft(prev => prev === null ? prev : { ...prev, ...p })\n }\n\n if (loading || draft === null) {\n return (\n <section className={css.section}>\n <h2 className={css.title}>{t('page.title')}</h2>\n <div className={css.loading}>…</div>\n </section>\n )\n }\n\n const dirty = JSON.stringify(draft) !== JSON.stringify(config)\n\n return (\n <section className={css.section}>\n <h2 className={css.title}>{t('page.title')}</h2>\n <p className={css.intro}>{t('page.intro')}</p>\n\n {error !== undefined && (\n <div className={css.error}>\n {error}\n <button type=\"button\" className={css.errorDismiss} onClick={() => setError(undefined)}>×</button>\n </div>\n )}\n\n <div className={css.editor}>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.baseURL')}</span>\n <input\n className={css.input}\n value={draft.baseURL}\n placeholder={t('field.baseURL.placeholder')}\n onChange={e => patch({ baseURL: e.target.value })}\n />\n </label>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.apiKeyEnv')}</span>\n <input\n className={css.input}\n value={draft.apiKeyEnv}\n placeholder={t('field.apiKeyEnv.placeholder')}\n onChange={e => patch({ apiKeyEnv: e.target.value })}\n />\n </label>\n\n <div className={css.row}>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.defaultBackend')}</span>\n <select\n className={css.select}\n value={draft.defaultBackend}\n onChange={e => patch({ defaultBackend: e.target.value })}\n >\n {BACKENDS.map(b => (\n <option key={b} value={b}>{t(`backend.${b}` as MineruKey)}</option>\n ))}\n </select>\n </label>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.defaultParseMethod')}</span>\n <select\n className={css.select}\n value={draft.defaultParseMethod}\n onChange={e => patch({ defaultParseMethod: e.target.value })}\n >\n {PARSE_METHODS.map(m => (\n <option key={m} value={m}>{t(`parse.${m}` as MineruKey)}</option>\n ))}\n </select>\n </label>\n </div>\n\n <div className={css.row}>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.defaultLang')}</span>\n <input\n className={css.input}\n value={draft.defaultLang}\n onChange={e => patch({ defaultLang: e.target.value })}\n />\n </label>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.pollIntervalMs')}</span>\n <input\n type=\"number\"\n className={css.input}\n value={draft.pollIntervalMs}\n onChange={e => patch({ pollIntervalMs: Number(e.target.value) })}\n />\n </label>\n </div>\n\n <div className={css.row}>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.pollTimeoutMs')}</span>\n <input\n type=\"number\"\n className={css.input}\n value={draft.pollTimeoutMs}\n onChange={e => patch({ pollTimeoutMs: Number(e.target.value) })}\n />\n </label>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.requestTimeoutMs')}</span>\n <input\n type=\"number\"\n className={css.input}\n value={draft.requestTimeoutMs}\n onChange={e => patch({ requestTimeoutMs: Number(e.target.value) })}\n />\n </label>\n </div>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('field.maxMdOutputChars')}</span>\n <input\n type=\"number\"\n className={css.input}\n value={draft.maxMdOutputChars}\n onChange={e => patch({ maxMdOutputChars: Number(e.target.value) })}\n />\n </label>\n </div>\n\n <div className={css.actions}>\n <button\n type=\"button\"\n className={css.primaryButton}\n onClick={() => void save()}\n disabled={!dirty || saving}\n >\n {saving ? '…' : saved ? t('action.saved') : t('action.save')}\n </button>\n <button\n type=\"button\"\n className={css.secondaryButton}\n onClick={() => void testConnection()}\n disabled={testStatus === 'testing'}\n >\n {testStatus === 'testing' ? t('action.testing') : t('action.test')}\n </button>\n {testStatus === 'healthy' && testMessage !== undefined && (\n <span className={css.testOk}>{testMessage}</span>\n )}\n {testStatus === 'unhealthy' && testMessage !== undefined && (\n <span className={css.testWarn}>{testMessage}</span>\n )}\n {testStatus === 'error' && testMessage !== undefined && (\n <span className={css.testErr}>{t('test.error')}: {testMessage}</span>\n )}\n </div>\n </section>\n )\n}\n","export type MineruKey =\n | 'nav'\n | 'page.title'\n | 'page.intro'\n | 'field.baseURL'\n | 'field.baseURL.placeholder'\n | 'field.apiKeyEnv'\n | 'field.apiKeyEnv.placeholder'\n | 'field.defaultBackend'\n | 'field.defaultParseMethod'\n | 'field.defaultLang'\n | 'field.pollIntervalMs'\n | 'field.pollTimeoutMs'\n | 'field.requestTimeoutMs'\n | 'field.maxMdOutputChars'\n | 'action.save'\n | 'action.saved'\n | 'action.test'\n | 'action.testing'\n | 'test.healthy'\n | 'test.unhealthy'\n | 'test.error'\n | 'backend.pipeline'\n | 'backend.vlm-engine'\n | 'backend.hybrid-engine'\n | 'backend.vlm-http-client'\n | 'backend.hybrid-http-client'\n | 'parse.auto'\n | 'parse.txt'\n | 'parse.ocr'\n\nexport const NS = 'dsh-mineru'\n\nexport const en: Record<MineruKey, string> = {\n 'nav': 'MinerU',\n 'page.title': 'MinerU Configuration',\n 'page.intro': 'Configure the MinerU document parsing server. Changes apply immediately to all mineru_* tools.',\n 'field.baseURL': 'API Base URL',\n 'field.baseURL.placeholder': 'http://your-mineru-host:18000',\n 'field.apiKeyEnv': 'API Key Env Var',\n 'field.apiKeyEnv.placeholder': 'MINERU_API_KEY',\n 'field.defaultBackend': 'Default Backend',\n 'field.defaultParseMethod': 'Default Parse Method',\n 'field.defaultLang': 'Default Language',\n 'field.pollIntervalMs': 'Poll Interval (ms)',\n 'field.pollTimeoutMs': 'Poll Timeout (ms)',\n 'field.requestTimeoutMs': 'Request Timeout (ms)',\n 'field.maxMdOutputChars': 'Max Markdown Output Chars',\n 'action.save': 'Save',\n 'action.saved': 'Saved',\n 'action.test': 'Test Connection',\n 'action.testing': 'Testing…',\n 'test.healthy': 'Healthy',\n 'test.unhealthy': 'Unhealthy',\n 'test.error': 'Connection failed',\n 'backend.pipeline': 'pipeline (no VLM, multi-language)',\n 'backend.vlm-engine': 'vlm-engine (VLM only)',\n 'backend.hybrid-engine': 'hybrid-engine (VLM + pipeline)',\n 'backend.vlm-http-client': 'vlm-http-client',\n 'backend.hybrid-http-client': 'hybrid-http-client',\n 'parse.auto': 'auto',\n 'parse.txt': 'txt (text only, no OCR)',\n 'parse.ocr': 'ocr (force OCR)',\n}\n\nexport const zh: Record<MineruKey, string> = {\n 'nav': 'MinerU',\n 'page.title': 'MinerU 配置',\n 'page.intro': '配置 MinerU 文档解析服务器。修改后立即对所有 mineru_* 工具生效。',\n 'field.baseURL': 'API 地址',\n 'field.baseURL.placeholder': 'http://your-mineru-host:18000',\n 'field.apiKeyEnv': 'API Key 环境变量',\n 'field.apiKeyEnv.placeholder': 'MINERU_API_KEY',\n 'field.defaultBackend': '默认后端',\n 'field.defaultParseMethod': '默认解析方式',\n 'field.defaultLang': '默认语言',\n 'field.pollIntervalMs': '轮询间隔 (ms)',\n 'field.pollTimeoutMs': '轮询超时 (ms)',\n 'field.requestTimeoutMs': '请求超时 (ms)',\n 'field.maxMdOutputChars': 'Markdown 输出字符上限',\n 'action.save': '保存',\n 'action.saved': '已保存',\n 'action.test': '测试连接',\n 'action.testing': '测试中…',\n 'test.healthy': '健康',\n 'test.unhealthy': '异常',\n 'test.error': '连接失败',\n 'backend.pipeline': 'pipeline(无 VLM,多语言)',\n 'backend.vlm-engine': 'vlm-engine(仅 VLM)',\n 'backend.hybrid-engine': 'hybrid-engine(VLM + pipeline)',\n 'backend.vlm-http-client': 'vlm-http-client',\n 'backend.hybrid-http-client': 'hybrid-http-client',\n 'parse.auto': 'auto',\n 'parse.txt': 'txt(仅文本,不 OCR)',\n 'parse.ocr': 'ocr(强制 OCR)',\n}\n","import type { MineruKey } from './locales.js'\n\nexport const dicts: Record<string, Record<MineruKey, string>> = {\n 'ja': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU 設定\",\n 'page.intro': \"MinerU ドキュメント解析サーバーを設定します。変更はすべての mineru_* ツールにすぐに反映されます。\",\n 'field.baseURL': \"API ベース URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API キー環境変数\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"デフォルトのバックエンド\",\n 'field.defaultParseMethod': \"デフォルトの解析方法\",\n 'field.defaultLang': \"デフォルトの言語\",\n 'field.pollIntervalMs': \"ポーリング間隔 (ms)\",\n 'field.pollTimeoutMs': \"ポーリングタイムアウト (ms)\",\n 'field.requestTimeoutMs': \"リクエストタイムアウト (ms)\",\n 'field.maxMdOutputChars': \"Markdown 出力の最大文字数\",\n 'action.save': \"保存\",\n 'action.saved': \"保存しました\",\n 'action.test': \"接続テスト\",\n 'action.testing': \"テスト中…\",\n 'test.healthy': \"正常\",\n 'test.unhealthy': \"異常\",\n 'test.error': \"接続に失敗しました\",\n 'backend.pipeline': \"pipeline(VLM なし、多言語対応)\",\n 'backend.vlm-engine': \"vlm-engine(VLM のみ)\",\n 'backend.hybrid-engine': \"hybrid-engine(VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt(テキストのみ、OCR なし)\",\n 'parse.ocr': \"ocr(OCR 強制)\",\n },\n 'de': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU-Konfiguration\",\n 'page.intro': \"MinerU-Dokumentparser-Server konfigurieren. Änderungen wirken sofort auf alle mineru_*-Tools.\",\n 'field.baseURL': \"API-Basis-URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API-Schlüssel-Umgebungsvariable\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Standard-Backend\",\n 'field.defaultParseMethod': \"Standard-Parsemethode\",\n 'field.defaultLang': \"Standardsprache\",\n 'field.pollIntervalMs': \"Polling-Intervall (ms)\",\n 'field.pollTimeoutMs': \"Polling-Timeout (ms)\",\n 'field.requestTimeoutMs': \"Anfrage-Timeout (ms)\",\n 'field.maxMdOutputChars': \"Max. Markdown-Ausgabezeichen\",\n 'action.save': \"Speichern\",\n 'action.saved': \"Gespeichert\",\n 'action.test': \"Verbindung testen\",\n 'action.testing': \"Teste…\",\n 'test.healthy': \"In Ordnung\",\n 'test.unhealthy': \"Nicht in Ordnung\",\n 'test.error': \"Verbindung fehlgeschlagen\",\n 'backend.pipeline': \"pipeline (kein VLM, mehrsprachig)\",\n 'backend.vlm-engine': \"vlm-engine (nur VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (nur Text, kein OCR)\",\n 'parse.ocr': \"ocr (OCR erzwingen)\",\n },\n 'fr': {\n 'nav': \"MinerU\",\n 'page.title': \"Configuration de MinerU\",\n 'page.intro': \"Configurez le serveur d'analyse de documents MinerU. Les modifications s'appliquent immédiatement à tous les outils mineru_*.\",\n 'field.baseURL': \"URL de base de l'API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Variable d'environnement de la clé API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Backend par défaut\",\n 'field.defaultParseMethod': \"Méthode d'analyse par défaut\",\n 'field.defaultLang': \"Langue par défaut\",\n 'field.pollIntervalMs': \"Intervalle de sondage (ms)\",\n 'field.pollTimeoutMs': \"Délai de sondage (ms)\",\n 'field.requestTimeoutMs': \"Délai de requête (ms)\",\n 'field.maxMdOutputChars': \"Nombre max de caractères Markdown\",\n 'action.save': \"Enregistrer\",\n 'action.saved': \"Enregistré\",\n 'action.test': \"Tester la connexion\",\n 'action.testing': \"Test en cours…\",\n 'test.healthy': \"Opérationnel\",\n 'test.unhealthy': \"Défaillant\",\n 'test.error': \"Échec de la connexion\",\n 'backend.pipeline': \"pipeline (sans VLM, multilingue)\",\n 'backend.vlm-engine': \"vlm-engine (VLM uniquement)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (texte seul, sans OCR)\",\n 'parse.ocr': \"ocr (OCR forcé)\",\n },\n 'pt': {\n 'nav': \"MinerU\",\n 'page.title': \"Configuração do MinerU\",\n 'page.intro': \"Configure o servidor de análise de documentos MinerU. As alterações são aplicadas imediatamente a todas as ferramentas mineru_*.\",\n 'field.baseURL': \"URL base da API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Variável de ambiente da chave de API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Backend padrão\",\n 'field.defaultParseMethod': \"Método de análise padrão\",\n 'field.defaultLang': \"Idioma padrão\",\n 'field.pollIntervalMs': \"Intervalo de consulta (ms)\",\n 'field.pollTimeoutMs': \"Tempo limite de consulta (ms)\",\n 'field.requestTimeoutMs': \"Tempo limite de requisição (ms)\",\n 'field.maxMdOutputChars': \"Máx. de caracteres de saída Markdown\",\n 'action.save': \"Salvar\",\n 'action.saved': \"Salvo\",\n 'action.test': \"Testar conexão\",\n 'action.testing': \"Testando…\",\n 'test.healthy': \"Saudável\",\n 'test.unhealthy': \"Anormal\",\n 'test.error': \"Falha na conexão\",\n 'backend.pipeline': \"pipeline (sem VLM, multilíngue)\",\n 'backend.vlm-engine': \"vlm-engine (somente VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (somente texto, sem OCR)\",\n 'parse.ocr': \"ocr (forçar OCR)\",\n },\n 'ko': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU 설정\",\n 'page.intro': \"MinerU 문서 파싱 서버를 구성합니다. 변경 사항은 모든 mineru_* 도구에 즉시 적용됩니다.\",\n 'field.baseURL': \"API 기본 URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API 키 환경 변수\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"기본 백엔드\",\n 'field.defaultParseMethod': \"기본 파싱 방식\",\n 'field.defaultLang': \"기본 언어\",\n 'field.pollIntervalMs': \"폴링 간격 (ms)\",\n 'field.pollTimeoutMs': \"폴링 제한 시간 (ms)\",\n 'field.requestTimeoutMs': \"요청 제한 시간 (ms)\",\n 'field.maxMdOutputChars': \"Markdown 출력 최대 문자 수\",\n 'action.save': \"저장\",\n 'action.saved': \"저장됨\",\n 'action.test': \"연결 테스트\",\n 'action.testing': \"테스트 중…\",\n 'test.healthy': \"정상\",\n 'test.unhealthy': \"비정상\",\n 'test.error': \"연결 실패\",\n 'backend.pipeline': \"pipeline (VLM 없음, 다국어)\",\n 'backend.vlm-engine': \"vlm-engine (VLM 전용)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (텍스트 전용, OCR 없음)\",\n 'parse.ocr': \"ocr (OCR 강제)\",\n },\n 'ar': {\n 'nav': \"MinerU\",\n 'page.title': \"إعدادات MinerU\",\n 'page.intro': \"قم بتكوين خادم تحليل المستندات MinerU. تُطبَّق التغييرات فورًا على جميع أدوات mineru_*.\",\n 'field.baseURL': \"عنوان URL الأساسي للـ API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"متغير بيئة مفتاح API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"الخادم الخلفي الافتراضي\",\n 'field.defaultParseMethod': \"طريقة التحليل الافتراضية\",\n 'field.defaultLang': \"اللغة الافتراضية\",\n 'field.pollIntervalMs': \"فاصل الاستعلام (بالملي ثانية)\",\n 'field.pollTimeoutMs': \"مهلة الاستعلام (بالملي ثانية)\",\n 'field.requestTimeoutMs': \"مهلة الطلب (بالملي ثانية)\",\n 'field.maxMdOutputChars': \"الحد الأقصى لأحرف إخراج Markdown\",\n 'action.save': \"حفظ\",\n 'action.saved': \"تم الحفظ\",\n 'action.test': \"اختبار الاتصال\",\n 'action.testing': \"جارٍ الاختبار…\",\n 'test.healthy': \"سليم\",\n 'test.unhealthy': \"غير سليم\",\n 'test.error': \"فشل الاتصال\",\n 'backend.pipeline': \"pipeline (بدون VLM، متعدد اللغات)\",\n 'backend.vlm-engine': \"vlm-engine (VLM فقط)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (نص فقط، بدون OCR)\",\n 'parse.ocr': \"ocr (فرض OCR)\",\n },\n 'hi': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU कॉन्फ़िगरेशन\",\n 'page.intro': \"MinerU दस्तावेज़ पार्सिंग सर्वर कॉन्फ़िगर करें। परिवर्तन सभी mineru_* टूल पर तुरंत लागू होते हैं।\",\n 'field.baseURL': \"API बेस URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API कुंजी एनवायरनमेंट वेरिएबल\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"डिफ़ॉल्ट बैकएंड\",\n 'field.defaultParseMethod': \"डिफ़ॉल्ट पार्सिंग विधि\",\n 'field.defaultLang': \"डिफ़ॉल्ट भाषा\",\n 'field.pollIntervalMs': \"पोलिंग अंतराल (ms)\",\n 'field.pollTimeoutMs': \"पोलिंग टाइमआउट (ms)\",\n 'field.requestTimeoutMs': \"अनुरोध टाइमआउट (ms)\",\n 'field.maxMdOutputChars': \"अधिकतम Markdown आउटपुट वर्ण\",\n 'action.save': \"सहेजें\",\n 'action.saved': \"सहेजा गया\",\n 'action.test': \"कनेक्शन जाँचें\",\n 'action.testing': \"जाँच हो रही है…\",\n 'test.healthy': \"स्वस्थ\",\n 'test.unhealthy': \"अस्वस्थ\",\n 'test.error': \"कनेक्शन विफल\",\n 'backend.pipeline': \"pipeline (कोई VLM नहीं, बहुभाषी)\",\n 'backend.vlm-engine': \"vlm-engine (केवल VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (केवल टेक्स्ट, कोई OCR नहीं)\",\n 'parse.ocr': \"ocr (OCR ज़बरदस्ती)\",\n },\n 'id': {\n 'nav': \"MinerU\",\n 'page.title': \"Konfigurasi MinerU\",\n 'page.intro': \"Konfigurasikan server parsing dokumen MinerU. Perubahan langsung berlaku untuk semua alat mineru_*.\",\n 'field.baseURL': \"URL Dasar API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Variabel Lingkungan Kunci API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Backend Default\",\n 'field.defaultParseMethod': \"Metode Parsing Default\",\n 'field.defaultLang': \"Bahasa Default\",\n 'field.pollIntervalMs': \"Interval Polling (ms)\",\n 'field.pollTimeoutMs': \"Waktu Tunggu Polling (ms)\",\n 'field.requestTimeoutMs': \"Waktu Tunggu Permintaan (ms)\",\n 'field.maxMdOutputChars': \"Maks. Karakter Output Markdown\",\n 'action.save': \"Simpan\",\n 'action.saved': \"Tersimpan\",\n 'action.test': \"Uji Koneksi\",\n 'action.testing': \"Menguji…\",\n 'test.healthy': \"Sehat\",\n 'test.unhealthy': \"Tidak Sehat\",\n 'test.error': \"Koneksi gagal\",\n 'backend.pipeline': \"pipeline (tanpa VLM, multibahasa)\",\n 'backend.vlm-engine': \"vlm-engine (khusus VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (teks saja, tanpa OCR)\",\n 'parse.ocr': \"ocr (paksa OCR)\",\n },\n 'tr': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU Yapılandırması\",\n 'page.intro': \"MinerU belge ayrıştırma sunucusunu yapılandırın. Değişiklikler tüm mineru_* araçlarına anında uygulanır.\",\n 'field.baseURL': \"API Temel URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API Anahtarı Ortam Değişkeni\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Varsayılan Arka Uç\",\n 'field.defaultParseMethod': \"Varsayılan Ayrıştırma Yöntemi\",\n 'field.defaultLang': \"Varsayılan Dil\",\n 'field.pollIntervalMs': \"Yoklama Aralığı (ms)\",\n 'field.pollTimeoutMs': \"Yoklama Zaman Aşımı (ms)\",\n 'field.requestTimeoutMs': \"İstek Zaman Aşımı (ms)\",\n 'field.maxMdOutputChars': \"Maks. Markdown Çıktı Karakteri\",\n 'action.save': \"Kaydet\",\n 'action.saved': \"Kaydedildi\",\n 'action.test': \"Bağlantıyı Test Et\",\n 'action.testing': \"Test ediliyor…\",\n 'test.healthy': \"Sağlıklı\",\n 'test.unhealthy': \"Sağlıksız\",\n 'test.error': \"Bağlantı başarısız\",\n 'backend.pipeline': \"pipeline (VLM yok, çok dilli)\",\n 'backend.vlm-engine': \"vlm-engine (yalnızca VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (yalnızca metin, OCR yok)\",\n 'parse.ocr': \"ocr (OCR zorla)\",\n },\n 'vi': {\n 'nav': \"MinerU\",\n 'page.title': \"Cấu hình MinerU\",\n 'page.intro': \"Định cấu hình máy chủ phân tích tài liệu MinerU. Thay đổi áp dụng ngay cho mọi công cụ mineru_*.\",\n 'field.baseURL': \"URL gốc API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Biến môi trường khóa API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Backend mặc định\",\n 'field.defaultParseMethod': \"Phương thức phân tích mặc định\",\n 'field.defaultLang': \"Ngôn ngữ mặc định\",\n 'field.pollIntervalMs': \"Khoảng thời gian thăm dò (ms)\",\n 'field.pollTimeoutMs': \"Hết thời gian thăm dò (ms)\",\n 'field.requestTimeoutMs': \"Hết thời gian yêu cầu (ms)\",\n 'field.maxMdOutputChars': \"Tối đa ký tự xuất Markdown\",\n 'action.save': \"Lưu\",\n 'action.saved': \"Đã lưu\",\n 'action.test': \"Kiểm tra kết nối\",\n 'action.testing': \"Đang kiểm tra…\",\n 'test.healthy': \"Hoạt động tốt\",\n 'test.unhealthy': \"Không ổn\",\n 'test.error': \"Kết nối thất bại\",\n 'backend.pipeline': \"pipeline (không VLM, đa ngôn ngữ)\",\n 'backend.vlm-engine': \"vlm-engine (chỉ VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (chỉ văn bản, không OCR)\",\n 'parse.ocr': \"ocr (buộc OCR)\",\n },\n 'th': {\n 'nav': \"MinerU\",\n 'page.title': \"การกำหนดค่า MinerU\",\n 'page.intro': \"กำหนดค่าเซิร์ฟเวอร์แยกวิเคราะห์เอกสาร MinerU การเปลี่ยนแปลงมีผลทันทีกับเครื่องมือ mineru_* ทั้งหมด\",\n 'field.baseURL': \"URL ฐานของ API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"ตัวแปรสภาพแวดล้อมคีย์ API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"แบ็กเอนด์เริ่มต้น\",\n 'field.defaultParseMethod': \"วิธีแยกวิเคราะห์เริ่มต้น\",\n 'field.defaultLang': \"ภาษาเริ่มต้น\",\n 'field.pollIntervalMs': \"ช่วงเวลาการสอบถาม (ms)\",\n 'field.pollTimeoutMs': \"หมดเวลาการสอบถาม (ms)\",\n 'field.requestTimeoutMs': \"หมดเวลาคำขอ (ms)\",\n 'field.maxMdOutputChars': \"อักขระสูงสุดของเอาต์พุต Markdown\",\n 'action.save': \"บันทึก\",\n 'action.saved': \"บันทึกแล้ว\",\n 'action.test': \"ทดสอบการเชื่อมต่อ\",\n 'action.testing': \"กำลังทดสอบ…\",\n 'test.healthy': \"ปกติ\",\n 'test.unhealthy': \"ผิดปกติ\",\n 'test.error': \"การเชื่อมต่อล้มเหลว\",\n 'backend.pipeline': \"pipeline (ไม่มี VLM, หลายภาษา)\",\n 'backend.vlm-engine': \"vlm-engine (เฉพาะ VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (เฉพาะข้อความ ไม่มี OCR)\",\n 'parse.ocr': \"ocr (บังคับ OCR)\",\n },\n 'ru': {\n 'nav': \"MinerU\",\n 'page.title': \"Конфигурация MinerU\",\n 'page.intro': \"Настройте сервер разбора документов MinerU. Изменения немедленно применяются ко всем инструментам mineru_*.\",\n 'field.baseURL': \"Базовый URL API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Переменная окружения ключа API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Бэкенд по умолчанию\",\n 'field.defaultParseMethod': \"Метод разбора по умолчанию\",\n 'field.defaultLang': \"Язык по умолчанию\",\n 'field.pollIntervalMs': \"Интервал опроса (мс)\",\n 'field.pollTimeoutMs': \"Таймаут опроса (мс)\",\n 'field.requestTimeoutMs': \"Таймаут запроса (мс)\",\n 'field.maxMdOutputChars': \"Макс. символов вывода Markdown\",\n 'action.save': \"Сохранить\",\n 'action.saved': \"Сохранено\",\n 'action.test': \"Проверить соединение\",\n 'action.testing': \"Проверка…\",\n 'test.healthy': \"Исправно\",\n 'test.unhealthy': \"Неисправно\",\n 'test.error': \"Ошибка соединения\",\n 'backend.pipeline': \"pipeline (без VLM, мультиязычный)\",\n 'backend.vlm-engine': \"vlm-engine (только VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (только текст, без OCR)\",\n 'parse.ocr': \"ocr (принудительный OCR)\",\n },\n 'it': {\n 'nav': \"MinerU\",\n 'page.title': \"Configurazione MinerU\",\n 'page.intro': \"Configura il server di parsing documenti MinerU. Le modifiche si applicano immediatamente a tutti gli strumenti mineru_*.\",\n 'field.baseURL': \"URL di base API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Variabile d'ambiente chiave API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Backend predefinito\",\n 'field.defaultParseMethod': \"Metodo di parsing predefinito\",\n 'field.defaultLang': \"Lingua predefinita\",\n 'field.pollIntervalMs': \"Intervallo di polling (ms)\",\n 'field.pollTimeoutMs': \"Timeout polling (ms)\",\n 'field.requestTimeoutMs': \"Timeout richiesta (ms)\",\n 'field.maxMdOutputChars': \"Max caratteri output Markdown\",\n 'action.save': \"Salva\",\n 'action.saved': \"Salvato\",\n 'action.test': \"Testa connessione\",\n 'action.testing': \"Test in corso…\",\n 'test.healthy': \"Funzionante\",\n 'test.unhealthy': \"Non funzionante\",\n 'test.error': \"Connessione fallita\",\n 'backend.pipeline': \"pipeline (senza VLM, multilingue)\",\n 'backend.vlm-engine': \"vlm-engine (solo VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (solo testo, senza OCR)\",\n 'parse.ocr': \"ocr (OCR forzato)\",\n },\n 'nl': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU-configuratie\",\n 'page.intro': \"Configureer de MinerU-documentparsingserver. Wijzigingen zijn direct van toepassing op alle mineru_*-tools.\",\n 'field.baseURL': \"API-basis-URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API-sleutelomgevingsvariabele\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Standaardbackend\",\n 'field.defaultParseMethod': \"Standaardparsingmethode\",\n 'field.defaultLang': \"Standaardtaal\",\n 'field.pollIntervalMs': \"Polling-interval (ms)\",\n 'field.pollTimeoutMs': \"Polling-timeout (ms)\",\n 'field.requestTimeoutMs': \"Aanvraagtimeout (ms)\",\n 'field.maxMdOutputChars': \"Max. Markdown-uitvoertekens\",\n 'action.save': \"Opslaan\",\n 'action.saved': \"Opgeslagen\",\n 'action.test': \"Verbinding testen\",\n 'action.testing': \"Bezig met testen…\",\n 'test.healthy': \"Gezond\",\n 'test.unhealthy': \"Ongezond\",\n 'test.error': \"Verbinding mislukt\",\n 'backend.pipeline': \"pipeline (geen VLM, meertalig)\",\n 'backend.vlm-engine': \"vlm-engine (alleen VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (alleen tekst, geen OCR)\",\n 'parse.ocr': \"ocr (OCR afdwingen)\",\n },\n 'sv': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU-konfiguration\",\n 'page.intro': \"Konfigurera MinerU-servern för dokumentparsning. Ändringar tillämpas omedelbart på alla mineru_*-verktyg.\",\n 'field.baseURL': \"API-bas-URL\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API-nyckelns miljövariabel\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Standardbackend\",\n 'field.defaultParseMethod': \"Standardparsningsmetod\",\n 'field.defaultLang': \"Standardspråk\",\n 'field.pollIntervalMs': \"Pollningsintervall (ms)\",\n 'field.pollTimeoutMs': \"Pollningstimeout (ms)\",\n 'field.requestTimeoutMs': \"Begärandetimeout (ms)\",\n 'field.maxMdOutputChars': \"Max Markdown-utdatatecken\",\n 'action.save': \"Spara\",\n 'action.saved': \"Sparat\",\n 'action.test': \"Testa anslutningen\",\n 'action.testing': \"Testar…\",\n 'test.healthy': \"Fungerar\",\n 'test.unhealthy': \"Fungerar inte\",\n 'test.error': \"Anslutningen misslyckades\",\n 'backend.pipeline': \"pipeline (ingen VLM, flerspråkig)\",\n 'backend.vlm-engine': \"vlm-engine (endast VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (endast text, ingen OCR)\",\n 'parse.ocr': \"ocr (tvinga OCR)\",\n },\n 'pl': {\n 'nav': \"MinerU\",\n 'page.title': \"Konfiguracja MinerU\",\n 'page.intro': \"Skonfiguruj serwer parsowania dokumentów MinerU. Zmiany natychmiast dotyczą wszystkich narzędzi mineru_*.\",\n 'field.baseURL': \"Bazowy URL API\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"Zmienna środowiskowa klucza API\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"Domyślny backend\",\n 'field.defaultParseMethod': \"Domyślna metoda parsowania\",\n 'field.defaultLang': \"Domyślny język\",\n 'field.pollIntervalMs': \"Interwał odpytywania (ms)\",\n 'field.pollTimeoutMs': \"Limit czasu odpytywania (ms)\",\n 'field.requestTimeoutMs': \"Limit czasu żądania (ms)\",\n 'field.maxMdOutputChars': \"Maks. znaków wyjściowych Markdown\",\n 'action.save': \"Zapisz\",\n 'action.saved': \"Zapisano\",\n 'action.test': \"Testuj połączenie\",\n 'action.testing': \"Testowanie…\",\n 'test.healthy': \"Sprawny\",\n 'test.unhealthy': \"Niesprawny\",\n 'test.error': \"Nie udało się połączyć\",\n 'backend.pipeline': \"pipeline (bez VLM, wielojęzyczny)\",\n 'backend.vlm-engine': \"vlm-engine (tylko VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine (VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt (tylko tekst, bez OCR)\",\n 'parse.ocr': \"ocr (wymuś OCR)\",\n },\n 'zh-HK': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU 設定\",\n 'page.intro': \"設定 MinerU 文件解析伺服器。修改後即時對所有 mineru_* 工具生效。\",\n 'field.baseURL': \"API 位址\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API Key 環境變數\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"預設後端\",\n 'field.defaultParseMethod': \"預設解析方式\",\n 'field.defaultLang': \"預設語言\",\n 'field.pollIntervalMs': \"輪詢間隔 (ms)\",\n 'field.pollTimeoutMs': \"輪詢逾時 (ms)\",\n 'field.requestTimeoutMs': \"請求逾時 (ms)\",\n 'field.maxMdOutputChars': \"Markdown 輸出字元上限\",\n 'action.save': \"儲存\",\n 'action.saved': \"已儲存\",\n 'action.test': \"測試連線\",\n 'action.testing': \"測試中…\",\n 'test.healthy': \"健康\",\n 'test.unhealthy': \"異常\",\n 'test.error': \"連線失敗\",\n 'backend.pipeline': \"pipeline(無 VLM,多語言)\",\n 'backend.vlm-engine': \"vlm-engine(僅 VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine(VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt(僅文字,不 OCR)\",\n 'parse.ocr': \"ocr(強制 OCR)\",\n },\n 'zh-TW': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU 設定\",\n 'page.intro': \"設定 MinerU 文件解析伺服器。修改後立即對所有 mineru_* 工具生效。\",\n 'field.baseURL': \"API 位址\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API Key 環境變數\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"預設後端\",\n 'field.defaultParseMethod': \"預設解析方式\",\n 'field.defaultLang': \"預設語言\",\n 'field.pollIntervalMs': \"輪詢間隔 (ms)\",\n 'field.pollTimeoutMs': \"輪詢逾時 (ms)\",\n 'field.requestTimeoutMs': \"請求逾時 (ms)\",\n 'field.maxMdOutputChars': \"Markdown 輸出字元上限\",\n 'action.save': \"儲存\",\n 'action.saved': \"已儲存\",\n 'action.test': \"測試連線\",\n 'action.testing': \"測試中…\",\n 'test.healthy': \"健康\",\n 'test.unhealthy': \"異常\",\n 'test.error': \"連線失敗\",\n 'backend.pipeline': \"pipeline(無 VLM,多語言)\",\n 'backend.vlm-engine': \"vlm-engine(僅 VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine(VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt(僅文字,不 OCR)\",\n 'parse.ocr': \"ocr(強制 OCR)\",\n },\n 'zh-MO': {\n 'nav': \"MinerU\",\n 'page.title': \"MinerU 設定\",\n 'page.intro': \"設定 MinerU 文件解析伺服器。修改後即時對所有 mineru_* 工具生效。\",\n 'field.baseURL': \"API 位址\",\n 'field.baseURL.placeholder': \"http://your-mineru-host:18000\",\n 'field.apiKeyEnv': \"API Key 環境變數\",\n 'field.apiKeyEnv.placeholder': \"MINERU_API_KEY\",\n 'field.defaultBackend': \"預設後端\",\n 'field.defaultParseMethod': \"預設解析方式\",\n 'field.defaultLang': \"預設語言\",\n 'field.pollIntervalMs': \"輪詢間隔 (ms)\",\n 'field.pollTimeoutMs': \"輪詢逾時 (ms)\",\n 'field.requestTimeoutMs': \"請求逾時 (ms)\",\n 'field.maxMdOutputChars': \"Markdown 輸出字元上限\",\n 'action.save': \"儲存\",\n 'action.saved': \"已儲存\",\n 'action.test': \"測試連線\",\n 'action.testing': \"測試中…\",\n 'test.healthy': \"健康\",\n 'test.unhealthy': \"異常\",\n 'test.error': \"連線失敗\",\n 'backend.pipeline': \"pipeline(無 VLM,多語言)\",\n 'backend.vlm-engine': \"vlm-engine(僅 VLM)\",\n 'backend.hybrid-engine': \"hybrid-engine(VLM + pipeline)\",\n 'backend.vlm-http-client': \"vlm-http-client\",\n 'backend.hybrid-http-client': \"hybrid-http-client\",\n 'parse.auto': \"auto\",\n 'parse.txt': \"txt(僅文字,不 OCR)\",\n 'parse.ocr': \"ocr(強制 OCR)\",\n },\n}","import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client'\nimport type { ConnectionHandle } from '@deepseek-ai/dsh-client-connection/client'\nimport type {} from '@deepseek-ai/dsh-client-connection/client'\nimport type {} from '@deepseek-ai/dsh-client-ui-settings/client'\nimport type {} from '@deepseek-ai/dsh-client-locale/client'\nimport { SettingsPage, type MineruSettingsInjected } from './SettingsPage.js'\nimport { en, NS, zh, type MineruKey } from './locales.js'\nimport { dicts } from './dictionaries.js'\n\ndeclare module '@deepseek-ai/dsh-client-ui-slots' {\n interface LocaleNamespaceMap {\n 'dsh-mineru': MineruKey\n }\n}\n\nexport const inject = ['slots', 'locale', 'connection']\n\nexport function apply(ctx: ClientContext): void {\n ctx.effect(() => ctx.locale.register(NS, { zh, en }), 'dsh-mineru: dictionaries')\n\n ctx.effect(() => {\n let dispose: (() => void) | undefined\n const sync = (): void => {\n dispose?.()\n dispose = undefined\n const store = ctx.get('betterLocale') as\n | { register(ns: string, dicts: Record<string, Record<string, string>>): () => void }\n | undefined\n if (store !== undefined) {\n dispose = store.register(NS, dicts)\n }\n }\n sync()\n const unsubscribe = ctx.locale.subscribe(sync)\n return () => {\n unsubscribe()\n dispose?.()\n }\n }, 'dsh-mineru: better-locale override dicts')\n\n const connection = ctx.connection as unknown as ConnectionHandle\n const t = ctx.locale.bind(NS) as (key: string) => string\n\n const settingsInjected = (): MineruSettingsInjected => ({\n rpc: connection.rpc,\n t,\n })\n\n ctx.slots.inject('settings.section', () => ctx.slots.register({\n name: 'settings.section',\n id: 'dsh-mineru',\n order: 40,\n label: () => t('nav'),\n inject: settingsInjected,\n }, SettingsPage))\n}\n"],"mappings":"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"}
|