dsh-gitbash-shell 0.38.4 → 0.39.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 +61 -0
- package/README.md +47 -33
- package/README_EN.md +44 -27
- package/cordis.patch.yml +23 -30
- package/dsh.plugin.json +2 -2
- package/package.json +10 -2
- package/src/bash-path.js +7 -4
- package/src/bash-render.js +239 -0
- package/src/bash-tool.js +589 -0
- package/src/client.js +48 -45
- package/src/compositions.js +3 -3
- package/src/fastctx-bridge.js +22 -1
- package/src/index.js +28 -35
- package/src/inline-tools.js +164 -393
- package/src/shell.js +12 -9
package/src/client.js
CHANGED
|
@@ -138,8 +138,8 @@ window.__ModuleLoader__.load({
|
|
|
138
138
|
"tools.updating": "更新中…",
|
|
139
139
|
"variant.label": "四个「·Git Bash」变体模式",
|
|
140
140
|
"variant.hint": "默认关闭:官方四个模式经行内工具补位直接获得 Git Bash,模式列表保持官方原样。开启后注册四个变体(standard/minimal/ptc/cordis · Git Bash)并停用官方模式的工具补位——两者互斥。钉在变体 id 上的旧会话在关闭升级后需重新选择模式;变更对新会话生效。",
|
|
141
|
-
"pwsh.label": "
|
|
142
|
-
"pwsh.hint": "
|
|
141
|
+
"pwsh.label": "pwsh 工具(官方 PowerShell)",
|
|
142
|
+
"pwsh.hint": "默认关闭:开启后宿主官方的 pwsh 工具对会话可见——它是真正的 PowerShell(官方解析器自动优先 PowerShell 7),可直接用于 Windows 原生操作(注册表/服务/WMI)。关闭(默认)时该工具被隐藏,主机保持 bash 优先。无需安装任何额外组件;旧 PowerShell 7 旁路工具已随新架构退役。命令仍然首选 bash 工具。",
|
|
143
143
|
"fctx.label": "FastCtx 文件工具(gb_*)",
|
|
144
144
|
"fctx.hint": "默认开启:发布 gb_inspect_local_file / gb_grep / gb_glob / gb_replace(Rust 实现:批量读取带 token 预算、编码探测)。它们是官方 read/grep/glob/edit 的补充——官方工具接文件沙箱,仍是默认推荐;检测到 dsh-ops(ops_* 工具)时本组自动让位。",
|
|
145
145
|
};
|
|
@@ -216,8 +216,8 @@ window.__ModuleLoader__.load({
|
|
|
216
216
|
"tools.updating": "Updating…",
|
|
217
217
|
"variant.label": "The four \"· Git Bash\" variant presets",
|
|
218
218
|
"variant.hint": "Off by default: the four OFFICIAL presets get Git Bash through the inline tool patch and the roster stays official. On: register the four variants (standard/minimal/ptc/cordis · Git Bash) and stop patching the official presets — the two are exclusive. A session pinned to a variant id must re-select a preset after upgrading with the switch off. Applies to new sessions.",
|
|
219
|
-
"pwsh.label": "
|
|
220
|
-
"pwsh.hint": "Off by default: when on,
|
|
219
|
+
"pwsh.label": "pwsh tool (official PowerShell)",
|
|
220
|
+
"pwsh.hint": "Off by default: when on, the host's official pwsh tool becomes visible to sessions — REAL PowerShell (the official resolver prefers PowerShell 7 automatically) for Windows-native work (registry/services/WMI). Off (the default) hides it and keeps the host bash-first. Nothing extra to install; the retired PowerShell 7 side-channel tool is gone. Commands still prefer the bash tool.",
|
|
221
221
|
"fctx.label": "FastCtx file tools (gb_*)",
|
|
222
222
|
"fctx.hint": "On by default: publishes gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust: batched reads with a token budget, encoding detection). ADDITIONS to the official read/grep/glob/edit — the official tools keep the file sandbox and stay the default. Stands down automatically when dsh-ops is installed.",
|
|
223
223
|
};
|
|
@@ -304,8 +304,8 @@ window.__ModuleLoader__.load({
|
|
|
304
304
|
"tools.updating": "جارٍ الترقية…",
|
|
305
305
|
"variant.label": "الأنماط الأربعة «· Git Bash»",
|
|
306
306
|
"variant.hint": "معطَّل افتراضيًا: تحصل الأنماط الرسمية الأربعة على Git Bash عبر ترقيع الأدوات داخل العملية وتبقى القائمة رسمية. عند التفعيل تُسجَّل الأنماط الأربعة المتغيّرة وتتوقف ترقيع الأنماط الرسمية — الاثنان حصريان متباددان. الجلسة المثبَّتة على معرّف متغيّر تحتاج إعادة اختيار بعد الترقية مع بقاء المفتاح معطَّلًا.",
|
|
307
|
-
"pwsh.label": "أداة PowerShell
|
|
308
|
-
"pwsh.hint": "مُعطَّلة افتراضيًا: عند التفعيل
|
|
307
|
+
"pwsh.label": "أداة pwsh (PowerShell الرسمية)",
|
|
308
|
+
"pwsh.hint": "مُعطَّلة افتراضيًا: عند التفعيل تصبح أداة pwsh الرسمية للمضيف مرئية للجلسات — وهي PowerShell حقيقية (يفضِّل المُحلِّل الرسمي PowerShell 7 تلقائيًا) لأعمال Windows الأصلية (السجل/الخدمات/WMI). وعند الإيقاف (الافتراضي) تُخفى الأداة ويبقى المضيف يفضِّل bash. لا حاجة لتثبيت أي شيء إضافي؛ أداة PowerShell 7 الجانبية القديمة أُوقفت مع المعمارية الجديدة. مرِّر الأوامر عبر أداة bash كالمعتاد.",
|
|
309
309
|
"fctx.label": "أدوات ملفات FastCtx (gb_*)",
|
|
310
310
|
"fctx.hint": "مُفعَّلة افتراضيًا: تنشر gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust: قراءات دفعية بميزانية رموز وكشف ترميز). إضافة إلى read/grep/glob/edit الرسمية التي تحتفظ بصندوق الرمل وتبقى الافتراض؛ تتوقف تلقائيًا عند تثبيت dsh-ops.",
|
|
311
311
|
},
|
|
@@ -382,8 +382,8 @@ window.__ModuleLoader__.load({
|
|
|
382
382
|
"tools.updating": "Wird aktualisiert…",
|
|
383
383
|
"variant.label": "Die vier „· Git Bash“-Varianten",
|
|
384
384
|
"variant.hint": "Standardmäßig aus: Die vier OFFIZIELLEN Presets bekommen Git Bash durch den Inline-Tool-Patch, die Liste bleibt offiziell. Ein: Registriert die vier Varianten und stoppt das Patchen der offiziellen Presets — beides schließt sich aus. Eine am Varianten-Id festhängende Sitzung muss nach dem Upgrade neu wählen. Gilt für neue Sitzungen.",
|
|
385
|
-
"pwsh.label": "
|
|
386
|
-
"pwsh.hint": "Standardmäßig aus: Beim Einschalten
|
|
385
|
+
"pwsh.label": "pwsh-Werkzeug (offizielles PowerShell)",
|
|
386
|
+
"pwsh.hint": "Standardmäßig aus: Beim Einschalten wird das offizielle pwsh-Werkzeug des Hosts für Sitzungen sichtbar — ECHTES PowerShell (der offizielle Resolver bevorzugt PowerShell 7 automatisch) für Windows-natives Arbeiten (Registry/Dienste/WMI). Im Aus-Zustand (der Standard) bleibt es verborgen und der Host bleibt bash-first. Nichts zusätzlich zu installieren; das alte PowerShell-7-Seitenkanal-Werkzeug ist mit der neuen Architektur entfallen. Befehle laufen weiterhin bevorzugt über das bash-Werkzeug.",
|
|
387
387
|
"fctx.label": "FastCtx-Dateiwerkzeuge (gb_*)",
|
|
388
388
|
"fctx.hint": "Standardmäßig ein: Veröffentlicht gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust: stapelweise Lesevorgänge mit Token-Budget, Kodierungserkennung). ERGÄNZUNGEN zu read/grep/glob/edit — die offiziellen Werkzeuge behalten die Datei-Sandbox und bleiben Standard. Weicht automatisch zurück, wenn dsh-ops installiert ist.",
|
|
389
389
|
},
|
|
@@ -460,8 +460,8 @@ window.__ModuleLoader__.load({
|
|
|
460
460
|
"tools.updating": "Mise à jour…",
|
|
461
461
|
"variant.label": "Les quatre variantes « · Git Bash »",
|
|
462
462
|
"variant.hint": "Désactivé par défaut : les quatre presets OFFICIELS obtiennent Git Bash via le correctif d’outils en ligne et la liste reste officielle. Activé : enregistre les quatre variantes et cesse de corriger les presets officiels — les deux s’excluent. Une session attachée à un id de variante doit être rechoisie après mise à niveau. S’applique aux nouvelles sessions.",
|
|
463
|
-
"pwsh.label": "Outil PowerShell
|
|
464
|
-
"pwsh.hint": "Désactivé par défaut : activé,
|
|
463
|
+
"pwsh.label": "Outil pwsh (PowerShell officiel)",
|
|
464
|
+
"pwsh.hint": "Désactivé par défaut : activé, l'outil pwsh officiel de l'hôte devient visible pour les sessions — du VRAI PowerShell (le résolveur officiel préfère automatiquement PowerShell 7) pour le travail Windows natif (registre/services/WMI). Désactivé (défaut), il reste masqué et l'hôte garde bash en priorité. Rien à installer ; l'ancien outil PowerShell 7 en parallèle a été retiré avec la nouvelle architecture. Passez toujours par l'outil bash en premier.",
|
|
465
465
|
"fctx.label": "Outils de fichiers FastCtx (gb_*)",
|
|
466
466
|
"fctx.hint": "Activé par défaut : publie gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust : lectures par lots avec budget de tokens, détection d’encodage). COMPLÉMENTS aux outils officiels read/grep/glob/edit — ceux-ci conservent le bac à sable fichiers et restent la valeur par défaut. Se retire automatiquement si dsh-ops est installé.",
|
|
467
467
|
},
|
|
@@ -538,8 +538,8 @@ window.__ModuleLoader__.load({
|
|
|
538
538
|
"tools.updating": "अपडेट हो रहा है…",
|
|
539
539
|
"variant.label": "चार «· Git Bash» वेरिएंट प्रीसेट",
|
|
540
540
|
"variant.hint": "डिफ़ॉल्ट रूप से बंद: चार आधिकारिक प्रीसेट को इनलाइन टूल पैच से Git Bash मिलता है और सूची आधिकारिक रहती है। चालू: चार वेरिएंट पंजीकृत होते हैं और आधिकारिक प्रीसेट पैचिंग रुक जाती है — दोनों परस्पर अनन्य हैं। वेरिएंट id पर बंधे सत्र को अपग्रेड के बाद दोबारा चुनना पड़ेगा। नए सत्रों पर लागू।",
|
|
541
|
-
"pwsh.label": "
|
|
542
|
-
"pwsh.hint": "डिफ़ॉल्ट रूप से बंद: चालू करने पर
|
|
541
|
+
"pwsh.label": "pwsh टूल (आधिकारिक PowerShell)",
|
|
542
|
+
"pwsh.hint": "डिफ़ॉल्ट रूप से बंद: चालू करने पर होस्ट का आधिकारिक pwsh टूल सत्रों के लिए दिखाई देता है — असली PowerShell (आधिकारिक रिज़ॉल्वर स्वतः PowerShell 7 को प्राथमिकता देता है), Windows-नेटिव काम (रजिस्ट्री/सेवाएँ/WMI) के लिए सीधे उपयोगी। बंद (डिफ़ॉल्ट) रहने पर यह छिपा रहता है और होस्ट bash-प्राथमिकता बनाए रखता है। कुछ भी अतिरिक्त इंस्टॉल करने की ज़रूरत नहीं; पुराना PowerShell 7 साइड-चैनल टूल नए आर्किटेक्चर के साथ सेवामुक्त हो गया। कमांड अब भी पहले bash टूल से चलाएँ।",
|
|
543
543
|
"fctx.label": "FastCtx फ़ाइल उपकरण (gb_*)",
|
|
544
544
|
"fctx.hint": "डिफ़ॉल्ट रूप से चालू: gb_inspect_local_file / gb_grep / gb_glob / gb_replace प्रकाशित करता है (Rust: टोकन बजट के साथ बैच रीड, एनकोडिंग पहचान)। आधिकारिक read/grep/glob/edit के अतिरिक्त — आधिकारिक उपकरण फ़ाइल सैंडबॉक्स रखते हैं और डिफ़ॉल्ट बने रहते हैं। dsh-ops इंस्टॉल होने पर स्वतः पीछे हट जाता है।",
|
|
545
545
|
},
|
|
@@ -616,8 +616,8 @@ window.__ModuleLoader__.load({
|
|
|
616
616
|
"tools.updating": "Memperbarui…",
|
|
617
617
|
"variant.label": "Empat preset varian «· Git Bash»",
|
|
618
618
|
"variant.hint": "Nonaktif secara bawaan: empat preset RESMI mendapat Git Bash melalui patch alat inline dan daftar tetap resmi. Aktif: mendaftarkan empat varian dan berhenti mem-patch preset resmi — keduanya saling eksklusif. Sesi yang terikat pada id varian harus memilih ulang setelah peningkatan. Berlaku untuk sesi baru.",
|
|
619
|
-
"pwsh.label": "Alat PowerShell
|
|
620
|
-
"pwsh.hint": "Nonaktif secara default: saat aktif,
|
|
619
|
+
"pwsh.label": "Alat pwsh (PowerShell resmi)",
|
|
620
|
+
"pwsh.hint": "Nonaktif secara default: saat aktif, alat pwsh resmi milik host menjadi terlihat bagi sesi — PowerShell ASLI (resolver resmi otomatis memilih PowerShell 7) untuk kerja native Windows (registry/layanan/WMI). Nonaktif (default) menyembunyikannya dan host tetap bash-first. Tidak perlu menginstal apa pun; alat samping PowerShell 7 yang lama sudah dipensiunkan bersama arsitektur baru. Jalankan perintah tetap lewat alat bash terlebih dahulu.",
|
|
621
621
|
"fctx.label": "Alat berkas FastCtx (gb_*)",
|
|
622
622
|
"fctx.hint": "Aktif secara bawaan: menerbitkan gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust: pembacaan batch dengan anggaran token, deteksi enkode). TAMBAHAN untuk read/grep/glob/edit resmi — alat resmi tetap memiliki sandbox berkas dan menjadi bawaan. Mundur otomatis saat dsh-ops terinstal.",
|
|
623
623
|
},
|
|
@@ -694,8 +694,8 @@ window.__ModuleLoader__.load({
|
|
|
694
694
|
"tools.updating": "Aggiornamento…",
|
|
695
695
|
"variant.label": "Le quattro varianti «· Git Bash»",
|
|
696
696
|
"variant.hint": "Disattivo per impostazione predefinita: i quattro preset UFFICIALI ottengono Git Bash tramite la patch inline degli strumenti e l’elenco resta ufficiale. Attivo: registra le quattro varianti e smette di correggere i preset ufficiali — i due si escludono. Una sessione legata a un id di variante va riscelta dopo l’aggiornamento. Vale per le nuove sessioni.",
|
|
697
|
-
"pwsh.label": "Strumento PowerShell
|
|
698
|
-
"pwsh.hint": "Disattivo per impostazione predefinita: quando attivo,
|
|
697
|
+
"pwsh.label": "Strumento pwsh (PowerShell ufficiale)",
|
|
698
|
+
"pwsh.hint": "Disattivo per impostazione predefinita: quando attivo, lo strumento pwsh ufficiale dell'host diventa visibile alle sessioni — VERO PowerShell (il resolver ufficiale preferisce automaticamente PowerShell 7) per lavoro Windows nativo (registro/servizi/WMI). Disattivo (predefinito), resta nascosto e l'host resta bash-first. Nulla da installare in più; il vecchio strumento laterale PowerShell 7 è andato in pensione con la nuova architettura. Instrada comunque i comandi prima tramite lo strumento bash.",
|
|
699
699
|
"fctx.label": "Strumenti file FastCtx (gb_*)",
|
|
700
700
|
"fctx.hint": "Attivo per impostazione predefinita: pubblica gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust: letture in batch con budget di token, rilevamento della codifica). AGGIUNTE ai read/grep/glob/edit ufficiali — quelli ufficiali mantengono la sandbox dei file e restano la scelta predefinita. Si ritira automaticamente con dsh-ops installato.",
|
|
701
701
|
},
|
|
@@ -772,8 +772,8 @@ window.__ModuleLoader__.load({
|
|
|
772
772
|
"tools.updating": "更新中…",
|
|
773
773
|
"variant.label": "4 つの「· Git Bash」バリアント",
|
|
774
774
|
"variant.hint": "既定はオフ:公式 4 プリセットはインラインツールパッチで Git Bash を得られ、一覧は公式のまま。オンにすると 4 バリアントを登録し、公式プリセットへのパッチを停止(両者は排他)。バリアント id に固定されたセッションはアップグレード後に再選択が必要。新規セッションに適用。",
|
|
775
|
-
"pwsh.label": "
|
|
776
|
-
"pwsh.hint": "
|
|
775
|
+
"pwsh.label": "pwsh ツール(公式 PowerShell)",
|
|
776
|
+
"pwsh.hint": "既定はオフ:オンにすると、ホスト公式の pwsh ツールがセッションから見えるようになります — 本物の PowerShell です(公式リゾルバが自動で PowerShell 7 を優先)。レジストリ/サービス/WMI など Windows ネイティブ作業にそのまま使えます。オフ(既定)では非表示のまま、ホストは bash 優先を保ちます。追加インストールは一切不要。旧 PowerShell 7 バイパスツールは新アーキテクチャで退役しました。コマンドは引き続き bash ツールを優先してください。",
|
|
777
777
|
"fctx.label": "FastCtx ファイルツール(gb_*)",
|
|
778
778
|
"fctx.hint": "既定はオン:gb_inspect_local_file / gb_grep / gb_glob / gb_replace を公開(Rust:トークン予算付き一括読み取り、エンコーディング検出)。公式 read/grep/glob/edit への追加であり、公式ツールはファイルサンドボックスを保ち既定の推奨のまま。dsh-ops が入ると自動で退きます。",
|
|
779
779
|
},
|
|
@@ -850,8 +850,8 @@ window.__ModuleLoader__.load({
|
|
|
850
850
|
"tools.updating": "업데이트 중…",
|
|
851
851
|
"variant.label": "네 개의 «· Git Bash» 변형 프리셋",
|
|
852
852
|
"variant.hint": "기본 꺼짐: 공식 4개 프리셋이 인라인 도구 패치로 Git Bash를 얻으며 목록은 공식 그대로입니다. 켜면 4개 변형을 등록하고 공식 프리셋 패칭을 중단합니다(상호 배타). 변형 id 에 고정된 세션은 업그레이드 후 다시 선택해야 합니다. 새 세션에 적용.",
|
|
853
|
-
"pwsh.label": "
|
|
854
|
-
"pwsh.hint": "기본적으로 꺼짐: 켜면
|
|
853
|
+
"pwsh.label": "pwsh 도구(공식 PowerShell)",
|
|
854
|
+
"pwsh.hint": "기본적으로 꺼짐: 켜면 호스트의 공식 pwsh 도구가 세션에 표시됩니다 — 진짜 PowerShell이며(공식 리졸버가 자동으로 PowerShell 7을 우선), 레지스트리/서비스/WMI 등 Windows 네이티브 작업에 바로 쓸 수 있습니다. 꺼짐(기본값)이면 숨겨진 채로 호스트는 bash 우선을 유지합니다. 추가 설치가 전혀 필요 없습니다. 이전 PowerShell 7 우회 도구는 새 아키텍처와 함께 은퇴했습니다. 명령은 여전히 bash 도구를 먼저 사용하세요.",
|
|
855
855
|
"fctx.label": "FastCtx 파일 도구(gb_*)",
|
|
856
856
|
"fctx.hint": "기본 켜짐: gb_inspect_local_file / gb_grep / gb_glob / gb_replace 를 공개합니다(Rust: 토큰 예산 기반 일괄 읽기, 인코딩 감지). 공식 read/grep/glob/edit 의 추가이며 공식 도구는 파일 샌드박스를 유지하고 기본 권장입니다. dsh-ops 가 설치되면 자동으로 물러납니다.",
|
|
857
857
|
},
|
|
@@ -928,8 +928,8 @@ window.__ModuleLoader__.load({
|
|
|
928
928
|
"tools.updating": "Bijwerken…",
|
|
929
929
|
"variant.label": "De vier «· Git Bash»-varianten",
|
|
930
930
|
"variant.hint": "Standaard uit: de vier OFFICIËLE presets krijgen Git Bash via de inline-toolpatch en de lijst blijft officieel. Aan: registreert de vier varianten en stopt het patchen van de officiële presets — sluit elkaar uit. Een sessie die aan een variant-id vastzit moet na een upgrade opnieuw kiezen. Geldt voor nieuwe sessies.",
|
|
931
|
-
"pwsh.label": "
|
|
932
|
-
"pwsh.hint": "Standaard uit: ingeschakeld
|
|
931
|
+
"pwsh.label": "pwsh-hulpmiddel (officiële PowerShell)",
|
|
932
|
+
"pwsh.hint": "Standaard uit: ingeschakeld wordt het officiële pwsh-hulpmiddel van de host zichtbaar voor sessies — ECHTE PowerShell (de officiële resolver geeft automatisch de voorkeur aan PowerShell 7) voor Windows-natief werk (register/services/WMI). Uit (de standaard) blijft het verborgen en blijft de host bash-first. Niets extra te installeren; het oude PowerShell-7-sidechannel-hulpmiddel is met de nieuwe architectuur met pensioen. Voer opdrachten nog steeds bij voorkeur uit via het bash-hulpmiddel.",
|
|
933
933
|
"fctx.label": "FastCtx-bestandshulpmiddelen (gb_*)",
|
|
934
934
|
"fctx.hint": "Standaard aan: publiceert gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust: gelezen in batches met tokenbudget, coderingsdetectie). AANVULLINGEN op read/grep/glob/edit — de officiële hulpmiddelen houden de bestandssandbox en blijven de standaard. Trekt zich automatisch terug wanneer dsh-ops is geïnstalleerd.",
|
|
935
935
|
},
|
|
@@ -1006,8 +1006,8 @@ window.__ModuleLoader__.load({
|
|
|
1006
1006
|
"tools.updating": "Aktualizowanie…",
|
|
1007
1007
|
"variant.label": "Cztery warianty «· Git Bash»",
|
|
1008
1008
|
"variant.hint": "Domyślnie wyłączone: cztery OFICJALNE presety dostają Git Bash przez inline-owy patch narzędzi, a lista pozostaje oficjalna. Włączenie rejestruje cztery warianty i zatrzymuje patchowanie oficjalnych presetów — opcje wykluczają się. Sesja przypięta do id wariantu musi zostać wybrana ponownie po aktualizacji. Dotyczy nowych sesji.",
|
|
1009
|
-
"pwsh.label": "Narzędzie
|
|
1010
|
-
"pwsh.hint": "Domyślnie wyłączone: po włączeniu
|
|
1009
|
+
"pwsh.label": "Narzędzie pwsh (oficjalny PowerShell)",
|
|
1010
|
+
"pwsh.hint": "Domyślnie wyłączone: po włączeniu oficjalne narzędzie pwsh hosta staje się widoczne dla sesji — PRAWDZIWY PowerShell (oficjalny resolver automatycznie preferuje PowerShell 7) do natywnej pracy w Windows (rejestr/usługi/WMI). Wyłączone (domyślnie) pozostaje ukryte, a host pozostaje bash-first. Niczego nie trzeba dodatkowo instalować; stare narzędzie poboczne PowerShell 7 przeszło na emeryturę wraz z nową architekturą. Polecenia nadal wykonuj najpierw przez narzędzie bash.",
|
|
1011
1011
|
"fctx.label": "Narzędzia plików FastCtx (gb_*)",
|
|
1012
1012
|
"fctx.hint": "Domyślnie włączone: publikuje gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust: odczyty wsadowe z budżetem tokenów, wykrywanie kodowania). DODATKI do oficjalnych read/grep/glob/edit — oficjalne narzędzia zachowują sandbox plików i pozostają domyślne. Wycofuje się automatycznie, gdy zainstalowano dsh-ops.",
|
|
1013
1013
|
},
|
|
@@ -1084,8 +1084,8 @@ window.__ModuleLoader__.load({
|
|
|
1084
1084
|
"tools.updating": "A atualizar…",
|
|
1085
1085
|
"variant.label": "As quatro variantes «· Git Bash»",
|
|
1086
1086
|
"variant.hint": "Desativado por padrão: os quatro presets OFICIAIS recebem Git Bash pelo patch de ferramentas em linha e a lista permanece oficial. Ativado: registra as quatro variantes e deixa de corrigir os presets oficiais — mutuamente exclusivos. Uma sessão presa a um id de variante precisa ser reescolhida após a atualização. Vale para novas sessões.",
|
|
1087
|
-
"pwsh.label": "Ferramenta PowerShell
|
|
1088
|
-
"pwsh.hint": "Desativado por padrão: ao ativar,
|
|
1087
|
+
"pwsh.label": "Ferramenta pwsh (PowerShell oficial)",
|
|
1088
|
+
"pwsh.hint": "Desativado por padrão: ao ativar, a ferramenta pwsh oficial do host fica visível para as sessões — PowerShell REAL (o resolvedor oficial prefere automaticamente o PowerShell 7) para trabalho nativo do Windows (registro/serviços/WMI). Desativado (o padrão), ela permanece oculta e o host continua bash-first. Nada extra para instalar; a antiga ferramenta paralela PowerShell 7 foi aposentada com a nova arquitetura. Encaminhe os comandos ainda pela ferramenta bash primeiro.",
|
|
1089
1089
|
"fctx.label": "Ferramentas de arquivos FastCtx (gb_*)",
|
|
1090
1090
|
"fctx.hint": "Ativado por padrão: publica gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust: leituras em lote com orçamento de tokens, detecção de codificação). ADIÇÕES aos read/grep/glob/edit oficiais — os oficiais mantêm o sandbox de arquivos e continuam o padrão. Recua automaticamente quando o dsh-ops está instalado.",
|
|
1091
1091
|
},
|
|
@@ -1162,8 +1162,8 @@ window.__ModuleLoader__.load({
|
|
|
1162
1162
|
"tools.updating": "Обновление…",
|
|
1163
1163
|
"variant.label": "Четыре варианта «· Git Bash»",
|
|
1164
1164
|
"variant.hint": "По умолчанию выключено: четыре ОФИЦИАЛЬНЫХ пресета получают Git Bash через встроенный патч инструментов, список остаётся официальным. Включено — регистрирует четыре варианта и прекращает патчить официальные пресеты (взаимоисключающе). Сессия, привязанная к id варианта, после обновления должна выбрать пресет заново. Действует для новых сессий.",
|
|
1165
|
-
"pwsh.label": "Инструмент
|
|
1166
|
-
"pwsh.hint": "По умолчанию выключено: при включении
|
|
1165
|
+
"pwsh.label": "Инструмент pwsh (официальный PowerShell)",
|
|
1166
|
+
"pwsh.hint": "По умолчанию выключено: при включении штатный pwsh-инструмент хоста становится видимым для сессий — НАСТОЯЩИЙ PowerShell (официальный резолвер автоматически предпочитает PowerShell 7) для нативной работы Windows (реестр/службы/WMI). В выключенном состоянии (по умолчанию) он скрыт, и хост остаётся bash-приоритетным. Ничего дополнительно устанавливать не нужно; старый обходной инструмент PowerShell 7 ушёл в отставку вместе с новой архитектурой. Команды по-прежнему выполняйте сначала через инструмент bash.",
|
|
1167
1167
|
"fctx.label": "Файловые инструменты FastCtx (gb_*)",
|
|
1168
1168
|
"fctx.hint": "По умолчанию включено: публикует gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust: пакетные чтения с бюджетом токенов, определение кодировки). ДОПОЛНЕНИЯ к официальным read/grep/glob/edit — официальные сохраняют файловую песочницу и остаются выбором по умолчанию. Автоматически отступает при установленном dsh-ops.",
|
|
1169
1169
|
},
|
|
@@ -1240,8 +1240,8 @@ window.__ModuleLoader__.load({
|
|
|
1240
1240
|
"tools.updating": "Uppdaterar…",
|
|
1241
1241
|
"variant.label": "De fyra «· Git Bash»-varianterna",
|
|
1242
1242
|
"variant.hint": "Av som standard: de fyra OFFICIELLA presetten får Git Bash via inline-verktygspatchen och listan förblir officiell. På: registrerar de fyra varianterna och slutar patcha de officiella presetten — ömsesidigt uteslutande. En session fastnåld på ett variant-id måste väljas om efter uppgradering. Gäller nya sessioner.",
|
|
1243
|
-
"pwsh.label": "
|
|
1244
|
-
"pwsh.hint": "Av som standard: när den är på
|
|
1243
|
+
"pwsh.label": "pwsh-verktyget (officiell PowerShell)",
|
|
1244
|
+
"pwsh.hint": "Av som standard: när den är på blir hostens officiella pwsh-verktyg synligt för sessioner — ÄKTA PowerShell (den officiella upplösaren föredrar automatiskt PowerShell 7) för Windows-inbyggt arbete (register/tjänster/WMI). Av (standarden) hålls den dold och hosten förblir bash-först. Inget extra att installera; det gamla PowerShell 7-sidokanalverktyget har pensionerats med den nya arkitekturen. Kör kommandon fortfarande via bash-verktyget först.",
|
|
1245
1245
|
"fctx.label": "FastCtx-filverktyg (gb_*)",
|
|
1246
1246
|
"fctx.hint": "På som standard: publicerar gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust: batchläsningar med tokenbudget, kodningsdetektering). TILLÄGG till de officiella read/grep/glob/edit — de officiella behåller filsandlådan och förblir standard. Drar sig automatiskt tillbaka när dsh-ops är installerat.",
|
|
1247
1247
|
},
|
|
@@ -1318,8 +1318,8 @@ window.__ModuleLoader__.load({
|
|
|
1318
1318
|
"tools.updating": "กำลังอัปเกรด…",
|
|
1319
1319
|
"variant.label": "พรีเซ็ตย่อย «· Git Bash» ทั้งสี่",
|
|
1320
1320
|
"variant.hint": "ปิดตามค่าเริ่มต้น: พรีเซ็ตทางการทั้งสี่ได้ Git Bash ผ่านแพตช์เครื่องมือในตัว และรายการยังเป็นทางการ เปิด: ลงทะเบียนสี่ตัวย่อยและหยุดแพตช์พรีเซ็ตทางการ — ทั้งสองไม่ใช้ร่วมกันได้ เซสชันที่ตรึงกับ id ย่อยต้องเลือกใหม่หลังอัปเกรด ใช้กับเซสชันใหม่",
|
|
1321
|
-
"pwsh.label": "เครื่องมือ PowerShell
|
|
1322
|
-
"pwsh.hint": "ปิดอยู่โดยค่าเริ่มต้น: เมื่อเปิด
|
|
1321
|
+
"pwsh.label": "เครื่องมือ pwsh (PowerShell ทางการ)",
|
|
1322
|
+
"pwsh.hint": "ปิดอยู่โดยค่าเริ่มต้น: เมื่อเปิด เครื่องมือ pwsh ทางการของโฮสต์จะปรากฏแก่เซสชัน — เป็น PowerShell แท้ (ตัวแก้ไขทางการเลือก PowerShell 7 ให้โดยอัตโนมัติ) ใช้ได้ทันทีสำหรับงาน Windows แบบเนทีฟ (registry/services/WMI) เมื่อปิด (ค่าเริ่มต้น) เครื่องมือจะถูกซ่อนและโฮสต์ยังให้ bash มาก่อน ไม่ต้องติดตั้งอะไรเพิ่ม; เครื่องมือข้างทาง PowerShell 7 เดิมได้เลิกใช้ไปพร้อมสถาปัตยกรรมใหม่ ส่งคำสั่งผ่านเครื่องมือ bash เป็นอันดับแรกเช่นเดิม",
|
|
1323
1323
|
"fctx.label": "เครื่องมือไฟล์ FastCtx (gb_*)",
|
|
1324
1324
|
"fctx.hint": "เปิดตามค่าเริ่มต้น: เผยแพร่ gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust: อ่านเป็นชุดพร้อมงบ token, ตรวจจับ encoding) เป็นส่วนเสริมของ read/grep/glob/edit ทางการ — เครื่องมือทางการยังมี sandbox ไฟล์และเป็นค่าเริ่มต้น ถอยอัตโนมัติเมื่อติดตั้ง dsh-ops",
|
|
1325
1325
|
},
|
|
@@ -1396,8 +1396,8 @@ window.__ModuleLoader__.load({
|
|
|
1396
1396
|
"tools.updating": "Güncelleniyor…",
|
|
1397
1397
|
"variant.label": "Dört «· Git Bash» varyantı",
|
|
1398
1398
|
"variant.hint": "Varsayılan olarak kapalı: dört RESMİ preset, satır içi araç yamasıyla Git Bash alır; liste resmi kalır. Açık: dört varyantı kaydeder ve resmi presetleri yamalamayı bırakır — ikisi birbirini dışlar. Bir varyant kimliğine bağlı oturum yükseltmeden sonra yeniden seçilmelidir. Yeni oturumlar için geçerlidir.",
|
|
1399
|
-
"pwsh.label": "
|
|
1400
|
-
"pwsh.hint": "Varsayılan olarak kapalı: açıkken
|
|
1399
|
+
"pwsh.label": "pwsh aracı (resmî PowerShell)",
|
|
1400
|
+
"pwsh.hint": "Varsayılan olarak kapalı: açıkken ana makinenin resmî pwsh aracı oturumlara görünür olur — GERÇEK PowerShell (resmî çözümleyici otomatik olarak PowerShell 7'yi tercih eder) Windows-yerel işler (kayıt defteri/hizmetler/WMI) için doğrudan kullanılabilir. Kapalı (varsayılan) kaldığında gizli kalır ve ana makine bash-öncelikli kalır. Ekstra bir şey kurmaya gerek yok; eski PowerShell 7 yan kanal aracı yeni mimariyle birlikte emekli edildi. Komutları yine de önce bash aracıyla çalıştırın.",
|
|
1401
1401
|
"fctx.label": "FastCtx dosya araçları (gb_*)",
|
|
1402
1402
|
"fctx.hint": "Varsayılan açık: gb_inspect_local_file / gb_grep / gb_glob / gb_replace yayımlar (Rust: token bütçeli toplu okumalar, kodlama algılama). Resmî read/grep/glob/edit’e EKLER — resmî araçlar dosya kum havuzunu korur ve varsayılan kalır. dsh-ops kurulu olduğunda otomatik olarak geri çekilir.",
|
|
1403
1403
|
},
|
|
@@ -1474,8 +1474,8 @@ window.__ModuleLoader__.load({
|
|
|
1474
1474
|
"tools.updating": "Đang nâng cấp…",
|
|
1475
1475
|
"variant.label": "Bốn biến thể «· Git Bash»",
|
|
1476
1476
|
"variant.hint": "Mặc định tắt: bốn preset CHÍNH THỨC nhận Git Bash qua bản vá công cụ nội tuyến và danh sách vẫn chính thức. Bật: đăng ký bốn biến thể và ngừng vá các preset chính thức — hai bên loại trừ nhau. Phiên đang ghim vào id biến thể cần chọn lại sau nâng cấp. Áp dụng cho phiên mới.",
|
|
1477
|
-
"pwsh.label": "Công cụ PowerShell
|
|
1478
|
-
"pwsh.hint": "Mặc định tắt: khi bật,
|
|
1477
|
+
"pwsh.label": "Công cụ pwsh (PowerShell chính thức)",
|
|
1478
|
+
"pwsh.hint": "Mặc định tắt: khi bật, công cụ pwsh chính thức của host hiển thị cho các phiên — PowerShell THẬT (bộ phân giải chính thức tự ưu tiên PowerShell 7) dùng ngay cho công việc Windows gốc (registry/services/WMI). Tắt (mặc định) thì nó vẫn bị ẩn và host vẫn ưu tiên bash. Không cần cài thêm gì; công cụ rẽ nhánh PowerShell 7 cũ đã nghỉ hưu cùng kiến trúc mới. Vẫn ưu tiên chạy lệnh qua công cụ bash trước.",
|
|
1479
1479
|
"fctx.label": "Công cụ tệp FastCtx (gb_*)",
|
|
1480
1480
|
"fctx.hint": "Mặc định bật: phát hành gb_inspect_local_file / gb_grep / gb_glob / gb_replace (Rust: đọc theo lô có ngân sách token, phát hiện mã hóa). BỔ SUNG cho read/grep/glob/edit chính thức — công cụ chính thức giữ sandbox tệp và vẫn là mặc định. Tự rút khi dsh-ops được cài.",
|
|
1481
1481
|
},
|
|
@@ -1552,8 +1552,8 @@ window.__ModuleLoader__.load({
|
|
|
1552
1552
|
"tools.updating": "升級緊…",
|
|
1553
1553
|
"variant.label": "四個「·Git Bash」變體模式",
|
|
1554
1554
|
"variant.hint": "預設關閉:官方四個模式經行內工具補位直接獲得 Git Bash,模式列表保持官方原樣。開啟後註冊四個變體並停用官方模式的工具補位——兩者互斥。釘在變體 id 的舊會話在關閉升級後需重新選擇模式;變更對新會話生效。",
|
|
1555
|
-
"pwsh.label": "
|
|
1556
|
-
"pwsh.hint": "
|
|
1555
|
+
"pwsh.label": "pwsh 工具(官方 PowerShell)",
|
|
1556
|
+
"pwsh.hint": "預設關閉:開啟後宿主官方的 pwsh 工具對會話可見——它是真正的 PowerShell(官方解析器自動優先 PowerShell 7),可直接用於 Windows 原生操作(登錄檔/服務/WMI)。關閉(預設)時該工具被隱藏,主機保持 bash 優先。無需安裝任何額外元件;舊版 PowerShell 7 旁路工具已隨新架構退役。命令仍然首選 bash 工具。",
|
|
1557
1557
|
"fctx.label": "FastCtx 檔案工具(gb_*)",
|
|
1558
1558
|
"fctx.hint": "預設開啟:發布 gb_inspect_local_file / gb_grep / gb_glob / gb_replace(Rust 實現:批量讀取帶 token 預算、編碼探測)。它們是官方 read/grep/glob/edit 的補充——官方工具接檔案沙箱,仍是預設推薦;偵測到 dsh-ops 時本組自動讓位。",
|
|
1559
1559
|
},
|
|
@@ -1630,8 +1630,8 @@ window.__ModuleLoader__.load({
|
|
|
1630
1630
|
"tools.updating": "升級緊…",
|
|
1631
1631
|
"variant.label": "四個「·Git Bash」變體模式",
|
|
1632
1632
|
"variant.hint": "預設關閉:官方四個模式經行內工具補位直接獲得 Git Bash,模式列表保持官方原樣。開啟後註冊四個變體並停用官方模式的工具補位——兩者互斥。釘在變體 id 的舊會話在關閉升級後需重新選擇模式;變更對新會話生效。",
|
|
1633
|
-
"pwsh.label": "
|
|
1634
|
-
"pwsh.hint": "
|
|
1633
|
+
"pwsh.label": "pwsh 工具(官方 PowerShell)",
|
|
1634
|
+
"pwsh.hint": "預設關閉:開啟後宿主官方的 pwsh 工具對會話可見——它是真正的 PowerShell(官方解析器自動優先 PowerShell 7),可直接用於 Windows 原生操作(登錄檔/服務/WMI)。關閉(預設)時該工具被隱藏,主機保持 bash 優先。無需安裝任何額外元件;舊版 PowerShell 7 旁路工具已隨新架構退役。命令仍然首選 bash 工具。",
|
|
1635
1635
|
"fctx.label": "FastCtx 檔案工具(gb_*)",
|
|
1636
1636
|
"fctx.hint": "預設開啟:發布 gb_inspect_local_file / gb_grep / gb_glob / gb_replace(Rust 實現:批量讀取帶 token 預算、編碼探測)。它們是官方 read/grep/glob/edit 的補充——官方工具接檔案沙箱,仍是預設推薦;偵測到 dsh-ops 時本組自動讓位。",
|
|
1637
1637
|
},
|
|
@@ -1708,8 +1708,8 @@ window.__ModuleLoader__.load({
|
|
|
1708
1708
|
"tools.updating": "更新中…",
|
|
1709
1709
|
"variant.label": "四個「·Git Bash」變體模式",
|
|
1710
1710
|
"variant.hint": "預設關閉:官方四個模式經行內工具補位直接獲得 Git Bash,模式列表保持官方原樣。開啟後註冊四個變體並停用官方模式的工具補位——兩者互斥。釘在變體 id 的舊會話在關閉升級後需重新選擇模式;變更對新會話生效。",
|
|
1711
|
-
"pwsh.label": "
|
|
1712
|
-
"pwsh.hint": "
|
|
1711
|
+
"pwsh.label": "pwsh 工具(官方 PowerShell)",
|
|
1712
|
+
"pwsh.hint": "預設關閉:開啟後宿主官方的 pwsh 工具對工作階段可見——它是真正的 PowerShell(官方解析器自動優先 PowerShell 7),可直接用於 Windows 原生操作(登錄檔/服務/WMI)。關閉(預設)時該工具被隱藏,主機保持 bash 優先。無需安裝任何額外元件;舊版 PowerShell 7 旁路工具已隨新架構退役。命令仍然首選 bash 工具。",
|
|
1713
1713
|
"fctx.label": "FastCtx 檔案工具(gb_*)",
|
|
1714
1714
|
"fctx.hint": "預設開啟:發布 gb_inspect_local_file / gb_grep / gb_glob / gb_replace(Rust 實現:批量讀取帶 token 預算、編碼探測)。它們是官方 read/grep/glob/edit 的補充——官方工具接檔案沙箱,仍是預設推薦;偵測到 dsh-ops 時本組自動讓位。",
|
|
1715
1715
|
},
|
|
@@ -2609,9 +2609,12 @@ window.__ModuleLoader__.load({
|
|
|
2609
2609
|
|
|
2610
2610
|
// ── missing-Git-Bash popup (v0.28.0, issue #11) ────────────────────────
|
|
2611
2611
|
//
|
|
2612
|
-
// When no Git for Windows bash resolves,
|
|
2613
|
-
// (
|
|
2614
|
-
//
|
|
2612
|
+
// When no Git for Windows bash resolves, this plugin's own bash tool
|
|
2613
|
+
// cannot run anything (route B: the patch is purely additive — the
|
|
2614
|
+
// plugin no longer replaces the host executor; it adds its own bash
|
|
2615
|
+
// tool over a PRIVATE Git Bash executor instance, and the official
|
|
2616
|
+
// PowerShell executor stays untouched) — so the user must not be left
|
|
2617
|
+
// staring at `spawn ... ENOENT`.
|
|
2615
2618
|
// The host prints the full report to its log and serves the same verdict
|
|
2616
2619
|
// at /dsh-gitbash-shell/api/status; this overlay turns it into the two
|
|
2617
2620
|
// actions the user asked for: edit the path right here, or go download
|
package/src/compositions.js
CHANGED
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
* Every variant mirrors the official 0.1.7 preset it replaces (packages/
|
|
11
11
|
* bundle/web-app/presets/{standard,minimal,ptc,cordis}.patch.yml) with the
|
|
12
12
|
* one Git Bash delta: the bash rows are always on and the pwsh rows are
|
|
13
|
-
* always off (the
|
|
14
|
-
*
|
|
15
|
-
* materialized variants encoded). A second, conditional delta exists while
|
|
13
|
+
* always off (the plugin ships its OWN bash tool over a private executor —
|
|
14
|
+
* on non-Windows hosts the official stack is native anyway, which is exactly
|
|
15
|
+
* what the old materialized variants encoded). A second, conditional delta exists while
|
|
16
16
|
* dsh-ptc-cordis-preset reports its experimental-CPython backend ACTIVE: the
|
|
17
17
|
* two workflow rows follow the official Python composition and go off (see
|
|
18
18
|
* `pythonActive` below). While that backend is off — the default, and also
|
package/src/fastctx-bridge.js
CHANGED
|
@@ -323,16 +323,37 @@ export function mountFastctx(ctx, deps) {
|
|
|
323
323
|
for (const tool of wanted) {
|
|
324
324
|
const rawName = String(tool.name)
|
|
325
325
|
const schema = tool.inputSchema && typeof tool.inputSchema === 'object' ? tool.inputSchema : { type: 'object', properties: {} }
|
|
326
|
+
// Ignore-rule transparency (v0.38.5, the field smoke report): the three
|
|
327
|
+
// "find files" surfaces disagree by default — the official glob ignores
|
|
328
|
+
// nothing, gb_grep honors .gitignore and skips .git, while gb_glob only
|
|
329
|
+
// honors a bare .ignore file and keeps .git visible. State it on the
|
|
330
|
+
// tools the model sees, instead of letting mixed usage produce
|
|
331
|
+
// surprising result sets.
|
|
332
|
+
const ignoreNote = rawName === 'glob'
|
|
333
|
+
? '\nIgnore rules: this tool only honors a bare .ignore file and does NOT hide .git — use gb_grep (honors .gitignore) or the official glob when those semantics are wanted.'
|
|
334
|
+
: rawName === 'grep'
|
|
335
|
+
? '\nIgnore rules: this tool honors .gitignore and skips .git — unlike gb_glob (bare .ignore only) and the official glob (ignores nothing).'
|
|
336
|
+
: ''
|
|
326
337
|
try {
|
|
327
338
|
const dispose = registry.register({
|
|
328
339
|
name: gbName(rawName),
|
|
329
|
-
description: `${String(tool.description ?? rawName)}\n${FASTCTX_SANDBOX_NOTE}`,
|
|
340
|
+
description: `${String(tool.description ?? rawName)}\n${FASTCTX_SANDBOX_NOTE}${ignoreNote}`,
|
|
330
341
|
parameters: schema,
|
|
331
342
|
output: {
|
|
332
343
|
schema: TOOL_OUTPUT_SCHEMA,
|
|
333
344
|
render: (_args, value) => renderTextContent(value),
|
|
334
345
|
},
|
|
335
346
|
async execute(args) {
|
|
347
|
+
// Fail LOUD on malformed patterns (v0.38.5, the field smoke
|
|
348
|
+
// report): the upstream server silently treats a non-string
|
|
349
|
+
// pattern as "everything", which turns a typo into a full-tree
|
|
350
|
+
// result set — a silent wrong answer is worse than an error.
|
|
351
|
+
if ((rawName === 'glob' || rawName === 'replace') && args !== null && typeof args === 'object' && 'pattern' in args) {
|
|
352
|
+
const pattern = args.pattern
|
|
353
|
+
if (typeof pattern !== 'string' || pattern.trim() === '') {
|
|
354
|
+
throw new Error(`invalid arguments: ${gbName(rawName)} pattern must be a non-empty string (got ${pattern === null ? 'null' : typeof pattern})`)
|
|
355
|
+
}
|
|
356
|
+
}
|
|
336
357
|
const translated = translateFastctxArgs(args, msysToWin)
|
|
337
358
|
const result = await callWithReconnect(rawName, translated)
|
|
338
359
|
return { content: [{ type: 'text', text: renderFastctxResult(rawName, result, echo) }] }
|
package/src/index.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* dsh-gitbash-shell — host half (preset
|
|
2
|
+
* dsh-gitbash-shell — host half (route B: the own bash tool + preset variants).
|
|
3
3
|
*
|
|
4
|
-
* Installed as a profile bundle, this plugin
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* preset
|
|
4
|
+
* Installed as a profile bundle, this plugin gives dsh a Git Bash command
|
|
5
|
+
* channel WITHOUT touching the host's official PowerShell executor (route B,
|
|
6
|
+
* v0.39.0 — the executor instance lives in ./shell.js and is constructed in a
|
|
7
|
+
* private scope for the plugin's own bash tool). On startup it also registers
|
|
8
|
+
* four Git Bash agent preset variants, mirroring how dsh-ptc-cordis-preset
|
|
9
|
+
* ships its 'ptc-cordis' preset:
|
|
9
10
|
*
|
|
10
11
|
* standard-gitbash — 标准模式 · Git Bash (tool-bash on, tool-pwsh off)
|
|
11
12
|
* minimal-gitbash — 极简模式 · Git Bash (persistent Git Bash terminal)
|
|
@@ -56,7 +57,7 @@ import { fileURLToPath } from 'node:url'
|
|
|
56
57
|
|
|
57
58
|
import { PRESET_META, minimalPluginsFor, pluginsFor } from './compositions.js'
|
|
58
59
|
import { loadSchemastery } from './schemastery.js'
|
|
59
|
-
import { GITBASH_MSYS_ADDENDUM, GITBASH_ROUTE_ADDENDUM, GITBASH_ROUTE_ADDENDUM_NO_PWSH, mountInlineTools
|
|
60
|
+
import { GITBASH_MSYS_ADDENDUM, GITBASH_ROUTE_ADDENDUM, GITBASH_ROUTE_ADDENDUM_NO_PWSH, mountInlineTools } from './inline-tools.js'
|
|
60
61
|
import { mountFastctx } from './fastctx-bridge.js'
|
|
61
62
|
|
|
62
63
|
/**
|
|
@@ -503,10 +504,12 @@ export const Config = Schema === null ? undefined : Schema.object({
|
|
|
503
504
|
*/
|
|
504
505
|
variantPresets: live(Schema.boolean().default(false)),
|
|
505
506
|
/**
|
|
506
|
-
*
|
|
507
|
-
*
|
|
508
|
-
*
|
|
509
|
-
*
|
|
507
|
+
* Show the host `pwsh` tool to agents (v0.39.0 semantics; default OFF).
|
|
508
|
+
* Route B keeps the official pwsh executor in place, so the tool is REAL
|
|
509
|
+
* PowerShell (7 first per the official resolver) — showing it is a pure
|
|
510
|
+
* product choice. OFF (default) hides it per agent: the host stays
|
|
511
|
+
* bash-first. The retired v0.37 `pwsh7` side-channel is gone; this switch
|
|
512
|
+
* now controls the real thing.
|
|
510
513
|
*/
|
|
511
514
|
pwshTool: live(Schema.boolean().default(false)),
|
|
512
515
|
/**
|
|
@@ -1964,7 +1967,7 @@ export async function apply(ctx, config = {}) {
|
|
|
1964
1967
|
// materialize: service present, 'active: true' on Windows, 'active: false'
|
|
1965
1968
|
// where the bundle is installed but the platform stack stayed native.
|
|
1966
1969
|
/* The explicit tier of the resolution chain, in its documented priority:
|
|
1967
|
-
the `gitbash-executor` row's
|
|
1970
|
+
the (pre-v0.39, legacy-profile) `gitbash-executor` row's config > the `gitbash-shell` row's
|
|
1968
1971
|
`bashPath` field > empty (= run the automatic chain). Both this layer and
|
|
1969
1972
|
the executor resolve from this same value, so an explicit answer is never
|
|
1970
1973
|
substituted and never silently ignored.
|
|
@@ -2091,10 +2094,10 @@ export async function apply(ctx, config = {}) {
|
|
|
2091
2094
|
// every agent (routing is dialect-independent), while the MSYS
|
|
2092
2095
|
// sentence only describes the world the dialect switch creates.
|
|
2093
2096
|
// Idempotent by marker: assemble may run more than once per agent.
|
|
2094
|
-
// The routing sentence follows the pwsh switch (v0.37.0
|
|
2095
|
-
//
|
|
2096
|
-
// a route to a tool the agent cannot see only
|
|
2097
|
-
// call a
|
|
2097
|
+
// The routing sentence follows the pwsh switch (v0.37.0; route B
|
|
2098
|
+
// v0.39.0): while the pwsh tool is hidden (the default) the sentence
|
|
2099
|
+
// must NOT name it — a route to a tool the agent cannot see only
|
|
2100
|
+
// teaches the model to call a hidden name.
|
|
2098
2101
|
if (assembly && typeof assembly === 'object' && Array.isArray(assembly.tools)) {
|
|
2099
2102
|
const routeSentence = liveSettings.pwshTool() === true ? GITBASH_ROUTE_ADDENDUM : GITBASH_ROUTE_ADDENDUM_NO_PWSH
|
|
2100
2103
|
for (const tool of assembly.tools) {
|
|
@@ -2599,16 +2602,17 @@ export async function apply(ctx, config = {}) {
|
|
|
2599
2602
|
})
|
|
2600
2603
|
}
|
|
2601
2604
|
|
|
2602
|
-
// ── inline tool patch (v0.35.0
|
|
2605
|
+
// ── inline tool patch (v0.35.0; route B since v0.39.0) ──────────────────
|
|
2603
2606
|
// The official preset rows compose `tool-bash` as win32-disabled, and the
|
|
2604
2607
|
// patch layer cannot reach rows nested in a preset declaration (buildMap
|
|
2605
2608
|
// only descends into group rows), so the fix runs at the tool layer: per
|
|
2606
|
-
// agent, a face of "pwsh yes / bash no" gets the
|
|
2607
|
-
//
|
|
2608
|
-
//
|
|
2609
|
-
//
|
|
2610
|
-
//
|
|
2611
|
-
//
|
|
2609
|
+
// agent, a face of "pwsh yes / bash no" gets the plugin's OWN bash tool
|
|
2610
|
+
// (src/bash-tool.js — a private Git Bash executor in a private scope, the
|
|
2611
|
+
// official tool surface mirrored call-for-call) plus a HIDE on the real pwsh
|
|
2612
|
+
// tool while the pwsh switch is off (route B: the official executor stays in
|
|
2613
|
+
// place, so pwsh is real PowerShell and hiding it is a product choice). The
|
|
2614
|
+
// variantPresets switch is honored BY OBSERVATION — a variant agent's face
|
|
2615
|
+
// already has bash, so this patch never fires there.
|
|
2612
2616
|
if (process.platform === 'win32') {
|
|
2613
2617
|
try {
|
|
2614
2618
|
mountInlineTools(ctx, {
|
|
@@ -2629,21 +2633,10 @@ export async function apply(ctx, config = {}) {
|
|
|
2629
2633
|
dispose: async () => { try { await fiber?.dispose?.() } catch { /* already gone */ } },
|
|
2630
2634
|
}
|
|
2631
2635
|
},
|
|
2632
|
-
allowed: (session) => {
|
|
2633
|
-
try { return ctx.get('sandboxPolicy')?.resolve({ session })?.mode === 'danger-full-access' } catch { return false }
|
|
2634
|
-
},
|
|
2635
|
-
spawn: (spec) => {
|
|
2636
|
-
const subprocess = ctx.get('subprocess')
|
|
2637
|
-
if (!subprocess || typeof subprocess.spawn !== 'function') throw new Error('the host subprocess service is not available on this deployment')
|
|
2638
|
-
return subprocess.spawn(spec)
|
|
2639
|
-
},
|
|
2640
|
-
pwshPath: resolveHostPwsh7({ exists: existsSync }),
|
|
2641
2636
|
pwshEnabled: () => liveSettings.pwshTool() === true,
|
|
2642
|
-
msysToWin: (p) => translateMsysPath(p, buildTranslateEnv(readConfiguredBashPath())),
|
|
2643
|
-
echo: (text) => (liveSettings.dialect().posixPaths === true ? windowsToMsys(text) : text),
|
|
2644
2637
|
log: (m) => console.log(TAG + ' ' + m),
|
|
2645
2638
|
})
|
|
2646
|
-
console.log(TAG + ' inline tool patch armed (
|
|
2639
|
+
console.log(TAG + ' inline tool patch armed (own bash tool over a private Git Bash executor; official pwsh executor untouched)')
|
|
2647
2640
|
} catch (error) {
|
|
2648
2641
|
console.log(TAG + ' inline tool patch wiring failed: ' + (error?.message ?? error))
|
|
2649
2642
|
}
|