dsh-gitbash-shell 0.29.1 → 0.30.0
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/CHANGELOG.md +80 -1
- package/README.md +5 -1
- package/README_EN.md +20 -0
- package/dsh.plugin.json +1 -1
- package/package.json +1 -1
- package/src/client.js +499 -0
- package/src/index.js +88 -0
- package/src/tool-runner.js +337 -0
- package/src/toolchain.js +418 -0
package/src/client.js
CHANGED
|
@@ -116,6 +116,21 @@ window.__ModuleLoader__.load({
|
|
|
116
116
|
"python.hint": "默认关闭时 run_code 用官方 Node/TypeScript 后端,与官方 ptc 组合逐字节一致;开启后改用 dsh 实验性 CPython 后端(@deepseek-ai/dsh-experimental-ptc-runtime-python),run_code 的语言、生成的 SDK 提示词与工具呈现随之切到 Python。要求 POSIX 平台与 CPython ≥ 3.10(Windows 不可用);与 workflow 工具互斥——官方 Python 组合同样禁用 workflow,因此开启期间本插件四个变体的 workflow 侧强制关闭(你的工作流设置值保留,关掉后恢复)。改动需重启 dsh 后生效;此开关就是 dsh-ptc-cordis-preset 设置卡上的同一个开关——两侧共享同一份状态,任一侧改动两侧同步。仅在已安装 dsh-ptc-cordis-preset 时显示。若置为开启后未生效,原因见宿主启动日志。",
|
|
117
117
|
"python.degraded": "后端不可用,当前仍为 Node(原因见宿主启动日志)",
|
|
118
118
|
"python.blocked": "本机是 Windows:实验性 Python 后端仅支持 POSIX,此开关不可用。",
|
|
119
|
+
"sec.tools": "终端工具",
|
|
120
|
+
"tools.hint": "从 winget 官方源安装常用命令行工具。已经存在的(无论什么来源)一律不重复安装;由 LLVM、WinLibs 等提供的工具链也不会被升级,只如实显示来源。",
|
|
121
|
+
"tools.refresh": "刷新状态",
|
|
122
|
+
"tools.run": "安装 / 升级选中",
|
|
123
|
+
"tools.selectMissing": "全选可安装",
|
|
124
|
+
"tools.loading": "正在检测…",
|
|
125
|
+
"tools.nowinget": "未检测到 winget,无法安装或升级。Windows 10 1809 起系统自带,可在 Microsoft Store 更新「应用安装程序」。",
|
|
126
|
+
"tools.state.missing": "未安装",
|
|
127
|
+
"tools.state.external": "已有(其他来源)",
|
|
128
|
+
"tools.state.managed": "可升级",
|
|
129
|
+
"tools.state.current": "已是最新",
|
|
130
|
+
"tools.adminHint": "需要管理员权限:会弹出 UAC 窗口,请在电脑上确认",
|
|
131
|
+
"tools.working": "处理中",
|
|
132
|
+
"tools.resultOk": "成功",
|
|
133
|
+
"tools.resultFail": "失败",
|
|
119
134
|
};
|
|
120
135
|
|
|
121
136
|
var en = {
|
|
@@ -167,6 +182,21 @@ window.__ModuleLoader__.load({
|
|
|
167
182
|
"python.hint": "While off (default) run_code uses the official Node/TypeScript backend, byte-identical to the shipped ptc composition; turning it on switches to dsh's experimental CPython backend (@deepseek-ai/dsh-experimental-ptc-runtime-python), which also switches run_code's language, generated SDK prompt and tool presentation to Python. Requires a POSIX platform and CPython ≥ 3.10 (unavailable on Windows) and is mutually exclusive with the workflow tool — the official Python composition disables workflow too, so the workflow side of all four variants is forced off while this is on (your workflow setting is kept and restored when you turn it back off). Takes effect after restarting dsh; this is the very same switch on dsh-ptc-cordis-preset's card — both sides share one state, so either side updates both. Shown only while dsh-ptc-cordis-preset is installed. If turning it on does not take effect, the dsh startup log states why.",
|
|
168
183
|
"python.degraded": "backend unavailable, still Node (reason in the dsh startup log)",
|
|
169
184
|
"python.blocked": "This host is Windows: the experimental Python backend supports POSIX only, so this switch is unavailable.",
|
|
185
|
+
"sec.tools": "Terminal tools",
|
|
186
|
+
"tools.hint": "Installs common command-line tools from the official winget source. Anything already present is never re-installed, and a toolchain provided by LLVM, WinLibs or similar is never upgraded — its origin is simply shown.",
|
|
187
|
+
"tools.refresh": "Refresh",
|
|
188
|
+
"tools.run": "Install / upgrade selected",
|
|
189
|
+
"tools.selectMissing": "Select installable",
|
|
190
|
+
"tools.loading": "Checking…",
|
|
191
|
+
"tools.nowinget": "winget was not found, so nothing can be installed or upgraded. It ships with Windows 10 1809+; update “App Installer” in the Microsoft Store.",
|
|
192
|
+
"tools.state.missing": "Not installed",
|
|
193
|
+
"tools.state.external": "Present (other source)",
|
|
194
|
+
"tools.state.managed": "Upgrade available",
|
|
195
|
+
"tools.state.current": "Up to date",
|
|
196
|
+
"tools.adminHint": "Needs administrator: a UAC prompt will appear — accept it on this machine",
|
|
197
|
+
"tools.working": "Working",
|
|
198
|
+
"tools.resultOk": "succeeded",
|
|
199
|
+
"tools.resultFail": "failed",
|
|
170
200
|
};
|
|
171
201
|
|
|
172
202
|
/* Third-language dictionaries: one entry per language, each preceded
|
|
@@ -228,6 +258,21 @@ window.__ModuleLoader__.load({
|
|
|
228
258
|
"python.hint": "عند الإيقاف (افتراضيًا) يستخدم run_code الخلفية الرسمية Node/TypeScript، مطابقة تمامًا لتركيبة ptc الرسمية؛ وعند التشغيل يتحول إلى خلفية CPython التجريبية في dsh (@deepseek-ai/dsh-experimental-ptc-runtime-python)، فتتحول لغة run_code ومطالبة SDK المولَّدة وعرض الأداة إلى Python. يتطلب نظام POSIX و CPython ≥ 3.10 (غير متاح على Windows)، وهو متعارض مع أداة workflow — فالتركيبة الرسمية لـ Python تعطّل workflow أيضًا، لذا يبقى جانب workflow مُعطَّلًا في المتغيّرات الأربعة أثناء التشغيل (قيمتك محفوظة وتعود عند الإيقاف). يسري التغيير بعد إعادة تشغيل dsh؛ هذا هو المفتاح نفسه على بطاقة dsh-ptc-cordis-preset — الجانبان يتشاركان حالة واحدة. يظهر فقط عند تثبيت dsh-ptc-cordis-preset. إذا لم يسري التشغيل، فسبب ذلك مذكور في سجل تشغيل dsh.",
|
|
229
259
|
"python.degraded": "الخلفية غير متاحة، لا يزال Node (السبب في سجل بدء التشغيل)",
|
|
230
260
|
"python.blocked": "هذا المضيف يعمل بـ Windows: الخلفية التجريبية Python تدعم POSIX فقط، لذا لا يتوفر هذا المفتاح.",
|
|
261
|
+
"sec.tools": "أدوات الطرفية",
|
|
262
|
+
"tools.hint": "يثبّت أدوات سطر أوامر شائعة من مصدر winget الرسمي. لا يُعاد تثبيت أي أداة موجودة أصلًا، ولا تُرقّى سلسلة أدوات يوفّرها LLVM أو WinLibs أو ما شابه — يُعرض مصدرها فقط.",
|
|
263
|
+
"tools.refresh": "تحديث الحالة",
|
|
264
|
+
"tools.run": "تثبيت / ترقية المحدد",
|
|
265
|
+
"tools.selectMissing": "تحديد القابل للتثبيت",
|
|
266
|
+
"tools.loading": "جارٍ الفحص…",
|
|
267
|
+
"tools.nowinget": "لم يُعثر على winget، فلا يمكن التثبيت أو الترقية. يأتي مع Windows 10 إصدار 1809 وما بعده؛ حدّث «مثبّت التطبيقات» من متجر Microsoft.",
|
|
268
|
+
"tools.state.missing": "غير مثبَّت",
|
|
269
|
+
"tools.state.external": "موجود (مصدر آخر)",
|
|
270
|
+
"tools.state.managed": "ترقية متاحة",
|
|
271
|
+
"tools.state.current": "محدَّث",
|
|
272
|
+
"tools.adminHint": "يتطلب صلاحيات المسؤول: ستظهر نافذة UAC — أكّدها على هذا الجهاز",
|
|
273
|
+
"tools.working": "جارٍ العمل",
|
|
274
|
+
"tools.resultOk": "نجح",
|
|
275
|
+
"tools.resultFail": "فشل",
|
|
231
276
|
},
|
|
232
277
|
/* locale: de */
|
|
233
278
|
"de": {
|
|
@@ -279,6 +324,21 @@ window.__ModuleLoader__.load({
|
|
|
279
324
|
"python.hint": "Aus (Standard): run_code nutzt das offizielle Node/TypeScript-Backend, byte-identisch zur ausgelieferten ptc-Komposition; an: dsh wechselt auf das experimentelle CPython-Backend (@deepseek-ai/dsh-experimental-ptc-runtime-python), womit Sprache, generierter SDK-Prompt und Darstellung von run_code auf Python umstellen. Erfordert POSIX und CPython ≥ 3.10 (unter Windows nicht verfügbar) und ist mit dem workflow-Tool unvereinbar — die offizielle Python-Komposition deaktiviert workflow ebenfalls, deshalb bleibt die workflow-Seite aller vier Varianten so lange aus (dein Workflow-Wert bleibt erhalten und kehrt nach dem Ausschalten zurück). Wirkt nach einem Neustart von dsh; dies ist derselbe Schalter auf der Karte von dsh-ptc-cordis-preset — beide Seiten teilen einen Zustand. Nur sichtbar, solange dsh-ptc-cordis-preset installiert ist. Bleibt das Einschalten ohne Wirkung, nennt das dsh-Startprotokoll den Grund.",
|
|
280
325
|
"python.degraded": "Backend nicht verfügbar, weiterhin Node (Grund im dsh-Startprotokoll)",
|
|
281
326
|
"python.blocked": "Dieser Host ist Windows: Das experimentelle Python-Backend unterstützt nur POSIX, der Schalter ist nicht verfügbar.",
|
|
327
|
+
"sec.tools": "Terminal-Werkzeuge",
|
|
328
|
+
"tools.hint": "Installiert gängige Kommandozeilen-Werkzeuge aus der offiziellen winget-Quelle. Bereits Vorhandenes wird nie erneut installiert, und eine Toolchain von LLVM, WinLibs o. Ä. wird nie aktualisiert — ihre Herkunft wird nur angezeigt.",
|
|
329
|
+
"tools.refresh": "Status aktualisieren",
|
|
330
|
+
"tools.run": "Ausgewählte installieren / aktualisieren",
|
|
331
|
+
"tools.selectMissing": "Installierbare auswählen",
|
|
332
|
+
"tools.loading": "Prüfe…",
|
|
333
|
+
"tools.nowinget": "winget wurde nicht gefunden, es kann nichts installiert oder aktualisiert werden. Es ist ab Windows 10 1809 enthalten; „App-Installer“ im Microsoft Store aktualisieren.",
|
|
334
|
+
"tools.state.missing": "Nicht installiert",
|
|
335
|
+
"tools.state.external": "Vorhanden (andere Quelle)",
|
|
336
|
+
"tools.state.managed": "Update verfügbar",
|
|
337
|
+
"tools.state.current": "Aktuell",
|
|
338
|
+
"tools.adminHint": "Erfordert Administratorrechte: Ein UAC-Fenster erscheint — bitte an diesem Rechner bestätigen",
|
|
339
|
+
"tools.working": "Läuft",
|
|
340
|
+
"tools.resultOk": "erfolgreich",
|
|
341
|
+
"tools.resultFail": "fehlgeschlagen",
|
|
282
342
|
},
|
|
283
343
|
/* locale: fr */
|
|
284
344
|
"fr": {
|
|
@@ -330,6 +390,21 @@ window.__ModuleLoader__.load({
|
|
|
330
390
|
"python.hint": "Désactivé (par défaut), run_code utilise le backend officiel Node/TypeScript, identique octet pour octet à la composition ptc livrée ; activé, dsh bascule sur le backend CPython expérimental (@deepseek-ai/dsh-experimental-ptc-runtime-python) : la langue, l'invite SDK générée et la présentation de run_code passent en Python. Exige POSIX et CPython ≥ 3.10 (indisponible sous Windows) et est incompatible avec l'outil workflow — la composition Python officielle désactive aussi workflow, donc le côté workflow des quatre variantes reste désactivé tant que l'option est active (ta valeur est conservée et revient à la désactivation). Prend effet après un redémarrage de dsh ; c'est le même interrupteur que sur la carte de dsh-ptc-cordis-preset — les deux côtés partagent un seul état. Affiché uniquement si dsh-ptc-cordis-preset est installé. Si l'activation reste sans effet, le journal de démarrage de dsh en indique la raison.",
|
|
331
391
|
"python.degraded": "backend indisponible, toujours Node (raison dans le journal de démarrage de dsh)",
|
|
332
392
|
"python.blocked": "Cet hôte est sous Windows : le backend Python expérimental n'est disponible que sur POSIX, l'interrupteur est indisponible.",
|
|
393
|
+
"sec.tools": "Outils de terminal",
|
|
394
|
+
"tools.hint": "Installe des outils en ligne de commande courants depuis la source winget officielle. Ce qui est déjà présent n'est jamais réinstallé, et une chaîne d'outils fournie par LLVM, WinLibs ou similaire n'est jamais mise à jour — son origine est simplement affichée.",
|
|
395
|
+
"tools.refresh": "Actualiser",
|
|
396
|
+
"tools.run": "Installer / mettre à jour la sélection",
|
|
397
|
+
"tools.selectMissing": "Sélectionner les installables",
|
|
398
|
+
"tools.loading": "Vérification…",
|
|
399
|
+
"tools.nowinget": "winget est introuvable : rien ne peut être installé ni mis à jour. Il est fourni avec Windows 10 1809 et versions ultérieures ; mettez à jour « App Installer » dans le Microsoft Store.",
|
|
400
|
+
"tools.state.missing": "Non installé",
|
|
401
|
+
"tools.state.external": "Présent (autre source)",
|
|
402
|
+
"tools.state.managed": "Mise à jour disponible",
|
|
403
|
+
"tools.state.current": "À jour",
|
|
404
|
+
"tools.adminHint": "Nécessite les droits administrateur : une fenêtre UAC va s'afficher — validez-la sur cette machine",
|
|
405
|
+
"tools.working": "En cours",
|
|
406
|
+
"tools.resultOk": "réussi",
|
|
407
|
+
"tools.resultFail": "échec",
|
|
333
408
|
},
|
|
334
409
|
/* locale: hi */
|
|
335
410
|
"hi": {
|
|
@@ -381,6 +456,21 @@ window.__ModuleLoader__.load({
|
|
|
381
456
|
"python.hint": "बंद (डिफ़ॉल्ट) रहने पर run_code आधिकारिक Node/TypeScript बैकएंड इस्तेमाल करता है, जो भेजे गए ptc संयोजन से पूरी तरह मेल खाता है; चालू करने पर dsh का प्रयोगात्मक CPython बैकएंड (@deepseek-ai/dsh-experimental-ptc-runtime-python) चलता है और run_code की भाषा, बना SDK प्रॉम्प्ट तथा प्रस्तुति Python में बदल जाती है। इसके लिए POSIX और CPython ≥ 3.10 चाहिए (Windows पर उपलब्ध नहीं), और यह workflow टूल से परस्पर अनन्य है — आधिकारिक Python संयोजन भी workflow बंद करता है, इसलिए चालू रहने तक चारों वेरिएंट का workflow पक्ष बंद रहता है (आपकी workflow सेटिंग सुरक्षित रहती है और बंद करने पर लौट आती है)। बदलाव dsh को फिर से शुरू करने के बाद लागू होता है; यह dsh-ptc-cordis-preset के कार्ड पर मौजूद वही स्विच है — दोनों ओर एक ही स्थिति साझा होती है। यह केवल तभी दिखता है जब dsh-ptc-cordis-preset इंस्टॉल हो। चालू करने पर असर न हो तो कारण dsh के स्टार्टअप लॉग में मिलेगा।",
|
|
382
457
|
"python.degraded": "बैकएंड उपलब्ध नहीं, अब भी Node (कारण dsh स्टार्टअप लॉग में)",
|
|
383
458
|
"python.blocked": "यह होस्ट Windows है: प्रयोगात्मक Python बैकएंड केवल POSIX पर चलता है, इसलिए यह स्विच उपलब्ध नहीं है।",
|
|
459
|
+
"sec.tools": "टर्मिनल टूल",
|
|
460
|
+
"tools.hint": "आधिकारिक winget स्रोत से सामान्य कमांड-लाइन टूल इंस्टॉल करता है। जो पहले से मौजूद है उसे दोबारा इंस्टॉल नहीं किया जाता, और LLVM, WinLibs आदि द्वारा दी गई टूलचेन को कभी अपग्रेड नहीं किया जाता — केवल उसका स्रोत दिखाया जाता है।",
|
|
461
|
+
"tools.refresh": "स्थिति ताज़ा करें",
|
|
462
|
+
"tools.run": "चयनित इंस्टॉल / अपग्रेड करें",
|
|
463
|
+
"tools.selectMissing": "इंस्टॉल-योग्य चुनें",
|
|
464
|
+
"tools.loading": "जाँच हो रही है…",
|
|
465
|
+
"tools.nowinget": "winget नहीं मिला, इसलिए कुछ भी इंस्टॉल या अपग्रेड नहीं हो सकता। यह Windows 10 1809 और उसके बाद के साथ आता है; Microsoft Store से “App Installer” अपडेट करें।",
|
|
466
|
+
"tools.state.missing": "इंस्टॉल नहीं है",
|
|
467
|
+
"tools.state.external": "मौजूद (अन्य स्रोत)",
|
|
468
|
+
"tools.state.managed": "अपग्रेड उपलब्ध",
|
|
469
|
+
"tools.state.current": "अद्यतन",
|
|
470
|
+
"tools.adminHint": "व्यवस्थापक अनुमति चाहिए: एक UAC विंडो दिखेगी — इस मशीन पर पुष्टि करें",
|
|
471
|
+
"tools.working": "चल रहा है",
|
|
472
|
+
"tools.resultOk": "सफल",
|
|
473
|
+
"tools.resultFail": "विफल",
|
|
384
474
|
},
|
|
385
475
|
/* locale: id */
|
|
386
476
|
"id": {
|
|
@@ -432,6 +522,21 @@ window.__ModuleLoader__.load({
|
|
|
432
522
|
"python.hint": "Saat nonaktif (bawaan), run_code memakai backend resmi Node/TypeScript, identik byte demi byte dengan komposisi ptc resmi; saat aktif, dsh memakai backend CPython eksperimental (@deepseek-ai/dsh-experimental-ptc-runtime-python) sehingga bahasa run_code, prompt SDK yang dihasilkan, dan penyajiannya beralih ke Python. Memerlukan POSIX dan CPython ≥ 3.10 (tidak tersedia di Windows) serta saling eksklusif dengan alat workflow — komposisi Python resmi juga menonaktifkan workflow, jadi sisi workflow keempat varian tetap mati selama ini aktif (nilai workflow-mu dipertahankan dan kembali saat dimatikan). Berlaku setelah dsh dimulai ulang; ini sakelar yang sama di kartu dsh-ptc-cordis-preset — kedua sisi berbagi satu status. Hanya tampil saat dsh-ptc-cordis-preset terpasang. Jika diaktifkan tetapi tidak berpengaruh, alasannya ada di log mulai dsh.",
|
|
433
523
|
"python.degraded": "backend tidak tersedia, masih Node (alasan di log mulai dsh)",
|
|
434
524
|
"python.blocked": "Host ini Windows: backend Python eksperimental hanya mendukung POSIX, sakelar ini tidak tersedia.",
|
|
525
|
+
"sec.tools": "Alat terminal",
|
|
526
|
+
"tools.hint": "Memasang alat baris perintah umum dari sumber winget resmi. Yang sudah ada tidak pernah dipasang ulang, dan toolchain dari LLVM, WinLibs, dan sejenisnya tidak pernah ditingkatkan — asalnya hanya ditampilkan.",
|
|
527
|
+
"tools.refresh": "Segarkan status",
|
|
528
|
+
"tools.run": "Pasang / tingkatkan yang dipilih",
|
|
529
|
+
"tools.selectMissing": "Pilih yang bisa dipasang",
|
|
530
|
+
"tools.loading": "Memeriksa…",
|
|
531
|
+
"tools.nowinget": "winget tidak ditemukan, jadi tidak ada yang bisa dipasang atau ditingkatkan. winget tersedia sejak Windows 10 1809; perbarui “App Installer” di Microsoft Store.",
|
|
532
|
+
"tools.state.missing": "Belum terpasang",
|
|
533
|
+
"tools.state.external": "Ada (sumber lain)",
|
|
534
|
+
"tools.state.managed": "Ada peningkatan",
|
|
535
|
+
"tools.state.current": "Terbaru",
|
|
536
|
+
"tools.adminHint": "Perlu administrator: jendela UAC akan muncul — setujui di komputer ini",
|
|
537
|
+
"tools.working": "Memproses",
|
|
538
|
+
"tools.resultOk": "berhasil",
|
|
539
|
+
"tools.resultFail": "gagal",
|
|
435
540
|
},
|
|
436
541
|
/* locale: it */
|
|
437
542
|
"it": {
|
|
@@ -483,6 +588,21 @@ window.__ModuleLoader__.load({
|
|
|
483
588
|
"python.hint": "Disattivato (predefinito) run_code usa il backend ufficiale Node/TypeScript, identico byte per byte alla composizione ptc distribuita; attivandolo dsh passa al backend CPython sperimentale (@deepseek-ai/dsh-experimental-ptc-runtime-python): lingua, prompt SDK generato e presentazione di run_code passano a Python. Richiede POSIX e CPython ≥ 3.10 (non disponibile su Windows) ed è incompatibile con lo strumento workflow — anche la composizione Python ufficiale disattiva workflow, quindi il lato workflow di tutte e quattro le varianti resta spento finché è attivo (il tuo valore viene conservato e torna alla disattivazione). Ha effetto dopo il riavvio di dsh; è lo stesso interruttore sulla scheda di dsh-ptc-cordis-preset — entrambi i lati condividono un unico stato. Visibile solo quando dsh-ptc-cordis-preset è installato. Se l'attivazione non ha effetto, il motivo è nel log di avvio di dsh.",
|
|
484
589
|
"python.degraded": "backend non disponibile, resta Node (motivo nel log di avvio di dsh)",
|
|
485
590
|
"python.blocked": "Questo host è Windows: il backend Python sperimentale supporta solo POSIX, l'interruttore non è disponibile.",
|
|
591
|
+
"sec.tools": "Strumenti da terminale",
|
|
592
|
+
"tools.hint": "Installa strumenti da riga di comando comuni dalla fonte winget ufficiale. Ciò che è già presente non viene mai reinstallato, e una toolchain fornita da LLVM, WinLibs o simili non viene mai aggiornata — ne viene solo mostrata l'origine.",
|
|
593
|
+
"tools.refresh": "Aggiorna stato",
|
|
594
|
+
"tools.run": "Installa / aggiorna selezionati",
|
|
595
|
+
"tools.selectMissing": "Seleziona installabili",
|
|
596
|
+
"tools.loading": "Verifica…",
|
|
597
|
+
"tools.nowinget": "winget non trovato: non è possibile installare né aggiornare. È incluso da Windows 10 1809; aggiorna “App Installer” dal Microsoft Store.",
|
|
598
|
+
"tools.state.missing": "Non installato",
|
|
599
|
+
"tools.state.external": "Presente (altra fonte)",
|
|
600
|
+
"tools.state.managed": "Aggiornamento disponibile",
|
|
601
|
+
"tools.state.current": "Aggiornato",
|
|
602
|
+
"tools.adminHint": "Richiede privilegi di amministratore: apparirà una finestra UAC — confermala su questo computer",
|
|
603
|
+
"tools.working": "In corso",
|
|
604
|
+
"tools.resultOk": "riuscito",
|
|
605
|
+
"tools.resultFail": "non riuscito",
|
|
486
606
|
},
|
|
487
607
|
/* locale: ja */
|
|
488
608
|
"ja": {
|
|
@@ -534,6 +654,21 @@ window.__ModuleLoader__.load({
|
|
|
534
654
|
"python.hint": "オフ(既定)では run_code は公式の Node/TypeScript バックエンドを使い、公式 ptc 構成とバイト単位で一致します。オンにすると dsh の実験的 CPython バックエンド(@deepseek-ai/dsh-experimental-ptc-runtime-python)に切り替わり、run_code の言語・生成される SDK プロンプト・提示が Python に変わります。POSIX と CPython ≥ 3.10 が必要(Windows では利用不可)で、workflow ツールとは排他です —— 公式 Python 構成も workflow を無効化するため、オン期間中は 4 変体すべてで workflow 側が強制的にオフになります(ワークフロー設定値は保持され、オフに戻すと復帰)。変更は dsh の再起動後に有効です。これは dsh-ptc-cordis-preset のカードにある同じスイッチで、両側が同一状態を共有します。dsh-ptc-cordis-preset がインストールされているときだけ表示されます。 オンにしても効かない場合の理由は dsh の起動ログにあります。",
|
|
535
655
|
"python.degraded": "バックエンド利用不可・現在も Node(理由は dsh の起動ログ)",
|
|
536
656
|
"python.blocked": "このホストは Windows です。実験的 Python バックエンドは POSIX 専用のため、このスイッチは利用できません。",
|
|
657
|
+
"sec.tools": "ターミナルツール",
|
|
658
|
+
"tools.hint": "winget の公式ソースから定番のコマンドラインツールを導入します。すでに入っているものは再インストールせず、LLVM や WinLibs などが提供するツールチェーンは更新しません(入手元を表示するだけです)。",
|
|
659
|
+
"tools.refresh": "状態を更新",
|
|
660
|
+
"tools.run": "選択したものをインストール / 更新",
|
|
661
|
+
"tools.selectMissing": "導入可能なものを選択",
|
|
662
|
+
"tools.loading": "確認中…",
|
|
663
|
+
"tools.nowinget": "winget が見つからないため、インストールも更新もできません。Windows 10 1809 以降に同梱されています。Microsoft Store で「アプリ インストーラー」を更新してください。",
|
|
664
|
+
"tools.state.missing": "未インストール",
|
|
665
|
+
"tools.state.external": "あり(別の入手元)",
|
|
666
|
+
"tools.state.managed": "更新あり",
|
|
667
|
+
"tools.state.current": "最新",
|
|
668
|
+
"tools.adminHint": "管理者権限が必要です。UAC の画面が表示されるので、この PC で承認してください",
|
|
669
|
+
"tools.working": "処理中",
|
|
670
|
+
"tools.resultOk": "成功",
|
|
671
|
+
"tools.resultFail": "失敗",
|
|
537
672
|
},
|
|
538
673
|
/* locale: ko */
|
|
539
674
|
"ko": {
|
|
@@ -585,6 +720,21 @@ window.__ModuleLoader__.load({
|
|
|
585
720
|
"python.hint": "끄면(기본) run_code는 공식 Node/TypeScript 백엔드를 사용해 공식 ptc 구성과 바이트 단위로 일치합니다. 켜면 dsh의 실험적 CPython 백엔드(@deepseek-ai/dsh-experimental-ptc-runtime-python)로 바뀌어 run_code의 언어, 생성되는 SDK 프롬프트, 도구 표시가 Python으로 전환됩니다. POSIX와 CPython ≥ 3.10이 필요하며(Windows에서는 사용 불가) workflow 도구와 상호 배타적입니다 — 공식 Python 구성도 workflow를 끄므로 켜져 있는 동안 네 변형 모두 workflow 쪽이 강제로 꺼집니다(워크플로 설정값은 유지되고 끄면 복구됩니다). 변경은 dsh 재시작 후 적용됩니다. 이 스위치는 dsh-ptc-cordis-preset 카드에 있는 바로 그 스위치이며 양쪽이 같은 상태를 공유합니다. dsh-ptc-cordis-preset이 설치되어 있을 때만 표시됩니다. 켠 뒤에도 적용되지 않으면 그 이유는 dsh 시작 로그에 있습니다.",
|
|
586
721
|
"python.degraded": "백엔드 사용 불가, 여전히 Node(이유는 dsh 시작 로그)",
|
|
587
722
|
"python.blocked": "이 호스트는 Windows입니다. 실험적 Python 백엔드는 POSIX만 지원하므로 이 스위치를 쓸 수 없습니다.",
|
|
723
|
+
"sec.tools": "터미널 도구",
|
|
724
|
+
"tools.hint": "공식 winget 소스에서 자주 쓰는 명령줄 도구를 설치합니다. 이미 있는 것은 다시 설치하지 않고, LLVM·WinLibs 등이 제공하는 툴체인은 업그레이드하지 않습니다(출처만 표시합니다).",
|
|
725
|
+
"tools.refresh": "상태 새로 고침",
|
|
726
|
+
"tools.run": "선택 항목 설치 / 업그레이드",
|
|
727
|
+
"tools.selectMissing": "설치 가능 항목 선택",
|
|
728
|
+
"tools.loading": "확인 중…",
|
|
729
|
+
"tools.nowinget": "winget을 찾을 수 없어 설치하거나 업그레이드할 수 없습니다. Windows 10 1809부터 기본 포함되며, Microsoft Store에서 “앱 설치 관리자”를 업데이트하세요.",
|
|
730
|
+
"tools.state.missing": "설치되지 않음",
|
|
731
|
+
"tools.state.external": "있음(다른 출처)",
|
|
732
|
+
"tools.state.managed": "업그레이드 가능",
|
|
733
|
+
"tools.state.current": "최신",
|
|
734
|
+
"tools.adminHint": "관리자 권한이 필요합니다. UAC 창이 뜨면 이 PC에서 승인하세요",
|
|
735
|
+
"tools.working": "처리 중",
|
|
736
|
+
"tools.resultOk": "성공",
|
|
737
|
+
"tools.resultFail": "실패",
|
|
588
738
|
},
|
|
589
739
|
/* locale: nl */
|
|
590
740
|
"nl": {
|
|
@@ -636,6 +786,21 @@ window.__ModuleLoader__.load({
|
|
|
636
786
|
"python.hint": "Uit (standaard) gebruikt run_code de officiële Node/TypeScript-backend, byte voor byte gelijk aan de meegeleverde ptc-compositie; aan schakelt dsh over op de experimentele CPython-backend (@deepseek-ai/dsh-experimental-ptc-runtime-python), waardoor taal, gegenereerde SDK-prompt en weergave van run_code naar Python gaan. Vereist POSIX en CPython ≥ 3.10 (niet beschikbaar op Windows) en is onverenigbaar met de workflow-tool — de officiële Python-compositie schakelt workflow ook uit, dus de workflow-kant van alle vier varianten blijft uit zolang dit aan staat (je workflow-waarde blijft bewaard en keert terug als je het uitzet). Werkt na een herstart van dsh; dit is dezelfde schakelaar op de kaart van dsh-ptc-cordis-preset — beide kanten delen één status. Alleen zichtbaar zolang dsh-ptc-cordis-preset is geïnstalleerd. Werkt het aanzetten niet, dan staat de reden in het opstartlogboek van dsh.",
|
|
637
787
|
"python.degraded": "backend niet beschikbaar, nog steeds Node (reden in het dsh-opstartlogboek)",
|
|
638
788
|
"python.blocked": "Deze host is Windows: de experimentele Python-backend ondersteunt alleen POSIX, deze schakelaar is niet beschikbaar.",
|
|
789
|
+
"sec.tools": "Terminalhulpmiddelen",
|
|
790
|
+
"tools.hint": "Installeert gangbare opdrachtregelprogramma’s uit de officiële winget-bron. Wat al aanwezig is wordt nooit opnieuw geïnstalleerd, en een toolchain van LLVM, WinLibs en dergelijke wordt nooit bijgewerkt — de herkomst wordt alleen getoond.",
|
|
791
|
+
"tools.refresh": "Status vernieuwen",
|
|
792
|
+
"tools.run": "Geselecteerde installeren / bijwerken",
|
|
793
|
+
"tools.selectMissing": "Installeerbare selecteren",
|
|
794
|
+
"tools.loading": "Controleren…",
|
|
795
|
+
"tools.nowinget": "winget is niet gevonden, dus er kan niets worden geïnstalleerd of bijgewerkt. Het zit sinds Windows 10 1809 in het systeem; werk “App Installer” bij in de Microsoft Store.",
|
|
796
|
+
"tools.state.missing": "Niet geïnstalleerd",
|
|
797
|
+
"tools.state.external": "Aanwezig (andere bron)",
|
|
798
|
+
"tools.state.managed": "Update beschikbaar",
|
|
799
|
+
"tools.state.current": "Bijgewerkt",
|
|
800
|
+
"tools.adminHint": "Vereist beheerdersrechten: er verschijnt een UAC-venster — bevestig dat op deze computer",
|
|
801
|
+
"tools.working": "Bezig",
|
|
802
|
+
"tools.resultOk": "geslaagd",
|
|
803
|
+
"tools.resultFail": "mislukt",
|
|
639
804
|
},
|
|
640
805
|
/* locale: pl */
|
|
641
806
|
"pl": {
|
|
@@ -687,6 +852,21 @@ window.__ModuleLoader__.load({
|
|
|
687
852
|
"python.hint": "Wyłączony (domyślnie) run_code używa oficjalnego backendu Node/TypeScript, identycznego co do bajtu z dostarczaną kompozycją ptc; włączenie przełącza dsh na eksperymentalny backend CPython (@deepseek-ai/dsh-experimental-ptc-runtime-python), więc język, generowany prompt SDK i prezentacja run_code przechodzą na Python. Wymaga POSIX i CPython ≥ 3.10 (niedostępny w Windows) i jest wykluczający z narzędziem workflow — oficjalna kompozycja Python również wyłącza workflow, więc strona workflow wszystkich czterech wariantów pozostaje wyłączona, dopóki to jest włączone (twoje ustawienie workflow jest zachowane i wraca po wyłączeniu). Zmiana działa po restarcie dsh; to ten sam przełącznik na karcie dsh-ptc-cordis-preset — obie strony dzielą jeden stan. Widoczny tylko, gdy dsh-ptc-cordis-preset jest zainstalowany. Jeśli włączenie nie przyniesie skutku, powód znajdziesz w logu startowym dsh.",
|
|
688
853
|
"python.degraded": "backend niedostępny, nadal Node (powód w logu startowym dsh)",
|
|
689
854
|
"python.blocked": "Ten host to Windows: eksperymentalny backend Python obsługuje tylko POSIX, przełącznik jest niedostępny.",
|
|
855
|
+
"sec.tools": "Narzędzia terminala",
|
|
856
|
+
"tools.hint": "Instaluje popularne narzędzia wiersza poleceń z oficjalnego źródła winget. To, co już jest, nie jest instalowane ponownie, a łańcuch narzędzi dostarczany przez LLVM, WinLibs itp. nie jest aktualizowany — pokazujemy tylko jego pochodzenie.",
|
|
857
|
+
"tools.refresh": "Odśwież stan",
|
|
858
|
+
"tools.run": "Zainstaluj / zaktualizuj wybrane",
|
|
859
|
+
"tools.selectMissing": "Wybierz instalowalne",
|
|
860
|
+
"tools.loading": "Sprawdzanie…",
|
|
861
|
+
"tools.nowinget": "Nie znaleziono winget, więc nie można niczego zainstalować ani zaktualizować. Jest dołączony od Windows 10 1809; zaktualizuj „App Installer” w Microsoft Store.",
|
|
862
|
+
"tools.state.missing": "Nie zainstalowano",
|
|
863
|
+
"tools.state.external": "Obecne (inne źródło)",
|
|
864
|
+
"tools.state.managed": "Dostępna aktualizacja",
|
|
865
|
+
"tools.state.current": "Aktualne",
|
|
866
|
+
"tools.adminHint": "Wymaga uprawnień administratora: pojawi się okno UAC — potwierdź je na tym komputerze",
|
|
867
|
+
"tools.working": "Przetwarzanie",
|
|
868
|
+
"tools.resultOk": "sukces",
|
|
869
|
+
"tools.resultFail": "niepowodzenie",
|
|
690
870
|
},
|
|
691
871
|
/* locale: pt */
|
|
692
872
|
"pt": {
|
|
@@ -738,6 +918,21 @@ window.__ModuleLoader__.load({
|
|
|
738
918
|
"python.hint": "Desligado (padrão), o run_code usa o backend oficial Node/TypeScript, idêntico byte a byte à composição ptc distribuída; ligado, o dsh passa para o backend CPython experimental (@deepseek-ai/dsh-experimental-ptc-runtime-python), e a linguagem, o prompt SDK gerado e a apresentação do run_code passam para Python. Exige POSIX e CPython ≥ 3.10 (indisponível no Windows) e é incompatível com a ferramenta workflow — a composição Python oficial também desativa workflow, pelo que o lado workflow das quatro variantes fica desligado enquanto isto estiver ligado (o teu valor é mantido e regressa ao desligar). Produz efeito após reiniciar o dsh; é o mesmo interruptor no cartão do dsh-ptc-cordis-preset — os dois lados partilham um único estado. Só aparece quando o dsh-ptc-cordis-preset está instalado. Se ligar não tiver efeito, o motivo está no registo de arranque do dsh.",
|
|
739
919
|
"python.degraded": "backend indisponível, continua Node (motivo no registo de arranque do dsh)",
|
|
740
920
|
"python.blocked": "Este anfitrião é Windows: o backend Python experimental só suporta POSIX, pelo que este interruptor não está disponível.",
|
|
921
|
+
"sec.tools": "Ferramentas de terminal",
|
|
922
|
+
"tools.hint": "Instala ferramentas de linha de comando comuns a partir da fonte oficial winget. O que já existe nunca é reinstalado, e uma toolchain fornecida por LLVM, WinLibs ou similar nunca é atualizada — apenas mostramos a origem.",
|
|
923
|
+
"tools.refresh": "Atualizar estado",
|
|
924
|
+
"tools.run": "Instalar / atualizar selecionados",
|
|
925
|
+
"tools.selectMissing": "Selecionar instaláveis",
|
|
926
|
+
"tools.loading": "A verificar…",
|
|
927
|
+
"tools.nowinget": "winget não foi encontrado, por isso nada pode ser instalado ou atualizado. Vem com o Windows 10 1809 ou superior; atualize o “App Installer” na Microsoft Store.",
|
|
928
|
+
"tools.state.missing": "Não instalado",
|
|
929
|
+
"tools.state.external": "Presente (outra origem)",
|
|
930
|
+
"tools.state.managed": "Atualização disponível",
|
|
931
|
+
"tools.state.current": "Atualizado",
|
|
932
|
+
"tools.adminHint": "Requer administrador: aparecerá uma janela UAC — confirme-a neste computador",
|
|
933
|
+
"tools.working": "A processar",
|
|
934
|
+
"tools.resultOk": "com êxito",
|
|
935
|
+
"tools.resultFail": "falhou",
|
|
741
936
|
},
|
|
742
937
|
/* locale: ru */
|
|
743
938
|
"ru": {
|
|
@@ -789,6 +984,21 @@ window.__ModuleLoader__.load({
|
|
|
789
984
|
"python.hint": "Выключено (по умолчанию) — run_code использует официальный бэкенд Node/TypeScript, побайтово совпадающий с поставляемой композицией ptc; при включении dsh переходит на экспериментальный бэкенд CPython (@deepseek-ai/dsh-experimental-ptc-runtime-python), и язык, сгенерированная подсказка SDK и представление run_code переключаются на Python. Требуются POSIX и CPython ≥ 3.10 (в Windows недоступно), и это несовместимо с инструментом workflow — официальная композиция Python тоже отключает workflow, поэтому сторона workflow всех четырёх вариантов остаётся выключенной, пока это включено (ваша настройка workflow сохраняется и возвращается после выключения). Изменение действует после перезапуска dsh; это тот же переключатель на карточке dsh-ptc-cordis-preset — обе стороны делят одно состояние. Показывается только когда установлен dsh-ptc-cordis-preset. Если включение не подействовало, причина указана в журнале запуска dsh.",
|
|
790
985
|
"python.degraded": "бэкенд недоступен, по-прежнему Node (причина в журнале запуска dsh)",
|
|
791
986
|
"python.blocked": "Этот хост — Windows: экспериментальный бэкенд Python поддерживает только POSIX, переключатель недоступен.",
|
|
987
|
+
"sec.tools": "Терминальные инструменты",
|
|
988
|
+
"tools.hint": "Устанавливает распространённые консольные утилиты из официального источника winget. Уже имеющееся никогда не переустанавливается, а инструментарий от LLVM, WinLibs и подобных никогда не обновляется — показывается только его источник.",
|
|
989
|
+
"tools.refresh": "Обновить состояние",
|
|
990
|
+
"tools.run": "Установить / обновить выбранное",
|
|
991
|
+
"tools.selectMissing": "Выбрать доступные для установки",
|
|
992
|
+
"tools.loading": "Проверка…",
|
|
993
|
+
"tools.nowinget": "winget не найден, поэтому ничего нельзя установить или обновить. Он входит в Windows 10 1809 и новее; обновите «App Installer» в Microsoft Store.",
|
|
994
|
+
"tools.state.missing": "Не установлено",
|
|
995
|
+
"tools.state.external": "Есть (другой источник)",
|
|
996
|
+
"tools.state.managed": "Доступно обновление",
|
|
997
|
+
"tools.state.current": "Актуально",
|
|
998
|
+
"tools.adminHint": "Нужны права администратора: появится окно UAC — подтвердите его на этом компьютере",
|
|
999
|
+
"tools.working": "Выполняется",
|
|
1000
|
+
"tools.resultOk": "успешно",
|
|
1001
|
+
"tools.resultFail": "ошибка",
|
|
792
1002
|
},
|
|
793
1003
|
/* locale: sv */
|
|
794
1004
|
"sv": {
|
|
@@ -840,6 +1050,21 @@ window.__ModuleLoader__.load({
|
|
|
840
1050
|
"python.hint": "Av (standard) använder run_code den officiella Node/TypeScript-backenden, byte för byte identisk med den medföljande ptc-kompositionen; på växlar dsh till den experimentella CPython-backenden (@deepseek-ai/dsh-experimental-ptc-runtime-python), vilket även byter run_codes språk, genererade SDK-prompt och presentation till Python. Kräver POSIX och CPython ≥ 3.10 (ej tillgängligt i Windows) och utesluter workflow-verktyget — den officiella Python-kompositionen stänger också av workflow, så workflow-sidan i alla fyra varianter hålls avstängd medan detta är på (ditt workflow-värde behålls och återställs när du stänger av). Gäller efter omstart av dsh; detta är samma växel på dsh-ptc-cordis-presets kort — båda sidor delar ett tillstånd. Visas bara när dsh-ptc-cordis-preset är installerat. Om påslaget inte får effekt står orsaken i dsh:s startlogg.",
|
|
841
1051
|
"python.degraded": "backend otillgänglig, fortfarande Node (orsak i dsh-startloggen)",
|
|
842
1052
|
"python.blocked": "Den här värden är Windows: den experimentella Python-backenden stöder bara POSIX, så växeln är otillgänglig.",
|
|
1053
|
+
"sec.tools": "Terminalverktyg",
|
|
1054
|
+
"tools.hint": "Installerar vanliga kommandoradsverktyg från den officiella winget-källan. Det som redan finns installeras aldrig om, och en verktygskedja från LLVM, WinLibs eller liknande uppgraderas aldrig — bara dess ursprung visas.",
|
|
1055
|
+
"tools.refresh": "Uppdatera status",
|
|
1056
|
+
"tools.run": "Installera / uppgradera valda",
|
|
1057
|
+
"tools.selectMissing": "Välj installeringsbara",
|
|
1058
|
+
"tools.loading": "Kontrollerar…",
|
|
1059
|
+
"tools.nowinget": "winget hittades inte, så inget kan installeras eller uppgraderas. Det ingår från Windows 10 1809; uppdatera “App Installer” i Microsoft Store.",
|
|
1060
|
+
"tools.state.missing": "Ej installerat",
|
|
1061
|
+
"tools.state.external": "Finns (annan källa)",
|
|
1062
|
+
"tools.state.managed": "Uppgradering finns",
|
|
1063
|
+
"tools.state.current": "Senaste",
|
|
1064
|
+
"tools.adminHint": "Kräver administratör: ett UAC-fönster visas — bekräfta det på den här datorn",
|
|
1065
|
+
"tools.working": "Arbetar",
|
|
1066
|
+
"tools.resultOk": "lyckades",
|
|
1067
|
+
"tools.resultFail": "misslyckades",
|
|
843
1068
|
},
|
|
844
1069
|
/* locale: th */
|
|
845
1070
|
"th": {
|
|
@@ -891,6 +1116,21 @@ window.__ModuleLoader__.load({
|
|
|
891
1116
|
"python.hint": "เมื่อปิด (ค่าเริ่มต้น) run_code จะใช้แบ็กเอนด์ Node/TypeScript อย่างเป็นทางการ ซึ่งเหมือนกับคอมโพซิชัน ptc ที่จัดส่งทุกไบต์; เมื่อเปิด dsh จะเปลี่ยนไปใช้แบ็กเอนด์ CPython ทดลอง (@deepseek-ai/dsh-experimental-ptc-runtime-python) ภาษา พรอมป์ต์ SDK ที่สร้างขึ้น และการนำเสนอของ run_code จะเปลี่ยนเป็น Python ต้องใช้ POSIX และ CPython ≥ 3.10 (ใช้ไม่ได้บน Windows) และใช้ร่วมกับเครื่องมือ workflow ไม่ได้ — คอมโพซิชัน Python อย่างเป็นทางการก็ปิด workflow เช่นกัน ฝั่ง workflow ของทั้งสี่รูปแบบจึงถูกปิดขณะเปิดอยู่ (ค่าที่คุณตั้งไว้จะถูกเก็บและกลับมาเมื่อปิด) การเปลี่ยนแปลงมีผลหลังรีสตาร์ต dsh; นี่คือสวิตช์เดียวกันบนการ์ดของ dsh-ptc-cordis-preset — ทั้งสองฝั่งใช้สถานะเดียวกัน แสดงเฉพาะเมื่อติดตั้ง dsh-ptc-cordis-preset แล้วเท่านั้น หากเปิดแล้วไม่เกิดผล เหตุผลอยู่ในบันทึกการเริ่มต้นของ dsh",
|
|
892
1117
|
"python.degraded": "แบ็กเอนด์ใช้ไม่ได้ ยังเป็น Node (เหตุผลในบันทึกเริ่มต้นของ dsh)",
|
|
893
1118
|
"python.blocked": "โฮสต์นี้เป็น Windows: แบ็กเอนด์ Python ทดลองรองรับเฉพาะ POSIX สวิตช์นี้จึงใช้ไม่ได้",
|
|
1119
|
+
"sec.tools": "เครื่องมือเทอร์มินัล",
|
|
1120
|
+
"tools.hint": "ติดตั้งเครื่องมือบรรทัดคำสั่งที่ใช้บ่อยจากแหล่ง winget อย่างเป็นทางการ สิ่งที่มีอยู่แล้วจะไม่ติดตั้งซ้ำ และ toolchain ที่มาจาก LLVM, WinLibs หรืออื่น ๆ จะไม่ถูกอัปเกรด เพียงแสดงแหล่งที่มาเท่านั้น",
|
|
1121
|
+
"tools.refresh": "รีเฟรชสถานะ",
|
|
1122
|
+
"tools.run": "ติดตั้ง / อัปเกรดรายการที่เลือก",
|
|
1123
|
+
"tools.selectMissing": "เลือกรายการที่ติดตั้งได้",
|
|
1124
|
+
"tools.loading": "กำลังตรวจสอบ…",
|
|
1125
|
+
"tools.nowinget": "ไม่พบ winget จึงติดตั้งหรืออัปเกรดไม่ได้ มีมาให้ตั้งแต่ Windows 10 1809 ขึ้นไป อัปเดต “App Installer” ใน Microsoft Store",
|
|
1126
|
+
"tools.state.missing": "ยังไม่ได้ติดตั้ง",
|
|
1127
|
+
"tools.state.external": "มีอยู่แล้ว (แหล่งอื่น)",
|
|
1128
|
+
"tools.state.managed": "มีเวอร์ชันใหม่",
|
|
1129
|
+
"tools.state.current": "ล่าสุดแล้ว",
|
|
1130
|
+
"tools.adminHint": "ต้องใช้สิทธิ์ผู้ดูแลระบบ จะมีหน้าต่าง UAC ขึ้นมา กรุณายืนยันบนเครื่องนี้",
|
|
1131
|
+
"tools.working": "กำลังดำเนินการ",
|
|
1132
|
+
"tools.resultOk": "สำเร็จ",
|
|
1133
|
+
"tools.resultFail": "ล้มเหลว",
|
|
894
1134
|
},
|
|
895
1135
|
/* locale: tr */
|
|
896
1136
|
"tr": {
|
|
@@ -942,6 +1182,21 @@ window.__ModuleLoader__.load({
|
|
|
942
1182
|
"python.hint": "Kapalıyken (varsayılan) run_code resmî Node/TypeScript arka ucunu kullanır ve gönderilen ptc bileşimiyle bayt bayt aynıdır; açıldığında dsh deneysel CPython arka ucuna (@deepseek-ai/dsh-experimental-ptc-runtime-python) geçer; run_code dil, üretilen SDK istemi ve sunum Python'a döner. POSIX ve CPython ≥ 3.10 gerektirir (Windows'ta kullanılamaz) ve workflow aracıyla birbirini dışlar — resmî Python bileşimi de workflow'u kapatır, bu yüzden bu açıkken dört varyantın workflow tarafı kapalı kalır (workflow ayarın korunur ve kapatınca geri gelir). Değişiklik dsh yeniden başlatıldıktan sonra geçerli olur; bu, dsh-ptc-cordis-preset kartındaki aynı anahtardır — iki taraf tek durumu paylaşır. Yalnızca dsh-ptc-cordis-preset kurulu olduğunda görünür. Açmak etkili olmazsa nedeni dsh başlangıç günlüğünde yazar.",
|
|
943
1183
|
"python.degraded": "arka uç kullanılamıyor, hâlâ Node (neden dsh başlangıç günlüğünde)",
|
|
944
1184
|
"python.blocked": "Bu ana makine Windows: deneysel Python arka ucu yalnızca POSIX destekler, bu anahtar kullanılamaz.",
|
|
1185
|
+
"sec.tools": "Terminal araçları",
|
|
1186
|
+
"tools.hint": "Resmî winget kaynağından yaygın komut satırı araçlarını kurar. Zaten var olanlar asla yeniden kurulmaz ve LLVM, WinLibs vb. tarafından sağlanan bir araç zinciri asla yükseltilmez — yalnızca kaynağı gösterilir.",
|
|
1187
|
+
"tools.refresh": "Durumu yenile",
|
|
1188
|
+
"tools.run": "Seçilenleri kur / yükselt",
|
|
1189
|
+
"tools.selectMissing": "Kurulabilirleri seç",
|
|
1190
|
+
"tools.loading": "Denetleniyor…",
|
|
1191
|
+
"tools.nowinget": "winget bulunamadı; hiçbir şey kurulamaz veya yükseltilemez. Windows 10 1809 ve sonrasıyla birlikte gelir; Microsoft Store’dan “App Installer”ı güncelleyin.",
|
|
1192
|
+
"tools.state.missing": "Kurulu değil",
|
|
1193
|
+
"tools.state.external": "Var (başka kaynak)",
|
|
1194
|
+
"tools.state.managed": "Güncelleme var",
|
|
1195
|
+
"tools.state.current": "Güncel",
|
|
1196
|
+
"tools.adminHint": "Yönetici izni gerekir: bir UAC penceresi açılır — bu bilgisayarda onaylayın",
|
|
1197
|
+
"tools.working": "İşleniyor",
|
|
1198
|
+
"tools.resultOk": "başarılı",
|
|
1199
|
+
"tools.resultFail": "başarısız",
|
|
945
1200
|
},
|
|
946
1201
|
/* locale: vi */
|
|
947
1202
|
"vi": {
|
|
@@ -993,6 +1248,21 @@ window.__ModuleLoader__.load({
|
|
|
993
1248
|
"python.hint": "Khi tắt (mặc định), run_code dùng backend Node/TypeScript chính thức, giống từng byte với tổ hợp ptc được phát hành; khi bật, dsh chuyển sang backend CPython thử nghiệm (@deepseek-ai/dsh-experimental-ptc-runtime-python), kéo theo ngôn ngữ, prompt SDK được sinh và cách trình bày của run_code chuyển sang Python. Yêu cầu POSIX và CPython ≥ 3.10 (không dùng được trên Windows) và loại trừ lẫn nhau với công cụ workflow — tổ hợp Python chính thức cũng tắt workflow, nên phía workflow của cả bốn biến thể bị tắt trong lúc bật (giá trị workflow của bạn được giữ và trở lại khi tắt). Thay đổi có hiệu lực sau khi khởi động lại dsh; đây chính là công tắc trên thẻ của dsh-ptc-cordis-preset — hai bên dùng chung một trạng thái. Chỉ hiện khi đã cài dsh-ptc-cordis-preset. Nếu bật mà không có hiệu lực, lý do nằm trong nhật ký khởi động dsh.",
|
|
994
1249
|
"python.degraded": "backend không khả dụng, vẫn là Node (lý do trong nhật ký khởi động dsh)",
|
|
995
1250
|
"python.blocked": "Máy chủ này là Windows: backend Python thử nghiệm chỉ hỗ trợ POSIX, nên công tắc này không dùng được.",
|
|
1251
|
+
"sec.tools": "Công cụ terminal",
|
|
1252
|
+
"tools.hint": "Cài các công cụ dòng lệnh phổ biến từ nguồn winget chính thức. Thứ đã có sẽ không bao giờ được cài lại, và bộ công cụ do LLVM, WinLibs… cung cấp sẽ không bao giờ bị nâng cấp — chỉ hiển thị nguồn gốc.",
|
|
1253
|
+
"tools.refresh": "Làm mới trạng thái",
|
|
1254
|
+
"tools.run": "Cài / nâng cấp mục đã chọn",
|
|
1255
|
+
"tools.selectMissing": "Chọn mục cài được",
|
|
1256
|
+
"tools.loading": "Đang kiểm tra…",
|
|
1257
|
+
"tools.nowinget": "Không tìm thấy winget nên không thể cài hay nâng cấp. Nó có sẵn từ Windows 10 1809 trở lên; hãy cập nhật “App Installer” trong Microsoft Store.",
|
|
1258
|
+
"tools.state.missing": "Chưa cài",
|
|
1259
|
+
"tools.state.external": "Đã có (nguồn khác)",
|
|
1260
|
+
"tools.state.managed": "Có bản nâng cấp",
|
|
1261
|
+
"tools.state.current": "Mới nhất",
|
|
1262
|
+
"tools.adminHint": "Cần quyền quản trị: cửa sổ UAC sẽ hiện ra — hãy xác nhận trên máy này",
|
|
1263
|
+
"tools.working": "Đang xử lý",
|
|
1264
|
+
"tools.resultOk": "thành công",
|
|
1265
|
+
"tools.resultFail": "thất bại",
|
|
996
1266
|
},
|
|
997
1267
|
/* locale: zh-hk */
|
|
998
1268
|
"zh-hk": {
|
|
@@ -1044,6 +1314,21 @@ window.__ModuleLoader__.load({
|
|
|
1044
1314
|
"python.hint": "閂咗(預設)嗰陣 run_code 用官方 Node/TypeScript 後端,同官方 ptc 組合逐位元組一致;開咗就轉用 dsh 實驗性 CPython 後端(@deepseek-ai/dsh-experimental-ptc-runtime-python),run_code 嘅語言、生成嘅 SDK 提示詞同工具呈現都會轉去 Python。需要 POSIX 平台同 CPython ≥ 3.10(Windows 用唔到),而且同 workflow 工具互斥——官方 Python 組合同樣停用 workflow,所以開住嗰陣本插件四個變體嘅 workflow 側會強制關閉(你嘅工作流設定值會保留,閂咗之後恢復)。改動要重啟 dsh 先生效;呢個開關就係 dsh-ptc-cordis-preset 設定卡上面同一個開關——兩邊共享同一份狀態。只喺已安裝 dsh-ptc-cordis-preset 時顯示。開咗之後唔生效,原因喺 dsh 啟動日誌度。",
|
|
1045
1315
|
"python.degraded": "後端用唔到,暫時仍然係 Node(原因喺 dsh 啟動日誌)",
|
|
1046
1316
|
"python.blocked": "呢部主機係 Windows:實驗性 Python 後端淨係支援 POSIX,所以呢個開關用唔到。",
|
|
1317
|
+
"sec.tools": "終端工具",
|
|
1318
|
+
"tools.hint": "由 winget 官方源安裝常用命令列工具。已經有嘅(唔理乜來源)一律唔會重複安裝;LLVM、WinLibs 等提供嘅工具鏈亦都唔會升級,只會照實顯示來源。",
|
|
1319
|
+
"tools.refresh": "更新狀態",
|
|
1320
|
+
"tools.run": "安裝 / 升級已揀",
|
|
1321
|
+
"tools.selectMissing": "全選可安裝",
|
|
1322
|
+
"tools.loading": "檢查緊…",
|
|
1323
|
+
"tools.nowinget": "搵唔到 winget,所以裝唔到亦升級唔到。Windows 10 1809 起已經內置,可以喺 Microsoft Store 更新「應用程式安裝程式」。",
|
|
1324
|
+
"tools.state.missing": "未安裝",
|
|
1325
|
+
"tools.state.external": "已有(其他來源)",
|
|
1326
|
+
"tools.state.managed": "可升級",
|
|
1327
|
+
"tools.state.current": "已經最新",
|
|
1328
|
+
"tools.adminHint": "需要管理員權限:會彈出 UAC 視窗,請喺電腦度確認",
|
|
1329
|
+
"tools.working": "處理緊",
|
|
1330
|
+
"tools.resultOk": "成功",
|
|
1331
|
+
"tools.resultFail": "失敗",
|
|
1047
1332
|
},
|
|
1048
1333
|
/* locale: zh-mo */
|
|
1049
1334
|
"zh-mo": {
|
|
@@ -1095,6 +1380,21 @@ window.__ModuleLoader__.load({
|
|
|
1095
1380
|
"python.hint": "閂咗(預設)嗰陣 run_code 用官方 Node/TypeScript 後端,同官方 ptc 組合逐位元組一致;開咗就轉用 dsh 實驗性 CPython 後端(@deepseek-ai/dsh-experimental-ptc-runtime-python),run_code 嘅語言、生成嘅 SDK 提示詞同工具呈現都會轉去 Python。需要 POSIX 平台同 CPython ≥ 3.10(Windows 用唔到),而且同 workflow 工具互斥——官方 Python 組合同樣停用 workflow,所以開住嗰陣本插件四個變體嘅 workflow 側會強制關閉(你嘅工作流設定值會保留,閂咗之後恢復)。改動要重啟 dsh 先生效;呢個開關就係 dsh-ptc-cordis-preset 設定卡上面同一個開關——兩邊共享同一份狀態。只喺已安裝 dsh-ptc-cordis-preset 時顯示。開咗之後唔生效,原因喺 dsh 啟動日誌度。",
|
|
1096
1381
|
"python.degraded": "後端用唔到,暫時仍然係 Node(原因喺 dsh 啟動日誌)",
|
|
1097
1382
|
"python.blocked": "呢部主機係 Windows:實驗性 Python 後端淨係支援 POSIX,所以呢個開關用唔到。",
|
|
1383
|
+
"sec.tools": "終端工具",
|
|
1384
|
+
"tools.hint": "由 winget 官方源安裝常用命令列工具。已經有嘅(唔理乜來源)一律唔會重複安裝;LLVM、WinLibs 等提供嘅工具鏈亦都唔會升級,只會照實顯示來源。",
|
|
1385
|
+
"tools.refresh": "更新狀態",
|
|
1386
|
+
"tools.run": "安裝 / 升級已揀",
|
|
1387
|
+
"tools.selectMissing": "全選可安裝",
|
|
1388
|
+
"tools.loading": "檢查緊…",
|
|
1389
|
+
"tools.nowinget": "搵唔到 winget,所以裝唔到亦升級唔到。Windows 10 1809 起已經內置,可以喺 Microsoft Store 更新「應用程式安裝程式」。",
|
|
1390
|
+
"tools.state.missing": "未安裝",
|
|
1391
|
+
"tools.state.external": "已有(其他來源)",
|
|
1392
|
+
"tools.state.managed": "可升級",
|
|
1393
|
+
"tools.state.current": "已經最新",
|
|
1394
|
+
"tools.adminHint": "需要管理員權限:會彈出 UAC 視窗,請喺電腦度確認",
|
|
1395
|
+
"tools.working": "處理緊",
|
|
1396
|
+
"tools.resultOk": "成功",
|
|
1397
|
+
"tools.resultFail": "失敗",
|
|
1098
1398
|
},
|
|
1099
1399
|
/* locale: zh-tw */
|
|
1100
1400
|
"zh-tw": {
|
|
@@ -1146,6 +1446,21 @@ window.__ModuleLoader__.load({
|
|
|
1146
1446
|
"python.hint": "關閉(預設)時 run_code 使用官方 Node/TypeScript 後端,與官方 ptc 組合逐位元組一致;開啟後改用 dsh 實驗性 CPython 後端(@deepseek-ai/dsh-experimental-ptc-runtime-python),run_code 的語言、產生的 SDK 提示詞與工具呈現都會切換到 Python。需要 POSIX 平台與 CPython ≥ 3.10(Windows 無法使用),且與 workflow 工具互斥——官方 Python 組合同樣會停用 workflow,因此開啟期間本外掛四個變體的 workflow 側強制關閉(你的工作流設定值會保留,關閉後恢復)。變更需重新啟動 dsh 後生效;這個開關就是 dsh-ptc-cordis-preset 設定卡上的同一個開關——兩側共用同一份狀態。僅在已安裝 dsh-ptc-cordis-preset 時顯示。若設為開啟後未生效,原因見 dsh 啟動日誌。",
|
|
1147
1447
|
"python.degraded": "後端無法使用,目前仍為 Node(原因見 dsh 啟動日誌)",
|
|
1148
1448
|
"python.blocked": "此主機是 Windows:實驗性 Python 後端僅支援 POSIX,因此這個開關無法使用。",
|
|
1449
|
+
"sec.tools": "終端工具",
|
|
1450
|
+
"tools.hint": "從 winget 官方來源安裝常用命令列工具。已經存在的(不論來源)一律不重複安裝;由 LLVM、WinLibs 等提供的工具鏈也不會被升級,只會如實顯示來源。",
|
|
1451
|
+
"tools.refresh": "重新整理狀態",
|
|
1452
|
+
"tools.run": "安裝 / 升級選取項目",
|
|
1453
|
+
"tools.selectMissing": "全選可安裝項目",
|
|
1454
|
+
"tools.loading": "正在檢查…",
|
|
1455
|
+
"tools.nowinget": "未偵測到 winget,無法安裝或升級。Windows 10 1809 起內建,可在 Microsoft Store 更新「應用程式安裝程式」。",
|
|
1456
|
+
"tools.state.missing": "未安裝",
|
|
1457
|
+
"tools.state.external": "已有(其他來源)",
|
|
1458
|
+
"tools.state.managed": "可升級",
|
|
1459
|
+
"tools.state.current": "已是最新",
|
|
1460
|
+
"tools.adminHint": "需要管理員權限:會彈出 UAC 視窗,請在這台電腦上確認",
|
|
1461
|
+
"tools.working": "處理中",
|
|
1462
|
+
"tools.resultOk": "成功",
|
|
1463
|
+
"tools.resultFail": "失敗",
|
|
1149
1464
|
},
|
|
1150
1465
|
};
|
|
1151
1466
|
|
|
@@ -1252,6 +1567,20 @@ window.__ModuleLoader__.load({
|
|
|
1252
1567
|
".gb-saveBtn:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}",
|
|
1253
1568
|
".gb-saveBtn.gb-saved{border-color:var(--dsw-alias-state-success-primary,#3fb950);color:var(--dsw-alias-state-success-primary,#3fb950)}",
|
|
1254
1569
|
".gb-stack{display:flex;flex-direction:column;gap:8px}",
|
|
1570
|
+
/* terminal toolchain (v0.30.0) */
|
|
1571
|
+
".gb-tools{display:flex;flex-direction:column;max-height:260px;overflow:auto;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;padding:4px 8px;background:var(--dsw-alias-bg-layer-1,transparent)}",
|
|
1572
|
+
".gb-toolRow{display:flex;align-items:center;gap:8px;font-size:12.5px;line-height:1.95;color:var(--dsw-alias-label-secondary);cursor:pointer}",
|
|
1573
|
+
".gb-toolRow input{flex:none;margin:0}",
|
|
1574
|
+
".gb-toolCmd{flex:none;min-width:78px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--dsw-alias-label-primary)}",
|
|
1575
|
+
".gb-toolState{flex:none;font-size:11.5px;padding:0 6px;border-radius:6px;border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);white-space:nowrap}",
|
|
1576
|
+
".gb-st-missing{border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-brand-primary)}",
|
|
1577
|
+
".gb-st-managed{border-color:var(--dsw-alias-state-warning-primary,#d29922);color:var(--dsw-alias-state-warning-primary,#d29922)}",
|
|
1578
|
+
".gb-st-current{border-color:var(--dsw-alias-state-success-primary,#3fb950);color:var(--dsw-alias-state-success-primary,#3fb950)}",
|
|
1579
|
+
".gb-toolSrc{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;color:var(--dsw-alias-label-tertiary)}",
|
|
1580
|
+
".gb-toolResult{display:flex;gap:6px;font-size:11.5px;line-height:1.6;color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere}",
|
|
1581
|
+
".gb-ok{flex:none;color:var(--dsw-alias-state-success-primary,#3fb950)}",
|
|
1582
|
+
".gb-bad{flex:none;color:var(--dsw-alias-status-danger,#e5484d)}",
|
|
1583
|
+
".gb-segBtn:disabled{opacity:.45;cursor:default}",
|
|
1255
1584
|
].join("\n");
|
|
1256
1585
|
|
|
1257
1586
|
function ensureStyles() {
|
|
@@ -1336,6 +1665,9 @@ window.__ModuleLoader__.load({
|
|
|
1336
1665
|
* write bumps a local tick so the card re-reads without an external-store
|
|
1337
1666
|
* hook adapter.
|
|
1338
1667
|
*/
|
|
1668
|
+
/** Host route serving the winget toolchain status and job control. */
|
|
1669
|
+
var TOOLS_URL = "dsh-gitbash-shell/api/tools";
|
|
1670
|
+
|
|
1339
1671
|
function GitBashCard(props) {
|
|
1340
1672
|
var t = typeof props.t === "function" ? props.t : function (key) { return key; };
|
|
1341
1673
|
|
|
@@ -1362,6 +1694,29 @@ window.__ModuleLoader__.load({
|
|
|
1362
1694
|
var peer = peerState[0];
|
|
1363
1695
|
var setPeer = peerState[1];
|
|
1364
1696
|
|
|
1697
|
+
/* Terminal toolchain (v0.30.0): the winget catalog behind the
|
|
1698
|
+
"install / upgrade" buttons. Loaded only once the card is open, and
|
|
1699
|
+
polled only while a job is actually running. */
|
|
1700
|
+
var toolsState = useState(null);
|
|
1701
|
+
var toolsData = toolsState[0];
|
|
1702
|
+
var setToolsData = toolsState[1];
|
|
1703
|
+
var toolSelState = useState({});
|
|
1704
|
+
var toolSel = toolSelState[0];
|
|
1705
|
+
var setToolSel = toolSelState[1];
|
|
1706
|
+
var toolJobState = useState(null);
|
|
1707
|
+
var toolJob = toolJobState[0];
|
|
1708
|
+
var setToolJob = toolJobState[1];
|
|
1709
|
+
var toolBusyState = useState(false);
|
|
1710
|
+
var toolBusy = toolBusyState[0];
|
|
1711
|
+
var setToolBusy = toolBusyState[1];
|
|
1712
|
+
var toolErrState = useState("");
|
|
1713
|
+
var toolErr = toolErrState[0];
|
|
1714
|
+
var setToolErr = toolErrState[1];
|
|
1715
|
+
var toolsLoadedState = useState(false);
|
|
1716
|
+
var toolsLoaded = toolsLoadedState[0];
|
|
1717
|
+
var setToolsLoaded = toolsLoadedState[1];
|
|
1718
|
+
void toolsLoaded;
|
|
1719
|
+
|
|
1365
1720
|
useEffect(function () {
|
|
1366
1721
|
var forms;
|
|
1367
1722
|
try {
|
|
@@ -1663,9 +2018,153 @@ window.__ModuleLoader__.load({
|
|
|
1663
2018
|
),
|
|
1664
2019
|
) : null;
|
|
1665
2020
|
|
|
2021
|
+
/* ── terminal toolchain (v0.30.0) ────────────────────────────────
|
|
2022
|
+
Installs the fixed catalog from src/toolchain.js through winget.
|
|
2023
|
+
The card never invents a package id: it posts CATALOG ids to the
|
|
2024
|
+
host route, which maps them and pins `--exact --source winget`.
|
|
2025
|
+
Rows already present are shown but never re-installed — a toolchain
|
|
2026
|
+
provided by LLVM/WinLibs arrives as state 'external', which cannot
|
|
2027
|
+
even be ticked, so an upgrade can never touch it. */
|
|
2028
|
+
var toolRows = toolsData !== null && Array.isArray(toolsData.tools) ? toolsData.tools : [];
|
|
2029
|
+
var wingetOk = !!(toolsData !== null && toolsData.winget && toolsData.winget.ok);
|
|
2030
|
+
function toolSelectable(row) {
|
|
2031
|
+
return wingetOk && !toolBusy && (row.state === "missing" || row.state === "managed");
|
|
2032
|
+
}
|
|
2033
|
+
var toolSelCount = toolRows.filter(function (row) { return toolSel[row.id] === true; }).length;
|
|
2034
|
+
|
|
2035
|
+
function loadTools() {
|
|
2036
|
+
setToolBusy(true);
|
|
2037
|
+
setToolErr("");
|
|
2038
|
+
return fetch(TOOLS_URL, { headers: { accept: "application/json" } })
|
|
2039
|
+
.then(function (res) {
|
|
2040
|
+
if (!res.ok) throw new Error("HTTP " + res.status);
|
|
2041
|
+
return res.json();
|
|
2042
|
+
})
|
|
2043
|
+
.then(function (data) {
|
|
2044
|
+
setToolsData(data);
|
|
2045
|
+
setToolsLoaded(true);
|
|
2046
|
+
setToolJob(data !== null && typeof data === "object" && data.job ? data.job : null);
|
|
2047
|
+
// Pre-tick only what is genuinely absent: anything already on the
|
|
2048
|
+
// machine is never re-installed by default.
|
|
2049
|
+
var next = {};
|
|
2050
|
+
var list = data !== null && typeof data === "object" && Array.isArray(data.tools) ? data.tools : [];
|
|
2051
|
+
list.forEach(function (row) { if (row.state === "missing") next[row.id] = true; });
|
|
2052
|
+
setToolSel(next);
|
|
2053
|
+
})
|
|
2054
|
+
.catch(function (err) {
|
|
2055
|
+
setToolsData(null);
|
|
2056
|
+
setToolErr(String((err && err.message) || err));
|
|
2057
|
+
})
|
|
2058
|
+
.then(function () { setToolBusy(false); });
|
|
2059
|
+
}
|
|
2060
|
+
|
|
2061
|
+
function toggleTool(id) {
|
|
2062
|
+
setToolSel(function (prev) {
|
|
2063
|
+
var next = {};
|
|
2064
|
+
for (var key in prev) if (Object.prototype.hasOwnProperty.call(prev, key)) next[key] = prev[key];
|
|
2065
|
+
if (next[id] === true) delete next[id]; else next[id] = true;
|
|
2066
|
+
return next;
|
|
2067
|
+
});
|
|
2068
|
+
}
|
|
2069
|
+
|
|
2070
|
+
function selectInstallable() {
|
|
2071
|
+
var next = {};
|
|
2072
|
+
toolRows.forEach(function (row) {
|
|
2073
|
+
if (wingetOk && (row.state === "missing" || row.state === "managed")) next[row.id] = true;
|
|
2074
|
+
});
|
|
2075
|
+
setToolSel(next);
|
|
2076
|
+
}
|
|
2077
|
+
|
|
2078
|
+
function runTools() {
|
|
2079
|
+
var ids = toolRows
|
|
2080
|
+
.filter(function (row) { return toolSel[row.id] === true && (row.state === "missing" || row.state === "managed"); })
|
|
2081
|
+
.map(function (row) { return row.id; });
|
|
2082
|
+
if (ids.length === 0 || !wingetOk) return;
|
|
2083
|
+
setToolBusy(true);
|
|
2084
|
+
setToolErr("");
|
|
2085
|
+
// action 'auto': the host upgrades what winget already owns and installs
|
|
2086
|
+
// the rest, so one button covers both halves of the request.
|
|
2087
|
+
fetch(TOOLS_URL + "?action=run", {
|
|
2088
|
+
method: "POST",
|
|
2089
|
+
headers: { "content-type": "application/json" },
|
|
2090
|
+
body: JSON.stringify({ action: "auto", ids: ids }),
|
|
2091
|
+
})
|
|
2092
|
+
.then(function (res) { return res.json(); })
|
|
2093
|
+
.then(function (data) { setToolJob(data !== null && typeof data === "object" && data.job ? data.job : null); })
|
|
2094
|
+
.catch(function (err) { setToolErr(String((err && err.message) || err)); })
|
|
2095
|
+
.then(function () { setToolBusy(false); });
|
|
2096
|
+
}
|
|
2097
|
+
|
|
2098
|
+
useEffect(function () {
|
|
2099
|
+
if (!open && !pageView) return undefined;
|
|
2100
|
+
if (toolsLoaded || toolBusy) return undefined;
|
|
2101
|
+
loadTools();
|
|
2102
|
+
return undefined;
|
|
2103
|
+
}, [open]);
|
|
2104
|
+
|
|
2105
|
+
/* Poll ONLY while a job is unfinished, and through the cheap ?job=1
|
|
2106
|
+
form: a full probe re-runs three winget commands per second. */
|
|
2107
|
+
useEffect(function () {
|
|
2108
|
+
if (toolJob === null || toolJob.finished) return undefined;
|
|
2109
|
+
var timer = setTimeout(function () {
|
|
2110
|
+
fetch(TOOLS_URL + "?job=1", { headers: { accept: "application/json" } })
|
|
2111
|
+
.then(function (res) { return res.json(); })
|
|
2112
|
+
.then(function (data) {
|
|
2113
|
+
var next = data !== null && typeof data === "object" && data.job ? data.job : null;
|
|
2114
|
+
setToolJob(next);
|
|
2115
|
+
if (next !== null && next.finished) loadTools();
|
|
2116
|
+
})
|
|
2117
|
+
.catch(function () { /* keep the last known progress */ });
|
|
2118
|
+
}, 1200);
|
|
2119
|
+
return function () { clearTimeout(timer); };
|
|
2120
|
+
}, [toolJob]);
|
|
2121
|
+
|
|
2122
|
+
var toolsSection = E("div", { className: "gb-section" },
|
|
2123
|
+
E("div", { className: "gb-sectionTitle" }, t("sec.tools")),
|
|
2124
|
+
E("div", { className: "gb-stack" },
|
|
2125
|
+
toolsData === null && toolErr === "" ? E("p", { className: "gb-hint" }, t("tools.loading")) : null,
|
|
2126
|
+
toolErr !== "" ? E("p", { className: "gb-error" }, toolErr) : null,
|
|
2127
|
+
toolsData !== null && !wingetOk ? E("p", { className: "gb-error" }, t("tools.nowinget")) : null,
|
|
2128
|
+
toolRows.length > 0 ? E("div", { className: "gb-tools" },
|
|
2129
|
+
toolRows.map(function (row) {
|
|
2130
|
+
return E("label", { key: row.id, className: "gb-toolRow", title: row.publisher + " · " + row.source },
|
|
2131
|
+
E("input", {
|
|
2132
|
+
type: "checkbox",
|
|
2133
|
+
checked: toolSel[row.id] === true,
|
|
2134
|
+
disabled: !toolSelectable(row),
|
|
2135
|
+
onChange: function () { toggleTool(row.id); },
|
|
2136
|
+
}),
|
|
2137
|
+
E("span", { className: "gb-toolCmd" }, row.cmd),
|
|
2138
|
+
E("span", { className: "gb-toolState gb-st-" + row.state }, t("tools.state." + row.state)),
|
|
2139
|
+
E("span", { className: "gb-toolSrc" }, (row.version !== "" ? row.version + " · " : "") + (row.provider !== "" ? row.provider : row.source) + (row.admin ? " · " + t("tools.adminHint") : "")),
|
|
2140
|
+
);
|
|
2141
|
+
}),
|
|
2142
|
+
) : null,
|
|
2143
|
+
toolsData !== null && wingetOk ? E("div", { className: "gb-seg" },
|
|
2144
|
+
E("button", { type: "button", className: "gb-segBtn", disabled: toolBusy, onClick: function () { loadTools(); } }, t("tools.refresh")),
|
|
2145
|
+
E("button", { type: "button", className: "gb-segBtn", disabled: toolBusy, onClick: selectInstallable }, t("tools.selectMissing")),
|
|
2146
|
+
E("button", { type: "button", className: "gb-segBtn" + (toolSelCount > 0 ? " gb-segActive" : ""), disabled: toolBusy || toolSelCount === 0, onClick: runTools }, t("tools.run")),
|
|
2147
|
+
) : null,
|
|
2148
|
+
toolJob !== null ? E("div", { className: "gb-stack" },
|
|
2149
|
+
E("div", { className: "gb-row" },
|
|
2150
|
+
E("span", { className: "gb-rowLabel" }, t("tools.working") + ":"),
|
|
2151
|
+
E("span", { className: "gb-rowValue" }, (toolJob.current ? toolJob.current + " " : "") + toolJob.done + " / " + toolJob.total),
|
|
2152
|
+
),
|
|
2153
|
+
(toolJob.results || []).map(function (item) {
|
|
2154
|
+
return E("div", { key: item.id, className: "gb-toolResult" },
|
|
2155
|
+
E("span", { className: item.ok ? "gb-ok" : "gb-bad" }, item.cmd + " " + t(item.ok ? "tools.resultOk" : "tools.resultFail")),
|
|
2156
|
+
E("span", null, item.detail || ""),
|
|
2157
|
+
);
|
|
2158
|
+
}),
|
|
2159
|
+
) : null,
|
|
2160
|
+
E("p", { className: "gb-hint" }, t("tools.hint")),
|
|
2161
|
+
),
|
|
2162
|
+
);
|
|
2163
|
+
|
|
1666
2164
|
var bodyContent = E("div", { className: "gb-body" },
|
|
1667
2165
|
dialectSection,
|
|
1668
2166
|
terminalSection,
|
|
2167
|
+
toolsSection,
|
|
1669
2168
|
dedupeSection,
|
|
1670
2169
|
pythonSection,
|
|
1671
2170
|
error ? E("p", { className: "gb-error" }, error) : null,
|