dsh-claude-move 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.hi.md CHANGED
@@ -1,292 +1,285 @@
1
- # dsh-claude-move
2
-
3
- **DeepSeek Harness पर जाते समय अपना Claude Code इतिहास बनाए रखें।** एक ही इंस्टॉल में Claude का हर सत्र, याद, कौशल और `CLAUDE.md` DSH में फिर-से-शुरू होने योग्य सत्रों के रूप में **कॉपी** हो जाता है — एक समर्पित `claudecode` वर्कस्पेस में समूहित (कॉन्फ़िग के ज़रिए प्रति प्रोजेक्ट एक वर्कस्पेस वैकल्पिक)।
4
-
5
- `केवल-कॉपी` · `बिना रुकावट जारी` · `प्रोजेक्ट-वार वर्कस्पेस` · `Claude Code के साथ लाइव तालमेल`
6
-
7
- [![Test](https://github.com/PerryLink/dsh-claude-move/actions/workflows/test.yml/badge.svg)](https://github.com/PerryLink/dsh-claude-move/actions/workflows/test.yml)
8
- [![npm version](https://img.shields.io/npm/v/dsh-claude-move)](https://www.npmjs.com/package/dsh-claude-move)
9
- [![npm downloads](https://img.shields.io/npm/dm/dsh-claude-move)](https://www.npmjs.com/package/dsh-claude-move)
10
- [![Node ^22.19 || >=24](https://img.shields.io/static/v1?label=node&message=%5E22.19%20%7C%7C%20%3E%3D24&color=2f7d4f)](https://nodejs.org)
11
- [![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
12
- [![Topic: dsh](https://img.shields.io/badge/topic-dsh-3fb950)](https://github.com/topics/dsh)
13
- [![Topic: dsh-plugin](https://img.shields.io/badge/topic-dsh--plugin-3fb950)](https://github.com/topics/dsh-plugin)
14
- [![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/PerryLink/dsh-claude-move/issues)
15
-
16
- ![dsh-claude-move सोशल कार्ड](assets/social-card.png)
17
-
18
- [English](README.md) | [中文](README.zh.md) | [Español](README.es.md) | [Português](README.pt.md) | हिन्दी
19
-
20
- > डेवलपर पूर्वावलोकन (0.1.0)। रोडमैप और डिज़ाइन: [PLAN.md](PLAN.md) · परिवर्तन इतिहास: [CHANGELOG.md](CHANGELOG.md)।
21
-
22
- ## ✨ विशेषताएँ
23
-
24
- - 🔍 **स्वतः खोज** — Claude का डेटा रूट (`$CLAUDE_CONFIG_DIR`, डिफ़ॉल्ट `~/.claude`) ढूँढता है और हर प्रोजेक्ट/सत्र (शीर्षक, समय, गिनतियाँ), डायरेक्टरी व git स्थिति, यादें, कौशल, वैश्विक `CLAUDE.md` और `settings.json` को अनुक्रमित करता है — वृद्धिशील कैश से सिर्फ़ बदली फ़ाइलें दोबारा पढ़ी जाती हैं।
25
- - 📥 **पूर्ण-विश्वसनीय इतिहास आयात** — संतुलित, फिर-से-शुरू होने योग्य DSH सत्र (`turn/start → step/start → user/message → assistant/message → tool/call → tool/result → step/end → turn/end`), ख़राब पंक्तियाँ पंक्ति-संख्या सहित। बाधित टूल कॉल इस तरह सुधारे जाते हैं कि हर `tool_use` का ठीक एक परिणाम हो (रीज़्यूम पर स्थायी 400 अब नहीं)।
26
- - 🗂 **एक `claudecode` वर्कस्पेस (डिफ़ॉल्ट)** — हर आयातित सत्र एक समर्पित "claudecode" वर्कस्पेस में उतरता है जो एक नए फ़ोल्डर (`$DSH_HOME/claudecode` डिफ़ॉल्ट; प्लगइन केवल यही बनाता है) से जुड़ा होता है। `workspaceMode: 'per-project'` प्रति-प्रोजेक्ट एक वर्कस्पेस वाला समूहन वापस लाता है।
27
- - 🔁 **केवल-कॉपी और वृद्धिशील** — किसी भी तरफ़ कुछ हटता/बदलता नहीं। दोबारा आयात करने पर सिर्फ़ नए टर्न उसी DSH सत्र में जुड़ते हैं; `force: true` नए id से एक अतिरिक्त पूरी कॉपी बचाता है।
28
- - 🧠 **व्यक्तिगत संदर्भ हमेशा ताज़ा** — यादें लाइव प्रॉम्प्ट खंड के रूप में, Claude के कौशल असली DSH कौशल के रूप में (कौशल खोज में `README.md` जैसे गैर-कौशल दस्तावेज़ छोड़ दिए जाते हैं), वैश्विक + प्रोजेक्ट `CLAUDE.md` शुरुआती खंड के रूप में। `claudecode` वर्कस्पेस में भी memory/`CLAUDE.md` समाधान के लिए मूल प्रोजेक्ट डायरेक्टरी याद रखी जाती है।
29
- - ⚡ **चल रहे Claude Code के साथ लाइव तालमेल** — दोनों टूल साथ-साथ चलाएँ; हर री-रन सिर्फ़ बदलाव लाता है।
30
- - 🖥 **वेब पैनल और एक-चरण कमांड** — `/claude-import-all`, `/resume-claude` और प्रोग्रेस वाला तैरता माइग्रेशन पैनल।
31
- - 🪄 **चार-स्रोत माइग्रेशन विज़ार्ड (0.2.1)** — एक `/move` विज़ार्ड और `move_detect` / `move_preview` / `move_run` टूल Claude Code, Codex, OpenCode और Hermes को माइग्रेट करते हैं: यादें/निर्देश प्रबंधित `AGENTS.md` अनुभाग बनते हैं, skills असली DSH skills बनते हैं, slash कमांड DSH कमांड बनते हैं और सत्र फिर से शुरू होने योग्य DSH सत्र बनते हैं — अनुमोदन द्वार, idempotent (`move.json`), विरोध diff के रूप में, अनुमान नहीं।
32
- - 🛡 **सुरक्षा सबसे पहले** — स्रोत फ़ाइलें सख़्ती से केवल-पठन, DSH लॉग append-only, सीक्रेट केवल स्थान से, अनुमति-रिकॉर्ड गिने जाते हैं पर आयात कभी नहीं होते।
33
-
34
- ## 🚀 त्वरित शुरुआत
35
-
36
- ```sh
37
- # 1. इंस्टॉल
38
- dsh plugin --profile web add -w github:PerryLink/dsh-claude-move
39
- ```
40
-
41
- 2. किसी भी DSH सत्र में एक कमांड चलाएँ:
42
-
43
- ```
44
- /claude-import-all # स्कैन → हर Claude सत्र कॉपी → रिपोर्ट
45
- ```
46
-
47
- 3. पहले से खुले वेब पृष्ठ को एक बार ताज़ा करें (पैनल में «सत्र सूची ताज़ा करें» बटन है) और किसी भी आयातित सत्र पर क्लिक करके जारी रखें। **DSH रीस्टार्ट की ज़रूरत नहीं** — देखें [आयात के बाद](#-आयात-के-बाद)।
48
-
49
- बारीक़ नियंत्रण चाहिए?
50
-
51
- ```
52
- claude_scan # सभी प्रोजेक्ट/सत्रों की संरचित अनुक्रमणिका
53
- import_claude { path: "~/.claude/projects" } # एक प्रोजेक्ट डायरेक्टरी (पुनरावर्ती)
54
- import_claude { path: "all" } # सब कुछ
55
- ```
56
-
57
- ## 🪄 चार-स्रोत माइग्रेशन विज़ार्ड
58
-
59
- ```text
60
- /move # एक-चरण विज़ार्ड: पता लगाएँ → पूर्वावलोकन → निष्पादन → रिपोर्ट (चारों स्रोत)
61
- move_detect # Claude Code / Codex / OpenCode / Hermes स्कैन करता है
62
- move_preview # प्रति-आइटम योजना: new | unchanged | changed | conflict (diff सहित) | unsupported
63
- move_run # अनुमोदन द्वार के बाद निष्पादन; समाधान: skip | overwrite | rename | merge (डिफ़ॉल्ट skip, कभी अनुमान नहीं)
64
- ```
65
-
66
- - **स्रोत** — Claude Code (`~/.claude`), Codex (`~/.codex`), OpenCode (डेटा + कॉन्फ़िग रूट), Hermes (skills/मेमोरी रूट); हर स्रोत का अपना parser और mapper है।
67
- - **मैपिंग** — यादें/निर्देश → DSH वैश्विक `AGENTS.md` में केवल-जोड़ प्रबंधित अनुभाग (हर आइटम का एक चिह्नित अनुभाग); skills → असली DSH skills (`SKILL.md` बंडल जैसे-के-तैसे कॉपी, अन्य प्रारूप परिवर्तित); slash कमांड → पंजीकृत DSH कमांड (रीस्टार्ट के बाद `move.json` से प्रॉम्प्ट फिर बनते हैं); सत्र → फिर से शुरू होने योग्य DSH सत्र (चरण 1 वाले ही आयातक)।
68
- - **Idempotent** — हर लागू योजना `$DSH_HOME/claude-move/move.json` में दर्ज होती है (`digest` / `targetDigest` / `appliedAt`); दोबारा चलाने पर अपरिवर्तित आइटम छूटते हैं और `force` फिर लागू करता है।
69
- - **अनुमोदन द्वार** — जो निष्पादन कुछ भी लिखेगा वह पहले `ctx.approval` से पूछता है; `allowed-once` के अलावा कुछ भी = शून्य लेखन।
70
-
71
- ## 🗂 क्या माइग्रेट होता है
72
-
73
- ```
74
- ~/.claude (केवल-पठन)
75
- ├─ projects/*/*.jsonl ──→ फिर-से-शुरू होने योग्य DSH सत्र, एक "claudecode" वर्कस्पेस में समूहित (डिफ़ॉल्ट)
76
- ├─ projects/*/memory/ ──→ सिस्टम-प्रॉम्प्ट का लाइव याद-खंड (हर अनुरोध पर दोबारा पढ़ा जाता है)
77
- ├─ skills/** ──→ असली DSH कौशल
78
- └─ CLAUDE.md + settings ──→ शुरुआती प्रॉम्प्ट खंड + कॉन्फ़िगरेशन सुझाव (कभी अपने-आप लागू नहीं)
79
- ```
80
-
81
- | Claude Code में | DSH में बनकर उतरता है |
82
- | --- | --- |
83
- | सत्र ट्रांसक्रिप्ट (`projects/*/*.jsonl`) | संतुलित, फिर-से-शुरू होने योग्य DSH सत्र — `user`/`assistant`/`tool`/`thinking` की पूर्ण-विश्वसनीय मैपिंग और बाधित-टूल-कॉल सुधार — एक **`claudecode` वर्कस्पेस** (डिफ़ॉल्ट `$DSH_HOME/claudecode`) या प्रति प्रोजेक्ट एक वर्कस्पेस (`workspaceMode: 'per-project'`) में समूहित |
84
- | यादें (`projects/*/memory/*.md`) | सिस्टम-प्रॉम्प्ट का लाइव संदर्भ खंड, हर अनुरोध पर दोबारा पढ़ा जाता है (`feedback > project > reference > user`) — मूल प्रोजेक्ट डायरेक्टरी `claudecode` वर्कस्पेस में भी याद रखी जाती है |
85
- | कौशल (`~/.claude/skills/**`) | असली DSH कौशल (kebab-case नाम, टकराव पर प्रत्यय, डिफ़ॉल्ट अधिकतम 30; `README.md`/`MEMORY.md` और विवरण-रहित फ़ाइलें छोड़ दी जाती हैं) |
86
- | `CLAUDE.md` (वैश्विक + प्रोजेक्ट-स्तरीय) | शुरुआती प्रॉम्प्ट खंड; प्रोजेक्ट फ़ाइल को प्राथमिकता |
87
- | `settings.json` | DSH कॉन्फ़िगरेशन सुझाव + अनमैप-योग्य कुंजियों की स्पष्ट सूची |
88
- | प्रोजेक्ट स्थिति (डायरेक्टरी, git ब्रांच व बदली फ़ाइलें) | स्कैन अनुक्रमणिका, वेब पैनल बैज और `/resume-claude` हैंडऑफ़ में दिखती है |
89
-
90
- ## 📦 इंस्टॉलेशन
91
-
92
- ```sh
93
- # GitHub से
94
- dsh plugin --profile web add -w github:PerryLink/dsh-claude-move
95
-
96
- # स्थानीय चेकआउट (विकास हेतु)
97
- dsh plugin --profile web add -w link:/path/to/dsh-claude-move
98
-
99
- # पैक किए गए tarball से
100
- dsh plugin --profile web add -w ./dsh-claude-move-0.1.0.tgz
101
- ```
102
-
103
- पैकेज शुद्ध ESM है और इसमें कोई बिल्ड चरण नहीं है, इसलिए Git से इंस्टॉल में `prepare` स्क्रिप्ट या `allowBuilds` प्रविष्टि की ज़रूरत नहीं। आधिकारिक [पैकेजिंग व इंस्टॉल गाइड](https://deepseek-harness.github.io/deepseek-harness/develop/basic/publish) देखें।
104
-
105
- ## 🛠 उपयोग
106
-
107
- प्लगइन माउंट होने पर किसी भी सत्र में टूल बुलाएँ:
108
-
109
- ```
110
- claude_scan # पूर्ण स्कैन (वृद्धिशील कैश)
111
- claude_scan { path: "~/.claude/projects/<slug>" } # आंशिक स्कैन
112
- claude_scan { refresh: true } # कैश छोड़कर पूरा दोबारा स्कैन
113
-
114
- import_claude { path: "~/.claude/projects/<slug>/<sessionId>.jsonl" } # एक सत्र
115
- import_claude { path: "~/.claude/projects" } # डायरेक्टरी (पुनरावर्ती)
116
- import_claude { path: "all" } # सब कुछ
117
- # कभी भी दोबारा चला सकते हैं: बिना बदलाव वाली फ़ाइलें छूट जाती हैं, बढ़ी हुई ट्रांसक्रिप्ट में सिर्फ़ नए टर्न जुड़ते हैं।
118
- import_claude { path: "...", force: true } # import-<src>-<n> के रूप में नई पूरी कॉपी (पुरानी कॉपी सुरक्षित)
119
- ```
120
-
121
- कमांड (उपयोगकर्ता-ट्रिगर, कोई मॉडल टर्न नहीं):
122
-
123
- ```
124
- /claude-import-all # एक चरण: स्कैन → सब आयात → रिपोर्ट → वर्तमान सत्र में इंजेक्ट
125
- /resume-claude latest # सबसे हालिया Claude सत्र जारी करें
126
- /resume-claude <sessionId> # स्रोत सत्र id या import-<src> id से
127
- /resume-claude <कीवर्ड> # शीर्षकों से मिलान; कई मिलान सूचीबद्ध होते हैं, अंदाज़ा कभी नहीं
128
- /claude-move-reset # प्लगइन कैश रीसेट करें (बुकमार्क + आयात मैप); आयातित सत्र सुरक्षित रहते हैं
129
- ```
130
-
131
- वेब पैनल: नीचे-दाएँ तैरता **🐳 Claude 迁移** बटन पैनल खोलता है — प्रोजेक्ट/सत्र ट्री (स्थिति बैज: आयात नहीं / आयातित / आयातित-नए-टर्न / स्रोत अनुपलब्ध / डायरेक्टरी मौजूद नहीं / git गंदा), कीवर्ड फ़िल्टर, पृष्ठांकन, प्रति-सत्र «आयात करें और जारी रखें» + «सत्र खोलें» + «सत्र सूची ताज़ा करें», रद्द करने की सुविधा के साथ बैच आयात प्रोग्रेस बार, और कैश-रीसेट बटन। पाठ ब्राउज़र भाषा के अनुसार zh/en होते हैं। डेटा प्लगइन की अपनी `/api/claude-move/*` JSON रूट्स से आता है (सार्वजनिक `ctx.webServer` seam)।
132
-
133
- - **स्कैन** एक संरचित JSON अनुक्रमणिका लौटाता है: प्रोजेक्ट (slug/cwd/डायरेक्टरी की मौजूदगी/git ब्रांच व बदली फ़ाइलें), सत्र (शीर्षक/समय/गिनतियाँ/ख़राब पंक्तियाँ), यादें, कौशल, वैश्विक CLAUDE.md व settings.json; हर सत्र में `import.status` (`none`/`imported`/`source-missing`) और नए अनसिंक टर्न होने पर `import.updatesPending` होता है। `settingsSuggestions` में settings.json का DSH अनुवाद और अनमैप-योग्य कुंजियाँ होती हैं (देखें [COMPLIANCE.md](COMPLIANCE.md))।
134
- - **आयात** user/assistant/tool/thinking संदेशों को पूरी विश्वसनीयता से मैप करता है; बाधित टूल कॉल सुधारे जाते हैं (हर `tool_use` का ठीक एक परिणाम), और परिणाम एक संतुलित, फिर-से-शुरू होने योग्य सत्र होता है जो डिफ़ॉल्ट रूप से `claudecode` वर्कस्पेस से (या `workspaceMode: 'per-project'` में अपने प्रोजेक्ट वर्कस्पेस से) जुड़ा होता है। बैच फ़ाइल-दर-फ़ाइल सारांश देता है (`imported`/`appended`/`already-imported`/`skipped`/`failed`), ख़राब पंक्तियाँ पंक्ति-संख्या के साथ आती हैं, संदिग्ध सीक्रेट केवल स्थान से बताए जाते हैं (फ़ाइल:पंक्ति:प्रकार) और अनुमति-श्रेणी रिकॉर्ड गिने जाते हैं, आयात कभी नहीं होते। आयात कभी कुछ हटाता या दोबारा लिखता नहीं: DSH के मौजूदा सत्र अछूते रहते हैं, पहले से आयातित कॉपियाँ सुरक्षित रहती हैं, और Claude की स्रोत फ़ाइलें कभी लिखी नहीं जातीं।
135
- - **व्यक्तिगत संदर्भ अपने आप लागू होता है** (कोई आयात क्रिया ज़रूरी नहीं):
136
- - यादें: `projects/*/memory/*.md` गतिशील खंड के रूप में इंजेक्ट होते हैं, हर अनुरोध पर दोबारा पढ़े जाते हैं (नई यादें तुरंत लागू), क्रम `feedback > project > reference > user`, डिफ़ॉल्ट सीमा 8 KiB। `memoryScope: current-project` (डिफ़ॉल्ट) पर केवल वर्तमान सत्र के प्रोजेक्ट की यादें इंजेक्ट होती हैं (cwd का कोई मेल न होने पर सभी प्रोजेक्ट पर वापसी); `all` सब कुछ इंजेक्ट करता है, वर्तमान प्रोजेक्ट पहले। `claudecode` वर्कस्पेस में प्लगइन मूल प्रोजेक्ट को दर्ज `sourceCwd` से हल करता है।
137
- - कौशल: `~/.claude/skills/**/SKILL.md` (साथ में सपाट `*.md`) और वर्तमान प्रोजेक्ट का `.claude/skills/**` DSH कौशल बन जाते हैं (नाम kebab-case में, टकराव पर प्रत्यय, अधिकतम 30; `README.md`/`MEMORY.md` और विवरण-रहित फ़ाइलें छोड़ दी जाती हैं ताकि कौशल लोडिंग कभी न टूटे); कैटलॉग और `skill` टूल DSH का काम है।
138
- - निर्देश: वैश्विक `~/.claude/CLAUDE.md` और वर्तमान सत्र का `.claude/CLAUDE.md` शुरुआती खंड के रूप में इंजेक्ट होते हैं (प्रोजेक्ट को प्राथमिकता; `claudecode` वर्कस्पेस में `sourceCwd` से हल)।
139
-
140
- ## ✅ आयात के बाद
141
-
142
- **DSH को दोबारा शुरू (restart) करने की ज़रूरत नहीं है।** आयात पूरा होते ही सार्वजनिक `sessionPersistence` सेवा के ज़रिए स्थायी रूप से लिख दिया जाता है:
143
-
144
- - सर्वर-साइड सूचियाँ (`session.list` / `workspace.list` RPC, CLI, कोई भी नया खुला पृष्ठ) आयातित सत्रों को **`claudecode` वर्कस्पेस** (एक प्रति प्रोजेक्ट, `workspaceMode: 'per-project'` से) के अंतर्गत तुरंत दिखाती हैं।
145
- - पैनल पहले से खुले पृष्ठ की सत्र सूची स्वयं ताज़ा करता है (shell के `sessions`/`workspaces` क्लाइंट सेवाएँ, क्षमता-जाँच से) और हर आयातित सत्र के लिए «सत्र खोलें» बटन देता है; इन सेवाओं के बिना पुराने shells में «सत्र सूची ताज़ा करें» बटन / पृष्ठ रीलोड पर वापसी होती है — आयात सीधे पर्सिस्टेंस सेवा में cold सत्र लिखता है, इसलिए लाइव `host/session-added` फ़्रेम नहीं जाता; वर्कस्पेस समूह लाइव अपडेट होते हैं (`host/workspace-changed`)।
146
- - आयातित सत्र तुरंत खोले, पढ़े और जारी किए जा सकते हैं — `/resume-claude`, या सूची में सत्र पर क्लिक करें। हैंडऑफ़ मूल प्रोजेक्ट डायरेक्टरी बताता है। कभी भी दोबारा आयात चलाने पर केवल नए टर्न उन्हीं सत्रों में जुड़ते हैं।
147
-
148
- ## ⚙️ कॉन्फ़िगरेशन
149
-
150
- सब वैकल्पिक, `cordis.yml` में बदले जा सकते हैं:
151
-
152
- ```yaml
153
- - id: claude-move
154
- name: dsh-claude-move
155
- config:
156
- claudeHome: null # डिफ़ॉल्ट: $CLAUDE_CONFIG_DIR या ~/.claude
157
- workspaceMode: claudecode # 'claudecode' (डिफ़ॉल्ट: सभी आयातों के लिए एक समर्पित वर्कस्पेस) | 'per-project' (प्रति स्रोत cwd एक वर्कस्पेस)
158
- claudecodeDir: null # claudecode वर्कस्पेस फ़ोल्डर; डिफ़ॉल्ट $DSH_HOME/claudecode (प्लगइन केवल यही फ़ोल्डर बनाता है)
159
- scanGit: true # git जाँच स्तर: true पूर्ण | 'branch' शून्य सबप्रोसेस | false
160
- gitTimeoutMs: 5000 # git सबप्रोसेस समय-सीमा
161
- scanConcurrency: 8 # प्रोजेक्ट स्कैन समानांतर सीमा
162
- maxTranscriptBytes: 67108864
163
- excludeProjects: [] # छोड़ने के लिए slug सबस्ट्रिंग, जैसे ['demo-']
164
- enableMemory: true
165
- memoryMaxBytes: 8192
166
- memoryScope: current-project # 'current-project' केवल वर्तमान प्रोजेक्ट | 'all' सब, वर्तमान पहले
167
- enableSkills: true
168
- maxSkills: 30
169
- extraSkillDirs: []
170
- enableInstructions: true
171
- resumeMaxChars: 2048 # हैंडऑफ़ सारांश की अक्षर-सीमा
172
- resumeMode: inject # 'inject' हैंडऑफ़ सारांश | 'agents' ctx.agents.resume
173
- enableWebPanel: true # /api/claude-move/* पैनल रूट्स पंजीकृत करें
174
- importConcurrency: 4 # प्रति बैच पढ़ना+रूपांतरण समानांतर सीमा (सहेजना क्रमिक रहता है)
175
- # चार-स्रोत विज़ार्ड (0.2.1+):
176
- requireApproval: true # विज़ार्ड लेखन पहले ctx.approval से पूछता है (केवल allowed-once)
177
- codexHome: null # डिफ़ॉल्ट: $CODEX_HOME या ~/.codex
178
- opencodeDataHome: null # डिफ़ॉल्ट: प्लेटफ़ॉर्म XDG डेटा निर्देशिका/opencode
179
- opencodeConfigHome: null # डिफ़ॉल्ट: प्लेटफ़ॉर्म XDG कॉन्फ़िग निर्देशिका/opencode
180
- hermesHome: null # डिफ़ॉल्ट: $HERMES_HOME या ~/.hermes
181
- skillsDir: null # विज़ार्ड skills लक्ष्य; डिफ़ॉल्ट $DSH_HOME/skills
182
- agentsMdPath: null # विज़ार्ड यादें/निर्देश लक्ष्य; डिफ़ॉल्ट $DSH_HOME/AGENTS.md
183
- moveWorkspaceMode: per-source # 'per-source' | 'single' वर्कस्पेस समूहन
184
- ```
185
-
186
- ## 🗑 अनइंस्टॉल
187
-
188
- प्रोफ़ाइल के bundles से `claude-move` पंक्ति हटाएँ और `dsh` रीस्टार्ट करें। आयातित सत्र DSH के डेटा डायरेक्टरी में बने रहते हैं; प्लगइन केवल अपना कैश (`$DSH_HOME/claude-move/`) और `claudecode` वर्कस्पेस फ़ोल्डर लिखता है, और Claude के स्रोत डेटा को कभी नहीं छूता।
189
-
190
- ## 🧭 संगतता
191
-
192
- - लक्ष्य `dsh 0.1.0-rc.6` (वेब प्रोफ़ाइल); peer निर्भरताएँ `0.1.0-rc.6` पर पिन। Node `^22.19 || >=24`।
193
- - अंतिम सत्यापन **2026-08-13** विंडोज़ (Node 22) पर `@deepseek-ai/dsh@0.1.0-rc.6` के विरुद्ध: tarball से शून्य-से इंस्टॉल, वास्तविक स्कैन (40 प्रोजेक्ट / 2387 सत्र), वास्तविक बैच आयात 13/13 + आइडेम्पोटेंट पुनः-आयात 13/13, वर्कस्पेस जुड़ाव व पर्सिस्टेंस आर्टिफ़ैक्ट पुष्ट। macOS/Linux अब CI मैट्रिक्स (linux/macos/windows × Node 22) से आच्छादित।
194
- - **2026-08-14** को वर्तमान `deepseek-harness` चेकआउट (वेब प्रोफ़ाइल, JSONL+zstd सत्र बैकएंड, वास्तविक वर्कस्पेस रजिस्ट्री) के विरुद्ध पृथक home में सत्यापित: प्लगइन माउंट कर पूरा वेब बूट, पैनल रूट्स से स्कैन + पूर्ण आयात, `claudecode` वर्कस्पेस निर्माण व सत्र जुड़ाव, मौजूदा आयातित सत्र में वृद्धिशील जुड़ाव (seq निरंतर, साफ़ लोड), रीस्टार्ट-सुरक्षित पुनः-आयात, और पूरी प्रक्रिया में पहले से मौजूद DSH सत्र अछूते। कोई सत्र कभी आर्काइव, हटाया या दोबारा लिखा नहीं जाता।
195
-
196
- ### संगतता मैट्रिक्स (केवल सार्वजनिक seams)
197
-
198
- | सतह | उपयोग | अनुपस्थिति पर वापसी |
199
- | --- | --- | --- |
200
- | host सेवाएँ (`tools` / `sessionPersistence` / `workspaceRegistry` / `commands` / `systemPrompt` / `skills` / `webServer`) | सूचीबद्ध जगह उपयोग | वैकल्पिक सेवाएँ `internal/service` से प्रतिक्रियाशील रूप से पंजीकृत होती हैं; `fs` अनुपस्थिति ज़ोर से विफल |
201
- | `sessionPersistence.listSnapshots` / `readFrom`, `fs.streamText`, `ctx.jobs`, `ctx.agents.resume` | क्षमता-जाँच | `list()` / पूर्ण पठन + ज़ोर से अस्वीकार / अपनी job तालिका / सारांश इंजेक्शन |
202
- | shell क्लाइंट सेवाएँ (`sessions.refresh/open`, `workspaces.refresh`) | पैनल apply पर क्षमता-जाँच | पूर्ण पृष्ठ रीलोड |
203
- | नई प्लेटफ़ॉर्म क्षमताएँ कभी कठोर आवश्यकता नहीं — प्लगइन rc.6 पर हमेशा बूट होता है। | | |
204
-
205
- ## 🔐 अनुमतियाँ और डेटा
206
-
207
- - **पढ़ता है** `~/.claude` (ट्रांसक्रिप्ट, यादें, कौशल, CLAUDE.md, settings.json) — सख़्ती से केवल-पठन — और वे प्रोजेक्ट डायरेक्टरी जिनमें आयात करता है (`per-project` मोड में वर्कस्पेस जुड़ाव)।
208
- - **लिखता है** DSH सत्र लॉग सार्वजनिक `sessionPersistence` सेवा के ज़रिए — केवल create + append, मौजूदा सत्र कभी हटाता/दोबारा लिखता/आर्काइव नहीं करता — वर्कस्पेस रजिस्ट्री रिकॉर्ड, अपना कैश `$DSH_HOME/claude-move/` (स्कैन बुकमार्क + आयात मैप), और `claudecode` वर्कस्पेस फ़ोल्डर (`$DSH_HOME/claudecode` डिफ़ॉल्ट; साधारण `mkdir`, कभी कोई विलोपन नहीं)।
209
- - **कभी नहीं** Claude की स्रोत फ़ाइलें बदलता, अन्य एप्लिकेशन का डेटा छूता, या नेटवर्क एक्सेस करता।
210
- - **कोई क्रेडेंशियल** पढ़ा या भेजा नहीं जाता; ट्रांसक्रिप्ट में संदिग्ध सीक्रेट केवल स्थान से बताए जाते हैं।
211
-
212
- ## 🛡 सुरक्षा सीमाएँ
213
-
214
- - स्रोत फ़ाइलें सख़्ती से केवल-पठन; DSH सत्र लॉग append-only (केवल `create` + `append`)।
215
- - बाहरी ट्रांसक्रिप्ट अविश्वसनीय इनपुट हैं: उनमें कुछ भी निष्पादित नहीं होता; system/developer/thinking सामग्री हैंडऑफ़ सारांश में कभी नहीं जाती।
216
- - DSH इंजन, आधिकारिक UI पैकेज या apiproxy में कोई बदलाव नहीं — केवल सार्वजनिक सेवाएँ (`sessionPersistence` / `workspaceRegistry` / `tools` / `commands` / `systemPrompt` / `skills` / `webServer`)।
217
- - संदिग्ध सीक्रेट केवल स्थान से बताए जाते हैं (सामग्री कभी नहीं); `permission`/`permission-mode`/`queue-operation` रिकॉर्ड गिने जाते हैं, आयात नहीं होते।
218
-
219
- ## 🩺 समस्या-निवारण
220
-
221
- - पंक्ति असर नहीं दिखा रही: `dsh --profile <p> --dump-config` में `# == dsh-claude-move` छपना चाहिए; `dsh plugin --profile <p> add -w ...` दोबारा चलाएँ।
222
- - वेब बूट होकर चुपचाप लटक जाए: `dsh plugin add` से बने नए प्रोफ़ाइल में सिर्फ़ `dsh-base` होता है — `dsh.profile.bundles` में `@deepseek-ai/dsh-web-app` जोड़ें (मौजूदा `web` प्रोफ़ाइल में इंस्टॉल करने पर कुछ नहीं चाहिए)।
223
- - पैनल रूट्स 404: वे केवल तब चलती हैं जब `enableWebPanel: true` और कोई वेब सर्वर कम्पोज़ हो; बूट लॉग में FAILED फ़ाइबर देखें।
224
- - आयात में "transcript 过大" विफलता: `maxTranscriptBytes` बढ़ाएँ या वह फ़ाइल अलग से आयात करें।
225
- - आयात सफल पर साइडबार में नया सत्र नहीं दिखा: पृष्ठ पहले से खुला था — पैनल का «सत्र सूची ताज़ा करें» एक बार दबाएँ (या पृष्ठ रीलोड करें)। DSH रीस्टार्ट कभी ज़रूरी नहीं।
226
- - लॉग: बूट विफलताएँ `dsh` कंसोल पर छपती हैं; प्लगइन वर्कस्पेस/आयात-मैप समस्याओं के लिए `[claude-move]` उपसर्ग से त्रुटियाँ लॉग करता है।
227
-
228
- ## 📚 दस्तावेज़
229
-
230
- - [PLAN.md](PLAN.md) — शोध निष्कर्ष और कार्यान्वयन योजना।
231
- - [ARCHITECTURE.md](ARCHITECTURE.md) — आर्किटेक्चर आरेख और पूर्ण डेटा-मैपिंग तालिका।
232
- - [COMPLIANCE.md](COMPLIANCE.md) — आधिकारिक प्लगइन प्रतिबंधों के विरुद्ध खंड-दर-खंड ऑडिट (deepseek-harness repo व docs, [deepseek.com/harness](https://www.deepseek.com/harness/), [डेवलपर दस्तावेज़](https://deepseek-harness.github.io/deepseek-harness/develop/basic/), [Cordis](https://github.com/cordiverse/cordis) व [Cordis पेपर](https://github.com/cordiverse/paper))।
233
- - [OPTIMIZATION.md](OPTIMIZATION.md) — मापी गई आधार-रेखाएँ और क्रमबद्ध अनुकूलन उम्मीदवार।
234
- - [RELEASE.md](RELEASE.md) — स्वीकृति प्रमाण के साथ रिलीज़ चेकलिस्ट।
235
- - [CHANGELOG.md](CHANGELOG.md) — हर संस्करण में क्या बदला।
236
-
237
- ## 🙏 एट्रिब्यूशन (ओपन-सोर्स घटक)
238
-
239
- यह प्रोजेक्ट Apache License 2.0 के अंतर्गत है; निम्न MIT-लाइसेंस प्राप्त घटक अपने लाइसेंस बनाए रखते हैं (पूरा पाठ [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) में):
240
-
241
- - रूपांतरण कोर [Nwflower/dsh-chat-import](https://github.com/Nwflower/dsh-chat-import) (MIT) से vendored।
242
- - खोज परिपाटियाँ व सुरक्षा मॉडल [Demogorgon314/dsh-resume-plugin](https://github.com/Demogorgon314/dsh-resume-plugin) (MIT; इसका `session_reader.py` Apache-2.0 मूल का है — देखें [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)) से।
243
- - memory/skills इंजेक्शन व frontmatter पार्सिंग पैटर्न [YYTbit/dsh-plugin-claude-bridge](https://github.com/YYTbit/dsh-plugin-claude-bridge) (MIT) से।
244
-
245
- ## 🧑‍💻 विकास
246
-
247
- ```sh
248
- npm install # peer deps: @deepseek-ai/cordis, @deepseek-ai/dsh-tools@0.1.0-rc.6, @deepseek-ai/schemastery
249
- npm test # node --test: convert (vendored + विस्तारित), discovery, import/report, context, settings
250
- ```
251
-
252
- CI GitHub Actions ([test.yml](.github/workflows/test.yml)) के ज़रिए Node 22 पर पूरी सुइट चलाता है।
253
-
254
- ## 🧠 Model Experience
255
-
256
- - मॉडल-दृश्य सतह दो टूल्स की description/schema और उनके आउटपुट हैं: `claude_scan` संरचित अनुक्रमणिका लौटाता है, `import_claude` चेतावनी-स्थानों सहित फ़ाइल-दर-फ़ाइल सारांश लौटाता है। टूल परिणाम स्वयं लॉग किए गए `tool/result` इवेंट होते हैं, इसलिए सब कुछ पुनर्निर्माण-योग्य है।
257
- - कोई छिपा मॉडल-दृश्य पाठ नहीं; memory/CLAUDE.md खंड `ctx.systemPrompt` पर पंजीकृत हैं (प्रॉम्प्ट असेंबली, सत्र लॉग से पुनर्निर्माण-योग्य)।
258
-
259
- ## ⚠️ ज्ञात सीमाएँ
260
-
261
- - शीर्षक `custom-title`/`ai-title`/पहले प्रश्न से आते हैं; Claude के `summary` रिकॉर्ड शीर्षक नहीं बनते।
262
- - `thinking` ब्लॉक आयातित लॉग में `reasoning` सामग्री के रूप में रहते हैं, पर हैंडऑफ़ सारांश में कभी नहीं जाते।
263
- - बाधित टूल कॉल एक संश्लेषित त्रुटि परिणाम से सुधारे जाते हैं (कभी गिराए नहीं जाते), इसलिए बीच-टर्न रुकावट वाले सत्र फिर-से-शुरू होने योग्य रहते हैं — आयात परिणाम में `repaired.synthesized` के रूप में रिपोर्ट होता है।
264
- - अनुमति-श्रेणी रिकॉर्ड गिने जाते हैं, आयात नहीं होते; DSH अनुमति-प्रीसेट सुझाव रिपोर्ट में बनते हैं।
265
- - Claude के `summary` रिकॉर्ड (संदर्भ संपीड़न) केवल रिपोर्ट होते हैं, DSH compaction नोड्स में मैप नहीं होते (कारण OPTIMIZATION.md में); पूरा इतिहास मूल टर्न के रूप में आयात होता है।
266
- - `fs.streamText` सतह वाले host पर `maxTranscriptBytes` से बड़ी ट्रांसक्रिप्ट स्वतः स्ट्रीमिंग खंडों में आयात होती हैं (मेमोरी O(खंड)); बिना उस सतह के वे आंशिक आयात की बजाय ज़ोर से विफल होती हैं।
267
- - `workspaceMode: 'per-project'` में, जिन सत्रों की स्रोत डायरेक्टरी हट चुकी है वे फिर भी आयात होते हैं, पर वर्कस्पेस जुड़ाव विफल रहता है (बिना समूह; रिपोर्ट में `workspace.attached: false` + `reason`)। डिफ़ॉल्ट `claudecode` वर्कस्पेस स्रोत डायरेक्टरी पर निर्भर नहीं करता, इसलिए ऐसे सत्र वहाँ सामान्य रूप से जुड़ते हैं।
268
- - बाधित बैच आयात सुरक्षित रूप से दोबारा चलाए जा सकते हैं (आइडेम्पोटेंट, append-only): पूरी फ़ाइलें छूट जाती हैं, बढ़ी हुई फ़ाइलें सिर्फ़ नए टर्न जोड़ती हैं।
269
- - यदि कोई ट्रांसक्रिप्ट अपनी जगह कटी/रीसेट हुई (दर्ज आयात से कम टर्न), पुनः-आयात उसे छोड़कर `sourceShrunk` बताता है; नई पूरी कॉपी के लिए `force: true`।
270
- - वेब पैनल शून्य-बिल्ड तैरता पैनल है, प्लगइन की अपनी JSON रूट्स से चलता है; shell के आंतरिक UI स्लॉट सिस्टम का उपयोग नहीं करता (rc.6 के अनडॉक्यूमेंटेड internals से स्वतंत्र)।
271
- - स्ट्रीमिंग वृद्धिशील जुड़ाव में एक बार के `messages`/`toolCalls` केवल नए जुड़े ईवेंट गिनते हैं (संग्रहीत उपसर्ग दोबारा नहीं पढ़ा जाता); `turns` पूर्ण गिनती रहती है।
272
-
273
- ## 🤝 योगदान और प्रतिक्रिया
274
-
275
- Issue और pull request स्वागत योग्य हैं — दिए गए टेम्पलेट उपयोग करें ([बग रिपोर्ट](.github/ISSUE_TEMPLATE/bug-report.yml), [फ़ीचर अनुरोध](.github/ISSUE_TEMPLATE/feature-request.yml))। प्रश्न और चर्चा रेपो की [GitHub Discussions](https://github.com/PerryLink/dsh-claude-move/discussions) में होती हैं। सुरक्षा समस्याएँ निजी तौर पर GitHub Security Advisories (रेपो Settings → Security; देखें [SECURITY.md](SECURITY.md)) से रिपोर्ट करें।
276
-
277
- ## 💛 योगदानकर्ता
278
-
279
- इस प्लगइन को बेहतर बनाने में मदद करने वाले सभी लोगों का धन्यवाद:
280
-
281
- - [OLDnana1](https://github.com/OLDnana1) — बाधित टूल-कॉल के कारण आयातित सत्रों के रिज़्यूम पर स्थायी HTTP 400 आने की समस्या का मूल-कारण विश्लेषण ([#1](https://github.com/PerryLink/dsh-claude-move/issues/1)); v0.2.0 में ठीक किया गया।
282
- - [GooodWei](https://github.com/GooodWei) — पहचाना कि `README.md` (और बिना विवरण वाली कोई भी `.md`) गलती से skill के रूप में पंजीकृत हो जाती थी, जिससे DSH की पूरी skill लोडिंग टूट जाती थी ([#1](https://github.com/PerryLink/dsh-claude-move/issues/1)); v0.2.0 में ठीक किया गया।
283
- - इस प्लगइन द्वारा पुन: उपयोग किए गए MIT अपस्ट्रीम प्रोजेक्ट्स का श्रेय [एट्रिब्यूशन](#-attribution-open-source-components) और [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) में दिया गया है।
284
-
285
- ## 🔗 संबंधित लिंक
286
-
287
- - DeepSeek Harness: [रेपो](https://github.com/deepseek-ai/deepseek-harness) · [साइट](https://www.deepseek.com/harness/) · [डेवलपर दस्तावेज़](https://deepseek-harness.github.io/deepseek-harness/develop/basic/)
288
- - प्लगइन पारिस्थितिकी: [`dsh` टॉपिक](https://github.com/topics/dsh) · [`dsh-plugin` टॉपिक](https://github.com/topics/dsh-plugin) · [Discord](https://discord.gg/Ycq5dCaS4)
289
-
290
- ## 📄 लाइसेंस
291
-
292
- Apache License 2.0 — देखें [LICENSE](LICENSE) और [NOTICE](NOTICE)। तृतीय-पक्ष सूचनाएँ (MIT घटकों का MIT मूल पाठ सहित) [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) में।
1
+ <div align="center">
2
+
3
+ # 🚚 dsh-claude-move
4
+
5
+ **Claude Code, Codex, OpenCode और Hermes को DeepSeek Harness में माइग्रेट करें — सत्र, यादें, कौशल, निर्देश और स्लैश कमांड को फिर-से-शुरू होने योग्य DSH सत्रों के रूप में कॉपी करें, केवल-कॉपी और अनुमोदन-गेटेड।**
6
+
7
+ *स्थानांतरित होते समय अपना Claude Code इतिहास बनाए रखें: एक ही इंस्टॉल, फिर-से-शुरू सत्र, चालू Claude Code के साथ लाइव तालमेल, और एक चार-स्रोत माइग्रेशन विज़ार्ड।*
8
+
9
+ [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
10
+ [![DSH plugin](https://img.shields.io/badge/dsh-plugin-✅-green)](https://github.com/topics/dsh-plugin)
11
+ [![Node](https://img.shields.io/badge/node-%5E22.19%20%7C%7C%20%3E%3D24-brightgreen.svg)](#)
12
+ [![CI](https://img.shields.io/github/actions/workflow/status/PerryLink/dsh-claude-move/test.yml?branch=master&label=CI)](https://github.com/PerryLink/dsh-claude-move/actions)
13
+ [![Version](https://img.shields.io/github/v/tag/PerryLink/dsh-claude-move?label=version)](https://github.com/PerryLink/dsh-claude-move/releases)
14
+ [![npm version](https://img.shields.io/npm/v/dsh-claude-move)](https://www.npmjs.com/package/dsh-claude-move)
15
+ [![npm downloads](https://img.shields.io/npm/dm/dsh-claude-move)](https://www.npmjs.com/package/dsh-claude-move)
16
+
17
+ [English](README.md) · [简体中文](README.zh.md) · [Español](README.es.md) · [Português](README.pt.md) · [हिन्दी](README.hi.md)
18
+
19
+ </div>
20
+
21
+ ---
22
+
23
+ ## अनुकूलता
24
+
25
+ - `dsh 0.1.0-rc.6` (web profile) को लक्षित करता है; peer निर्भरताएँ `0.1.0-rc.6` पर पिन हैं। Node `^22.19 || >=24`।
26
+ - अंतिम बार एक ताज़ा tarball इंस्टॉल के विरुद्ध सत्यापित: वास्तविक स्कैन, वास्तविक बैच आयात (आइडेम्पोटेंट पुनः-आयात), workspace जुड़ाव और पर्सिस्टेंस आर्टिफैक्ट की पुष्टि; macOS/Linux CI मैट्रिक्स द्वारा कवर हैं।
27
+
28
+ ### अनुकूलता मैट्रिक्स (केवल सार्वजनिक सीम)
29
+
30
+ | सतह | उपयोग | अनुपस्थित होने पर फ़ॉलबैक |
31
+ |---|---|---|
32
+ | Host सेवाएँ (`tools` / `sessionPersistence` / `workspaceRegistry` / `commands` / `systemPrompt` / `skills` / `webServer`) | जहाँ सूचीबद्ध वहाँ आवश्यक | वैकल्पिक सेवाएँ प्रतिक्रियात्मक रूप से पंजीकृत होती हैं; `fs` अनुपस्थित होने पर ज़ोर से विफल |
33
+ | `sessionPersistence.listSnapshots` / `readFrom` / `streamText`-सक्षम `fs` / `ctx.jobs` / `ctx.agents.resume` | फ़ीचर-डिटेक्टेड | `list()` / पूरी फ़ाइल पढ़ना और ज़ोर से अस्वीकार / स्वयं का job map / हैंडऑफ़ इंजेक्ट |
34
+ | Client shell सेवाएँ (`sessions.refresh/open`, `workspaces.refresh`) | पैनल apply पर फ़ीचर-डिटेक्टेड | पूर्ण-पृष्ठ रीलोड |
35
+ | नई प्लेटफ़ॉर्म क्षमताएँ कभी कठोर आवश्यकताएँ नहीं होतीं — प्लगइन rc.6 पर बूट होने योग्य रहता है। | | |
36
+
37
+ ## आपको क्या मिलता है
38
+
39
+ 1. **स्वतः-खोज** — `claude_scan` Claude डेटा रूट (`$CLAUDE_CONFIG_DIR`, फ़ॉलबैक `~/.claude`) खोजता है और हर प्रोजेक्ट/सत्र, याद, कौशल, वैश्विक `CLAUDE.md` और `settings.json` को इंडेक्स करता है, वृद्धिशील कैश और समानांतर स्कैनिंग (`scanConcurrency`) के साथ।
40
+ 2. **पूर्ण-निष्ठा आयात** — `import_claude` ट्रांसक्रिप्ट को संतुलित, फिर-से-शुरू होने योग्य DSH सत्रों में बदलता है (`turn/start → step/start → user/message → assistant/message → tool/call → tool/result → step/end → turn/end`), बाधित टूल कॉल की मरम्मत करता है, और `maxTranscriptBytes` से बड़ी ट्रांसक्रिप्ट को खंडों में स्ट्रीम-आयात करता है।
41
+ 3. **एक `claudecode` workspace** — हर आयातित सत्र एक समर्पित workspace में जाता है (डिफ़ॉल्ट `$DSH_HOME/claudecode`); `workspaceMode: 'per-project'` प्रति-प्रोजेक्ट एक-workspace समूहन बहाल करता है।
42
+ 4. **केवल-कॉपी और वृद्धिशील** — किसी भी तरफ कुछ भी स्थानांतरित, दोबारा लिखा या हटाया नहीं जाता; फिर चलाने पर केवल नए टर्न जोड़े जाते हैं (`force: true` एक नए id के तहत अतिरिक्त पूरी कॉपी सहेजता है)।
43
+ 5. **व्यक्तिगत संदर्भ, हमेशा ताज़ा** — यादें लाइव प्रॉम्प्ट अनुभाग के रूप में इंजेक्ट होती हैं, Claude कौशल वास्तविक DSH कौशल के रूप में पंजीकृत होते हैं (वैश्विक + प्रोजेक्ट-स्तर), वैश्विक + प्रोजेक्ट `CLAUDE.md` जल्दी इंजेक्ट होता है।
44
+ 6. **चार-स्रोत माइग्रेशन विज़ार्ड** — `/move` और `move_detect` / `move_preview` / `move_run` Claude Code, Codex, OpenCode और Hermes को माइग्रेट करते हैं, अनुमोदन-गेटेड और आइडेम्पोटेंट (`move.json`)।
45
+ 7. **वेब पैनल और कमांड** — `/claude-import-all`, `/resume-claude`, `/claude-move-reset`, और एक फ़्लोटिंग माइग्रेशन पैनल।
46
+
47
+ ## चार-स्रोत माइग्रेशन विज़ार्ड
48
+
49
+ ```text
50
+ /move # एक-चरण विज़ार्ड: पता लगाएँ → पूर्वावलोकन → निष्पादन → रिपोर्ट (चारों स्रोत)
51
+ move_detect # Claude Code / Codex / OpenCode / Hermes को स्कैन करें
52
+ move_preview # प्रति-आइटम योजना: new | unchanged | changed | conflict (diff सहित) | unsupported
53
+ move_run # अनुमोदन गेट के पीछे निष्पादित करें; विरोध समाधान:
54
+ # skip | overwrite | rename | merge (डिफ़ॉल्ट skip — कभी अनुमान नहीं लगाता)
55
+ ```
56
+
57
+ - **स्रोत** — Claude Code (`~/.claude`), Codex (`~/.codex`), OpenCode (डेटा + config रूट), Hermes (कौशल/याद रूट); हर स्रोत का अपना parser + mapper है।
58
+ - **मैपिंग** — यादें/निर्देश → DSH वैश्विक `AGENTS.md` में केवल-जोड़ने योग्य प्रबंधित अनुभाग (प्रति आइटम एक चिह्नित अनुभाग); कौशल → वास्तविक DSH कौशल (`SKILL.md` बंडल ज्यों-का-त्यों कॉपी, अन्य प्रारूप परिवर्तित); स्लैश कमांड → पंजीकृत DSH कमांड (पुनः प्रारंभ के बाद `move.json` से पुनर्निर्मित); सत्र → फिर-से-शुरू DSH सत्र (चरण 1 के समान आयातक)।
59
+ - **आइडेम्पोटेंट** — हर लागू योजना `$DSH_HOME/claude-move/move.json` में दर्ज होती है (`digest` / `targetDigest` / `appliedAt`); पुनः चलाने पर अपरिवर्तित आइटम छोड़ दिए जाते हैं और `force` उन्हें फिर से लागू करता है।
60
+ - **अनुमोदन-गेटेड** — कोई भी रन जो कुछ लिखेगा पहले `ctx.approval` से पूछता है; `allowed-once` के अलावा कुछ भी होने पर शून्य लेखन।
61
+
62
+ ## त्वरित शुरुआत
63
+
64
+ ```sh
65
+ # 1. अपने प्रोफ़ाइल में बंडल इंस्टॉल करें
66
+ dsh plugin --profile web add "github:PerryLink/dsh-claude-move#master"
67
+
68
+ # या npm से (प्रकाशित रिलीज़)
69
+ dsh plugin --profile web add dsh-claude-move
70
+
71
+ # 2. पुनः प्रारंभ करें और पंक्ति सत्यापित करें
72
+ dsh --profile web --dump-config | grep -A4 'id: claude-move'
73
+ ```
74
+
75
+ फिर, किसी भी DSH सत्र में एक कमांड चलाएँ:
76
+
77
+ ```sh
78
+ /claude-import-all # स्कैन → हर Claude सत्र कॉपी करें → रिपोर्ट
79
+ ```
80
+
81
+ आयात के बाद DSH को पुनः प्रारंभ करने की आवश्यकता नहीं है — खुले वेब पेज को एक बार रीफ़्रेश करें और जारी रखने के लिए किसी भी आयातित सत्र पर क्लिक करें।
82
+
83
+ ## इंस्टॉल और अनइंस्टॉल
84
+
85
+ - **git चैनल** (नवीनतम `master`): `dsh plugin --profile web add "github:PerryLink/dsh-claude-move#master"` — शुद्ध ESM, कोई `prepare` या `allowBuilds` चरण नहीं।
86
+ - **npm चैनल** (प्रकाशित रिलीज़): `dsh plugin --profile web add dsh-claude-move`।
87
+ - **tarball चैनल**: इस रेपो में `npm pack`, फिर `dsh plugin --profile web add ./dsh-claude-move-<version>.tgz`।
88
+ - **अनइंस्टॉल**: प्रोफ़ाइल के bundles से `claude-move` पंक्ति हटाएँ और `dsh` पुनः प्रारंभ करें। आयातित सत्र DSH की डेटा निर्देशिका में बने रहते हैं; प्लगइन केवल अपना कैश (`$DSH_HOME/claude-move/`) और `claudecode` workspace फ़ोल्डर लिखता है, और Claude स्रोत डेटा को कभी नहीं छूता।
89
+
90
+ ## क्या माइग्रेट होता है
91
+
92
+ ```
93
+ ~/.claude (केवल-पढ़ने)
94
+ ├─ projects/*/*.jsonl ──→ फिर-से-शुरू DSH सत्र, एक "claudecode" workspace में समूहित (डिफ़ॉल्ट)
95
+ ├─ projects/*/memory/ ──→ लाइव system-prompt याद अनुभाग (प्रति अनुरोध फिर पढ़ा जाता है)
96
+ ├─ skills/** ──→ वास्तविक DSH कौशल
97
+ └─ CLAUDE.md + settings ──→ आरंभिक प्रॉम्प्ट अनुभाग + config सुझाव (कभी स्वतः लागू नहीं)
98
+ ```
99
+
100
+ | Claude Code में | DSH में इस रूप में पहुँचता है |
101
+ |---|---|
102
+ | सत्र ट्रांसक्रिप्ट (`projects/*/*.jsonl`) | संतुलित, फिर-से-शुरू DSH सत्र — `user`/`assistant`/`tool`/`thinking` की पूर्ण-निष्ठा मैपिंग और बाधित-टूल-कॉल मरम्मत के साथ — एक **`claudecode`** workspace में या प्रति प्रोजेक्ट एक में समूहित |
103
+ | याद फ़ाइलें (`projects/*/memory/*.md`) | एक लाइव system-prompt संदर्भ अनुभाग, हर अनुरोध पर फिर पढ़ा जाता है (`feedback > project > reference > user`) |
104
+ | कौशल (`~/.claude/skills/**`) | वास्तविक DSH कौशल (kebab-case नाम, टकराव प्रत्यय, डिफ़ॉल्ट रूप से अधिकतम 30; `README.md`/`MEMORY.md` और बिना विवरण वाली फ़ाइलें छोड़ दी जाती हैं) |
105
+ | `CLAUDE.md` (वैश्विक + प्रति-प्रोजेक्ट) | एक आरंभिक प्रॉम्प्ट अनुभाग; प्रोजेक्ट फ़ाइल प्राथमिकता पाती है |
106
+ | `settings.json` | स्पष्ट अनमैपेबल-कुंजी सूची के साथ DSH config सुझाव |
107
+ | प्रोजेक्ट स्थिति (निर्देशिका, git branch और गंदगी गिनती) | स्कैन इंडेक्स, वेब पैनल बैज और `/resume-claude` हैंडऑफ़ में दिखती है |
108
+
109
+ ## उपयोग
110
+
111
+ प्लगइन माउंट होने पर किसी भी सत्र में टूल कॉल करें:
112
+
113
+ ```
114
+ claude_scan # पूर्ण स्कैन (वृद्धिशील कैश)
115
+ claude_scan { path: "~/.claude/projects/<slug>" } # आंशिक स्कैन
116
+ claude_scan { refresh: true } # कैश छोड़ें, सब कुछ फिर स्कैन करें
117
+ claude_scan { projectsLimit: 10, sessionsLimit: 5, fields: "brief" } # आउटपुट छाँटें
118
+
119
+ import_claude { path: "~/.claude/projects/<slug>/<sessionId>.jsonl" } # एक सत्र
120
+ import_claude { path: "~/.claude/projects" } # निर्देशिका (पुनरावर्ती)
121
+ import_claude { path: "all" } # सब कुछ
122
+ # कभी भी फिर चलाएँ: अपरिवर्तित फ़ाइलें छोड़ दी जाती हैं, बढ़ी ट्रांसक्रिप्ट केवल नए टर्न जोड़ती हैं।
123
+ # maxTranscriptBytes से बड़ी फ़ाइलें खंडों में स्ट्रीम-आयात होती हैं (कोई मेमोरी सीमा नहीं)।
124
+ import_claude { path: "...", force: true } # ताज़ा पूरी कॉपी (पिछली कॉपी रखी जाती है)
125
+ ```
126
+
127
+ कमांड (उपयोगकर्ता-ट्रिगर, कोई मॉडल टर्न नहीं):
128
+
129
+ ```
130
+ /claude-import-all # एक-चरण: स्कैन → सब आयात → रिपोर्ट → वर्तमान सत्र में इंजेक्ट
131
+ /resume-claude latest # सबसे हालिया Claude सत्र जारी करें
132
+ /resume-claude <sessionId> # स्रोत सत्र id या import-<src> id से
133
+ /resume-claude <keyword> # शीर्षक मिलाएँ; कई मिलान सूचीबद्ध होते हैं, कभी अनुमान नहीं
134
+ /claude-move-reset # प्लगइन कैश रीसेट करें (बुकमार्क + आयात मैप); आयातित सत्र बने रहते हैं
135
+ ```
136
+
137
+ वेब पैनल: प्रोजेक्ट/सत्र ट्री, स्थिति बैज (आयातित नहीं / आयातित / नए-टर्न-सहित-आयातित / स्रोत अनुपस्थित / निर्देशिका अनुपस्थित / git गंदा), कीवर्ड फ़िल्टर, पृष्ठांकित रेंडरिंग, प्रति-सत्र "आयात करें और जारी रखें" + "सत्र खोलें" + "सत्र सूची रीफ़्रेश करें", लाइव प्रगति पट्टी और रद्द के साथ बैच आयात, और एक कैश-रीसेट बटन वाला फ़्लोटिंग माइग्रेशन पैनल। पाठ ब्राउज़र भाषा (zh/en) का अनुसरण करते हैं। सार्वजनिक `ctx.webServer` सीम पर प्लगइन के अपने `/api/claude-move/*` JSON मार्गों से परोसा जाता है।
138
+
139
+ ## आयात के बाद
140
+
141
+ **आपको DSH को पुनः प्रारंभ करने की आवश्यकता नहीं है।** आयात पूर्ण होते ही सार्वजनिक `sessionPersistence` सेवा के माध्यम से टिकाऊ रूप से पहुँचते हैं:
142
+
143
+ - सर्वर-साइड सूचियाँ (`session.list` / `workspace.list` RPC, CLI, कोई भी नया पृष्ठ लोड) आयातित सत्रों को **`claudecode` workspace** के अंतर्गत तुरंत दिखाती हैं।
144
+ - पैनल पहले से खुले पृष्ठ की सत्र सूची स्वयं रीफ़्रेश करता है और हर आयातित सत्र के लिए **सत्र खोलें** बटन देता है।
145
+ - आयातित सत्र तुरंत खोले, पढ़े और फिर से शुरू किए जा सकते हैं — `/resume-claude`, या सूची में सत्र पर क्लिक करें। कभी भी आयात फिर चलाने पर उन्हीं सत्रों में केवल नए टर्न समन्वयित होते हैं।
146
+
147
+ ## कॉन्फ़िगरेशन
148
+
149
+ सब वैकल्पिक, cordis.yml में ओवरराइड योग्य।
150
+
151
+ | कुंजी | डिफ़ॉल्ट | अर्थ |
152
+ |---|---|---|
153
+ | `claudeHome` | `$CLAUDE_CONFIG_DIR` या `~/.claude` | Claude डेटा रूट |
154
+ | `workspaceMode` | `claudecode` | `claudecode` (एक समर्पित workspace) · `per-project` (प्रति स्रोत cwd एक workspace) |
155
+ | `claudecodeDir` | `$DSH_HOME/claudecode` | `claudecode` workspace फ़ोल्डर (प्लगइन द्वारा बनाया जाने वाला एकमात्र फ़ोल्डर) |
156
+ | `scanGit` | `true` | git जाँच स्तर: `true` (पूर्ण) · `'branch'` (शून्य git कॉल) · `false` |
157
+ | `gitTimeoutMs` | `5000` | git उप-प्रक्रिया टाइमआउट |
158
+ | `scanConcurrency` | `8` | समानांतर प्रोजेक्ट स्कैन सीमा |
159
+ | `maxTranscriptBytes` | `67108864` | स्ट्रीम-आयात सीमा (ऊपर खंडों में) |
160
+ | `excludeProjects` | `[]` | छोड़ने के लिए slug उप-स्ट्रिंग |
161
+ | `enableMemory` | `true` | यादें लाइव प्रॉम्प्ट अनुभाग के रूप में इंजेक्ट करें |
162
+ | `memoryMaxBytes` | `8192` | याद अनुभाग सीमा |
163
+ | `memoryScope` | `current-project` | `current-project` · `all` (वर्तमान प्रोजेक्ट पहले) |
164
+ | `enableSkills` | `true` | Claude कौशल को DSH कौशल के रूप में पंजीकृत करें |
165
+ | `maxSkills` | `30` | कौशल संख्या सीमा |
166
+ | `extraSkillDirs` | `[]` | अतिरिक्त कौशल निर्देशिकाएँ |
167
+ | `enableInstructions` | `true` | वैश्विक + प्रोजेक्ट `CLAUDE.md` इंजेक्ट करें |
168
+ | `resumeMaxChars` | `2048` | हैंडऑफ़ सारांश वर्ण सीमा |
169
+ | `resumeMode` | `inject` | `inject` (हैंडऑफ़ सारांश) · `agents` (ctx.agents.resume) |
170
+ | `enableWebPanel` | `true` | `/api/claude-move/*` पैनल मार्ग पंजीकृत करें |
171
+ | `importConcurrency` | `4` | प्रति बैच समानांतर पढ़ना + रूपांतरण |
172
+ | `requireApproval` | `true` | विज़ार्ड लेखन `ctx.approval` माँगते हैं (केवल allowed-once) |
173
+ | `codexHome` | `$CODEX_HOME` या `~/.codex` | Codex डेटा रूट |
174
+ | `opencodeDataHome` | प्लेटफ़ॉर्म XDG डेटा dir/opencode | OpenCode डेटा रूट |
175
+ | `opencodeConfigHome` | प्लेटफ़ॉर्म XDG config dir/opencode | OpenCode config रूट |
176
+ | `hermesHome` | `$HERMES_HOME` या `~/.hermes` | Hermes डेटा रूट |
177
+ | `skillsDir` | `$DSH_HOME/skills` | विज़ार्ड कौशल लक्ष्य |
178
+ | `agentsMdPath` | `$DSH_HOME/AGENTS.md` | विज़ार्ड याद/निर्देश लक्ष्य |
179
+ | `moveWorkspaceMode` | `per-source` | विज़ार्ड आयात के लिए workspace समूहन: `per-source` · `single` |
180
+
181
+ ## उपकरण और सतहें
182
+
183
+ | सतह | प्रकार | नोट्स |
184
+ |---|---|---|
185
+ | `claude_scan` | टूल | प्रोजेक्ट/सत्र/याद/कौशल/सेटिंग का संरचित इंडेक्स |
186
+ | `import_claude` | टूल | एक सत्र, निर्देशिका या `all` आयात करें (वृद्धिशील; `force` से नई कॉपी) |
187
+ | `move_detect` / `move_preview` / `move_run` | टूल | चार-स्रोत विज़ार्ड: स्कैन, diff सहित प्रति-आइटम योजना, अनुमोदन के बाद निष्पादन |
188
+ | `/claude-import-all` | कमांड | स्कैन → सब आयात → रिपोर्ट |
189
+ | `/resume-claude` | कमांड | Claude सत्र जारी करें (latest, id या कीवर्ड) |
190
+ | `/claude-move-reset` | कमांड | प्लगइन कैश रीसेट करें (आयातित सत्र बने रहते हैं) |
191
+ | `/move` | कमांड | एक-चरण चार-स्रोत विज़ार्ड |
192
+ | वेब माइग्रेशन पैनल | क्लाइंट | प्रगति, रद्द, पेजिंग, सत्र खोलें वाला फ़्लोटिंग पैनल |
193
+
194
+ ## अनुमतियाँ और डेटा
195
+
196
+ - **अनुमतियाँ**: workshop मेनिफ़ेस्ट `filesystem:read` और `filesystem:write` घोषित करता है।
197
+ - **पढ़ता है** `~/.claude` (ट्रांसक्रिप्ट, यादें, कौशल, `CLAUDE.md`, `settings.json`) — सख्ती से केवल-पढ़ने — और जिन प्रोजेक्ट निर्देशिकाओं में आयात करता है।
198
+ - **लिखता है** सार्वजनिक `sessionPersistence` सेवा के माध्यम से DSH सत्र लॉग (केवल create + append, कभी हटाए/दोबारा लिखे/संग्रहीत नहीं), workspace-registry रिकॉर्ड, `$DSH_HOME/claude-move/` के अंतर्गत अपना कैश, और `claudecode` workspace फ़ोल्डर।
199
+ - **कभी नहीं** Claude स्रोत फ़ाइलों को बदलता, अन्य ऐप्स के डेटा को छूता, या नेटवर्क का उपयोग करता। **कोई** क्रेडेंशियल नहीं पढ़ा या भेजा जाता।
200
+
201
+ ## सुरक्षा सीमाएँ
202
+
203
+ - **स्रोत फ़ाइलें केवल-पढ़ने; DSH लॉग केवल-append** (केवल `create` + `append`)।
204
+ - **बाहरी ट्रांसक्रिप्ट अविश्वसनीय इनपुट हैं** — उनमें कुछ भी निष्पादित नहीं होता; system/developer/thinking सामग्री कभी रिज़्यूम हैंडऑफ़ में नहीं जाती।
205
+ - **केवल सार्वजनिक सेवाएँ** — `sessionPersistence` / `workspaceRegistry` / `tools` / `commands` / `systemPrompt` / `skills` / `webServer`; इंजन या UI में कोई बदलाव नहीं।
206
+ - **गोपनीय जानकारी केवल स्थान से सूचित** होती है (file:line:kind); `permission`/`permission-mode`/`queue-operation` रिकॉर्ड गिने जाते हैं, आयात नहीं किए जाते।
207
+ - **विज़ार्ड लेखन अनुमोदन-गेटेड** — `allowed-once` के अलावा कुछ भी होने पर शून्य लेखन।
208
+
209
+ ## ज्ञात सीमाएँ
210
+
211
+ - शीर्षक `custom-title`/`ai-title`/पहले प्रॉम्प्ट से आते हैं; Claude `summary` रिकॉर्ड सूचित होते हैं पर DSH compaction नोड में मैप नहीं होते (एक वैध compaction लेनदेन संश्लेषित करने पर उसकी seq रेंज और checkpoint संदेश गढ़ना पड़ेगा)।
212
+ - `thinking` ब्लॉक `reasoning` सामग्री के रूप में रखे जाते हैं, पर कभी रिज़्यूम हैंडऑफ़ में नहीं जाते।
213
+ - बाधित टूल कॉल सिंथेटिक त्रुटि परिणाम से मरम्मत होते हैं (कभी छोड़े नहीं जाते), `repaired.synthesized` के रूप में सूचित।
214
+ - अनुमति-वर्ग रिकॉर्ड गिने जाते हैं, आयात नहीं किए जाते; DSH अनुमति-प्रीसेट सुझाव रिपोर्ट में उत्पन्न होते हैं।
215
+ - स्ट्रीमिंग `fs.streamText` सतह के बिना होस्ट पर, `maxTranscriptBytes` से बड़ी ट्रांसक्रिप्ट आंशिक आयात के बजाय ज़ोर से विफल होती हैं।
216
+ - `workspaceMode: 'per-project'` में, जिन सत्रों की स्रोत निर्देशिका हटा दी गई थी वे फिर भी आयात होते हैं पर workspace जुड़ाव विफल रहता है (बिना समूह के छूट जाते हैं; `workspace.attached: false` और एक `reason`)। डिफ़ॉल्ट `claudecode` workspace स्रोत निर्देशिका पर निर्भर नहीं करता।
217
+ - यदि कोई ट्रांसक्रिप्ट स्थान पर ही काट दी गई या रीसेट कर दी गई (दर्ज आयात से कम टर्न), तो पुनः-आयात उसे छोड़ देता है और `sourceShrunk` सूचित करता है; ताज़ा पूरी कॉपी के लिए `force: true` का उपयोग करें।
218
+ - वेब पैनल प्लगइन के अपने JSON मार्गों से चलने वाला शून्य-बिल्ड फ़्लोटिंग पैनल है; यह shell की आंतरिक UI स्लॉट प्रणाली का उपयोग नहीं करता।
219
+
220
+ ## मॉडल अनुभव
221
+
222
+ - मॉडल के सामने की सतह दो टूल के विवरण/schema और उनके आउटपुट हैं: `claude_scan` संरचित इंडेक्स लौटाता है, `import_claude` चेतावनियों की स्थिति के साथ प्रति-फ़ाइल सारांश लौटाता है। टूल परिणाम स्वयं `tool/result` घटनाओं के रूप में लॉग होते हैं, इसलिए सब कुछ पुनर्निर्माण योग्य है।
223
+ - कोई छिपा मॉडल-सामने पाठ नहीं; याद/`CLAUDE.md` अनुभाग `ctx.systemPrompt` पर पंजीकृत होते हैं (प्रॉम्प्ट असेंबली, सत्र लॉग से पुनर्निर्माण योग्य)।
224
+
225
+ ## समस्या निवारण
226
+
227
+ - पंक्ति प्रभावी नहीं: `dsh --profile <p> --dump-config` को `# == dsh-claude-move` छापना चाहिए; `dsh plugin --profile <p> add ...` फिर चलाएँ।
228
+ - वेब बूट होता है पर चुपचाप अटक जाता है: `dsh plugin add` द्वारा आरंभ किए गए नए प्रोफ़ाइल में केवल `dsh-base` होता है — `dsh.profile.bundles` में `@deepseek-ai/dsh-web-app` जोड़ें। मौजूदा `web` प्रोफ़ाइल में इंस्टॉल करने पर कुछ भी नहीं चाहिए।
229
+ - पैनल मार्ग 404: वे केवल तभी परोसे जाते हैं जब `enableWebPanel: true` और एक वेब सर्वर संयोजित हो; बूट लॉग में FAILED fibers देखें।
230
+ - आयात "transcript 过大" के साथ विफल होता है: `maxTranscriptBytes` बढ़ाएँ या उस फ़ाइल को अलग से आयात करें।
231
+ - आयात सफल हुआ पर साइडबार कोई नया सत्र नहीं दिखाता: पृष्ठ पहले से खुला था — पैनल का रीफ़्रेश बटन एक बार क्लिक करें (या पृष्ठ फिर लोड करें)। DSH को पुनः प्रारंभ करने की कभी आवश्यकता नहीं होती।
232
+ - लॉग: बूट विफलताएँ `dsh` कंसोल में छपती हैं; प्लगइन workspace/आयात-मैप समस्याओं के लिए `[claude-move]`-उपसर्ग वाली त्रुटियाँ लॉग करता है।
233
+
234
+ ## श्रेय (ओपन-सोर्स घटक)
235
+
236
+ यह प्रोजेक्ट Apache License 2.0 के अंतर्गत लाइसेंस प्राप्त है; निम्न MIT-लाइसेंस प्राप्त घटक अपने स्वयं के लाइसेंस बनाए रखते हैं (पूरा पाठ [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) में):
237
+
238
+ - रूपांतरण कोर [Nwflower/dsh-chat-import](https://github.com/Nwflower/dsh-chat-import) से vendored (MIT)।
239
+ - खोज परंपराएँ और सुरक्षा मॉडल [Demogorgon314/dsh-resume-plugin](https://github.com/Demogorgon314/dsh-resume-plugin) से (MIT)।
240
+ - याद/कौशल इंजेक्शन और frontmatter पार्सिंग पैटर्न [YYTbit/dsh-plugin-claude-bridge](https://github.com/YYTbit/dsh-plugin-claude-bridge) से (MIT)।
241
+
242
+ ## विकास
243
+
244
+ ```sh
245
+ npm install # peer deps: @deepseek-ai/dsh-tools@0.1.0-rc.6, @deepseek-ai/cordis, schemastery
246
+ npm test # node --test test/*.test.mjs
247
+ ```
248
+
249
+ CI GitHub Actions ([test.yml](.github/workflows/test.yml)) के माध्यम से Linux/macOS/Windows पर Node 22 में पूरी सुइट चलाता है।
250
+
251
+ ## विषय
252
+
253
+ `deepseek-harness`, `dsh-plugin`, `claude-code`, `migration`, `session-import`, `resume`
254
+
255
+ ## योगदानकर्ता
256
+
257
+ - [@PerryLink](https://github.com/PerryLink) — निर्माता और अनुरक्षक: आयात पाइपलाइन, चार-स्रोत माइग्रेशन विज़ार्ड, वेब पैनल, दस्तावेज़, CI/CD और रिलीज़।
258
+ - [@OLDnana1](https://github.com/OLDnana1) — बाधित टूल-कॉल भ्रष्टाचार का मूल-कारण विश्लेषण, जिसके कारण आयातित सत्र रिज़्यूम पर स्थायी रूप से HTTP 400 लौटाते थे।
259
+ - [@GooodWei](https://github.com/GooodWei) — पहचाना कि `README.md` (और कोई भी विवरण-रहित `.md`) गलती से कौशल के रूप में पंजीकृत हो जाता था, जिससे DSH का कौशल लोड टूट जाता था।
260
+
261
+ ## PerryLink DSH प्लगइन परिवार
262
+
263
+ यह प्रोजेक्ट [PerryLink](https://github.com/PerryLink) द्वारा अनुरक्षित DeepSeek Harness प्लगइन में से एक है। यदि यह आपकी मदद करता है, तो बाकी भी संभवतः करेंगे:
264
+
265
+ | प्लगइन | एक पंक्ति |
266
+ |---|---|
267
+ | [dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel) | केवल-पढ़ने MCP रनटाइम पैनल: /mcp कमांड + स्थिति, टूल और त्रुटियों वाला Settings टैब |
268
+ | [dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck) | इंजीनियरिंग-अनुशासन गार्ड: आवश्यकताओं की पूछताछ, टेस्ट गेट, प्रतिद्वंद्वी समीक्षा |
269
+ | [dsh-background-agents](https://github.com/PerryLink/dsh-background-agents) | Web UI साइडबार, संदेश और इंटरप्ट के साथ टिकाऊ बैकग्राउंड चाइल्ड एजेंट |
270
+ | [dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions) | language servers पर LSP डायग्नोस्टिक्स, फ़ॉर्मेटिंग, कम्प्लीशन, कोड एक्शन और नाम बदलना |
271
+ | [dsh-output-styles](https://github.com/PerryLink/dsh-output-styles) | Claude Code outputStyles के समतुल्य रनटाइम स्टाइल स्विचिंग |
272
+ | [dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind) | Claude Code /rewind के समतुल्य: स्नैपशॉट, सत्र फ़ोर्क, एक-चरण रीस्टोर |
273
+ | [dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules) | ऑडिट के साथ Claude Code-शैली घोषणात्मक allow/deny/ask अनुमति नियम |
274
+ | [dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | अनुमोदन श्रृंखला पर द्वितीय-मॉडल ऑटो-रिव्यू, डिफ़ॉल्ट रूप से fail-closed |
275
+ | [dsh-memento](https://github.com/PerryLink/dsh-memento) | अनुमोदन-गेटेड क्रॉस-सत्र याद: ctx.memory सीम + SQLite + याद टूल |
276
+ | [dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security) | सुरक्षा-ऑडिट कौशल पैक: गोपनीय स्कैन, निर्भरता और आपूर्ति-श्रृंखला समीक्षा |
277
+ | [dsh-session-pin](https://github.com/PerryLink/dsh-session-pin) | टिकाऊ क्रम के साथ वेब साइडबार में सत्र पिन करें |
278
+ | [dsh-composer-history](https://github.com/PerryLink/dsh-composer-history) | वेब composer के लिए टर्मिनल-शैली इनपुट इतिहास: तीर, Ctrl+R खोज |
279
+ | [dsh-github](https://github.com/PerryLink/dsh-github) | DSH के लिए GitHub PR/issues एकीकरण, हर लेखन अनुमोदन-गेटेड |
280
+ | [dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide) | ऑन-डिमांड एजेंट कौशल के रूप में प्लगइन-विकास ज्ञानकोश |
281
+ | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Claude Code सत्र, याद, कौशल और CLAUDE.md को DSH में माइग्रेट करें |
282
+
283
+ ## लाइसेंस
284
+
285
+ [Apache License 2.0](LICENSE) © 2026 dsh-claude-move contributors